/* Koolituse planeerija – EMÜ CVI. Fonts: Poppins, Open Sans (SIL OFL, self-hosted). */
@font-face{font-family:'Poppins';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/poppins-latin-ext-500-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Poppins';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/poppins-latin-500-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Poppins';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/poppins-latin-ext-600-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Poppins';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/poppins-latin-600-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Poppins';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/poppins-latin-ext-700-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Poppins';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/poppins-latin-700-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/open-sans-latin-ext-400-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/open-sans-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/open-sans-latin-ext-500-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/open-sans-latin-500-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/open-sans-latin-ext-600-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/open-sans-latin-600-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/open-sans-latin-ext-700-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/open-sans-latin-700-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{
  --ground:#F1F5F3; --surface:#FFFFFF; --surface-2:#F5F8F7;
  --ink:#14201D; --ink-2:#3C4F4A; --muted:#5F736E; --line:#D3DDD9; --line-strong:#B3C3BD;
  --accent:#125752; --accent-hover:#0E4642; --accent-ink:#FFFFFF; --accent-soft:#DDEBE7; --logo:#125752;
  --error:#B3261E; --error-soft:#FBE9E7; --ok:#125752; --ok-soft:#DDEBE7;
  --r1:#7DBDAF; --r2:#4E9F8F; --r3:#2A7A6E; --r4:#0F4A46;
  --h0:#E9EFED; --h1:#D0E6DF; --h2:#A3CDC2; --h3:#68AC9C; --h4:#2A7A6E; --h5:#125752;
  --h-ink-lo:#14201D; --h-ink-hi:#FFFFFF;
  --font-display:"Poppins","Segoe UI",Arial,sans-serif;
  --font-body:"Open Sans","Segoe UI",Roboto,Arial,sans-serif;
  --font-mono:"Open Sans","Segoe UI",Roboto,Arial,sans-serif;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --ground:#0C1816; --surface:#142320; --surface-2:#182B27;
    --ink:#E7F0ED; --ink-2:#B9CBC5; --muted:#8CA39D; --line:#25403B; --line-strong:#36594F;
    --accent:#6CC5B0; --accent-hover:#8AD3C2; --accent-ink:#06201C; --accent-soft:#1B3F39; --logo:#FFFFFF;
    --error:#FF8A80; --error-soft:#3A1E1C; --ok:#6CC5B0; --ok-soft:#1B3F39;
    --r1:#2C6F66; --r2:#3F9284; --r3:#69B9AB; --r4:#A2DACF;
    --h0:#182B27; --h1:#1E3D38; --h2:#245C54; --h3:#2F7F72; --h4:#5FB2A1; --h5:#A2DACF;
    --h-ink-lo:#E7F0ED; --h-ink-hi:#06201C;
  }
}
:root[data-theme="dark"]{
  --ground:#0C1816; --surface:#142320; --surface-2:#182B27;
  --ink:#E7F0ED; --ink-2:#B9CBC5; --muted:#8CA39D; --line:#25403B; --line-strong:#36594F;
  --accent:#6CC5B0; --accent-hover:#8AD3C2; --accent-ink:#06201C; --accent-soft:#1B3F39; --logo:#FFFFFF;
  --error:#FF8A80; --error-soft:#3A1E1C; --ok:#6CC5B0; --ok-soft:#1B3F39;
  --r1:#2C6F66; --r2:#3F9284; --r3:#69B9AB; --r4:#A2DACF;
  --h0:#182B27; --h1:#1E3D38; --h2:#245C54; --h3:#2F7F72; --h4:#5FB2A1; --h5:#A2DACF;
  --h-ink-lo:#E7F0ED; --h-ink-hi:#06201C;
}

*{box-sizing:border-box}
body{background:var(--ground);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.5;padding-inline:16px;border-top:5px solid var(--accent);-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}

