/* PEO Exit Control Tower — dark-first, house tokens shared with FMM (Fleet Master Model) */
:root, :root[data-theme="dark"]{
  --bg:#0C2127; --surface:#112B32; --surface-2:#0E2A31; --surface-3:#17404A;
  --line:#24444C; --line-soft:#1B353D;
  --ink:#E8ECF0; --muted:#9FB3BD; --faint:#6C838E;
  --accent:#F5C518; --accent-ink:#0C2127; --accent-soft:rgba(245,197,24,.12);
  --ext:#7FB4C0; --ext-soft:rgba(127,180,192,.14);
  --ok:#7FB89A; --ok-soft:rgba(127,184,154,.14);
  --warn:#E9C46A; --warn-soft:rgba(233,196,106,.14);
  --crit:#FF9E8C; --crit-soft:rgba(255,158,140,.14);
  --today:#F5C518;
  --track-1:#7FB4C0; --track-2:#F0956A; --track-3:#C7D3E0; --track-4:#B79CD9; --track-5:#7FB89A; --track-6:#D2B17A; --track-7:#93A3B5;
  --shadow:0 1px 0 rgba(0,0,0,.25);
  color-scheme:dark;
}
:root[data-theme="light"]{
  --bg:#F4F6F5; --surface:#FFFFFF; --surface-2:#EDF1F0; --surface-3:#E3E9E8;
  --line:#D8E0E1; --line-soft:#E6ECEC;
  --ink:#17313A; --muted:#5B7079; --faint:#8CA0A8;
  --accent:#8A6A00; --accent-ink:#FFFFFF; --accent-soft:rgba(138,106,0,.10);
  --ext:#17545F; --ext-soft:rgba(23,84,95,.10);
  --ok:#2E7D5B; --ok-soft:rgba(46,125,91,.10);
  --warn:#A66B1F; --warn-soft:rgba(166,107,31,.12);
  --crit:#B04A3C; --crit-soft:rgba(176,74,60,.10);
  --today:#8A6A00;
  --track-1:#3F6E7D; --track-2:#C4520D; --track-3:#12233A; --track-4:#7A5C99; --track-5:#2E7D5B; --track-6:#8A6D3B; --track-7:#5B6B7C;
  --shadow:0 1px 0 rgba(23,49,58,.06);
  color-scheme:light;
}

*{box-sizing:border-box}
/* readability: scale with the monitor — 14px on small laptops → ~17px at 1920 → 18px cap (2560+) */
html{scroll-behavior:smooth;font-size:clamp(14px, 0.36vw + 10px, 18px)}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Noto Sans KR",-apple-system,"Segoe UI",sans-serif;font-size:1rem;line-height:1.6;letter-spacing:-0.01em;word-break:keep-all}
a{color:inherit}
button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.mono{font-family:"IBM Plex Mono",monospace;font-variant-numeric:tabular-nums}
.serif{font-family:"Noto Serif KR",serif}

/* ---- top bar ---- */
.topbar{position:sticky;top:0;z-index:20;background:var(--surface);border-bottom:1px solid var(--line);height:3.429rem;display:flex;align-items:center}
.topbar .in{max-width:88.57rem;margin:0 auto;padding:0 1.429rem;width:100%;display:flex;align-items:center;gap:1rem;flex-wrap:nowrap;min-width:0}
.brand{display:flex;align-items:center;gap:0.7143rem;text-decoration:none;font-weight:700;font-size:1rem;letter-spacing:-0.01em;white-space:nowrap}
.brand .dot{width:0.6429rem;height:0.6429rem;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.topbar .dday{font-family:"IBM Plex Mono",monospace;font-size:0.8929rem;color:var(--accent);font-weight:600;padding:2px 0.5714rem;border:1px solid var(--line);border-radius:3px;background:var(--surface-2);white-space:nowrap}
.topbar .sp{flex:1}
.who{font-size:0.8571rem;color:var(--muted);display:flex;align-items:center;gap:0.5714rem;white-space:nowrap;min-width:0}
.who b{overflow:hidden;text-overflow:ellipsis}
.who b{color:var(--ink);font-weight:500}
.role{font-family:"IBM Plex Mono",monospace;font-size:0.75rem;letter-spacing:.06em;text-transform:uppercase;padding:1px 0.4286rem;border-radius:3px;border:1px solid var(--line);color:var(--muted)}
.role.editor{color:var(--accent);border-color:var(--accent)} .role.admin{color:var(--ext);border-color:var(--ext)}
.tb{background:none;border:1px solid var(--line);border-radius:0.2857rem;padding:0.2857rem 0.6429rem;font-size:0.8571rem;color:var(--muted);cursor:pointer;line-height:1.4;text-decoration:none;display:inline-flex;align-items:center;gap:0.4286rem}
.tb:hover{color:var(--ink);border-color:var(--faint)}
.tb.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:700}
.tb.primary:hover{filter:brightness(1.05);color:var(--accent-ink)}

