:root{color-scheme:dark;--bg:#17181a;--panel:#202124;--raised:#292b30;--line:#36383f;--text:#f0f0f3;--muted:#b5b9c4;--accent:#b4a0ff;--green:#77d6aa;--amber:#f1c67e}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:17px/1.65 system-ui,-apple-system,"Noto Sans TC",sans-serif}button,input,select,textarea{font:inherit;color:inherit}button,a,input,select,textarea{outline-offset:4px}button{cursor:pointer;background:var(--raised);border:1px solid var(--line);border-radius:10px;padding:9px 15px;transition:background .15s,box-shadow .15s}button:hover:not(:disabled){background:#37333f;box-shadow:0 0 12px #b4a0ff22}button:disabled{opacity:.5;cursor:wait}button.primary{background:#52417f;border-color:#ad97ed}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.nav{position:fixed;inset:0 auto 0 0;width:260px;background:#141517;border-right:1px solid var(--line);padding:25px 16px;display:flex;flex-direction:column;gap:9px;overflow:auto}.brand{font-size:23px;font-weight:750;color:#fff;margin:0 10px 22px}.nav nav{display:grid;gap:6px}.nav button,.nav>a:not(.brand){text-align:left;border:0;background:transparent;padding:10px 12px;font-size:17px;color:var(--muted)}.nav button.active{background:var(--raised);color:#fff}.caption{font-size:13px;letter-spacing:.06em;color:var(--muted);margin:12px 9px}.nav-foot{margin-top:auto;color:var(--muted);font-size:13px;padding:24px 9px}main{margin-left:260px;padding:30px 38px;max-width:2000px}header{display:flex;justify-content:space-between;align-items:center;gap:18px}h1{font-size:32px;margin:6px 0 20px}h2{font-size:22px;margin:5px 0 14px}h3{font-size:18px;margin:6px 0}p{margin:9px 0}small,.muted{color:var(--muted);font-size:15px}.banner{border:1px solid #3c354e;background:#211e2a;border-radius:12px;padding:14px 18px;color:#c9c0db;font-size:15px}#notice{min-height:34px;color:var(--amber);padding-top:8px}.toolbar,.actions,.tabs{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:12px 0 18px}.tabs button.active{border-color:var(--accent);color:var(--accent)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:16px}.split{display:grid;grid-template-columns:minmax(260px,1fr) minmax(340px,1.5fr);gap:20px}.customer{display:grid;grid-template-columns:minmax(210px,.8fr) minmax(320px,1.6fr) minmax(270px,1fr);gap:16px}.card,.panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:20px;margin-bottom:14px;min-width:0}.card.selected{border-color:var(--accent)}.card button.row{background:none;border:0;text-align:left;width:100%;padding:0}.badge{display:inline-block;background:var(--raised);border-radius:7px;padding:2px 8px;font-size:13px;color:var(--muted);margin:0 5px 4px 0}.badge.ok{color:var(--green)}.number{font-size:35px;font-weight:650}.message{border-left:3px solid var(--accent);padding:15px 20px;background:#27252d;border-radius:0 14px 14px 0;margin:17px 0}.message p,.prewrap{white-space:pre-wrap;overflow-wrap:anywhere}.message.customer-message{border-color:var(--green)}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.day{min-height:105px;background:var(--raised);border:1px solid var(--line);border-radius:8px;padding:8px;font-size:14px}.day.blank{visibility:hidden}.day.today{border-color:var(--accent)}.day span{display:block}.graph{width:100%;height:440px;background:radial-gradient(ellipse,#30243755,transparent 70%);border-radius:12px}.graph line{stroke:#8f74b0;stroke-opacity:.55}.graph circle{fill:#e4b89e;filter:drop-shadow(0 0 6px #d8936b)}.graph text{fill:#e5e5eb;font-size:14px}.graph g{cursor:pointer}.graph g:focus circle{stroke:#fff;stroke-width:3}.timeline{position:relative;border-left:1px solid var(--line);margin-left:10px;padding-left:22px}.timeline .card:before{content:"";width:9px;height:9px;background:var(--accent);border-radius:50%;position:absolute;left:-5px;margin-top:15px}label{display:block;margin:12px 0 6px;color:var(--muted)}input,select,textarea{border:1px solid #484a54;border-radius:9px;background:#191a1d;width:100%;padding:10px 12px}input[type=checkbox]{width:auto;margin-right:10px}textarea{min-height:100px;resize:vertical}select[multiple]{min-height:130px}.field-help{font-size:13px;color:var(--muted)}dialog{color:var(--text);background:var(--panel);border:1px solid #56505f;border-radius:20px;padding:26px;max-height:88vh;width:min(750px,94vw);overflow:auto}dialog::backdrop{background:#000b}pre{font:14px/1.6 monospace;white-space:pre-wrap;overflow-wrap:anywhere;max-height:48vh;overflow:auto;background:#151619;padding:15px;border-radius:9px}.evidence{font-size:13px;word-break:break-all;border-top:1px solid var(--line);padding-top:10px;margin-top:10px}.empty{padding:35px 16px;color:var(--muted);text-align:center}.progress{height:8px;background:var(--line);border-radius:10px;margin:10px 0}.progress>i{display:block;height:100%;background:var(--accent);border-radius:10px}.related{max-height:300px;overflow:auto}.nav button:focus-visible,button:focus-visible{outline:2px solid var(--accent)}@media(max-width:1250px){.customer{grid-template-columns:220px 1fr}.customer>.panel:last-child{grid-column:1/-1}}@media(max-width:900px){.nav{position:static;width:100%;border-bottom:1px solid var(--line);padding:12px}.nav nav{grid-template-columns:repeat(auto-fit,minmax(145px,1fr))}.nav-foot,.nav>.caption,.nav>a:not(.brand){display:none}.brand{margin:0}.nav button{font-size:15px}main{margin:0;padding:20px}.split,.customer{grid-template-columns:1fr}.customer>.panel:last-child{grid-column:auto}.day{min-height:80px;padding:4px;font-size:12px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
.gantt{margin:16px 0}.gantt>button{background:transparent;border:0;padding:0}.gantt-track{height:22px;position:relative;background:#292b30;border:1px solid #45404e;border-radius:6px;overflow:hidden}.gantt-track i{position:absolute;height:100%;background:#8f78c066;border:1px solid #b4a0ff;border-radius:4px}
[hidden]{display:none!important}.initiative{border-top:1px solid var(--line);padding:18px 0}.initiative-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px;border-left:1px solid var(--line);margin:12px 0 0 12px;padding-left:15px}.initiative-row>button{text-align:left;background:transparent;border:0;padding-left:0;flex:1;min-width:170px}
