:root{--bg: #f3f5f7;--surface: #ffffff;--surface-2: #e9edf1;--line: #d5dce3;--text: #15202b;--muted: #566573;--accent: #3554d1;--accent-ink: #ffffff;--accent-soft: #e3e8fb;--ok: #1f8a4c;--ok-soft: #dcf1e4;--warn: #9a5b00;--warn-soft: #fbecd0;--danger: #b83227;--danger-soft: #f9e0dc;--deep: #14213a;--deep-2: #1d2d4d;--deep-ink: #eef2f8;--deep-muted: #a7b4c9;--deep-line: #31446b;--deep-bar: #6f8cff;--radius: 10px;--display: "Space Grotesk", ui-sans-serif, system-ui, sans-serif;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;font-size:14.5px;line-height:1.5;color:var(--text);background:var(--bg)}@media(prefers-color-scheme:dark){:root{color-scheme:dark;--bg: #10161c;--surface: #18212a;--surface-2: #0c1116;--line: #2c3944;--text: #e6ecf1;--muted: #9aa8b5;--accent: #8da2ff;--accent-ink: #10161c;--accent-soft: #232d4d;--ok: #5fd08c;--ok-soft: #173524;--warn: #f0b04a;--warn-soft: #3a2d12;--danger: #ff8a7a;--danger-soft: #41211c}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg)}h1,h2,h3{font-family:var(--display);text-wrap:balance}h1{font-size:1.5rem;margin:0 0 4px;letter-spacing:-.01em;line-height:1.2}h2{font-size:1.08rem;margin:0 0 12px}h3{font-size:.97rem;margin:0 0 8px}p{margin:0 0 12px}a{color:var(--accent)}.muted{color:var(--muted)}.small{font-size:.86rem}.mono{font-family:ui-monospace,SF Mono,Menlo,monospace}.num{font-variant-numeric:tabular-nums}.shell{height:100%;display:grid;grid-template-columns:232px minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr)}.banner{grid-column:1 / -1;padding:8px 20px;background:var(--warn-soft);color:var(--warn);font-weight:500;font-size:.9rem}.topbar{grid-column:1 / -1;display:flex;align-items:center;gap:8px 16px;flex-wrap:wrap;padding:10px 20px;background:var(--surface);border-bottom:1px solid var(--line)}.brand{display:inline-flex;align-items:center;gap:8px;font-family:var(--display);font-weight:700;font-size:1.1rem;letter-spacing:-.01em}.brand i{width:18px;height:18px;border-radius:5px;background:var(--accent)}.topbar .grow{flex:1}.topbar .who{text-align:right;line-height:1.25}.side{grid-row:3;overflow-y:auto;padding:12px 10px 24px;border-right:1px solid var(--line);background:color-mix(in srgb,var(--surface-2) 55%,var(--surface));display:flex;flex-direction:column;gap:2px}.side .grp{font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:14px 8px 4px}.side .grp:first-child{margin-top:4px}.side .mod{padding:5px 8px;font-weight:600}.side a{display:flex;justify-content:space-between;align-items:center;gap:6px;padding:7px 8px;border-radius:7px;text-decoration:none;color:var(--muted);font-weight:500}.side a.sub{padding-left:20px}.side a:hover{background:var(--surface-2)}.side a.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.side a:focus-visible{outline:2px solid var(--accent);outline-offset:1px}main{grid-row:3;overflow-y:auto;min-width:0;padding:24px 24px 64px}main>.inner{max-width:1180px;margin:0 auto}.page-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:18px}@media(max-width:760px){.shell{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto minmax(0,1fr)}.topbar{padding:10px 16px}.side{grid-row:3;flex-direction:row;align-items:center;gap:4px;padding:8px 16px;overflow-x:auto;white-space:nowrap;border-right:0;border-bottom:1px solid var(--line)}.side .grp,.side .mod{display:none}.side a,.side a.sub{padding:6px 10px}main{grid-row:4;padding:18px 16px 56px}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin-bottom:16px}.grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.spread{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.stack>*+*{margin-top:12px}label{display:block;font-size:.85rem;font-weight:600;margin-bottom:4px}input,select,textarea{width:100%;padding:8px 10px;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:8px}input[type=checkbox]{width:auto;accent-color:var(--accent)}input:focus,select:focus,textarea:focus,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}input:disabled,select:disabled{background:var(--surface-2);color:var(--muted)}.fields{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));align-items:end}button{font:inherit;font-weight:600;padding:8px 14px;border-radius:8px;cursor:pointer;border:1px solid var(--line);background:var(--surface);color:var(--text)}button:hover{background:var(--surface-2)}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}button.primary:hover{filter:brightness(1.08);background:var(--accent)}button.danger{color:var(--danger)}button.ghost{border-color:transparent;background:transparent;color:var(--muted);padding:4px 8px}button.sm{padding:4px 10px;font-size:.86rem}button:disabled{opacity:.5;cursor:not-allowed}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:.76rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:600}th,td{padding:9px 8px;border-bottom:1px solid var(--line);vertical-align:middle}tr:last-child td{border-bottom:0}.table-wrap{overflow-x:auto}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:.75rem;font-weight:600;background:var(--surface-2);color:var(--muted);white-space:nowrap}.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.info{background:var(--accent-soft);color:var(--accent)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.bad{background:var(--danger-soft);color:var(--danger)}.notice{padding:10px 12px;border-radius:8px;background:var(--accent-soft);color:var(--text);margin-bottom:12px}.notice.error{background:var(--danger-soft);color:var(--danger)}.notice.warn{background:var(--warn-soft);color:var(--warn)}.secret{font-family:ui-monospace,Menlo,monospace;font-size:1.05rem;font-weight:700;letter-spacing:.04em;word-break:break-all}.tabs{display:inline-flex;padding:3px;background:var(--surface-2);border-radius:9px;gap:2px}.tabs button{border:0;background:transparent;padding:5px 12px;font-size:.85rem;color:var(--muted)}.tabs button.on{background:var(--surface);color:var(--text);box-shadow:0 1px 2px #0000001f}.tabs .count{margin-left:6px;padding:0 6px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:.75rem}.center{min-height:100%;display:grid;place-items:center;padding:16px}.module{display:block;text-decoration:none;color:inherit}.module.paused{opacity:.8}.day-row{display:grid;grid-template-columns:90px 70px 1fr 1fr;gap:8px;align-items:center;margin-bottom:6px}@media(max-width:640px){.day-row{grid-template-columns:1fr 1fr}}.auth{min-height:100%;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}.auth-brand{background:var(--deep);color:var(--deep-ink);display:flex;flex-direction:column;justify-content:space-between;gap:32px;padding:40px 48px}.auth-brand .brand i{background:var(--deep-bar)}.auth-brand h2{font-size:clamp(1.7rem,3.2vw,2.5rem);font-weight:600;letter-spacing:-.02em;line-height:1.15;margin:0;max-width:16ch}.auth-brand p{margin:12px 0 0;color:var(--deep-muted);max-width:44ch;font-size:1.03rem}.auth-brand small{color:var(--deep-muted)}.motif{display:flex;flex-direction:column;border:1px solid var(--deep-line);border-radius:12px;background:var(--deep-2);padding:6px 14px;max-width:460px}.motif div{display:grid;grid-template-columns:repeat(20,1fr);align-items:center;height:34px;border-top:1px solid var(--deep-line);background-image:linear-gradient(to right,var(--deep-line) 1px,transparent 1px);background-size:20% 100%}.motif div:first-child{border-top:0}.motif i{height:16px;border-radius:4px;background:var(--deep-bar);opacity:.85}.motif i.o{background:none;border:1px dashed var(--deep-muted)}.auth-form{display:grid;place-items:center;background:var(--surface);padding:40px 24px}.auth-card{width:min(380px,100%)}.auth-card h1{font-size:1.9rem}.auth-card input{padding:10px 12px;font-size:1rem}.auth-card button.primary{width:100%;padding:11px;font-size:1rem}.pw{position:relative;display:block}.pw input{padding-right:104px}.pw button{position:absolute;right:4px;top:50%;transform:translateY(-50%);border:0;background:none;color:var(--accent);font-size:.86rem;padding:6px 8px}@media(max-width:760px){.auth{grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr}.auth-brand{padding:20px 16px;gap:10px}.auth-brand .motif,.auth-brand small,.auth-brand p{display:none}.auth-brand h2{font-size:1.3rem;max-width:none}.auth-form{place-items:start center;padding:28px 16px}}.tl-wrap{overflow-x:auto;padding:10px 14px 12px}.tl{min-width:760px}.tl-row{display:grid;grid-template-columns:150px minmax(0,1fr);border-top:1px solid var(--line)}.tl-row.head{border-top:0}.tl-lab{padding:9px 8px 9px 0;min-width:0}.tl-lab strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tl-track{position:relative;display:grid;align-items:center;min-height:54px;cursor:crosshair;touch-action:pan-y;-webkit-user-select:none;user-select:none;background-image:linear-gradient(to right,var(--line) 1px,transparent 1px)}.tl-row.head .tl-track{background:none;min-height:0;cursor:default;font-size:.8rem;color:var(--muted);padding-bottom:4px}.tl-row.head .tl-track span{grid-column:span 4;padding-left:3px}.tl-off,.tl-closed{grid-row:1;align-self:stretch;pointer-events:none;display:grid;place-items:center;font-size:.78rem;color:var(--muted);background:repeating-linear-gradient(135deg,transparent 0 5px,var(--line) 5px 6px)}.tl-track.closed{cursor:not-allowed;background-image:none}.tl-closed{grid-column:1 / -1}.tl-ev{grid-row:1;z-index:1;margin:0 1px;padding:5px 7px;border-radius:6px;text-align:left;font-size:.8rem;font-weight:500;line-height:1.25;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--text);background:color-mix(in srgb,var(--accent) 20%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 55%,var(--surface))}.tl-ev:hover{background:color-mix(in srgb,var(--accent) 30%,var(--surface))}.tl-ev small{display:block;color:var(--muted);font-size:.72rem;font-weight:400;overflow:hidden;text-overflow:ellipsis}.tl-ev.mine{box-shadow:inset 3px 0 0 var(--accent)}.tl-ev.done{background:var(--surface-2);border-color:var(--line);color:var(--muted)}.tl-sel{grid-row:1;z-index:2;align-self:stretch;margin:6px 1px;border-radius:6px;pointer-events:none;background:color-mix(in srgb,var(--accent) 30%,transparent);border:1px solid var(--accent)}.tl-now{position:absolute;top:0;bottom:0;width:2px;background:var(--danger);z-index:3;pointer-events:none}.tl-legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:.82rem;color:var(--muted);padding-top:10px;border-top:1px solid var(--line)}.tl-legend i{display:inline-block;width:14px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px;border:1px solid var(--line)}.list-item{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;padding:10px 0;border-top:1px solid var(--line)}.list-item .g{flex:1;min-width:160px}.list-item strong{display:block}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:16px;background:#00000073}.dialog{width:min(480px,100%);max-height:100%;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:20px}.dialog dl{margin:0 0 14px;display:grid;grid-template-columns:auto 1fr;gap:6px 14px}.dialog dt{color:var(--muted)}.dialog dd{margin:0}.dialog .foot{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:16px}.toast{position:fixed;left:50%;bottom:20px;transform:translate(-50%);z-index:60;max-width:calc(100% - 32px);background:var(--text);color:var(--bg);padding:9px 16px;border-radius:8px;font-weight:500}