/* ---------- page frame ---------- */
.wrap{max-width:1080px;margin-inline:auto;padding-block:20px 40px;display:flex;flex-direction:column;gap:24px}
.wrap.is-form{padding-bottom:120px}
.top{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:flex-end;justify-content:space-between}
.brand{display:flex;flex-direction:column;gap:6px;min-width:0}
@media (max-width:720px){.logo{width:120px}.unit-name{font-size:16px}}
.masthead{display:flex;justify-content:space-between;align-items:center;gap:12px 24px;flex-wrap:wrap;padding-bottom:16px;border-bottom:1px solid var(--line)}
.unit{display:flex;flex-direction:column;gap:2px;min-width:0}
.unit-eyebrow{font-family:var(--font-display);font-weight:500;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.unit-name{font-family:var(--font-display);font-weight:600;font-size:18px;line-height:1.25;color:var(--accent);text-wrap:balance}
.logo{display:block;width:168px;max-width:100%;height:auto;color:var(--logo);flex:none}
.eyebrow{font-family:var(--font-display);font-weight:500;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.badge{border:1px solid var(--line-strong);border-radius:999px;padding:1px 9px;font-size:11px;color:var(--ink-2);background:var(--surface);font-family:var(--font-body);font-weight:600}
h1{font-family:var(--font-display);font-weight:700;font-size:clamp(28px,5vw,36px);line-height:1.15;margin:0;letter-spacing:-.01em;text-wrap:balance}
h2{font-family:var(--font-display);font-weight:600;font-size:20px;line-height:1.25;margin:0;text-wrap:balance}
h3{font-family:var(--font-body);font-weight:600;font-size:16px;line-height:1.35;margin:0}
p{margin:0}
.lead{max-width:65ch;color:var(--ink-2)}
.hint{color:var(--muted);font-size:14px;max-width:65ch}

.switch{display:inline-flex;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:3px;gap:3px}
.switch button{border:0;background:transparent;padding:8px 14px;border-radius:7px;font-family:var(--font-display);font-weight:500;font-size:14px;color:var(--ink-2)}
.switch button[aria-selected="true"]{background:var(--accent);color:var(--accent-ink)}
.switch button:not([aria-selected="true"]):hover{background:var(--accent-soft)}

/* ---------- participant form ---------- */
.sheet{background:var(--surface);border:1px solid var(--line);border-radius:12px;max-width:780px}
.sec{padding:24px;display:flex;flex-direction:column;gap:16px;border-top:1px solid var(--line)}
.sec:first-child{border-top:0}
.sec-head{display:flex;flex-direction:column;gap:6px}
.sec-head-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.linkbtn{background:none;border:0;padding:2px 0;color:var(--accent);font-size:14px;font-weight:500;text-decoration:underline;text-underline-offset:3px}
.linkbtn:hover{color:var(--accent-hover)}

.topics{display:flex;flex-direction:column}
.topic{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 20px;align-items:center;padding-block:14px;border-top:1px solid var(--line)}
.topic:first-child{border-top:0;padding-top:4px}
.topic p{color:var(--muted);font-size:14px}
.gauge{display:flex;align-items:center;gap:10px}
.gauge-segs{display:flex;gap:3px}
.seg{width:34px;height:36px;border:1px solid var(--line-strong);background:var(--surface);color:var(--muted);font-family:var(--font-mono);font-size:12px;font-weight:500;padding:0;border-radius:3px}
.seg:first-child{border-radius:7px 3px 3px 7px}
.seg:last-child{border-radius:3px 7px 7px 3px}
.seg:hover{border-color:var(--accent);color:var(--accent)}
.seg.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.gauge-read{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:600;min-width:7.5ch;text-align:right;color:var(--muted)}
.gauge-read.has{color:var(--ink)}

.field{display:flex;flex-direction:column;gap:6px;min-width:0}
.field label,.lbl{font-size:14px;font-weight:500;color:var(--ink-2)}
.input{width:100%;border:1px solid var(--line-strong);background:var(--surface);border-radius:8px;padding:10px 12px;min-height:44px}
.input::placeholder{color:var(--muted);opacity:.8}
.input:focus{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}
.input.bad{border-color:var(--error)}
.row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.propose{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr) 110px auto;gap:12px;align-items:end}
.btn{border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink);border-radius:8px;padding:10px 18px;min-height:44px;font-family:var(--font-display);font-weight:600}
.btn:hover{background:var(--accent-hover);border-color:var(--accent-hover)}
.btn.ghost{background:transparent;color:var(--accent)}
.btn.ghost:hover{background:var(--accent-soft)}
.btn.small{min-height:34px;padding:5px 12px;font-size:14px;font-weight:500}
.plist{display:flex;flex-direction:column;gap:8px;list-style:none;margin:0;padding:0}
.plist li{display:flex;gap:12px;align-items:baseline;justify-content:space-between;background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:10px 12px}
.plist .pt{font-weight:500}
.plist .pd{color:var(--muted);font-size:14px}

