:root{color-scheme:light;--ink:#192c24;--muted:#4f6458;--green:#17604b;--deep:#152923;--mint:#e5efe9;--white:#fff;--paper:#f4f6f3;--line:#d9e3da;--accent:#f4c968;--red:#a23828;--shadow:0 12px 30px #193d2a12;font-family:"Inter","Segoe UI",system-ui,sans-serif;color:var(--ink);background:var(--paper)}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;min-height:100vh}
h1,h2,h3,p{margin:0}
h1,h2,h3{line-height:1.12;letter-spacing:-.035em}
p{line-height:1.5}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;border:1px solid transparent;border-radius:9px;padding:.68rem .9rem;min-height:42px;font-weight:650;background:var(--mint)}
button:disabled{opacity:.55;cursor:wait}
:focus-visible{outline:3px solid #328b70;outline-offset:3px}
a{color:var(--green);text-underline-offset:3px}
.button-link{display:inline-block;border:1px solid var(--line);border-radius:9px;padding:.68rem .9rem;font-size:.9rem;font-weight:650;text-decoration:none}
#policy-form,#review-form{display:grid;gap:14px;margin:15px 0}
small,.muted{color:var(--muted)}
.primary{color:var(--white);background:var(--green)}
.primary:hover{background:#0d4d3a}
.ghost{background:transparent;border-color:var(--line)}
.plain{background:transparent;padding:0}
.eyebrow{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;font-weight:750}
.brand{display:flex;align-items:center;gap:10px;white-space:nowrap;font-weight:760;letter-spacing:-.03em;font-size:1.14rem}
.mark{display:inline-grid;place-items:center;width:32px;height:32px;background:#dfece3;color:var(--deep);border-radius:8px;font-size:1.34rem}
.login-layout{min-height:100dvh;display:grid;grid-template-columns:1.05fr 1fr}
.login-intro{min-height:510px;padding:clamp(26px,6vw,92px);display:flex;position:relative;isolation:isolate;flex-direction:column;justify-content:space-between;overflow:hidden;background:var(--deep);color:#f5fbf6}
.login-intro h1{font-size:clamp(3rem,7vw,7rem);max-width:650px;margin:16px 0}
.login-intro p{color:#b9d0c4;max-width:28rem}
.login-intro .eyebrow{color:var(--accent)}
.track-art{height:72px;width:280px;opacity:.4;background:linear-gradient(transparent 13%,#729281 13% 21%,transparent 21% 79%,#729281 79% 87%,transparent 87%),repeating-linear-gradient(90deg,transparent 0 20px,#729281 20px 28px,transparent 28px 36px);transform:skewX(-24deg);margin-left:20px}
.login-card{display:grid;place-items:center;padding:32px}
.login-card form{width:min(100%,370px);display:grid;gap:18px}
.login-card h2{font-size:2.25rem;margin-bottom:3px}
.login-card .primary{display:flex;justify-content:space-between}
.credit{color:var(--muted);font-size:.82rem}
label{display:grid;gap:7px;font-size:.86rem;font-weight:660}
input,select,textarea{width:100%;min-height:44px;background:#fff;border:1px solid #bacdc0;border-radius:8px;padding:10px 11px}
input[type=checkbox]{width:18px;min-height:18px;accent-color:var(--green)}
textarea{min-height:85px;resize:vertical}
.form-error{color:var(--red);font-size:.88rem}
.form-error:empty{display:none}
.topbar{position:sticky;top:0;z-index:2;background:var(--white);border-bottom:1px solid var(--line)}
.top-inner{max-width:1260px;margin:auto;padding:13px clamp(16px,3vw,36px);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px}
.top-inner .brand{justify-self:start}
.top-inner .ghost{justify-self:end}
nav{display:flex;gap:4px}
.nav{background:transparent;color:var(--muted);white-space:nowrap}
.nav[aria-current=page]{color:var(--green);background:var(--mint)}
.page{max-width:1260px;margin:auto;padding:32px clamp(16px,3vw,36px) 55px}
.hero{position:relative;display:flex;justify-content:space-between;align-items:end;gap:22px;padding:clamp(24px,4.8vw,56px);border-radius:18px;overflow:hidden;background:var(--deep);color:var(--white)}
.hero h1{font-size:clamp(2.15rem,5vw,4.5rem);margin:10px 0}
.hero p{color:#c9dbd1}
.hero .eyebrow{color:var(--accent)}
.hero button{background:var(--accent);color:#272715;flex:none}
.title-row,.section-head{display:flex;justify-content:space-between;align-items:center;gap:14px}
.title-row{margin-bottom:24px}
.title-row h1{font-size:clamp(2rem,4.8vw,3rem)}
.title-row p,.section-head p{margin-top:6px}
.section-head{margin:26px 0 12px}
.section-head h2{font-size:1.4rem}
.stats,.actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin-top:15px}
.stat,.tile,.panel,.list,.reading{background:var(--white);border:1px solid var(--line);border-radius:13px}
.stat{padding:16px 19px}
.stat strong{display:block;font-size:1.92rem;margin-top:3px;font-variant-numeric:tabular-nums}
.stat small{font-size:.83rem;font-weight:650}
.tile{text-align:left;padding:18px;color:var(--ink);min-height:105px}
.tile:hover,.record:hover,.guide-row:hover{background:#f0f7f3;border-color:#aac4b4}
.tile strong{display:block;margin-bottom:7px;font-size:1.05rem}
.tile small{display:block;line-height:1.35;font-weight:460}
.panel,.reading{padding:22px}
.panel h2{margin-bottom:10px}
.panel p+p{margin-top:10px}
.list{overflow:hidden}
.record,.guide-row{display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;background:white;border:0;border-radius:0;width:100%;padding:14px 16px}
.record+.record,.guide-row+.guide-row{border-top:1px solid var(--line)}
.record strong,.guide-row strong{display:block;font-size:.94rem}
.record small,.guide-row small{display:block;margin-top:4px;font-weight:450}
.tag{display:inline-block;background:var(--mint);color:var(--green);padding:4px 8px;border-radius:6px;font-size:.76rem;font-weight:700;white-space:nowrap}
.tag.overdue{background:#fae9e5;color:#8d3325}
.empty{padding:20px;color:var(--muted)}
.filters,.buttons{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:14px;align-items:center}
.filters input,.filters select{width:auto;min-width:160px}
.filters input{flex:1}
.standards-layout{display:grid;grid-template-columns:minmax(220px,1fr) minmax(0,2fr);gap:14px;align-items:start}
.guide-list{max-height:65vh;overflow:auto}
.guide-row[aria-current=true]{background:var(--mint)}
.reading{overflow-x:auto;line-height:1.53;font-size:.94rem}
.reading h4{font-size:1.32rem;margin:0 0 15px}
.reading p{margin:.6em 0}
.reading img{max-width:100%;height:auto}
.reading table{border-collapse:collapse;font-variant-numeric:tabular-nums;margin:10px 0}
.reading td,.reading th{padding:6px;border:1px solid var(--line)}
.reading .fr-reference{white-space:normal}
.reading .indent-2{margin-left:10px}
.reading .indent-3{margin-left:18px}
dialog{border:1px solid var(--line);border-radius:15px;padding:0;color:var(--ink);width:min(720px,calc(100% - 20px));max-height:90dvh;box-shadow:var(--shadow)}
dialog::backdrop{background:#0b201db0}
.dialog-head{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 20px;background:var(--white);z-index:1;border-bottom:1px solid var(--line)}
#modal-body{padding:20px}
#record-form{display:grid;gap:16px}
.field-grid,.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.wide{grid-column:1/-1}
.worksheet{padding:12px 14px;border-radius:8px;background:var(--mint);font-size:.89rem}
.checks{display:flex;flex-wrap:wrap;gap:9px 16px}
.checks label,.sign-label{display:flex;align-items:center;gap:8px}
fieldset{border:1px solid var(--line);border-radius:9px;padding:11px 13px}
legend{font-weight:680;font-size:.9rem}
.modal-photo{max-width:100%;max-height:55vh;display:block;border-radius:8px;object-fit:contain;margin:16px 0 6px}
.detail-grid{margin:16px 0}
.detail-grid dt{font-weight:650;font-size:.82rem;color:var(--muted)}
.detail-grid dd{margin:4px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}
#toast{position:fixed;z-index:5;bottom:18px;right:18px;max-width:calc(100% - 36px);background:var(--deep);color:white;padding:12px 17px;border-radius:8px;box-shadow:var(--shadow)}
#toast:empty{display:none}
@media(max-width:740px){
  .top-inner{grid-template-columns:1fr auto;gap:6px 12px}
  .top-inner nav{grid-row:2;grid-column:1/-1;overflow:auto;justify-content:space-between}
  .nav{padding:.52rem .40rem;font-size:.84rem}
  .login-layout{grid-template-columns:1fr}
  .login-intro{min-height:260px;gap:20px}
  .track-art{display:none}
  .login-card{padding:26px 22px 42px}
  .actions{grid-template-columns:repeat(2,minmax(0,1fr))}
  .standards-layout{grid-template-columns:1fr}
  .guide-list{max-height:220px}
}
@media(max-width:480px){
  .hero{align-items:start;flex-direction:column}
  .stats{gap:6px}
  .stat{padding:10px 8px}
  .stat strong{font-size:1.45rem}
  .stat small{font-size:.74rem}
  .title-row{align-items:start}
  .tile{padding:13px}
  .field-grid,.detail-grid{grid-template-columns:1fr}
  .filters input,.filters select{min-width:0;width:100%}
}
@media(max-width:360px){
  .nav{padding:.5rem .26rem;font-size:.77rem}
}
@media print{
  body:has(dialog[open]) #workspace,.dialog-head button,.no-print,#toast{display:none!important}
  dialog[open]{position:static;max-height:none;width:100%;border:0;box-shadow:none;margin:0;overflow:visible}
  dialog::backdrop{background:white}
}
