:root{
 --paper:#FAFAF7;
 --paper-dim:#F1EFE8;
 --ink:#1C2740;
 --ink-soft:#4A5468;
 --line:#D8D4C8;
 --gold:#C79A2E;
 --gold-deep:#93711B;
 --lost:#B04A34;
 --lost-bg:#F7E9E4;
 --found:#2E6B57;
 --found-bg:#E4F0EA;
 --claimed:#5B5B6B;
 --claimed-bg:#EBEAF2;
 --radius:2px;
}

*{
 box-sizing:border-box;
}

html{
 scroll-behavior:smooth;
}

body{
 margin:0;
 background:var(--paper);
 color:var(--ink);
 font-family:'Source Serif 4', Georgia, serif;
 line-height:1.5;
}

h1,
h2,
h3,
.display,
nav a,
.btn,
.tag-id,
.badge{
 font-family:'Archivo', sans-serif;
}

.mono{
 font-family:'IBM Plex Mono', monospace;
}

a{
 color:inherit;
}

button{
 font:inherit;
 cursor:pointer;
}


/* ---------- top wayfinding bar ---------- */

header.site{
 background:var(--ink);
 color:var(--paper);
 border-bottom:6px solid var(--gold);
}

.site-inner{
 max-width:1120px;
 margin:0 auto;
 padding:18px 24px;
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:24px;
}

.brand{
 display:flex;
 align-items:baseline;
 gap:10px;
}

.brand-mark{
 width:34px;
 height:34px;
 border:2px solid var(--gold);
 display:flex;
 align-items:center;
 justify-content:center;
 font-family:'Archivo',sans-serif;
 font-weight:800;
 font-size:15px;
 color:var(--gold);
 flex:none;
 transform:rotate(-3deg);
}

.brand-text{
 font-weight:700;
 font-size:19px;
 letter-spacing:0.2px;
}

.brand-text span{
 color:var(--gold);
}

.admin-flag{
 display:none;
 font-family:'Archivo',sans-serif;
 font-size:11px;
 font-weight:700;
 letter-spacing:0.3px;
 color:var(--ink);
 background:var(--gold);
 padding:4px 10px;
 margin-left:4px;
}

header.site.admin-mode .admin-flag{
 display:inline-block;
}

header.site.admin-mode nav.site-nav,
header.site.admin-mode .nav-right{
 display:none;
}

nav.site-nav{
 display:flex;
 gap:28px;
}

nav.site-nav button{
 background:none;
 border:none;
 color:var(--paper);
 font-weight:600;
 font-size:14.5px;
 padding:6px 0;
 border-bottom:2px solid transparent;
 opacity:0.78;
}

nav.site-nav button:hover{
 opacity:1;
}

nav.site-nav button.active{
 opacity:1;
 border-bottom-color:var(--gold);
}

.nav-right{
 display:flex;
 gap:12px;
 align-items:center;
}

.btn{
 display:inline-flex;
 align-items:center;
 gap:8px;
 padding:10px 18px;
 font-weight:700;
 font-size:13.5px;
 border:2px solid transparent;
 border-radius:var(--radius);
 letter-spacing:0.2px;
}

.btn-gold{
 background:var(--gold);
 color:var(--ink);
}

.btn-gold:hover{
 background:var(--gold-deep);
}

.btn-outline{
 background:transparent;
 border-color:rgba(250,250,247,0.4);
 color:var(--paper);
}

.btn-outline:hover{
 border-color:var(--paper);
}

.btn-ink{
 background:var(--ink);
 color:var(--paper);
}

.btn-ink:hover{
 background:#0f1626;
}

main{
 max-width:1120px;
 margin:0 auto;
 padding:0 24px;
}


/* ---------- hero ---------- */

.hero{
 padding:52px 0 34px;
 border-bottom:1px solid var(--line);
 display:grid;
 grid-template-columns:1.3fr 1fr;
 gap:40px;
 align-items:end;
}