.week-scroll{overflow-x:auto}
.week{display:grid;grid-template-columns:minmax(92px,auto) repeat(6,minmax(40px,1fr));gap:4px;min-width:0}
.week .hd{border:0;background:transparent;font-weight:600;font-size:14px;color:var(--ink-2);padding:6px 0;border-radius:6px}
.week .hd:hover{background:var(--accent-soft);color:var(--accent)}
.week .rh{border:0;background:transparent;text-align:left;font-size:14px;line-height:1.25;padding:4px 6px 4px 0;border-radius:6px;color:var(--ink-2);display:flex;flex-direction:column;justify-content:center}
.week .rh:hover{color:var(--accent)}
.week .rh small{font-family:var(--font-mono);font-size:12px;color:var(--muted)}
.slot{min-height:46px;border:1px solid var(--line-strong);background:var(--surface);border-radius:6px;padding:0;font-size:16px;font-weight:600;color:transparent}
.slot:hover{border-color:var(--accent);background:var(--accent-soft)}
.slot[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.week.sat-gap .c6{margin-left:6px}

.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{border:1px solid var(--line-strong);background:var(--surface);border-radius:999px;padding:9px 16px;min-height:42px;font-size:15px;font-weight:500;color:var(--ink-2)}
.chip:hover{border-color:var(--accent);color:var(--accent)}
.chip[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}

.check{display:flex;gap:10px;align-items:flex-start;font-size:15px;color:var(--ink-2);max-width:65ch}
.check input{width:20px;height:20px;margin:2px 0 0;accent-color:var(--accent);flex:none}
.err{color:var(--error);font-size:14px;font-weight:500}
.errbox{background:var(--error-soft);border:1px solid var(--error);border-radius:8px;padding:12px 14px;color:var(--ink);font-size:15px}
.errbox ul{margin:6px 0 0;padding-left:20px}

.bar{position:fixed;left:0;right:0;bottom:0;background:var(--surface);border-top:1px solid var(--line-strong);padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));z-index:5}
.bar-in{max-width:1080px;margin-inline:auto;display:flex;gap:12px 20px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.tally{display:flex;gap:18px;flex-wrap:wrap;font-size:14px;color:var(--muted)}
.tally b{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:18px;color:var(--ink);font-weight:600;margin-right:4px}

.done{max-width:780px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:24px;display:flex;flex-direction:column;gap:16px}
.done .okline{display:flex;gap:10px;align-items:center;color:var(--ok);font-weight:600}
.done .okdot{width:22px;height:22px;border-radius:50%;background:var(--ok-soft);border:1px solid var(--ok);display:grid;place-items:center;font-size:13px}
.sumlist{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 16px;margin:0;font-size:15px}
.sumlist dt{color:var(--muted)}
.sumlist dd{margin:0}

/* ---------- organizer ---------- */
.notice{border:1px dashed var(--line-strong);border-radius:10px;padding:12px 14px;font-size:14px;color:var(--ink-2);background:var(--surface-2);max-width:none}
.stats{display:flex;flex-wrap:wrap;gap:12px 40px}
.stat{display:flex;flex-direction:column;gap:2px}
.stat .k{font-size:13px;color:var(--muted)}
.stat .v{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:28px;font-weight:600;line-height:1.15}
.stat .v small{font-size:14px;font-weight:400;color:var(--muted);margin-left:4px}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:20px;align-items:start}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:14px;min-width:0}
.panel-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}
.panel-head > div:not(.legend){display:flex;flex-direction:column;gap:4px;min-width:0}