/* language toggle */
.lang{display:inline-flex;border:1px solid var(--line);border-radius:0.2857rem;overflow:hidden;font-family:"IBM Plex Mono",monospace;font-size:0.7857rem;font-weight:600}
.lang a{padding:0.2857rem 0.5714rem;text-decoration:none;color:var(--faint);line-height:1.4}
.lang a.on{background:var(--accent);color:var(--accent-ink)}
.lang a:hover:not(.on){color:var(--ink)}
.untr{border-bottom:1px dotted var(--warn);cursor:help}
.lang-foot a{color:var(--faint);text-decoration:none} .lang-foot a.on{color:var(--accent);font-weight:600}

/* ---- page ---- */
.wrap{max-width:88.57rem;margin:0 auto;padding:0 1.429rem 5.714rem}
.hero{padding:3.143rem 0 1.857rem}
.eyebrow{font-family:"IBM Plex Mono",monospace;font-size:0.7857rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin:0 0 0.8571rem}
h1{font-family:"Noto Serif KR",serif;font-weight:700;font-size:2.429rem;line-height:1.2;margin:0;letter-spacing:-0.03em;text-wrap:balance}
.lede{color:var(--muted);margin:0.8571rem 0 0;font-size:1.071rem;max-width:66ch}
.lede b{color:var(--ink);font-weight:500}
.stats{display:grid;grid-template-columns:1.1fr 1.3fr 1.2fr 1.2fr;gap:0.8571rem;margin-top:2rem}
.stat{background:var(--surface);border:1px solid var(--line);border-radius:0.4286rem;padding:1.143rem 1.286rem 1rem;box-shadow:var(--shadow);min-height:8.429rem;display:flex;flex-direction:column}
.stat dt{font-size:0.8214rem;color:var(--faint);margin:0 0 0.4286rem;letter-spacing:.01em}
.stat dd{margin:0;font-size:1.071rem;font-weight:700;line-height:1.35}
.stat dd small{display:block;font-size:0.8214rem;font-weight:400;color:var(--muted);margin-top:0.4286rem;line-height:1.5}
.stat.dday dd{font-family:"IBM Plex Mono",monospace;font-size:3.143rem;font-weight:600;color:var(--accent);line-height:1;letter-spacing:-0.02em}
.stat.dday dd small{font-family:"Noto Sans KR",sans-serif;margin-top:0.7143rem}
.stat .c-ours{color:var(--accent)} .stat .c-crit{color:var(--crit)}
.progress{display:flex;gap:1rem;margin-top:auto;padding-top:0.7143rem;font-size:0.8214rem;color:var(--muted)}
.progress b{color:var(--ink);font-family:"IBM Plex Mono",monospace;font-weight:600}

/* ---- sections ---- */
section.panel{background:var(--surface);border:1px solid var(--line);border-radius:0.4286rem;padding:1.571rem 1.714rem 1.714rem;margin-top:1.286rem;box-shadow:var(--shadow)}
.sh{display:flex;align-items:baseline;gap:0.8571rem;flex-wrap:wrap;padding-bottom:0.8571rem;border-bottom:1px solid var(--line)}
.sh .kicker{font-family:"IBM Plex Mono",monospace;font-size:0.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}
.sh h2{font-family:"Noto Serif KR",serif;font-size:1.357rem;font-weight:700;letter-spacing:-0.02em;margin:0}
.sh .meta{margin-left:auto;font-size:0.8571rem;color:var(--faint)}
.note{font-size:0.8929rem;color:var(--muted);margin:0.8571rem 0 0;max-width:90ch}
.note strong{color:var(--ink);font-weight:500}

.pill{display:inline-block;font-size:0.7857rem;font-weight:700;padding:1px 0.5714rem;border-radius:3px;line-height:1.6;white-space:nowrap;letter-spacing:.01em}
.p-ok{background:var(--ok-soft);color:var(--ok)} .p-warn{background:var(--warn-soft);color:var(--warn)} .p-crit{background:var(--crit-soft);color:var(--crit)}
.p-ext{background:var(--ext-soft);color:var(--ext)} .p-ours{background:var(--accent-soft);color:var(--accent)} .p-mute{background:var(--surface-3);color:var(--muted)}