.hero h1{
 font-size:42px;
 line-height:1.08;
 font-weight:800;
 margin:0 0 14px;
 letter-spacing:-0.5px;
}

.hero p.lede{
 font-family:'Source Serif 4',serif;
 font-size:17px;
 color:var(--ink-soft);
 max-width:46ch;
 margin:0 0 20px;
}

.hero-actions{
 display:flex;
 gap:12px;
}

.stat-strip{
 display:grid;
 grid-template-columns:1fr 1fr;
 gap:1px;
 background:var(--line);
 border:1px solid var(--line);
}

.stat{
 background:var(--paper);
 padding:16px 18px;
}

.stat b{
 display:block;
 font-family:'Archivo',sans-serif;
 font-size:26px;
 font-weight:800;
}

.stat span{
 font-family:'Archivo',sans-serif;
 font-size:12px;
 color:var(--ink-soft);
 font-weight:600;
}


/* ---------- views ---------- */

.view{
 display:none;
 padding:36px 0 72px;
}

.view.active{
 display:block;
}

.view-head{
 display:flex;
 justify-content:space-between;
 align-items:flex-end;
 gap:20px;
 margin-bottom:22px;
 padding-bottom:14px;
 border-bottom:2px solid var(--ink);
}

.view-head h2{
 font-size:24px;
 margin:0;
 font-weight:800;
}

.view-head p{
 margin:4px 0 0;
 color:var(--ink-soft);
 font-size:14.5px;
 font-family:'Archivo',sans-serif;
}


/* ---------- filter bar ---------- */

.filters{
 display:flex;
 flex-wrap:wrap;
 gap:10px;
 margin-bottom:26px;
}

.filters input[type="text"]{
 flex:1;
 min-width:200px;
 padding:11px 14px;
 border:1.5px solid var(--ink);
 background:var(--paper);
 font-family:'Source Serif 4',serif;
 font-size:15px;
}

.filters select{
 padding:11px 12px;
 border:1.5px solid var(--ink);
 background:var(--paper);
 font-family:'Archivo',sans-serif;
 font-size:13.5px;
 font-weight:600;
 color:var(--ink);
}

.chip-row{
 display:flex;
 gap:8px;
 margin-bottom:20px;
 flex-wrap:wrap;
}

.chip{
 padding:7px 14px;
 border:1.5px solid var(--line);
 font-family:'Archivo',sans-serif;
 font-size:12.5px;
 font-weight:600;
 color:var(--ink-soft);
 background:var(--paper);
}

.chip.on{
 border-color:var(--ink);
 color:var(--ink);
 background:var(--paper-dim);
}


/* ---------- item board grid ---------- */

.board{
 display:grid;
 grid-template-columns:repeat(auto-fill, minmax(252px,1fr));
 gap:22px;
}

.tag-card{
 position:relative;
 background:var(--paper);
 border:1.5px solid var(--ink);
 padding-bottom:2px;
}

.tag-card .pinhole{
 position:absolute;
 top:14px;
 left:14px;
 width:11px;
 height:11px;
 border-radius:50%;
 background:var(--paper);
 border:1.5px solid var(--ink);
 z-index:2;
}

.tag-card .pinhole::after{
 content:"";
 position:absolute;
 inset:3px;
 border-radius:50%;
 background:var(--line);
}

.tag-photo{
 height:140px;
 background:var(--paper-dim);
 border-bottom:1.5px solid var(--ink);
 display:flex;
 align-items:center;
 justify-content:center;
 color:var(--ink-soft);
 font-family:'Archivo',sans-serif;
 font-size:11px;
 letter-spacing:0.4px;
 overflow:hidden;
}

.tag-photo img{
 width:100%;
 height:100%;
 object-fit:cover;
}

.tag-body{
 padding:14px 16px 16px;
}

.tag-status-row{
 display:flex;
 justify-content:space-between;
 align-items:center;
 margin-bottom:8px;
}

