/* Greenlight — local web app styles.
   Layout: fixed-width sidebar + fluid main column (Graphite); sign-in screen is the dark Aurora view.
   Theme: dark by default; [data-theme="light"] on <html> switches every token. */

@font-face{font-family:"Geist";src:url("fonts/geist-sans-latin-400-normal.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Geist";src:url("fonts/geist-sans-latin-500-normal.woff2") format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Geist";src:url("fonts/geist-sans-latin-600-normal.woff2") format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Geist";src:url("fonts/geist-sans-latin-700-normal.woff2") format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"Geist Mono";src:url("fonts/geist-mono-latin-400-normal.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Geist Mono";src:url("fonts/geist-mono-latin-500-normal.woff2") format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Sora";src:url("fonts/sora-latin-300-normal.woff2") format("woff2");font-weight:300;font-display:swap}
@font-face{font-family:"Sora";src:url("fonts/sora-latin-600-normal.woff2") format("woff2");font-weight:600;font-display:swap}

:root{
  --font:"Geist",-apple-system,"Segoe UI Variable Text","Segoe UI",system-ui,sans-serif;
  --mono:"Geist Mono",ui-monospace,"Cascadia Mono",Consolas,monospace;
  --display:"Sora","Geist","Segoe UI",system-ui,sans-serif;
  --lamp:#3DDC84;--lamp-2:#5EEAA0;--on-lamp:#06140C;
  /* dark (default): charcoal rather than near-black, softened text, calmer status colors */
  --bg:#16191F;--panel:#1C2027;--panel-2:#20252D;--inset:#14171C;--btn:#232830;--hover:#262B34;--sel:#1E2B24;
  --nav-on:#2A303A;--chip:#2C323C;--line:#2A2F38;--line-2:#323843;--border:#3D4450;--border-2:#535B68;
  --fg:#E4E7EB;--fg-2:#D3D7DD;--fg-3:#C3C8CF;--muted:#AEB4BD;--muted-2:#9EA5AF;--link:#92D9B2;--logo-ink:#EEF1F4;
  --ok-fg:#8BD9AC;--ok-bd:#2E5A41;--ok-bg:#1B2E23;--warn-fg:#F0C27A;--warn-bd:#5E4A28;--warn-bg:#2E2618;
  --bad-fg:#F2A6A0;--bad-bd:#64332F;--bad-bg:#30201F;--pend-fg:#BEC4CD;--pend-bd:#404754;--pend-bg:#242931;
  --info-fg:#A3C0F2;--info-bd:#34476B;--info-bg:#1E2738;
  --side-a:#1A1D23;--side-b:#17191F;--glow:rgba(61,220,132,.05);--shadow:0 20px 50px -30px rgba(0,0,0,.6);
  --pri-bd:#2C7A50;--pri-fg:#6BD99B;--pri-bd-h:#3DDC84;--pri-fg-h:#8FE8B6;--pri-bg:transparent;--pri-sh:none;--pri-sh-h:none;--pri-sh-a:none;
  color-scheme:dark;
}
:root[data-theme="light"]{
  --bg:#F3F5F8;--panel:#FFFFFF;--panel-2:#F7F8FA;--inset:#F4F6F8;--btn:#FFFFFF;--hover:#EEF1F5;--sel:#E9F7EF;
  --nav-on:#E6EAF0;--chip:#E1E5EC;--line:#E7EAEE;--line-2:#DCE0E6;--border:#CBD1DA;--border-2:#A9B1BD;
  --fg:#14171C;--fg-2:#2A2F38;--fg-3:#454C59;--muted:#5A6170;--muted-2:#6B7280;--link:#147A45;--logo-ink:#14171C;
  --ok-fg:#11643A;--ok-bd:#B5E2C6;--ok-bg:#E3F5EA;--warn-fg:#8A4B00;--warn-bd:#F1CF9C;--warn-bg:#FFF1DC;
  --bad-fg:#A3201A;--bad-bd:#F0B9B4;--bad-bg:#FFE9E7;--pend-fg:#4A5160;--pend-bd:#D5D9E0;--pend-bg:#EEF0F4;
  --info-fg:#1E4FA8;--info-bd:#BCD0F5;--info-bg:#E6EEFC;
  --side-a:#FAFBFC;--side-b:#F2F4F7;--glow:rgba(61,220,132,.10);--shadow:0 18px 40px -28px rgba(20,30,50,.35);
  --pri-bd:#1FA85E;--pri-fg:#147A45;--pri-bd-h:#11643A;--pri-fg-h:#0B4F2D;--pri-bg:#FFFFFF;
  --pri-sh:inset 0 -1px 0 rgba(17,100,58,.14),0 1px 2px rgba(20,30,50,.12);
  --pri-sh-h:inset 0 -1px 0 rgba(17,100,58,.18),0 2px 5px rgba(20,30,50,.14);
  --pri-sh-a:inset 0 1px 2px rgba(17,100,58,.18);
  color-scheme:light;
}

*{box-sizing:border-box}
html,body{margin:0;min-height:100%}
body{font-family:var(--font);font-size:16px;line-height:1.6;letter-spacing:.005em;overflow-wrap:break-word;color:var(--fg);background:var(--bg);-webkit-font-smoothing:antialiased}
a{color:var(--link)}a:hover{color:var(--fg)}
h1,h2,h3{margin:0;font-weight:600;letter-spacing:-.02em;text-wrap:balance}
h1{font-size:23.5px}h2{font-size:17px}h3{font-size:15px;color:var(--fg-2);margin-top:14px}
p{margin:0}
:focus-visible{outline:2px solid var(--lamp);outline-offset:2px}
input,select,textarea,button{font:inherit;color:inherit}
input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea{
  background:var(--inset);border:1px solid var(--border);border-radius:9px;padding:8px 11px;min-height:38px;color:var(--fg)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--lamp);box-shadow:0 0 0 3px rgba(61,220,132,.16)}
input[type=file]{color:var(--muted)}
textarea{width:100%;resize:vertical}
label{display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--muted)}
label.check{flex-direction:row;align-items:flex-start;gap:9px;color:var(--fg-2)}
label.check input{margin-top:3px;accent-color:var(--lamp)}
fieldset{border:0;margin:0;padding:0}
.mono{font-family:var(--mono)}
.muted{color:var(--muted)}.small{font-size:14px}
.error{color:var(--bad-fg)}ul.error{padding-left:18px;margin:0}
.right{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.row{display:flex;align-items:center;gap:10px}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.gap{gap:10px}
.stack{display:flex;flex-direction:column;gap:14px}.stack.tight{gap:7px}.grow{flex:1 1 220px;min-width:0}
form.inline{display:inline}
.only-light{display:none}:root[data-theme="light"] .only-light{display:inline-block}:root[data-theme="light"] .only-dark{display:none}

/* ---------- buttons, pills ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:38px;padding:0 14px;border-radius:9px;border:1px solid var(--border);
  background:var(--btn);color:var(--fg-2);font-size:14.5px;font-weight:500;cursor:pointer;text-decoration:none;white-space:nowrap}
.btn:hover{border-color:var(--border-2);color:var(--fg)}
/* Primary = "quiet outline" (A2, chosen 2026-10-18): muted green ring, full green on hover, never a fill. */
.btn.primary{background:var(--pri-bg);border-color:var(--pri-bd);color:var(--pri-fg);font-weight:500;box-shadow:var(--pri-sh);
  transition:border-color .15s,color .15s,box-shadow .15s,transform .05s}
.btn.primary:hover{border-color:var(--pri-bd-h);color:var(--pri-fg-h);background:var(--pri-bg);box-shadow:var(--pri-sh-h)}
.btn.primary:active{transform:translateY(1px);box-shadow:var(--pri-sh-a)}
.btn.primary[disabled]{box-shadow:none;transform:none}
.btn.bad,.btn.decline{background:var(--bad-bg);border-color:var(--bad-bd);color:var(--bad-fg)}
.btn.small{height:32px;padding:0 11px;font-size:14px}
.btn[disabled]{opacity:.45;cursor:not-allowed;filter:none}
button.link{background:none;border:0;padding:0;color:var(--link);cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.pill,.tag{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:6px;border:1px solid var(--pend-bd);background:var(--pend-bg);
  color:var(--pend-fg);font-size:13.5px;font-weight:500;white-space:nowrap;vertical-align:middle}
.pill::before,.tag::before{content:"";width:6px;height:6px;border-radius:2px;background:currentColor}
.pill.ok,.tag.ok{color:var(--ok-fg);border-color:var(--ok-bd);background:var(--ok-bg)}
.pill.warn,.pill.todo,.tag.warn{color:var(--warn-fg);border-color:var(--warn-bd);background:var(--warn-bg)}
.pill.bad,.tag.bad{color:var(--bad-fg);border-color:var(--bad-bd);background:var(--bad-bg)}
.pill.busy,.pill.info,.tag.info{color:var(--info-fg);border-color:var(--info-bd);background:var(--info-bg)}
.pill.demo{color:var(--muted)}
.pill.big{font-size:14px;padding:5px 11px}
.outcome{font-weight:600;font-size:14px}
.outcome.APPROPRIATE{color:var(--ok-fg)}.outcome.NEEDS_REVIEW{color:var(--warn-fg)}.outcome.NOT_APPROPRIATE{color:var(--bad-fg)}
.banner{padding:11px 14px;border-radius:10px;border:1px solid var(--line-2);background:var(--panel-2);color:var(--fg-2);font-size:14.5px}
.banner.warn{border-color:var(--warn-bd);background:var(--warn-bg);color:var(--warn-fg)}
.banner.demo{border-color:var(--info-bd);background:var(--info-bg);color:var(--info-fg)}
.banner.ok{border-color:var(--ok-bd);background:var(--ok-bg);color:var(--ok-fg)}

/* ---------- app shell ---------- */
.shell{display:flex;flex-wrap:wrap;min-height:100vh;background:radial-gradient(1100px 380px at 60% -12%,var(--glow) 0%,transparent 70%),var(--bg)}
.side{flex:1 1 230px;max-width:260px;min-width:0;border-right:1px solid var(--line);background:linear-gradient(180deg,var(--side-a),var(--side-b));
  padding:20px 14px 14px;display:flex;flex-direction:column;gap:22px;position:sticky;top:0;height:100vh;overflow-y:auto}
.brand{display:flex;align-items:center;gap:10px;padding:0 6px;text-decoration:none;color:var(--fg)}
.brand img{width:28px;height:28px}
.brand span{font-family:var(--display);font-weight:600;font-size:18px;letter-spacing:-.02em}
.nav{display:flex;flex-direction:column;gap:2px}
.nav-label{font-size:12.5px;font-weight:500;color:var(--muted-2);letter-spacing:.06em;text-transform:uppercase;padding:0 10px 6px}
.nav a,.nav summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:8px;color:var(--fg-3);
  text-decoration:none;font-size:15px;cursor:pointer;list-style:none}
.nav summary::-webkit-details-marker{display:none}
.nav a:hover,.nav summary:hover{background:var(--hover);color:var(--fg)}
.nav a.on{background:var(--nav-on);color:var(--fg);box-shadow:inset 0 0 0 1px var(--border)}
.nav a.sub{padding-left:34px;font-size:14.5px}
.nav .ic{display:flex;align-items:center;gap:9px}
.nav svg{flex:none}
.count{font-family:var(--mono);font-size:13.5px;color:var(--muted-2)}
.nav a.on .count{color:var(--fg-2)}
.count.attn{color:var(--warn-fg)}
.chev{transition:transform .2s}
details[open] > summary .chev{transform:rotate(90deg)}
.side-foot{margin-top:auto;border-top:1px solid var(--line);padding-top:12px;display:flex;flex-direction:column;gap:2px}
.me{display:flex;align-items:center;gap:10px;padding:10px 6px 0}
.avatar{width:30px;height:30px;border-radius:50%;background:var(--chip);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;color:var(--fg-2);flex:none}
.me .who{flex:1;min-width:0;display:flex;flex-direction:column;font-size:14px;color:var(--fg-2);line-height:1.25}
.me .who small{color:var(--muted-2);font-size:12.5px}
.icon-btn{width:34px;height:34px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;border:1px solid var(--border);background:var(--btn);color:var(--fg-3);cursor:pointer}
.icon-btn:hover{color:var(--fg);border-color:var(--border-2)}
.main{flex:999 1 640px;min-width:0;display:flex;flex-direction:column}
.bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:16px 28px;border-bottom:1px solid var(--line)}
.bar .title{display:flex;flex-direction:column;gap:2px}
.bar .sub{font-family:var(--mono);font-size:13.5px;color:var(--muted-2)}
.bar .actions{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
.content{padding:22px 28px 56px;display:flex;flex-direction:column;gap:16px;max-width:1280px;width:100%}
.content.narrow-page{max-width:720px}
.foot{padding:14px 28px 22px;color:var(--muted-2);font-size:13px;border-top:1px solid var(--line);margin-top:auto}
.banners{display:flex;flex-direction:column;gap:8px;padding:14px 28px 0}

/* intro (after sign-in): circle reveal of the app */
.shell.intro{animation:glIris .9s cubic-bezier(.7,0,.2,1) both}
@keyframes glIris{from{clip-path:circle(0% at 50% 30%)}to{clip-path:circle(150% at 50% 30%)}}
.shell.intro .side{animation:glSide .7s .35s cubic-bezier(.2,.8,.2,1) both}
.shell.intro .main{animation:glMain .8s .45s cubic-bezier(.2,.8,.2,1) both}
@keyframes glSide{from{transform:translateX(-24px);opacity:0}to{transform:none;opacity:1}}
@keyframes glMain{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}

/* ---------- cards and tables ---------- */
.card{background:var(--panel);border:1px solid var(--line-2);border-radius:14px;padding:18px 20px;display:flex;flex-direction:column;gap:12px;min-width:0}
.card.narrow{max-width:520px}
.card.empty{align-items:flex-start}
.card.head h1{font-size:25.5px}
.scroll{overflow-x:auto;border:1px solid var(--line-2);border-radius:12px;background:var(--panel)}
table{border-collapse:collapse;width:100%}
table.list,table.drivers{font-size:15.5px}
table.list th,table.drivers th{text-align:left;font-size:13px;font-weight:500;color:var(--muted-2);letter-spacing:.06em;text-transform:uppercase;padding:10px 14px;border-bottom:1px solid var(--line);white-space:nowrap}
table.list td,table.drivers td{padding:11px 14px;border-top:1px solid var(--line);vertical-align:top}
table.list tbody tr:first-child td{border-top:0}
table.list.small td{font-size:14px;padding:8px 12px}
.card table.list th,.card table.drivers th{padding-left:0}
.card table.list td,.card table.drivers td{padding-left:0}
tr.rowlink{cursor:pointer}
tr.rowlink:hover td{background:var(--hover)}
tr.rowlink a.case-link{color:var(--fg);font-weight:500;text-decoration:none}
tr.rowlink a.case-link:hover{text-decoration:underline}
table.drivers tr.done td{opacity:.62}
td.val{min-width:150px}
td.actions{white-space:nowrap}
td.actions form{display:inline-block;margin-right:6px}
img.crop{display:block;margin-top:8px;max-width:340px;width:100%;border-radius:6px;border:1px solid var(--border)}
.raw{margin-top:2px}
.src{display:inline-block;font-family:var(--mono);font-size:13px;padding:2px 7px;margin:0 4px 4px 0;border-radius:5px;border:1px solid var(--border);color:var(--fg-3);text-decoration:none}
.src:hover{border-color:var(--lamp);color:var(--fg)}
.src.weak{border-style:dashed;color:var(--warn-fg)}
ul.compact{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:3px}
li.bad{color:var(--bad-fg)}
details summary{cursor:pointer;color:var(--fg-2)}
details.mini{font-size:14px}
details.mini > summary{color:var(--link)}
details.mini[open] > form,details.mini[open] > .stack{margin-top:10px}
details.danger > summary{color:var(--bad-fg)}
.tabs{display:inline-flex;padding:3px;border-radius:10px;background:var(--panel-2);border:1px solid var(--line-2);gap:2px}
.tabs a,.tabs button{height:32px;padding:0 14px;border-radius:7px;display:inline-flex;align-items:center;gap:7px;color:var(--muted);text-decoration:none;font-size:14.5px;border:0;background:transparent;cursor:pointer}
.tabs a.on,.tabs button.on{background:var(--btn);color:var(--fg);box-shadow:inset 0 0 0 1px var(--border)}

/* case page */
.outcome-card{border-left:0;position:relative;overflow:hidden}
.outcome-card::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--pend-fg)}
.outcome-card.APPROPRIATE::before{background:var(--ok-fg)}.outcome-card.NEEDS_REVIEW::before{background:var(--warn-fg)}.outcome-card.NOT_APPROPRIATE::before{background:var(--bad-fg)}
.outcome-card .label{font-size:12.5px;color:var(--muted-2);letter-spacing:.06em;text-transform:uppercase}
.big-outcome{font-family:var(--display);font-size:25.5px;font-weight:600;letter-spacing:-.02em}
.outcome-card.APPROPRIATE .big-outcome{color:var(--ok-fg)}.outcome-card.NEEDS_REVIEW .big-outcome{color:var(--warn-fg)}.outcome-card.NOT_APPROPRIATE .big-outcome{color:var(--bad-fg)}
ul.reasons{margin:0;padding-left:18px;color:var(--fg-2);display:flex;flex-direction:column;gap:3px}
.card.alert{border-color:var(--bad-bd);background:var(--bad-bg)}
.card.alert h2{color:var(--bad-fg)}
.alert-row{display:flex;flex-direction:column;gap:8px}
.card.obtain{border-color:var(--warn-bd)}
.tier{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.05em}
.tier.refer{color:var(--bad-fg)}.tier.review{color:var(--warn-fg)}.tier.info{color:var(--info-fg)}
.act{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.05em}
.act.hold{color:var(--warn-fg)}.act.continue{color:var(--ok-fg)}.act.per_prescriber{color:var(--info-fg)}.act.check{color:var(--warn-fg)}
.cls{display:inline-block;font-size:12.5px;padding:1px 6px;margin:0 4px 3px 0;border-radius:4px;background:var(--chip);color:var(--fg-3)}
.stage-note{border:1px solid var(--warn-bd);background:var(--warn-bg);color:var(--warn-fg);border-radius:10px;padding:10px 12px;font-size:14.5px}
.decide{border-color:var(--border)}
.decide .choices{display:flex;gap:10px;flex-wrap:wrap}
.choice{flex:1 1 200px;flex-direction:row;align-items:center;gap:10px;padding:12px 14px;border-radius:10px;border:1px solid var(--border);background:var(--inset);color:var(--fg-2);font-size:15px;cursor:pointer}
.choice input{accent-color:var(--lamp)}
.choice.APPROPRIATE:has(input:checked){border-color:var(--ok-bd);background:var(--ok-bg);color:var(--ok-fg)}
.choice.NOT_APPROPRIATE:has(input:checked){border-color:var(--bad-bd);background:var(--bad-bg);color:var(--bad-fg)}
.escalate{border-top:1px solid var(--line);padding-top:14px}
.signed-line{color:var(--fg-2)}