/* risk code chips — the cross-link device */
.rk{display:inline-block;font-family:"IBM Plex Mono",monospace;font-size:0.75rem;font-weight:600;padding:0 0.3571rem;border:1px solid var(--line);border-radius:3px;color:var(--muted);background:var(--surface-2);cursor:pointer;line-height:1.55;text-decoration:none}
.rk:hover{border-color:var(--accent);color:var(--accent)}
.rk.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.rk.all{font-family:"Noto Sans KR",sans-serif;font-weight:500}
.rkbar{display:flex;flex-wrap:wrap;gap:0.4286rem;align-items:center;margin-left:auto}
.rkbar .lbl{font-size:0.8214rem;color:var(--faint);margin-right:2px}
body.filtering .dimmable{opacity:.28;transition:opacity .15s}
body.filtering .dimmable.hit{opacity:1}

/* ---- gantt ---- */
.gantt-wrap{overflow-x:auto;margin-top:1rem;border:1px solid var(--line);border-radius:0.2857rem;background:var(--surface-2)}
.gantt{min-width:70rem;font-size:0.8571rem;position:relative}
.g-head,.g-row{display:grid;grid-template-columns:15.71rem 1fr}
.g-head{border-bottom:1px solid var(--line);background:var(--surface-3);position:sticky;top:0;z-index:2}
.g-label{padding:0.5714rem 0.8571rem;font-weight:700;border-right:1px solid var(--line);display:flex;align-items:center;gap:0.6429rem;font-size:0.8929rem}
.g-label .sw{width:0.6429rem;height:0.6429rem;border-radius:50%;flex:none}
.g-months{display:grid;position:relative}
.g-months div{padding:0.4286rem 0.5714rem;border-right:1px solid var(--line-soft);font-weight:600;color:var(--muted);font-size:0.8214rem;font-family:"IBM Plex Mono",monospace}
.g-row{border-bottom:1px solid var(--line-soft);min-height:5.571rem}
.g-row:last-child{border-bottom:none}
.g-body{position:relative;background:repeating-linear-gradient(to right, var(--line-soft) 0 1px, transparent 1px 100%);background-size:calc(100%/18) 100%}
.bar{position:absolute;top:0.6429rem;height:0.7857rem;border-radius:2px;opacity:.9}
.ms{position:absolute;top:1.714rem;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;width:6.571rem;cursor:default}
.ms i{width:0.6429rem;height:0.6429rem;transform:rotate(45deg);display:block;border:1.5px solid var(--muted);background:var(--surface)}
.ms.done i{background:var(--ok);border-color:var(--ok)} .ms.crit i{background:var(--crit);border-color:var(--crit)} .ms.sign i{background:var(--accent);border-color:var(--accent);border-radius:50%;transform:none}
.ms span{font-size:0.75rem;line-height:1.2;color:var(--muted);text-align:center;margin-top:3px;max-width:6.571rem;white-space:normal}
.ms.done span{color:var(--faint)}
.ms.past-due i{box-shadow:0 0 0 2px var(--crit-soft)}
.today{position:absolute;top:0;bottom:0;width:0;border-left:2px dashed var(--today);z-index:1}
.today::after{content:attr(data-label);white-space:nowrap;position:absolute;top:-1px;left:0.2857rem;font-size:0.7143rem;color:var(--today);font-weight:700;background:var(--surface-2);padding:0 3px;font-family:"IBM Plex Mono",monospace}
.golive{position:absolute;top:0;bottom:0;width:0;border-left:1px solid var(--ok);opacity:.7}
.legend{display:flex;flex-wrap:wrap;gap:1.143rem;font-size:0.8214rem;color:var(--muted);margin-top:0.7143rem}
.legend span{display:inline-flex;align-items:center;gap:0.4286rem}
.legend i{width:0.6429rem;height:0.6429rem;display:inline-block;border:1.5px solid var(--muted);background:var(--surface);transform:rotate(45deg)}
.legend i.d{background:var(--ok);border-color:var(--ok)} .legend i.c{background:var(--crit);border-color:var(--crit)} .legend i.s{background:var(--accent);border-color:var(--accent);border-radius:50%;transform:none}