.badge{
 font-size:10.5px;
 font-weight:700;
 letter-spacing:0.3px;
 padding:3px 8px;
}

.badge.lost{
 background:var(--lost-bg);
 color:var(--lost);
}

.badge.found{
 background:var(--found-bg);
 color:var(--found);
}

.badge.claimed{
 background:var(--claimed-bg);
 color:var(--claimed);
}

.tag-id{
 font-size:11px;
 color:var(--ink-soft);
}

.tag-card h3{
 font-size:17px;
 margin:0 0 4px;
 font-weight:700;
}

.tag-meta{
 font-family:'Source Serif 4',serif;
 font-size:13.5px;
 color:var(--ink-soft);
 margin:0 0 10px;
}

.tag-foot{
 display:flex;
 justify-content:space-between;
 align-items:center;
 border-top:1px dashed var(--line);
 padding-top:10px;
 font-family:'Archivo',sans-serif;
 font-size:12px;
}

.tag-foot .date{
 color:var(--ink-soft);
}

.tag-foot button{
 background:none;
 border:none;
 color:var(--ink);
 font-weight:700;
 border-bottom:1.5px solid var(--gold);
 padding:0 0 1px;
}


/* ---------- report form ---------- */

.form-shell{
 display:grid;
 grid-template-columns:1fr 300px;
 gap:34px;
}

.ticket{
 border:1.5px solid var(--ink);
 background:var(--paper);
}

.ticket-head{
 background:var(--ink);
 color:var(--paper);
 padding:14px 20px;
 display:flex;
 justify-content:space-between;
 align-items:center;
}

.ticket-head b{
 font-family:'Archivo',sans-serif;
 font-size:13px;
 letter-spacing:0.3px;
}

.ticket-head span{
 font-family:'IBM Plex Mono',monospace;
 font-size:12px;
 color:var(--gold);
}

.ticket-body{
 padding:24px;
}

.field{
 margin-bottom:18px;
}

.field label{
 display:block;
 font-family:'Archivo',sans-serif;
 font-size:12.5px;
 font-weight:700;
 margin-bottom:6px;
 color:var(--ink);
}

.field .hint{
 font-family:'Source Serif 4',serif;
 font-size:12.5px;
 color:var(--ink-soft);
 margin-top:5px;
}

.field input[type="text"],
.field input[type="date"],
.field input[type="email"],
.field input[type="password"],
.field select,
.field textarea{
 width:100%;
 padding:10px 12px;
 border:1.5px solid var(--line);
 background:var(--paper);
 font-family:'Source Serif 4',serif;
 font-size:15px;
 color:var(--ink);
}

.field input:focus,
.field select:focus,
.field textarea:focus{
 outline:none;
 border-color:var(--ink);
}

.field textarea{
 resize:vertical;
 min-height:90px;
}

.grid-2{
 display:grid;
 grid-template-columns:1fr 1fr;
 gap:16px;
}

.radio-pair{
 display:flex;
 gap:10px;
}

.radio-pair label{
 flex:1;
 display:flex;
 align-items:center;
 gap:8px;
 border:1.5px solid var(--line);
 padding:12px 14px;
 font-family:'Archivo',sans-serif;
 font-size:13.5px;
 font-weight:600;
 cursor:pointer;
}

.radio-pair input{
 accent-color:var(--ink);
}

.radio-pair label.picked{
 border-color:var(--ink);
 background:var(--paper-dim);
}


/* ---------- My Claims ---------- */

.empty{
    padding:30px;
    text-align:center;
    border:1.5px dashed var(--line);
    color:var(--ink-soft);
    font-family:'Archivo',sans-serif;
    font-size:13px;
}

.empty strong{
    display:block;
    color:var(--ink);
    font-size:15px;
    margin-bottom:5px;
}

.claim-card{
    border:1.5px solid var(--ink);
    background:var(--paper);
    margin-bottom:18px;
}

