:root{--bg: #f5f6f8;--surface: #ffffff;--ink: #14202e;--muted: #5b6675;--border: #dce2e8;--accent: #0f7268;--accent-ink: #0b564f;--good: #2e7d5b;--good-bg: #e2efec;--warn-bg: #fbeecb;--warn-ink: #8a5a12;--radius: 12px;--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif}@media (prefers-color-scheme: dark){:root{--bg: #0c141d;--surface: #131e29;--ink: #eaeff3;--muted: #95a2ad;--border: #253340;--accent: #46b4a5;--accent-ink: #7fd3c7;--good: #59bb8c;--good-bg: #10302c;--warn-bg: #2a2214;--warn-ink: #d6a860}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--sans);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}.app{min-height:100%;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:24px;padding:14px 24px;background:var(--surface);border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:12px}.mark{width:38px;height:38px;border-radius:9px;background:var(--accent);color:#fff;font-weight:700;display:grid;place-items:center;font-size:14px}.brand-title{font-weight:650;line-height:1.1}.brand-sub{font-size:12px;color:var(--muted)}.nav{display:flex;gap:6px;margin-left:8px}.nav a{padding:8px 14px;border-radius:8px;text-decoration:none;color:var(--muted);font-weight:550}.nav a:hover{color:var(--ink);background:color-mix(in srgb,var(--ink) 6%,transparent)}.nav a.active{color:var(--accent-ink);background:var(--good-bg)}.session{margin-left:auto;display:flex;align-items:center;gap:12px}.whoami{font-size:13px;color:var(--muted);font-weight:550}.linkbtn{font:inherit;font-size:13px;font-weight:600;cursor:pointer;background:none;border:none;color:var(--accent-ink);padding:4px 2px}.linkbtn:hover{text-decoration:underline}.auth-splash{display:grid;place-items:center;gap:12px;min-height:100vh;color:var(--muted)}.login{display:grid;place-items:center;min-height:100vh;padding:24px}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:32px;max-width:380px;width:100%;display:flex;flex-direction:column;gap:20px}.login-lead{margin:0;color:var(--muted);font-size:14px;line-height:1.5}.content{max-width:860px;width:100%;margin:0 auto;padding:32px 24px 64px}h1{font-size:26px;margin:0 0 4px}h2{font-size:17px;margin:0 0 4px}h3{font-size:15px;margin:0 0 4px}.muted{color:var(--muted)}.small{font-size:13px}.empty{color:var(--muted);padding:18px;background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius)}.stack{display:flex;flex-direction:column;gap:12px}.stack.lg{gap:28px}.stack.sm{gap:8px}.row{display:flex;align-items:center;gap:10px}.row.between{justify-content:space-between}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:22px}select,input[type=text],textarea{font:inherit;color:inherit;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:9px 11px;width:100%}textarea{resize:vertical}.field{display:flex;flex-direction:column;gap:5px}.field>span{font-size:13px;font-weight:600;color:var(--muted)}.check{display:flex;align-items:flex-start;gap:9px}.check input{margin-top:3px}.btn{font:inherit;font-weight:600;cursor:pointer;text-decoration:none;padding:9px 16px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--ink);display:inline-block}.btn:hover{border-color:var(--muted)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-ink)}.btn:disabled{opacity:.5;cursor:not-allowed}.cards{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px}.card-title{font-weight:600}.pill{font-size:12px;font-weight:650;padding:4px 10px;border-radius:999px;white-space:nowrap}.pill.completed{background:var(--good-bg);color:var(--good)}.pill.not_started,.pill.in_progress{background:var(--warn-bg);color:var(--warn-ink)}.notice{padding:11px 14px;border-radius:8px;font-size:14px}.notice.ok{background:var(--good-bg);color:var(--good)}.notice.warn{background:var(--warn-bg);color:var(--warn-ink)}.readonly{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:14px;overflow-x:auto;font-size:13px}.backlink{color:var(--muted);text-decoration:none;font-size:14px}.backlink:hover{color:var(--ink)}.qa-section{padding:18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.qa-section h2{font-size:16px}.qa-section .check span{font-size:14px;line-height:1.4}.qa-header{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media (max-width: 560px){.qa-header{grid-template-columns:1fr}}.dtable-wrap{display:flex;flex-direction:column;gap:8px;overflow-x:auto}.dtable{border-collapse:collapse;width:100%;min-width:520px;font-size:13px}.dtable th{text-align:left;font-size:12px;color:var(--muted);font-weight:650;padding:4px 6px;vertical-align:bottom}.dtable td{padding:3px 6px;vertical-align:top}.dtable input{padding:6px 8px}.small-btn{align-self:flex-start;padding:6px 12px;font-size:13px}.btn.ghost{border-color:transparent;background:transparent;color:var(--muted);padding:6px 10px}.btn.ghost:hover{color:var(--ink);background:color-mix(in srgb,var(--ink) 6%,transparent)}.filelist{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.filelist li{padding:8px 12px;background:var(--bg);border:1px solid var(--border);border-radius:8px;font-size:14px}