/* ---- tiles ---- */
.board{display:grid;grid-template-columns:repeat(auto-fit,minmax(17.86rem,1fr));gap:0.7143rem;margin-top:1rem}
.tile{border:1px solid var(--line);border-radius:0.2857rem;padding:0.8571rem 1rem 0.8571rem;background:var(--surface-2);display:flex;flex-direction:column;gap:0.4286rem;border-top:3px solid var(--line)}
.tile.s-ok{border-top-color:var(--ok)} .tile.s-warn{border-top-color:var(--warn)} .tile.s-crit{border-top-color:var(--crit)}
.tile .t{font-weight:700;font-size:0.9643rem;display:flex;justify-content:space-between;gap:0.5714rem;align-items:baseline}
.tile .d{font-size:0.8929rem;color:var(--muted)}
.tile .n{font-size:0.8571rem;color:var(--accent);font-weight:500}
.tile .rks{display:flex;gap:0.2857rem;margin-top:auto;padding-top:0.2857rem}

/* ---- table ---- */
table{width:100%;border-collapse:collapse;margin:0.8571rem 0 0;font-size:0.9286rem}
th{text-align:left;font-weight:600;font-size:0.8214rem;padding:0.5714rem 0.7143rem 0.5714rem 0;border-bottom:1px solid var(--line);vertical-align:bottom;color:var(--faint);letter-spacing:.02em}
td{padding:0.6429rem 0.7143rem 0.6429rem 0;border-bottom:1px solid var(--line-soft);vertical-align:top}
td:last-child,th:last-child{padding-right:0}
td.mono{font-family:"IBM Plex Mono",monospace;font-size:0.8571rem;white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--muted)}
.tbl-wrap{overflow-x:auto}
tr.past td{color:var(--faint)}
tr.past td .title{text-decoration:line-through;text-decoration-color:var(--line)}
tr.overdue td.mono.due{color:var(--crit);font-weight:600}
.owner{font-size:0.8214rem;color:var(--faint);white-space:nowrap}
.ms-note{display:block;font-size:0.8214rem;color:var(--muted);margin-top:3px}
.ms-note .by{color:var(--faint)}
.status-cell{white-space:nowrap}
select.pill-select{appearance:none;-webkit-appearance:none;background:var(--surface-3);border:1px solid var(--line);border-radius:3px;font-size:0.7857rem;font-weight:700;padding:1px 1.429rem 1px 0.5714rem;cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,var(--faint) 50%),linear-gradient(135deg,var(--faint) 50%,transparent 50%);background-position:calc(100% - 0.7143rem) 0.5714rem,calc(100% - 0.4286rem) 0.5714rem;background-size:0.2857rem 0.2857rem;background-repeat:no-repeat}
select.pill-select.p-ok{color:var(--ok)} select.pill-select.p-crit{color:var(--crit)} select.pill-select.p-ours{color:var(--accent)} select.pill-select.p-mute{color:var(--muted)}
.notebtn{background:none;border:none;color:var(--faint);cursor:pointer;font-size:0.8571rem;padding:0 0.2857rem;line-height:1}
.notebtn:hover{color:var(--accent)}
input.noteinp{width:100%;background:var(--surface-2);border:1px solid var(--line);border-radius:3px;padding:3px 0.4286rem;font-size:0.8571rem;margin-top:0.2857rem}

/* ---- risks ---- */
.risk{border:1px solid var(--line);border-radius:0.2857rem;padding:1rem 1.143rem 1.143rem;margin-top:0.8571rem;background:var(--surface-2)}
.risk.closed{opacity:.75}
.risk .rh{display:flex;gap:0.7143rem;align-items:baseline;flex-wrap:wrap}
.risk .rh h3{margin:0;font-size:1.036rem;font-weight:700;display:flex;gap:0.5714rem;align-items:baseline}
.risk .rh .sev{margin-left:auto}
.risk .why{font-size:0.8929rem;color:var(--muted);margin:0.4286rem 0 0;max-width:90ch}
.risk .link{font-size:0.8214rem;color:var(--faint);margin:0.4286rem 0 0;display:flex;gap:1rem;flex-wrap:wrap}
.risk .link b{color:var(--muted);font-weight:500}
.chain{display:flex;flex-wrap:wrap;align-items:stretch;gap:0.4286rem;margin-top:0.7143rem}
.chain .c{flex:1 1 10.71rem;min-width:10rem;padding:0.5714rem 0.7143rem;border:1px solid var(--line);border-radius:3px;font-size:0.8929rem;background:var(--surface);display:flex;flex-direction:column;gap:2px}
.chain .c b{font-size:0.75rem;color:var(--faint);font-weight:700;letter-spacing:.06em;font-family:"IBM Plex Mono",monospace;text-transform:uppercase}
.chain .c.trig{border-color:var(--warn);background:var(--warn-soft)} .chain .c.trig b{color:var(--warn)}
.chain .c.res{border-color:var(--crit);background:var(--crit-soft);font-weight:500} .chain .c.res b{color:var(--crit)}
.chain .c.mit{border-color:var(--ok);background:var(--ok-soft)} .chain .c.mit b{color:var(--ok)}
.chain .arrow{align-self:center;color:var(--faint);font-size:1rem;flex:none}