.claim-card:last-child{
    margin-bottom:0;
}

.claim-card-head{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:20px;
    padding:18px 20px;
    border-bottom:1px solid var(--line);
}

.claim-label{
    display:block;
    font-family:'IBM Plex Mono',monospace;
    font-size:10px;
    color:var(--ink-soft);
    margin-bottom:5px;
}

.claim-card h3{
    margin:0;
    font-size:18px;
    font-weight:700;
}

.claim-status{
    display:inline-block;
    padding:5px 10px;
    font-family:'Archivo',sans-serif;
    font-size:10.5px;
    font-weight:700;
    letter-spacing:.3px;
    white-space:nowrap;
}

.claim-status.pending{
    background:#F7EED5;
    color:var(--gold-deep);
}

.claim-status.approved{
    background:var(--found-bg);
    color:var(--found);
}

.claim-status.rejected{
    background:var(--lost-bg);
    color:var(--lost);
}

.claim-info{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:1px;
    background:var(--line);
    border-bottom:1px solid var(--line);
}

.claim-info > div{
    background:var(--paper);
    padding:14px 16px;
}

.claim-info span{
    display:block;
    font-family:'Archivo',sans-serif;
    font-size:10.5px;
    color:var(--ink-soft);
    margin-bottom:4px;
    text-transform:uppercase;
}

.claim-info strong{
    font-family:'Archivo',sans-serif;
    font-size:12.5px;
    color:var(--ink);
}

.claim-details{
    padding:16px 20px;
}

.claim-details > span{
    display:block;
    font-family:'Archivo',sans-serif;
    font-size:11px;
    font-weight:700;
    margin-bottom:5px;
    color:var(--ink);
}

.claim-details p{
    margin:0;
    color:var(--ink-soft);
    font-size:14px;
}

@media(max-width:760px){

    .claim-card-head{
        flex-direction:column;
        gap:10px;
    }

    .claim-info{
        grid-template-columns:1fr 1fr;
    }
}

/* ---------- email & password fields ---------- */

#loginEmail,
#loginPass,
#registerEmail,
#registerPass{
 width:100%;
 padding:12px 14px;
 border:1.5px solid var(--line);
 background:var(--paper);
 color:var(--ink);
 font-family:'Source Serif 4',serif;
 font-size:15px;
 border-radius:var(--radius);
 transition:
  border-color .2s ease,
  box-shadow .2s ease,
  background .2s ease;
}

#loginEmail:hover,
#loginPass:hover,
#registerEmail:hover,
#registerPass:hover{
 border-color:var(--ink-soft);
}

#loginEmail:focus,
#loginPass:focus,
#registerEmail:focus,
#registerPass:focus{
 outline:none;
 border-color:var(--gold-deep);
 box-shadow:0 0 0 3px rgba(199,154,46,0.15);
 background:#fff;
}

#loginEmail::placeholder,
#loginPass::placeholder,
#registerEmail::placeholder,
#registerPass::placeholder{
 color:#8A8F9B;
}


/* ---------- upload dropzone ---------- */

.dropzone{
 border:1.5px dashed var(--line);
 padding:26px;
 text-align:center;
 font-family:'Archivo',sans-serif;
 font-size:12.5px;
 color:var(--ink-soft);
}

.dropzone b{
 display:block;
 color:var(--ink);
 font-size:13.5px;
 margin-bottom:4px;
}


/* ---------- side notes ---------- */

.aside-note{
 border:1.5px solid var(--line);
 padding:18px 20px;
 margin-bottom:18px;
 background:var(--paper-dim);
}

.aside-note h4{
 margin:0 0 8px;
 font-size:13px;
 font-family:'Archivo',sans-serif;
}

.aside-note p{
 margin:0;
 font-size:13.5px;
 color:var(--ink-soft);
}

.aside-steps{
 list-style:none;
 margin:0;
 padding:0;
}

