:root{--bg:#f3f5f4;--panel:#fff;--panel-2:#f8faf9;--fg:#14191a;--muted:#5b6669;--line:#d3dad8;--accent:#1d8f54;--accent-ink:#fff;--accent-soft:#e2f3e9;--warn:#a8690f;--warn-soft:#fbf0dc;--danger:#c0392b;--danger-soft:#fbe6e3;--focus:#2f7de1;--display:"Barlow Condensed", "Arial Narrow", sans-serif;--body:"IBM Plex Sans", system-ui, -apple-system, sans-serif;--mono:"IBM Plex Mono", ui-monospace, Menlo, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0d1112;--panel:#161c1e;--panel-2:#1b2224;--fg:#e8eeec;--muted:#94a2a5;--line:#2c3639;--accent:#36c37a;--accent-ink:#07130c;--accent-soft:#143022;--warn:#f5b84a;--warn-soft:#33270f;--danger:#ff7a6b;--danger-soft:#3a1d1a;--focus:#6aa8ff;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--fg);font-family:var(--body);margin:0;font-size:15px;line-height:1.5}a{color:inherit}h1,h2,h3{font-family:var(--display);letter-spacing:.01em;text-wrap:balance;margin:0;font-weight:700;line-height:1.05}h1{font-size:2.2rem}h2{font-size:1.5rem}h3{font-size:1.2rem}p{margin:0}code,.mono{font-family:var(--mono);font-size:.9em}.muted{color:var(--muted)}.num{font-variant-numeric:tabular-nums}.shell{grid-template-columns:220px 1fr;min-height:100vh;display:grid}.side{background:var(--panel);border-right:1px solid var(--line);flex-direction:column;gap:4px;height:100vh;padding:20px 14px;display:flex;position:sticky;top:0}.brand{font-family:var(--display);color:var(--accent);letter-spacing:.04em;padding:0 10px 14px;font-size:1.6rem;font-weight:700}.side a{color:var(--fg);border-radius:8px;padding:8px 10px;font-weight:500;text-decoration:none;display:block}.side a:hover{background:var(--panel-2)}.side a.active{background:var(--accent-soft);color:var(--accent)}.side .spacer{flex:1}.side .who{color:var(--muted);overflow-wrap:anywhere;padding:0 10px;font-size:13px}main.page{flex-direction:column;gap:20px;min-width:0;padding:28px max(16px,3vw) 64px;display:flex}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.page-head .actions{flex-wrap:wrap;gap:8px;display:flex}@media (max-width:760px){.shell{grid-template-columns:1fr}.side{flex-flow:wrap;align-items:center;height:auto;padding:10px 12px;position:static}.brand{padding:0 8px 0 0}.side .spacer,.side .who{display:none}}button,.btn{font:inherit;border:1px solid var(--line);background:var(--panel);color:var(--fg);cursor:pointer;white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:7px 14px;font-weight:600;text-decoration:none;display:inline-flex}button:hover,.btn:hover{border-color:var(--muted)}button.primary,.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}button.danger{color:var(--danger)}button.ghost{background:0 0;border-color:#0000}button.small{padding:3px 8px;font-size:13px}button:disabled{opacity:.5;cursor:default}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}input,select,textarea{font:inherit;color:var(--fg);background:var(--panel);border:1px solid var(--line);border-radius:8px;min-width:0;padding:7px 10px}label.field{color:var(--muted);flex-direction:column;gap:4px;font-size:13px;display:flex}label.field>input,label.field>select,label.field>textarea{color:var(--fg);font-size:15px}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.stack{flex-direction:column;gap:12px;display:flex}.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px}.error{color:var(--danger);background:var(--danger-soft);border-radius:8px;padding:8px 12px}.notice{background:var(--warn-soft);border-radius:8px;padding:8px 12px}.pill{font-family:var(--mono);border:1px solid;border-radius:999px;padding:1px 8px;font-size:11.5px;display:inline-block}.pill.ok{color:var(--accent)}.pill.warn{color:var(--warn)}.pill.bad{color:var(--danger)}.tabs{flex-wrap:wrap;gap:4px;display:flex}.tabs button{border-radius:999px;padding:4px 14px}.tabs button[aria-pressed=true]{background:var(--fg);color:var(--bg);border-color:var(--fg)}.table-wrap{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow-x:auto}table.data{border-collapse:collapse;width:100%;font-size:14px}table.data th,table.data td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:9px 12px}table.data th{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);white-space:nowrap;font-size:11.5px;font-weight:500}table.data tr:last-child td{border-bottom:0}table.data tr.link{cursor:pointer}table.data tr.link:hover td{background:var(--panel-2)}.days{grid-template-columns:repeat(auto-fill,minmax(560px,1fr));align-items:start;gap:16px;display:grid}@media (max-width:760px){.days{grid-template-columns:1fr}}.day{background:var(--panel);border:1px solid var(--line);border-radius:12px;min-width:0;overflow:hidden}.day-head{border-bottom:1px solid var(--line);background:var(--panel-2);align-items:center;gap:8px;padding:10px 12px;display:flex}.day-head input.day-name{font-family:var(--display);background:0 0;border-color:#0000;flex:1;padding:2px 6px;font-size:1.25rem;font-weight:700}.day-head input.day-name:hover,.day-head input.day-name:focus{border-color:var(--line);background:var(--panel)}.grid-scroll{overflow-x:auto}table.grid{border-collapse:collapse;width:100%;font-size:14px}table.grid th{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-align:left;white-space:nowrap;padding:6px 4px;font-size:11px;font-weight:500}table.grid td{border-top:1px solid var(--line);padding:2px 3px}table.grid td.handle{width:22px;color:var(--muted);cursor:grab;text-align:center;-webkit-user-select:none;user-select:none}table.grid input{font-variant-numeric:tabular-nums;background:0 0;border-color:#0000;border-radius:6px;width:100%;padding:5px 6px}table.grid input:hover{border-color:var(--line)}table.grid input:focus{border-color:var(--focus);background:var(--panel);outline:none}.name-cell{position:relative}.name-cell .new-tag{pointer-events:none;font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--accent);font-size:10px;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.suggest{z-index:20;background:var(--panel);border:1px solid var(--line);border-radius:8px;margin:0;padding:4px;list-style:none;position:fixed;box-shadow:0 8px 24px #0000002e}.suggest li{cursor:pointer;border-radius:5px;padding:6px 8px;font-size:14px}.suggest li.active,.suggest li:hover{background:var(--accent-soft,#36c37a29)}table.grid input.bad{border-color:var(--danger);background:var(--danger-soft)}table.grid col.c-name{width:34%}table.grid col.c-num{width:9%}table.grid tr.dragging td{opacity:.4}table.grid tr.drop-before td{box-shadow:inset 0 2px 0 var(--accent)}.day-foot{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;font-size:13px;display:flex}.hint{color:var(--muted);font-size:12.5px}kbd{font-family:var(--mono);border:1px solid var(--line);background:var(--panel);border-bottom-width:2px;border-radius:4px;padding:0 5px;font-size:11.5px}table.prog{border-collapse:collapse;font-size:14px}table.prog th,table.prog td{border-bottom:1px solid var(--line);text-align:left;white-space:nowrap;padding:6px 8px}table.prog th{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:500}table.prog td.ex{background:var(--panel);font-weight:600;position:sticky;left:0}.cell3{align-items:center;gap:2px;display:inline-flex}.cell3 input{text-align:right;font-variant-numeric:tabular-nums;width:3.6em;padding:4px 5px}.cell3 input.w{width:4.6em}.cell3 span{color:var(--muted);font-size:12px}.center{min-height:100vh;padding:24px max(16px, env(safe-area-inset-left));place-items:center;display:grid}.center .card{flex-direction:column;gap:14px;width:min(420px,100%);padding:24px;display:flex}.code-big{font-family:var(--mono);letter-spacing:.12em;text-align:center;font-size:2.4rem;font-weight:500}.form-row{flex-wrap:wrap;align-items:flex-end;gap:12px;margin:12px 0 20px;display:flex}.form-row label.field{flex:220px}.page-head input.search{width:min(280px,100%)}.pb-list{flex-wrap:wrap;gap:24px;padding:0;list-style:none;display:flex}