/* ---- checklist ---- */
.two{display:grid;grid-template-columns:1fr 1fr;gap:1.286rem;margin-top:1.286rem}
.two section.panel{margin-top:0}
.check{list-style:none;margin:0.7143rem 0 0;padding:0}
.check li{display:grid;grid-template-columns:1.429rem 1fr auto auto;gap:0.7143rem;align-items:start;padding:0.6429rem 0;border-bottom:1px solid var(--line-soft);font-size:0.9643rem}
.check li:last-child{border-bottom:none}
.check input[type=checkbox]{margin:0.3571rem 0 0;width:1.071rem;height:1.071rem;accent-color:var(--accent);flex:none;cursor:pointer}
.check input[type=checkbox]:disabled{cursor:default;opacity:.55}
.check label{cursor:pointer}
.check li.done label{color:var(--faint);text-decoration:line-through;text-decoration-color:var(--line)}
.check .who{font-size:0.8214rem;color:var(--faint);white-space:nowrap;margin-top:3px}
.check .due{font-family:"IBM Plex Mono",monospace;font-size:0.8214rem;color:var(--accent);white-space:nowrap;margin-top:3px}
.check .saved{display:inline-block;width:100%;font-size:0.7857rem;color:var(--faint);margin-top:2px;font-family:"IBM Plex Mono",monospace;text-decoration:none}
.check .arch{grid-column:4;background:none;border:none;color:var(--faint);cursor:pointer;font-size:1rem;line-height:1;padding:2px 0.2857rem;visibility:hidden}
.check li:hover .arch{visibility:visible}
.check .arch:hover{color:var(--crit)}
.addrow{display:grid;grid-template-columns:1fr 6rem 8.571rem auto;gap:0.4286rem;margin-top:0.7143rem;padding-top:0.7143rem;border-top:1px dashed var(--line)}
.addrow input{background:var(--surface-2);border:1px solid var(--line);border-radius:3px;padding:0.3571rem 0.5714rem;font-size:0.8929rem}
.addrow input::placeholder{color:var(--faint)}
.toast{position:fixed;bottom:1.286rem;left:50%;transform:translateX(-50%);background:var(--surface-3);color:var(--ink);border:1px solid var(--line);border-radius:0.2857rem;padding:0.5714rem 1rem;font-size:0.8929rem;z-index:30;opacity:0;pointer-events:none;transition:opacity .2s}
.toast.show{opacity:1}
.toast.err{border-color:var(--crit);color:var(--crit)}

/* ---- decisions ---- */
.dec{margin:0.7143rem 0 0;padding:0;list-style:none}
.dec li{padding:0.5714rem 0 0.5714rem 1rem;border-left:2px solid var(--ok);margin-bottom:0.5714rem;font-size:0.9286rem}
.dec li b{display:block;font-size:0.8214rem;color:var(--ok);font-weight:700;font-family:"IBM Plex Mono",monospace;letter-spacing:.02em}
.dec li b + b{display:inline;font-family:inherit;color:var(--ink);font-weight:600;letter-spacing:0}
.dec li.open{border-left-color:var(--warn)} .dec li.open b{color:var(--warn)}
.dec li.watch{border-left-color:var(--crit)} .dec li.watch b{color:var(--crit)}
.dec li.watch b + b, .dec li.open b + b{color:var(--ink)}

footer{margin-top:2rem;padding:1.143rem 0.2857rem 0;border-top:1px solid var(--line);font-size:0.8214rem;color:var(--faint);max-width:100ch;display:flex;justify-content:space-between;gap:1.429rem;flex-wrap:wrap}