/* viewer */
.closeup img{max-width:100%;border-radius:8px;border:1px solid var(--border);background:#fff}
.page-wrap{overflow:auto;border:1px solid var(--line-2);border-radius:12px;background:#fff}
svg.page{display:block;width:100%;height:auto}
svg.page .hl{fill:rgba(61,220,132,.18);stroke:#1FA85E;stroke-width:4}
.pager{display:flex;flex-wrap:wrap;gap:4px;max-width:520px}
.pager a{font-family:var(--mono);font-size:13px;padding:3px 7px;border-radius:5px;border:1px solid var(--border);text-decoration:none;color:var(--fg-3)}
.pager a.on{border-color:var(--lamp);color:var(--fg)}
.progress{font-family:var(--mono);color:var(--info-fg)}

/* calendar */
.legend{display:flex;gap:16px;flex-wrap:wrap;font-size:13.5px;color:var(--muted)}
.legend span{display:inline-flex;align-items:center;gap:6px}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex:none;background:var(--muted-2)}
.dot.initial{background:#6AA8FF}.dot.md{background:#FBBF24}.dot.approved{background:#4ADE80}.dot.declined{background:#F87171}.dot.working{background:var(--muted-2)}
.week-scroll{overflow-x:auto}
.week{display:grid;grid-template-columns:repeat(5,minmax(170px,1fr));gap:12px;min-width:880px}
.week.seven{grid-template-columns:repeat(7,minmax(150px,1fr));min-width:1100px}
.day{border:1px solid var(--line-2);border-radius:14px;background:var(--panel);display:flex;flex-direction:column;overflow:hidden;min-height:140px}
.day-head{padding:12px 14px;display:flex;flex-direction:column;gap:6px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,var(--panel-2),var(--panel))}
.day.done .day-head{box-shadow:inset 0 3px 0 #3FBF7A}
.day.open .day-head{box-shadow:inset 0 3px 0 #F0A040}
.day.today .day-head .dname::after{content:" · today";color:var(--lamp);font-weight:500}
.meter{height:4px;border-radius:999px;background:var(--line-2);overflow:hidden}
.meter span{display:block;height:100%;background:#3FBF7A;border-radius:999px}
.meter.p0 span{width:0}.meter.p10 span{width:10%}.meter.p20 span{width:20%}.meter.p30 span{width:30%}.meter.p40 span{width:40%}.meter.p50 span{width:50%}
.meter.p60 span{width:60%}.meter.p70 span{width:70%}.meter.p80 span{width:80%}.meter.p90 span{width:90%}.meter.p100 span{width:100%}
.ev{display:grid;grid-template-columns:minmax(0,1fr) 10px;gap:8px;align-items:center;padding:9px 14px;border-top:1px solid var(--line);font-size:14px;text-decoration:none;color:var(--fg)}
.ev:first-of-type{border-top:0}
.ev:hover{background:var(--hover)}
.ev small{display:block;color:var(--muted-2);font-size:13px}
.day .none{padding:14px;color:var(--muted-2);font-size:13.5px}

/* criteria page */
.crit-group{border:1px solid var(--line-2);border-radius:12px;background:var(--panel);overflow:hidden}
.crit-group > h2{padding:12px 16px;font-size:13.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);background:var(--panel-2);border-bottom:1px solid var(--line);display:flex;justify-content:space-between}
.crit{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) 140px;gap:14px;align-items:start;padding:12px 16px;border-top:1px solid var(--line);font-size:14.5px}
.crit:first-of-type{border-top:0}
.crit .rule{font-weight:500}
.crit .src-text{color:var(--muted);font-size:13.5px;margin-top:3px}
.crit .tagcol{justify-self:end}
@media (max-width:760px){.crit{grid-template-columns:minmax(0,1fr)}.crit .tagcol{justify-self:start}}

/* settings */
.set-row{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.theme-pick{display:inline-flex;padding:3px;border-radius:10px;background:var(--panel-2);border:1px solid var(--line-2);gap:2px}
.theme-pick button{height:34px;padding:0 16px;border-radius:8px;border:0;background:transparent;color:var(--muted);font-size:14.5px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:7px}
.theme-pick button.on{background:var(--btn);color:var(--fg);box-shadow:inset 0 0 0 1px var(--border)}
.sched{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}

/* ---------- sign-in (always dark) ---------- */
.auth{min-height:100vh;position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:30px;
  padding:48px 16px;background:#070A14;color:#ECEEF2;color-scheme:dark}
.auth::before{content:"";position:absolute;inset:-20% -10% auto -10%;height:640px;pointer-events:none;filter:blur(80px);opacity:.38;
  background:radial-gradient(40% 50% at 25% 50%,rgba(56,189,248,.28),transparent),radial-gradient(35% 45% at 60% 40%,rgba(61,220,132,.22),transparent),radial-gradient(30% 40% at 85% 60%,rgba(45,212,191,.26),transparent);
  animation:glSway 14s ease-in-out infinite alternate}
@keyframes glSway{to{transform:translateX(6%) skewX(-6deg)}}
.auth > *{position:relative}
.auth .mark{width:132px;height:132px;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.auth .wordmark{height:52px;width:auto}
.auth .tagline{font-family:var(--display);font-weight:300;font-size:16px;color:#A5B2D6;margin-top:-14px}
.auth-card{width:100%;max-width:400px;display:flex;flex-direction:column;gap:14px;padding:26px;border-radius:24px;
  background:linear-gradient(180deg,rgba(20,26,51,.75),rgba(10,13,28,.75));border:1px solid rgba(156,200,255,.16);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}
.auth-card h1{font-size:20.5px;color:#ECEEF2}
.auth-card label{color:#A5B2D6;font-size:13.5px;font-weight:500}
.auth-card input:not([type=checkbox]){height:48px;border-radius:12px;border:1px solid rgba(156,200,255,.18);background:rgba(4,6,14,.6);color:#EAF0FF;font-size:16.5px;padding:0 14px}
.auth-card input:focus{border-color:#3DDC84;box-shadow:0 0 0 4px rgba(61,220,132,.16)}
.auth-card .go{height:50px;border-radius:12px;border:0;color:#050812;font-size:16.5px;font-weight:600;cursor:pointer;
  background:linear-gradient(90deg,#5EEAA0,#3DDC84,#5EEAD4);background-size:200% 100%;transition:background-position .6s}
.auth-card .go:hover{background-position:100% 0}
.auth-card .error{color:#FF9C93;font-size:14.5px}
.auth-card p.muted{color:#7E8BB0}
.auth .fine{font-size:13px;color:#7E8BB0}
.auth.leaving .auth-card,.auth.leaving .wordmark,.auth.leaving .tagline,.auth.leaving .fine{opacity:0;transform:translateY(8px);transition:opacity .35s,transform .45s}
.auth.leaving .mark{transform:scale(1.35)}

@media (max-width:820px){
  .side{position:static;height:auto;max-width:none;flex-basis:100%;border-right:0;border-bottom:1px solid var(--line)}
  .bar,.content,.banners,.foot{padding-left:16px;padding-right:16px}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* layout safety: wide tables scroll inside their card; flex children may shrink */
.tablewrap{overflow-x:auto;max-width:100%}
.row > *{min-width:0}
td.actions{white-space:normal;min-width:150px}
td.actions details form{max-width:240px}
td.actions input,td.actions select{width:100%;max-width:240px}


/* Go List (day-of-surgery brief) */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.btn.on{border-color:var(--lamp);color:var(--fg)}
.section-h{margin-top:6px}
.card.attn{border-color:var(--warn-bd)}
.attn-pt{display:flex;flex-direction:column;gap:8px;padding-top:12px;border-top:1px solid var(--line)}
.attn-pt:first-of-type{border-top:0;padding-top:0}
.pt-link{color:var(--fg);font-weight:600;text-decoration:none}
.pt-link:hover{text-decoration:underline}
ul.flags{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.flag{padding:7px 11px;border-radius:8px;border:1px solid var(--pend-bd);background:var(--pend-bg);color:var(--fg-2);font-size:14.5px}
.flag b{font-weight:600}
.flag .d{color:var(--fg-3)}
.flag.bad{border-color:var(--bad-bd);background:var(--bad-bg)}.flag.bad b{color:var(--bad-fg)}
.flag.warn{border-color:var(--warn-bd);background:var(--warn-bg)}.flag.warn b{color:var(--warn-fg)}
.flag.info b{color:var(--info-fg)}
details.pt{background:var(--panel);border:1px solid var(--line-2);border-radius:14px;min-width:0;scroll-margin-top:16px}
details.pt > summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;list-style:none;cursor:pointer;color:var(--fg)}
details.pt > summary::-webkit-details-marker{display:none}
details.pt > summary:hover{background:var(--hover);border-radius:14px}
details.pt[open] > summary{border-bottom:1px solid var(--line)}
details.pt[open] > summary:hover{border-radius:14px 14px 0 0}
.pt-sum{display:flex;flex-direction:column;gap:2px;min-width:0}
.pt-sum small{color:var(--muted);font-size:13.5px}
.pt-body{padding:16px 18px 18px;display:flex;flex-direction:column;gap:16px}
.pt-head{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px 18px}
.kv{display:flex;flex-direction:column;gap:2px;font-size:14.5px;min-width:0}
.kv .k{font-size:12px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-2)}
.pt-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px 24px}
.pt-grid h3,.pt-body > div > h3{margin:0 0 6px}
table.facts{font-size:14.5px}
table.facts td{padding:5px 0;border-top:1px solid var(--line);vertical-align:top}
table.facts tr:first-child td{border-top:0}
table.facts td.k{color:var(--muted);width:46%;padding-right:12px}
.v.missing{color:var(--muted-2);font-style:italic}
.v.unverified,.v.unreadable{color:var(--warn-fg)}
.pt-foot{border-top:1px solid var(--line);padding-top:12px}

.decide-buttons{display:flex;gap:10px;flex-wrap:wrap}
.decide-buttons .btn{flex:1 1 180px;height:44px;font-size:15px}

/* case review steps */
.stepper{display:flex;gap:6px;flex-wrap:wrap;position:sticky;top:0;z-index:5;background:var(--bg);padding:10px 0;margin:-10px 0 -4px}
.stepper .st{flex:1 1 150px;display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:10px;border:1px solid var(--line-2);
  background:var(--panel);color:var(--fg-3);text-decoration:none;font-size:14px;min-width:0}
.stepper .st:hover{border-color:var(--border-2);color:var(--fg)}
.stepper .st.on{border-color:var(--lamp);color:var(--fg);box-shadow:0 0 0 3px rgba(61,220,132,.12)}
.stepper .n{width:22px;height:22px;border-radius:50%;flex:none;display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--mono);font-size:13px;background:var(--chip);color:var(--fg-2)}
.stepper .st.done .n{background:var(--ok-bg);color:var(--ok-fg);box-shadow:inset 0 0 0 1px var(--ok-bd)}
.stepper .st.todo .n{background:var(--warn-bg);color:var(--warn-fg);box-shadow:inset 0 0 0 1px var(--warn-bd)}
.stepper .t{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.stepper .t small{color:var(--warn-fg);font-size:12.5px}
.step-panel{display:flex;flex-direction:column;gap:16px}
.step-panel[hidden]{display:none}
.step-nav{display:none}
html.stepped .step-nav{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
@media (max-width:820px){.stepper{position:static;margin:0}.stepper .st{flex-basis:44%}}

/* Browser autofill: Firefox and Chrome tint autofilled fields yellow. Keep the sign-in fields'
   own look by painting an inset shadow over the tint (it sits above the browser's background). */
.auth-card input:autofill,.auth-card input:-webkit-autofill{
  filter:none;-webkit-text-fill-color:#EAF0FF;caret-color:#EAF0FF;
  box-shadow:0 0 0 1000px #080B17 inset;transition:background-color 9999s 0s}
.auth-card input:autofill:focus,.auth-card input:-webkit-autofill:focus{
  box-shadow:0 0 0 1000px #080B17 inset,0 0 0 4px rgba(61,220,132,.16)}

/* criteria step: scorecard */
.stackbar{display:block;width:100%;height:12px;border-radius:999px;overflow:hidden;background:var(--line-2)}
.sb{fill:var(--muted-2)}.sb.bad{fill:var(--bad-fg)}.sb.warn{fill:var(--warn-fg)}.sb.info{fill:var(--info-fg)}.sb.ok{fill:var(--ok-fg)}
.sq{display:inline-block;width:9px;height:9px;border-radius:2px;background:var(--muted-2)}
.sq.bad{background:var(--bad-fg)}.sq.warn{background:var(--warn-fg)}.sq.info{background:var(--info-fg)}.sq.ok{background:var(--ok-fg)}
.score-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px}
.sys{position:relative;overflow:hidden;border:1px solid var(--line-2);border-radius:12px;padding:12px 14px 12px 17px;display:flex;flex-direction:column;gap:10px;background:var(--panel-2)}
.sys::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--ok-fg)}
.sys.warn::before{background:var(--warn-fg)}.sys.bad::before{background:var(--bad-fg)}.sys.pend::before{background:var(--muted-2)}.sys.info::before{background:var(--info-fg)}
.sys h3{margin:0}
.warn-t{color:var(--warn-fg)}
.tiles{display:flex;flex-wrap:wrap;gap:6px}
.tile{display:flex;flex-direction:column;gap:1px;max-width:100%;padding:6px 9px;border-radius:8px;border:1px solid var(--ok-bd);background:var(--ok-bg);font-size:12.5px;color:var(--fg-2);cursor:default}
.tile small{font-size:11.5px;color:var(--fg-3)}
.tile.ok{border-color:var(--line-2);background:var(--panel)}
.tile.ok .tl{color:var(--fg-2)}
.tile .ck{color:var(--ok-fg);font-size:11px;margin-right:6px}
.tile.warn{border-color:var(--warn-bd);background:var(--warn-bg)}.tile.warn .tl{color:var(--warn-fg);font-weight:600}
.tile.bad{border-color:var(--bad-bd);background:var(--bad-bg)}.tile.bad .tl{color:var(--bad-fg);font-weight:600}
.tile.pend{border-style:dashed;border-color:var(--border-2);background:var(--panel)}.tile.pend .tl{color:var(--fg);font-weight:500}
.tile.info{border-color:var(--info-bd);background:var(--info-bg)}.tile.info .tl{color:var(--info-fg)}

/* value correction forms (always open) */
form.fix{display:flex;flex-direction:column;gap:6px;max-width:300px}
.fix-in{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.fix-in input[type=number]{width:92px}
.fix-in input.wide{width:100%}
.fix-in .unit{font-size:12.5px;color:var(--muted);margin:0 4px 0 -2px}
.fix-in .u-a,.fix-in .u-b{display:inline-flex;align-items:center;gap:6px}
.fix-in .u-b{display:none}
form.fix:has(input[name=hu][value=ftin]:checked) .u-a,form.fix:has(input[name=wu][value=lb]:checked) .u-a{display:none}
form.fix:has(input[name=hu][value=ftin]:checked) .u-b,form.fix:has(input[name=wu][value=lb]:checked) .u-b{display:inline-flex}
.unit-sw,.seg{display:inline-flex;padding:2px;border-radius:8px;background:var(--panel-2);border:1px solid var(--line-2);gap:2px}
.unit-sw label,.seg label{flex-direction:row;align-items:center;gap:0;margin:0;padding:0 10px;height:28px;border-radius:6px;font-size:12.5px;color:var(--muted);cursor:pointer}
.unit-sw input,.seg input{position:absolute;opacity:0;width:1px;height:1px}
.unit-sw label:has(input:checked),.seg label:has(input:checked){background:var(--btn);color:var(--fg);box-shadow:inset 0 0 0 1px var(--border)}
.unit-sw label:has(input:focus-visible),.seg label:has(input:focus-visible){outline:2px solid var(--lamp);outline-offset:1px}
.fix-row{display:flex;gap:6px;align-items:center}
.fix-row select{min-height:32px;padding:4px 8px;font-size:12.5px;flex:1;min-width:0}
form.fix input.note{min-height:30px;padding:4px 9px;font-size:12.5px}
td.actions form.fix{max-width:300px}
td.actions form.fix input,td.actions form.fix select{max-width:none}
td.actions .fix-in input[type=number]{width:92px}
td.actions .unit-sw input,td.actions .seg input{width:1px;height:1px;max-width:1px}
.unit-sw label,.seg label{position:relative}

/* scorecard: quiet clears and "not mentioned" */
.sys.quiet::before{background:var(--line-2)}
.sb.omit{fill:var(--border)}.sq.omit{background:var(--border)}
.sb.ok{fill:var(--ok-bd)}.sq.ok{background:var(--ok-bd)}
p.omitted{font-size:12px;color:var(--muted-2);line-height:1.55}
p.omitted .om-k{color:var(--muted);margin-right:4px}
p.omitted span[title]{cursor:help;border-bottom:1px dotted var(--line-2)}

/* Action items step */
ul.ai-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
ul.ai-list li{display:flex;flex-direction:column;gap:2px;padding:9px 0 9px 22px;border-top:1px solid var(--line);position:relative;font-size:14px}
ul.ai-list li:first-child{border-top:0}
ul.ai-list li::before{content:"";position:absolute;left:2px;top:15px;width:9px;height:9px;border-radius:3px;border:1.5px solid var(--border-2)}
ul.ai-list li small{color:var(--muted);font-size:12.5px}
.ai-ask ul.ai-list li::before{border-color:var(--info-fg)}
.ai-tell ul.ai-list li::before{border-color:var(--warn-fg)}
.ai-request ul.ai-list li::before{border-color:var(--pri-bd-h)}

/* calendar week label between the arrows */
.wk-label{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;min-width:150px;height:38px;padding:0 12px;
  border:1px solid var(--line-2);border-radius:9px;background:var(--panel);line-height:1.15}
.wk-label b{font-size:13.5px;font-weight:600;color:var(--fg)}
.wk-label small{font-size:11px;color:var(--muted-2);font-family:var(--mono)}

/* week pickers (calendar, Go List): the range label opens a date picker */
.wk-pick{gap:8px}
.wk-label{position:relative;cursor:pointer;flex-direction:column;gap:0;color:inherit;font-size:inherit}
.wk-label:hover{border-color:var(--border-2)}
.wk-label:focus-within{border-color:var(--lamp)}
.wk-label input.wk-input{position:absolute;left:0;bottom:0;width:100%;height:1px;min-height:0;padding:0;border:0;opacity:0;pointer-events:none}
/* Go List week strip */
.gl-week{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.gl-week.seven{grid-template-columns:repeat(7,minmax(0,1fr))}
.gl-day{display:flex;flex-direction:column;gap:6px;padding:11px 13px;border:1px solid var(--line-2);border-radius:12px;background:var(--panel);
  color:var(--fg-2);text-decoration:none;min-width:0}
.gl-day:hover{border-color:var(--border-2);color:var(--fg)}
.gl-day.on{border-color:var(--lamp);box-shadow:0 0 0 3px rgba(61,220,132,.12);color:var(--fg)}
.gl-day .dn{font-weight:600;font-size:13.5px}
.gl-day.today .dn::after{content:" · today";color:var(--lamp);font-weight:500}
.gl-day .cnt{font-size:13px}
.row.tight{gap:5px}
@media (max-width:820px){.gl-week,.gl-week.seven{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* worklist: a heading row per surgery day */
table.list tr.day-row th{padding:14px 14px 8px;background:var(--panel-2);border-top:1px solid var(--line-2);border-bottom:1px solid var(--line);
  text-transform:none;letter-spacing:0;font-size:13.5px;font-weight:600;color:var(--fg)}
table.list tbody.day-group:first-of-type tr.day-row th{border-top:0}
tr.day-row .rel{margin-left:8px;font-size:11.5px;font-weight:500;padding:1px 7px;border-radius:5px;background:var(--chip);color:var(--fg-3)}
tr.day-row .rel.today,tr.day-row .rel.tomorrow{background:var(--ok-bg);color:var(--ok-fg)}
tr.day-row .rel.past{background:var(--bad-bg);color:var(--bad-fg)}
tr.day-row .dcount{margin-left:10px;font-family:var(--mono);font-size:12px;font-weight:400;color:var(--muted-2)}
table.list tbody.day-group tr.day-row + tr td{border-top:0}

/* Password show/hide eye */
.pw-wrap{position:relative;display:flex}
.pw-wrap input{flex:1;padding-right:42px!important}
.pw-eye{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:34px;height:30px;display:flex;align-items:center;justify-content:center;
  background:none;border:0;border-radius:7px;color:var(--muted);cursor:pointer}
.pw-eye:hover{color:var(--fg)}
.pw-eye:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(61,220,132,.28);color:var(--fg)}
.pw-eye[aria-pressed="true"]{color:var(--lamp)}

/* Add charts: drop zone */
.drop{display:flex;flex-direction:column;gap:10px}
.drop-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-align:center;cursor:pointer;
  padding:34px 18px;border:2px dashed var(--border);border-radius:14px;background:var(--inset);color:var(--muted);
  transition:border-color .15s,background .15s,padding .2s}
.drop-zone:hover,.drop-zone:focus-within{border-color:var(--border-2);background:var(--panel-2)}
.drop.js .drop-zone input[type=file]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.drop:not(.js) .drop-zone input[type=file]{margin-top:10px}
.drop-icon{width:46px;height:46px;color:var(--muted-2);margin-bottom:4px;transition:transform .2s,color .15s}
.drop-title{font-size:16.5px;font-weight:600;color:var(--fg)}
.drop-sub{font-size:14.5px}
.drop-browse{color:var(--link);text-decoration:underline;text-underline-offset:2px}
.drop-hint{font-size:13px;color:var(--muted-2);margin-top:6px}
.drop.dragging .drop-zone{border-color:var(--pri-bd);background:var(--sel)}
.drop.dragging.over .drop-zone{border-color:var(--lamp);border-style:solid;box-shadow:0 0 0 4px rgba(61,220,132,.14)}
.drop.dragging .drop-icon{color:var(--lamp);transform:translateY(-3px)}
.drop.has-files:not(.dragging) .drop-zone{padding:18px;flex-direction:row;flex-wrap:wrap;gap:4px 10px}
.drop.has-files:not(.dragging) .drop-icon{width:28px;height:28px;margin:0}
.drop.has-files:not(.dragging) .drop-title{font-size:15px}
.drop.has-files:not(.dragging) .drop-hint{flex-basis:100%;margin-top:0}
.drop.sending .drop-zone{opacity:.55;pointer-events:none}
.drop-list{list-style:none;margin:0;padding:0;border:1px solid var(--line-2);border-radius:12px;overflow:hidden}
.drop-item{display:flex;align-items:center;gap:12px;padding:9px 12px;background:var(--panel)}
.drop-item + .drop-item{border-top:1px solid var(--line)}
.drop-item:hover{background:var(--hover)}
.drop-type{flex:none;width:38px;height:38px;border-radius:8px;display:flex;align-items:center;justify-content:center;overflow:hidden;
  font:600 10.5px/1 var(--mono);letter-spacing:.04em;background:var(--chip);color:var(--fg-3)}
.drop-type.t-pdf{background:var(--bad-bg);color:var(--bad-fg)}
.drop-type.t-jpg,.drop-type.t-png,.drop-type.t-webp,.drop-type.t-heic,.drop-type.t-heif,.drop-type.t-tif{background:var(--info-bg);color:var(--info-fg)}
.drop-thumb{width:100%;height:100%;object-fit:cover;display:block}
.drop-meta{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.35}
.drop-name{color:var(--fg);font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.drop-size{color:var(--muted-2);font-size:12.5px}
.drop-rm{flex:none;width:30px;height:30px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--muted);
  font-size:20px;line-height:1;cursor:pointer}
.drop-rm:hover{border-color:var(--border);background:var(--btn);color:var(--bad-fg)}
.drop.sending .drop-rm{visibility:hidden}
.drop-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.drop.sending .drop-foot .btn{visibility:hidden}
.drop-progress{display:flex;align-items:center;gap:12px}
.drop-bar{flex:1;height:6px;border-radius:99px;background:var(--chip);overflow:hidden}
.drop-bar span{display:block;height:100%;width:0;background:var(--lamp);border-radius:99px;transition:width .2s}
@media (prefers-reduced-motion: reduce){.drop-zone,.drop-icon,.drop-bar span{transition:none}}
.drop [hidden],.drop-progress[hidden]{display:none}
/* Admin panel: criteria in use */
.crit-now{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 14px;border:1px solid var(--line-2);border-radius:12px;background:var(--panel-2)}
.crit-name{font-weight:600;color:var(--fg)}
.row-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
#criteria td form{display:inline}
