:root{--bg: #f6f5f1;--surface: #ffffff;--surface-2: #f0eee8;--text: #1f1d1a;--muted: #6b675f;--border: #e2dfd6;--accent: #b4491c;--accent-text: #ffffff;--ok: #2f7d4f;--warn: #b7791f;--bad: #b3261e;--radius: 10px;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color-scheme:light dark}@media (prefers-color-scheme: dark){:root{--bg: #171614;--surface: #211f1c;--surface-2: #2a2824;--text: #efece5;--muted: #a09b90;--border: #38352f;--accent: #e0703f;--accent-text: #1a1209;--ok: #5cc287;--warn: #e0b04f;--bad: #f0877e}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-size:14px;line-height:1.45}h1{font-size:22px;margin:0 0 4px}h2{font-size:16px;margin:0 0 12px}p{margin:0 0 12px}a{color:var(--accent)}code,.mono{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:12.5px}.shell{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.sidebar{background:var(--surface);border-right:1px solid var(--border);padding:20px 14px;display:flex;flex-direction:column;gap:4px;position:sticky;top:0;height:100vh}.brand{font-weight:700;font-size:18px;padding:0 10px 16px;letter-spacing:.02em}.brand span{color:var(--accent)}.nav a{display:block;padding:8px 10px;border-radius:8px;color:var(--text);text-decoration:none}.nav a:hover{background:var(--surface-2)}.nav a.active{background:var(--accent);color:var(--accent-text);font-weight:600}.sidebar .spacer{flex:1}.user{color:var(--muted);font-size:12.5px;padding:8px 10px;word-break:break-all}.main{padding:28px 32px 60px;max-width:1180px;width:100%}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}.sub{color:var(--muted);margin:0}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px;margin-bottom:18px}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-bottom:18px}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.stat .v{font-size:28px;font-weight:700}.stat .l{color:var(--muted);font-size:12.5px}table{width:100%;border-collapse:collapse}th{text-align:left;font-weight:600;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em;padding:8px 10px;border-bottom:1px solid var(--border)}td{padding:10px;border-bottom:1px solid var(--border);vertical-align:middle}tr:last-child td{border-bottom:none}.table-wrap{overflow-x:auto}td select{min-width:140px}.empty{color:var(--muted);padding:24px;text-align:center}button,.btn{font:inherit;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);padding:7px 12px;cursor:pointer}button:hover:not(:disabled){background:var(--surface-2)}button:disabled{opacity:.55;cursor:not-allowed}button.primary{background:var(--accent);color:var(--accent-text);border-color:var(--accent);font-weight:600}button.primary:hover:not(:disabled){filter:brightness(1.08);background:var(--accent)}button.danger{color:var(--bad)}button.small{padding:3px 9px;font-size:12.5px}.row-actions{display:flex;gap:6px;flex-wrap:wrap}label{display:block;font-size:12.5px;color:var(--muted);margin-bottom:4px}input,select,textarea{font:inherit;width:100%;padding:8px 10px;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text)}input:focus,select:focus,textarea:focus,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;align-items:end}.form-actions{margin-top:14px;display:flex;gap:8px}.days{display:flex;gap:4px;flex-wrap:wrap}.days label{display:inline-flex;align-items:center;gap:4px;margin:0;padding:5px 8px;border:1px solid var(--border);border-radius:8px;cursor:pointer;color:var(--text)}.days input{width:auto}.days label.on{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600;background:var(--surface-2);color:var(--muted)}.badge.ok{color:var(--ok)}.badge.warn{color:var(--warn)}.badge.bad{color:var(--bad)}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--muted);margin-right:6px}.dot.on{background:var(--ok)}.alert{padding:10px 14px;border-radius:8px;margin-bottom:14px;border:1px solid var(--border)}.alert.error{color:var(--bad);border-color:var(--bad)}.alert.ok{color:var(--ok);border-color:var(--ok)}.alert.secret{background:var(--surface-2);color:var(--text)}.secret-box{display:flex;gap:8px;align-items:center;margin-top:8px}.secret-box code{flex:1;word-break:break-all;padding:8px;background:var(--bg);border:1px solid var(--border);border-radius:8px}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:grid;place-items:center;padding:20px;z-index:10}.modal{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);padding:20px;width:min(640px,100%);max-height:88vh;overflow:auto}.pre{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:12px;overflow:auto;max-height:50vh;white-space:pre-wrap;word-break:break-word}.split{display:grid;grid-template-columns:1fr 1fr;gap:18px}.picker{max-height:320px;overflow:auto;border:1px solid var(--border);border-radius:8px}.picker .item{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:7px 10px;border-bottom:1px solid var(--border)}.picker .item:last-child{border-bottom:none}.muted{color:var(--muted)}.login{min-height:100vh;display:grid;place-items:center;padding:20px}.login .card{width:min(380px,100%)}.login form>div{margin-bottom:12px}@media (max-width: 820px){.shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center}.brand{padding:0 10px 0 4px}.sidebar .spacer{display:none}.main{padding:18px 16px 50px}.split{grid-template-columns:1fr}}.nav-head{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:14px 10px 4px}.nav a{font-size:13.5px}.pipeline{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin-bottom:18px}.stage{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;text-decoration:none;color:var(--text);position:relative}.stage:hover{border-color:var(--accent)}.stage-head{display:flex;align-items:center;gap:8px;font-weight:600;margin-bottom:6px}.stage-big{font-size:34px;font-weight:700;line-height:1.1}.stage-line{font-size:12.5px;color:var(--muted);margin-top:3px}.dotn{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--surface-2);color:var(--muted);font-size:12px;font-weight:700;margin-right:6px;border:1px solid var(--border)}.steps{display:flex;gap:6px;list-style:none;padding:0;margin:0 0 14px;flex-wrap:wrap}.steps li{display:flex;align-items:center;padding:4px 10px 4px 4px;border-radius:999px;background:var(--surface-2);color:var(--muted);font-size:12.5px}.steps li .dotn{margin-right:6px}.steps li.done{color:var(--text)}.steps li.done .dotn{background:var(--ok);color:#fff;border-color:var(--ok)}.steps li.now{color:var(--accent-text);background:var(--accent);font-weight:600}.steps li.now .dotn{background:var(--accent-text);color:var(--accent);border-color:transparent}.tabs{display:flex;gap:6px;flex-wrap:wrap}.tab{border-radius:999px;padding:5px 12px;font-size:13px}.tab.on{background:var(--accent);color:var(--accent-text);border-color:var(--accent);font-weight:600}.chip{display:inline-flex;gap:6px;align-items:center;padding:3px 8px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2)}.timeline{list-style:none;margin:0;padding:0 0 0 14px;border-left:2px solid var(--border)}.timeline li{margin-bottom:10px;position:relative;padding-left:10px}.timeline li:before{content:"";position:absolute;left:-20px;top:6px;width:9px;height:9px;border-radius:50%;background:var(--accent)}.stat.linked{text-decoration:none;color:var(--text);display:block}.stat.linked:hover{border-color:var(--accent)}.modal{width:min(820px,100%)}td select,td input{min-width:0}.cover{width:72px;height:72px;object-fit:cover;border-radius:10px;border:1px solid var(--border);flex:none;background:var(--surface-2)}.cover.blank{display:grid;place-items:center;font-size:26px;font-weight:700;color:var(--muted)}.thumb{width:56px;height:40px;object-fit:cover;border-radius:6px;border:1px solid var(--border);flex:none;background:var(--surface-2)}.cat-head{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.sub-list{display:flex;flex-direction:column;gap:10px;margin:14px 0 0 24px;padding-left:16px;border-left:2px solid var(--border)}.sub-item{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.sub-item .cover{width:52px;height:52px}.clamp2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.date-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.date-bar input[type=date]{width:auto}.check{display:inline-flex;align-items:center;gap:6px;margin:0 0 0 8px;color:var(--text);font-size:13.5px}.check input{width:auto}.day-strip{display:grid;grid-template-columns:repeat(7,minmax(70px,1fr));gap:8px}.day{display:flex;flex-direction:column;align-items:center;gap:1px;padding:8px 4px;border-radius:10px}.day.on{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.day .dow{font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;opacity:.75}.day .dnum{font-size:20px;font-weight:700;line-height:1.1}.day .dcount{font-size:11.5px;opacity:.6}.day .dcount.has{opacity:1;font-weight:600;color:var(--ok)}.day.on .dcount.has{color:inherit}.timeline-bar{display:flex;height:64px;border-radius:10px;overflow:hidden;border:1px solid var(--border);margin-bottom:10px;background:var(--surface-2)}.tl-seg{position:relative;min-width:2px;overflow:hidden;border-right:2px solid var(--surface)}.tl-seg img{width:100%;height:100%;object-fit:cover;display:block}.tl-seg span{position:absolute;left:4px;top:3px;background:#000000a6;color:#fff;font-size:11px;font-weight:700;padding:0 5px;border-radius:6px}.nav-group{display:flex;flex-direction:column}.nav-toggle{display:flex;justify-content:space-between;align-items:center;width:100%;padding:8px 10px;border:0;border-radius:8px;background:transparent;color:var(--text);font-size:13.5px;font-weight:600;text-align:left;cursor:pointer}.nav-toggle:hover{background:var(--surface-2)}.nav-toggle.has-active{color:var(--accent)}.nav-toggle .chev{color:var(--muted);font-size:12px}.nav-sub{display:flex;flex-direction:column;gap:2px;margin:2px 0 6px 10px;padding-left:8px;border-left:2px solid var(--border)}.sidebar .nav{overflow-y:auto;min-height:0}.prog-box{margin:10px 0 4px;padding:6px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);overflow-x:auto}.prog-list{width:100%;border-collapse:collapse;font-size:13.5px}.prog-list th{text-align:left;font-size:12px;color:var(--muted);font-weight:600;padding:4px 8px}.prog-list td{padding:6px 8px;border-top:1px solid var(--border)}