/* ---- auth / admin pages ---- */
.card{max-width:30rem;margin:5rem auto 0;background:var(--surface);border:1px solid var(--line);border-radius:0.5714rem;padding:2.143rem 2.143rem 1.857rem;box-shadow:var(--shadow)}
.card h1{font-size:1.714rem}
.card .lede{font-size:0.9643rem;margin-top:0.5714rem}
.field{margin-top:1rem}
.field label{display:block;font-size:0.8571rem;color:var(--muted);margin-bottom:0.3571rem}
.field input{width:100%;background:var(--surface-2);border:1px solid var(--line);border-radius:0.2857rem;padding:0.6429rem 0.7857rem;font-size:1rem}
.field input:focus{border-color:var(--accent)}
.err{margin-top:0.8571rem;padding:0.5714rem 0.7143rem;border:1px solid var(--crit);background:var(--crit-soft);color:var(--crit);border-radius:0.2857rem;font-size:0.8929rem}
.ok-box{margin-top:0.8571rem;padding:0.5714rem 0.7143rem;border:1px solid var(--ok);background:var(--ok-soft);color:var(--ok);border-radius:0.2857rem;font-size:0.8929rem;word-break:break-all}
.btn{margin-top:1.286rem;width:100%;background:var(--accent);color:var(--accent-ink);border:none;border-radius:0.2857rem;padding:0.7143rem;font-weight:700;font-size:1rem;cursor:pointer}
.btn:hover{filter:brightness(1.05)}
.admin .grid{display:grid;grid-template-columns:1fr;gap:1.286rem;margin-top:1.286rem}
.admin table td,.admin table th{font-size:0.8929rem}
.admin form.inline{display:inline-flex;gap:0.4286rem;align-items:center}
.admin select,.admin input[type=text],.admin input[type=email]{background:var(--surface-2);border:1px solid var(--line);border-radius:3px;padding:0.2857rem 0.5714rem;font-size:0.8929rem}
.admin .small{font-size:0.8214rem;color:var(--faint)}
.admin .log td{font-family:"IBM Plex Mono",monospace;font-size:0.8214rem;color:var(--muted)}
.admin .log td.a{color:var(--ink)}
.copy{font-family:"IBM Plex Mono",monospace;font-size:0.8571rem;background:var(--surface-2);border:1px dashed var(--accent);border-radius:0.2857rem;padding:0.5714rem 0.7143rem;margin-top:0.7143rem;word-break:break-all;display:flex;gap:0.7143rem;align-items:center;justify-content:space-between}
.hidden{display:none!important}

/* ---- responsive ---- */
@media (max-width:900px){ .stats{grid-template-columns:1fr 1fr} .two{grid-template-columns:1fr} .who span.mail{display:none} }
@media (max-width:640px){
  .wrap{padding:0 1rem 4.286rem} .topbar .in{padding:0 1rem;gap:0.5714rem} .who span.mail,.topbar .dday,.topbar .role{display:none} .brand{font-size:0.9286rem} .tb{padding:0.2857rem 0.5rem}
  h1{font-size:1.857rem} .hero{padding:2.143rem 0 1.429rem} .stats{grid-template-columns:1fr}
  section.panel{padding:1.143rem 1rem 1.286rem} .chain .arrow{display:none}
  .check li{grid-template-columns:1.429rem 1fr} .check .due,.check .who{grid-column:2;margin-top:0}
  .addrow{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){ *{transition:none!important;scroll-behavior:auto} }

/* ---- print: light, no controls ---- */
@media print{
  :root,:root[data-theme="dark"]{--bg:#FFFFFF;--surface:#FFFFFF;--surface-2:#F6F8F8;--surface-3:#EDF1F0;--line:#C9D2D4;--line-soft:#E2E7E9;--ink:#17313A;--muted:#5B7079;--faint:#7A8C96;--accent:#8A6A00;--accent-ink:#fff;--accent-soft:rgba(138,106,0,.10);--ext:#17545F;--ok:#2E7D5B;--ok-soft:rgba(46,125,91,.10);--warn:#A66B1F;--warn-soft:rgba(166,107,31,.12);--crit:#B04A3C;--crit-soft:rgba(176,74,60,.10);--today:#8A6A00;--track-1:#3F6E7D;--track-2:#C4520D;--track-3:#12233A;--track-4:#7A5C99;--track-5:#2E7D5B;--track-7:#5B6B7C}
  .topbar,.addrow,.arch,.notebtn,.tb,.rkbar,.toast{display:none!important}
  html{font-size:12px} body{font-size:1rem} section.panel{break-inside:avoid;box-shadow:none} .gantt-wrap{overflow:visible}
  select.pill-select{appearance:none;background:none;border:none;padding:0}
}