.aside-steps li{
 display:flex;
 gap:10px;
 padding:9px 0;
 border-bottom:1px solid var(--line);
 font-family:'Archivo',sans-serif;
 font-size:13px;
}

.aside-steps li:last-child{
 border-bottom:none;
}

.aside-steps b{
 color:var(--gold-deep);
}


/* ---------- login ---------- */

.login-wrap{
 max-width:420px;
 margin:20px auto 60px;
}

.login-wrap .ticket-body{
 padding:28px;
}

.switch-line{
 text-align:center;
 margin-top:16px;
 font-family:'Archivo',sans-serif;
 font-size:13px;
 color:var(--ink-soft);
}

.switch-line button{
 background:none;
 border:none;
 color:var(--gold-deep);
 font-weight:700;
 border-bottom:1.5px solid var(--gold-deep);
}


/* ---------- toast ---------- */

#toast{
 position:fixed;
 bottom:26px;
 left:50%;
 transform:translateX(-50%) translateY(20px);
 background:var(--ink);
 color:var(--paper);
 padding:14px 22px;
 border-left:4px solid var(--gold);
 font-family:'Archivo',sans-serif;
 font-size:13.5px;
 font-weight:600;
 opacity:0;
 pointer-events:none;
 transition:all .25s ease;
 z-index:50;
}

#toast.show{
 opacity:1;
 transform:translateX(-50%) translateY(0);
}


/* ---------- footer ---------- */

footer{
 border-top:1px solid var(--line);
 padding:22px 0 40px;
 text-align:center;
 color:var(--ink-soft);
 font-family:'Archivo',sans-serif;
 font-size:12px;
}


/* ---------- utility ---------- */

.dark-outline{
 border-color:var(--ink);
 color:var(--ink);
}

.full{
 width:100%;
 justify-content:center;
 padding:13px;
}


/* ---------- responsive ---------- */

@media(max-width:760px){

 .hero{
  grid-template-columns:1fr;
 }

 .form-shell{
  grid-template-columns:1fr;
 }

 nav.site-nav{
  display:none;
 }

 .site-inner{
  flex-wrap:wrap;
 }

 .nav-right{
  margin-left:auto;
 }

 .grid-2{
  grid-template-columns:1fr;
 }

 .login-wrap{
  max-width:100%;
 }
}


/* ---------- keyboard focus ---------- */

:focus-visible{
 outline:2px solid var(--gold-deep);
 outline-offset:2px;
}