.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;color:var(--ink-2);align-items:center}
.legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:5px;vertical-align:-1px}
.demand{display:flex;flex-direction:column;gap:12px}
.drow{display:grid;grid-template-columns:minmax(0,260px) minmax(0,1fr) 190px;gap:4px 16px;align-items:center}
.drow .dt{font-size:14px;font-weight:500;line-height:1.3}
.track{position:relative;height:16px;background:linear-gradient(to right,var(--line) 1px,transparent 1px) 0 0/50% 100%,var(--surface-2);border-right:1px solid var(--line);border-radius:0 4px 4px 0}
.stack{display:flex;gap:2px;height:100%}
.sg{height:100%;min-width:3px;border:0;padding:0}
.sg:last-child{border-radius:0 4px 4px 0}
.sg:hover,.sg:focus-visible{filter:brightness(1.12)}
.dv{font-size:13px;color:var(--ink-2);white-space:nowrap}
.dv b{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--ink);font-weight:600}
.axis{display:grid;grid-template-columns:minmax(0,260px) minmax(0,1fr) 190px;gap:0 16px;font-family:var(--font-mono);font-size:11px;color:var(--muted)}
.axis .ticks{display:flex;justify-content:space-between}
details.tbl summary{cursor:pointer;font-size:14px;color:var(--accent);font-weight:500;width:max-content}
.tscroll{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:14px}
th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
th{font-weight:600;color:var(--ink-2);font-size:13px}
td.num,th.num{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums}
td.wrapcell{white-space:normal;min-width:180px}

.heat{display:grid;grid-template-columns:minmax(92px,auto) repeat(6,minmax(36px,1fr));gap:2px}
.heat .hh{font-size:13px;font-weight:600;color:var(--ink-2);text-align:center;padding-bottom:4px}
.heat .hr{font-size:13px;line-height:1.25;color:var(--ink-2);display:flex;flex-direction:column;justify-content:center;padding-right:6px}
.heat .hr small{font-family:var(--font-mono);font-size:11px;color:var(--muted)}
.hc{min-height:44px;border:0;border-radius:4px;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:14px;font-weight:600;padding:0;cursor:default}
.hc:hover,.hc:focus-visible{box-shadow:0 0 0 2px var(--ink) inset}
.hc.s0{background:var(--h0);color:var(--muted)} .hc.s1{background:var(--h1);color:var(--h-ink-lo)}
.hc.s2{background:var(--h2);color:var(--h-ink-lo)} .hc.s3{background:var(--h3);color:var(--h-ink-lo)}
.hc.s4{background:var(--h4);color:var(--h-ink-hi)} .hc.s5{background:var(--h5);color:var(--h-ink-hi)}
.heat-scale{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);font-family:var(--font-mono)}
.heat-scale span.sw{display:flex;gap:2px}
.heat-scale i{width:18px;height:10px;border-radius:2px;display:block}

.hbars{display:flex;flex-direction:column;gap:10px}
.hb{display:grid;grid-template-columns:minmax(0,150px) minmax(0,1fr) 44px;gap:12px;align-items:center;font-size:14px}
.hb .t{height:14px;background:var(--surface-2);border-radius:0 4px 4px 0}
.hb .f{height:100%;background:var(--r3);border-radius:0 4px 4px 0;min-width:3px}
.hb .n{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:600}