/* Phase 8: Claim progress and pickup details */
.claim-status.readyforpickup { background:#f7eed5; color:var(--gold-deep); }
.claim-status.returned { background:var(--claimed-bg); color:var(--claimed); }
.claim-workflow { padding:16px 20px; border-bottom:1px solid var(--line); }
.claim-progress { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; }
.claim-step { font:600 11px/1.4 'Archivo',sans-serif; color:var(--ink-soft); padding:8px 5px; text-align:center; background:var(--paper-dim); border-bottom:3px solid var(--line); }
.claim-step.complete { color:var(--found); background:var(--found-bg); border-bottom-color:var(--found); }
.claim-step.current { font-weight:800; }
.claim-progress-note { margin:0; font:600 12px 'Archivo',sans-serif; color:var(--lost); }
.claim-pickup { padding:18px 20px; background:#fffaf0; border-bottom:1px solid var(--line); }
.claim-pickup > strong { display:block; font:700 15px 'Archivo',sans-serif; color:var(--ink); }
.claim-pickup > p { margin:6px 0 12px; font-size:13px; color:var(--ink-soft); }
.claim-pickup-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.claim-pickup-grid > div { min-width:0; }
.claim-pickup-grid span { display:block; font:600 10px 'Archivo',sans-serif; text-transform:uppercase; color:var(--ink-soft); margin-bottom:3px; }
.claim-pickup-grid b { display:block; font:600 13px/1.5 'Archivo',sans-serif; overflow-wrap:anywhere; }
@media(max-width:600px) { .claim-progress { grid-template-columns:repeat(2,minmax(0,1fr)); } .claim-pickup-grid { grid-template-columns:1fr; } }

/* Phase 10 — My Reports */
.my-report-card{border:1.5px solid var(--line);padding:18px 20px;margin-bottom:14px;background:var(--paper)}
.my-report-card:last-child{margin-bottom:0}
.my-report-top{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap}
.my-report-top h3{font-family:'Archivo',sans-serif;font-size:17px;margin:2px 0 10px}
.my-report-status{display:inline-block;padding:5px 10px;font:700 11px 'Archivo',sans-serif;white-space:nowrap}
.my-report-status.pending{background:#F7EED5;color:var(--gold-deep)}
.my-report-status.approved{background:var(--found-bg);color:var(--found)}
.my-report-status.rejected{background:var(--lost-bg);color:var(--lost)}
.my-report-meta{font:12px 'Archivo',sans-serif;color:var(--ink-soft);margin-bottom:10px}
.my-report-card p{margin:0;color:var(--ink-soft);font-size:14px}
.my-report-reason{margin-top:12px;padding:12px;border-left:3px solid var(--lost);background:var(--lost-bg);font-size:13px;overflow-wrap:anywhere}
@media(max-width:650px){nav.site-nav{flex-wrap:wrap;gap:10px 18px}.my-report-top{flex-direction:column;gap:5px}}

.my-report-photo { width: 100%; max-height: 260px; overflow: hidden; background: var(--paper-dim); display:flex; align-items:center; justify-content:center; color:var(--ink-soft); font: 12px Archivo,sans-serif; }
.my-report-photo img { width:100%; max-height:260px; object-fit:contain; display:block; }

/* Auth controls: hidden must override the generic .btn display rule. */
.nav-right .btn[hidden] { display: none !important; }

/* Phase 13 — profile layout */
.profile-layout{display:grid;grid-template-columns:minmax(250px,0.85fr) minmax(320px,1.15fr);gap:22px;align-items:start}
.profile-actions{display:grid;gap:22px}.profile-avatar{width:66px;height:66px;display:grid;place-items:center;background:var(--ink);color:var(--gold);font:800 23px Archivo,sans-serif;margin-bottom:20px}
.profile-details{display:grid;gap:0}.profile-details>div{padding:13px 0;border-bottom:1px solid var(--line);display:grid;gap:4px;overflow-wrap:anywhere}
.profile-details span{font:600 11px Archivo,sans-serif;color:var(--ink-soft);text-transform:uppercase}.profile-details strong{font:600 15px Archivo,sans-serif}
.form-guidance{font:13px Archivo,sans-serif;color:var(--ink-soft);margin:12px 0}.show-password-label{display:flex;align-items:center;gap:8px;font:13px Archivo,sans-serif;margin:0 0 15px;cursor:pointer}
@media(max-width:760px){.profile-layout{grid-template-columns:1fr}}

/* Phase 14 — redesigned account profile */
#view-account{max-width:980px;margin:0 auto}
.account-shell{border:1.5px solid var(--ink);background:#fff}
.account-banner{height:128px;background:linear-gradient(115deg,#1C2740 0%,#263958 70%,#344866 100%);position:relative;overflow:hidden;padding:25px 30px;color:var(--gold)}
.account-banner-mark{font:800 19px Archivo,sans-serif;letter-spacing:1px;position:relative;z-index:1}.account-banner-mark span{font:600 10px 'IBM Plex Mono',monospace;letter-spacing:2px;color:#e8dfc7;margin-left:14px}
.account-banner-pattern{position:absolute;right:45px;top:-120px;font-size:300px;opacity:.12;color:var(--gold)}
.account-identity{display:flex;align-items:center;gap:20px;padding:0 30px 24px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.account-avatar{margin:-37px 0 0;width:88px;height:88px;flex:none;border:5px solid white;background:var(--gold);color:var(--ink);font-size:28px;position:relative;z-index:1;border-radius:50%}
.account-identity-copy{padding-top:16px;min-width:0;flex:1}.account-eyebrow{font:700 10px 'IBM Plex Mono',monospace;letter-spacing:1.3px;color:var(--gold-deep)}
.account-identity-copy h3{font:800 24px Archivo,sans-serif;margin:5px 0 2px;overflow-wrap:anywhere}.account-identity-copy p{margin:0;font:14px Archivo,sans-serif;color:var(--ink-soft);overflow-wrap:anywhere}
.account-role-pill{padding:7px 13px;border:1px solid #d4c48f;background:#f8f2df;color:#6f571b;font:700 11px Archivo,sans-serif;text-transform:uppercase;letter-spacing:1px}
.account-main{padding:28px 30px 32px;display:grid;gap:24px;background:#fcfbf8}
.account-panel{border:1px solid var(--line);background:white;padding:24px}
.account-panel-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:20px}
.account-panel-heading h3{font:800 19px Archivo,sans-serif;margin:6px 0}.account-panel-heading p{margin:0;font:13px Archivo,sans-serif;color:var(--ink-soft)}
.account-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}
.account-info-cell{padding:18px 20px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-width:0}
.account-info-cell span{display:block;font:700 10px Archivo,sans-serif;letter-spacing:.8px;color:var(--ink-soft);margin-bottom:9px}
.account-info-cell strong{font:700 15px Archivo,sans-serif;overflow-wrap:anywhere}
.account-outline{border-color:var(--ink);color:var(--ink);background:white}.account-outline:hover{background:var(--paper-dim)}
.account-security-note{display:flex;align-items:center;gap:15px;background:var(--paper);border:1px solid var(--line);padding:16px}.account-lock{display:grid;place-items:center;width:42px;height:42px;background:var(--ink);color:var(--gold);font-size:23px;flex:none}.account-security-note strong{font:700 13px Archivo,sans-serif}.account-security-note p{font:12px/1.6 Archivo,sans-serif;color:var(--ink-soft);margin:4px 0 0}
.account-editor{max-width:660px;margin:28px auto 0;border:1.5px solid var(--ink);background:white;box-shadow:8px 8px 0 var(--paper-dim)}
.account-editor[hidden],#profileForm[hidden],#changePasswordForm[hidden]{display:none!important}
.account-editor-top{background:var(--ink);color:white;display:flex;align-items:center;justify-content:space-between;padding:20px 25px}.account-editor-top h3{font:800 20px Archivo,sans-serif;margin:6px 0 0}.account-editor-close{background:transparent;border:1px solid #78829a;color:white;padding:8px 12px;font-size:17px}
.account-editor-form{padding:25px}.account-form-buttons{display:flex;justify-content:flex-end;gap:12px;flex-wrap:wrap;margin-top:22px}
@media(max-width:680px){.account-banner{height:105px;padding:22px}.account-identity{padding:0 18px 22px;gap:13px}.account-avatar{width:70px;height:70px;font-size:22px}.account-identity-copy h3{font-size:19px}.account-main{padding:16px;gap:16px}.account-panel{padding:17px}.account-info-grid{grid-template-columns:1fr}.account-panel-heading .btn{width:100%;justify-content:center}.account-editor-form{padding:18px}.account-role-pill{margin-left:0}}

/* Phase 15: Found item security office reminder */
.found-security-notice:not([hidden]) { display:block; margin:18px 0 22px; padding:18px 20px; border:1px solid #d7b970; border-left:5px solid #c79a2e; border-radius:10px; background:#fff9e9; color:#1c2740; font-family:Archivo,Arial,sans-serif; }
.found-security-heading { font-size:15px; font-weight:800; line-height:1.5; }
.found-security-notice p { margin:8px 0 14px; font-size:13px; line-height:1.7; }
.found-security-confirm { display:flex; align-items:flex-start; gap:10px; cursor:pointer; font-size:13px; line-height:1.5; font-weight:600; }
.found-security-confirm input { flex:0 0 auto; width:17px; height:17px; margin-top:2px; accent-color:#1c2740; }

/* Phase 16: accessible mobile navigation (760px and below) */
.mobile-menu-toggle { display:none; }
@media (max-width:760px) {
  .site-inner { display:flex; flex-wrap:wrap; gap:12px; padding:14px 18px; }
  .brand { flex:1; min-width:0; }
  .brand-text { font-size:16px; }
  .mobile-menu-toggle {
    display:flex; flex-direction:column; justify-content:center; align-items:center;
    gap:5px; width:42px; height:42px; flex:none;
    border:1px solid rgba(250,250,247,.35); border-radius:6px;
    background:transparent; color:var(--paper);
  }
  .mobile-menu-toggle span { display:block; width:20px; height:2px; background:currentColor; border-radius:2px; }
  .mobile-menu-toggle[aria-expanded="true"] { border-color:var(--gold); color:var(--gold); }
  header.site:not(.admin-mode) nav.site-nav {
    display:none; order:3; width:100%; flex-basis:100%;
    flex-direction:column; gap:2px; padding:8px 0 12px;
    border-top:1px solid rgba(250,250,247,.2);
  }
  header.site:not(.admin-mode) nav.site-nav.mobile-open { display:flex; }
  nav.site-nav button { width:100%; text-align:left; padding:12px 10px; border-bottom:0; border-left:3px solid transparent; }
  nav.site-nav button.active { border-left-color:var(--gold); background:rgba(250,250,247,.08); }
  .nav-right { order:4; width:100%; justify-content:flex-start; margin-left:0; gap:8px; }
  .nav-right .btn { padding:9px 12px; font-size:12px; }
  header.site.admin-mode .mobile-menu-toggle { display:none; }
}

/* Phase 17 — notification bell, responsive dropdown */
.lf-notification-shell{position:relative;display:flex;align-items:center;z-index:60}
.lf-notification-shell[hidden],.lf-notification-panel[hidden],.lf-notification-badge[hidden]{display:none!important}
.lf-notification-bell{position:relative;background:transparent;border:1px solid #c79a2e;border-radius:9px;padding:9px 12px;cursor:pointer;font-size:19px;color:#1c2740}
.lf-notification-badge{position:absolute;top:-7px;right:-7px;background:#b73535;color:#fff;border-radius:100px;font:700 11px Archivo,Arial,sans-serif;min-width:19px;padding:3px}
.lf-notification-panel{position:absolute;right:0;top:calc(100% + 12px);width:min(370px,calc(100vw - 28px));max-height:450px;overflow:auto;background:#fafaf7;color:#1c2740;border:1px solid #ded8ca;box-shadow:0 15px 45px #15213935;border-radius:12px;z-index:9999}
.lf-notification-heading{display:flex;justify-content:space-between;align-items:center;padding:15px;border-bottom:1px solid #ddd6c9;gap:8px}
.lf-notification-heading button{border:0;background:none;color:#8b6617;cursor:pointer;font-size:12px}
.lf-notification-entry{display:block;width:100%;text-align:left;background:transparent;border:0;border-bottom:1px solid #e9e5dc;padding:13px 15px;cursor:pointer;color:inherit;font:inherit}
.lf-notification-entry.unread{background:#fff4d8}
.lf-notification-entry strong{display:block;font-size:13px;margin-bottom:4px}
.lf-notification-entry span{display:block;font-size:12px;line-height:1.5;overflow-wrap:anywhere}
.lf-notification-entry small{display:block;margin-top:5px;color:#667085;font-size:10px}
.lf-notification-empty{padding:25px;text-align:center;font-size:13px;color:#667085}
@media(max-width:760px){.lf-notification-shell{order:0}.lf-notification-panel{position:fixed;right:14px;top:76px;max-width:calc(100vw - 28px)}}