.cat{display:flex;flex-direction:column;gap:10px;list-style:none;margin:0;padding:0}
.cat li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 10px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2)}
.cat .ins{display:flex;flex-direction:column;gap:6px;min-width:0}
.cat .input{min-height:38px;padding:7px 10px;font-size:15px}
.cat .input.d{font-size:14px;color:var(--ink-2)}
.cat .acts{display:flex;flex-direction:column;gap:4px}
.icon{width:34px;height:30px;border:1px solid var(--line-strong);background:var(--surface);border-radius:6px;font-size:14px;line-height:1;color:var(--ink-2);padding:0}
.icon:hover{border-color:var(--accent);color:var(--accent)}
.icon.del:hover{border-color:var(--error);color:var(--error)}
.icon:disabled{opacity:.35;cursor:default}

#tip{position:fixed;z-index:20;pointer-events:none;background:var(--ink);color:var(--surface);font-size:13px;line-height:1.35;padding:6px 9px;border-radius:6px;max-width:260px;box-shadow:0 4px 14px rgba(0,0,0,.18)}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(84px + env(safe-area-inset-bottom,0px));background:var(--ink);color:var(--surface);padding:10px 16px;border-radius:8px;font-size:14px;font-weight:500;z-index:30;max-width:calc(100% - 32px)}

@media (max-width:720px){
  .sec{padding:18px 16px}
  .topic{grid-template-columns:minmax(0,1fr)}
  .gauge{justify-content:space-between}
  .seg{width:44px;height:40px}
  .propose{grid-template-columns:minmax(0,1fr)}
  .drow,.axis{grid-template-columns:minmax(0,1fr)}
  .axis .sp{display:none}
  .dv{white-space:normal}
  .panel{padding:16px}
  .week{grid-template-columns:minmax(74px,auto) repeat(6,minmax(34px,1fr));gap:3px}
  .heat{grid-template-columns:minmax(74px,auto) repeat(6,minmax(30px,1fr))}
  .week.sat-gap .c6{margin-left:3px}
}
@media (prefers-reduced-motion:no-preference){
  .seg,.slot,.chip,.switch button{transition:background-color .12s,border-color .12s,color .12s}
}

/* ---------- production additions ---------- */
:root{color-scheme:light dark}
html{-webkit-text-size-adjust:100%}
body{margin:0}
[hidden]{display:none!important}
.hp{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}
.btn:disabled{opacity:.6;cursor:progress}
.btn.danger{background:transparent;color:var(--error);border-color:var(--error)}
.btn.danger:hover{background:var(--error-soft)}
.state{max-width:780px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:24px;display:flex;flex-direction:column;gap:12px}
.foot{color:var(--muted);font-size:13px;max-width:780px}
.foot a,.lead a,.hint a{color:var(--accent)}
.login{max-width:420px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:24px;display:flex;flex-direction:column;gap:14px}
.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.pill{display:inline-flex;align-items:center;gap:8px;border-radius:999px;padding:6px 12px;font-size:14px;font-weight:600;border:1px solid var(--line-strong);background:var(--surface)}
.pill i{width:10px;height:10px;border-radius:50%;background:var(--muted)}
.pill.on i{background:#2E9E5B}
.pill.off i{background:var(--error)}
.tag{display:inline-block;font-size:12px;font-weight:600;border-radius:999px;padding:1px 8px;border:1px solid var(--line-strong);color:var(--ink-2);background:var(--surface);margin-left:6px;vertical-align:1px}
.tag.ok{border-color:var(--accent);color:var(--accent)}
.tag.no{border-color:var(--error);color:var(--error)}
.pacts{display:flex;flex-wrap:wrap;gap:6px;align-items:center;flex:none;justify-content:flex-end}
.pacts select{min-height:34px;padding:4px 8px;font-size:14px;max-width:220px}
.plist li.muted{opacity:.65}
.cat li.off{opacity:.6}
.catsave{font-size:12px;color:var(--muted);min-height:16px}
td .linkbtn{font-size:13px}
@media (max-width:720px){.pacts{justify-content:flex-start}}
#org-props li{flex-direction:column;align-items:stretch;gap:10px}
#org-props .pacts{justify-content:flex-start}
#org-props .pacts select{flex:1 1 180px;max-width:none}
