 :root{--ink:#15233b;--muted:#64748b;--blue:#245ce0;--line:#e5eaf1;--paper:#f5f7fa;--nav:#112038}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer;transition:background .18s,box-shadow .18s}button:disabled{opacity:.55;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #93b4ff;outline-offset:2px}button{border:0}aside{position:fixed;top:var(--occ-bar-height,0px);bottom:0;width:224px;background:var(--nav);padding:35px 20px;color:#fff}.brand{display:flex;align-items:center;gap:13px;padding:0 12px;letter-spacing:2px;font-size:10px;line-height:1.8;color:#bdcbe0}.brand b{font-size:12px;color:#fff}.mark{display:grid;place-items:center;background:#3568e6;color:white;width:40px;height:40px;border-radius:10px;font-size:26px;font-weight:800;letter-spacing:-3px}.workspace{font-size:10px;letter-spacing:1.5px;color:#9cacc2;padding:46px 13px 15px}.nav{width:100%;height:46px;display:flex;align-items:center;justify-content:space-between;border-radius:7px;background:transparent;color:#b7c5d8;padding:0 14px;margin:5px 0;text-align:left}.nav.active{background:#273a57;color:white}.nav:hover{background:#273a57}.nav span{font:11px monospace;opacity:.6}.aside-footer{position:absolute;bottom:26px;left:30px;color:#b6c4d8;font-size:11px}.dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#7bc3aa;margin-right:5px}.aside-footer small{display:block;font:9px monospace;letter-spacing:1px;margin-top:15px;color:#8fa2bd}main{margin-left:224px;padding:0 40px;max-width:1900px}header{height:74px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}.slash{padding:0 12px;color:#b3bfce}#sync{font-size:11px}.heading{display:flex;align-items:center;justify-content:space-between;padding:38px 0 29px;gap:20px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2.4px;color:var(--muted)}h1{font-size:32px;letter-spacing:-1px;margin:7px 0 5px;font-weight:750}.title-dot{color:var(--blue);padding-left:3px}.heading p{margin:0;color:var(--muted);font-size:13px}.primary{background:var(--blue);color:#fff;border-radius:6px;padding:11px 19px;min-height:44px;font-weight:600;white-space:nowrap}.primary:hover{background:#1846b5;box-shadow:0 5px 14px #245ce025}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px}.stats button{background:white;border:1px solid var(--line);border-radius:8px;padding:21px 24px;text-align:left;position:relative}.stats button:hover{border-color:#a6baf0}.stats span,.stats small{display:block;color:var(--muted)}.stats span{font-size:12px}.stats strong{display:block;font-size:32px;line-height:1.5;letter-spacing:-1px;font-variant-numeric:tabular-nums}.stats small{font-size:10px}.stats button:nth-child(3) strong{color:#b46c15}.stats button:nth-child(4) strong{color:#168264}.panel{background:#fff;border:1px solid var(--line);border-radius:9px;overflow:hidden}.panel-head{display:flex;justify-content:space-between;align-items:center;padding:21px 24px;border-bottom:1px solid var(--line)}.panel-head>div{display:flex;align-items:center;gap:12px}.panel-head h2{margin:0;font-size:16px}.panel-head span{font-size:11px;color:var(--muted);background:var(--paper);padding:3px 9px;border-radius:4px}.quiet{background:transparent;color:var(--muted);min-height:44px;padding:9px 12px;border-radius:5px}.quiet:hover{background:#edf2fc;color:var(--blue)}.filters{display:flex;align-items:center;gap:10px;padding:18px 24px}.search{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:5px;padding:0 11px;flex:1;max-width:400px;color:var(--muted)}.search input{border:0;width:100%;min-width:0;background:transparent}.search span{font-size:22px}input,select,textarea{background:#fff;border:1px solid #d8e0ea;color:var(--ink);border-radius:5px;padding:10px 11px;min-height:44px}select{max-width:160px}textarea{resize:vertical}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;min-width:880px}th{font-size:11px;font-weight:500;color:var(--muted);background:#f8fafc;padding:12px 18px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);white-space:nowrap}th:first-child,td:first-child{padding-left:24px}td{padding:18px;border-bottom:1px solid #edf0f5;vertical-align:middle;font-size:12px}tbody tr:hover{background:#fafcff}.project-name{font-weight:650;font-size:13px;display:block;color:var(--ink);margin-bottom:4px;max-width:250px;overflow-wrap:anywhere}.sub{color:var(--muted);font-size:11px}.badge{display:inline-block;border-radius:4px;padding:4px 9px;white-space:nowrap;font-size:10px;font-weight:600;background:#edf1f6;color:#536279}.badge.running{background:#eaf0ff;color:#2454bd}.badge.blocked{background:#fff0ed;color:#b4442d}.badge.waiting{background:#fff5dc;color:#8e6509}.badge.completed{background:#e6f5ee;color:#177250}.priority{white-space:nowrap}.priority.high{color:#b4442d}.progress{width:90px}.progress-label{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin-bottom:5px}.track{height:4px;background:#e9eef6;border-radius:3px;overflow:hidden}.track i{display:block;height:100%;background:#4874e5;border-radius:3px}.due{white-space:nowrap;font-variant-numeric:tabular-nums}.overdue{color:#b4442d}.next{max-width:240px;overflow-wrap:anywhere}.risk{color:#a45a24;font-size:10px;margin-top:4px}.actions{display:flex;align-items:center}.actions button{min-width:44px;padding:7px;font-size:11px;color:var(--muted);background:transparent;border-radius:4px;min-height:44px}.actions button:hover{background:#edf2fc;color:var(--blue)}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}.empty{text-align:center;padding:65px 20px 75px}.empty-icon{margin:auto;border:1px solid #dbe5f8;border-radius:14px;width:52px;height:52px;display:grid;place-items:center;background:#f2f6ff;color:#7391d9;font-size:29px}.empty h3{font-size:17px;font-weight:600;margin:18px 0 6px}.empty p{color:var(--muted);font-size:12px;margin-bottom:24px}.table-foot{display:flex;justify-content:space-between;padding:13px 24px;color:var(--muted);font-size:10px;background:#fcfdff}footer{padding:24px 0 30px;font-size:9px;letter-spacing:1.7px;color:#8391a5;display:flex;justify-content:space-between}footer span{letter-spacing:.4px}dialog{border:0;border-radius:12px;width:min(660px,calc(100vw - 24px));padding:0;box-shadow:0 25px 80px #13233d40;max-height:88vh;color:var(--ink)}dialog::backdrop{background:#10203c66;backdrop-filter:blur(3px)}.dialog-head{padding:23px 26px 16px;display:flex;justify-content:space-between;align-items:center}.dialog-head h2{margin:5px 0 0;font-size:22px}.close{font-size:24px;background:transparent;color:var(--muted);min-width:44px;min-height:44px;border-radius:5px}.form-grid{padding:0 26px;display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid label{font-size:12px;font-weight:600}.form-grid input,.form-grid select,.form-grid textarea{display:block;width:100%;max-width:none;margin-top:5px;font-weight:400;font-size:13px}.full{grid-column:1/-1}em{color:#b4442d;font-style:normal}.dialog-actions{display:flex;justify-content:flex-end;gap:12px;padding:18px 26px;border-top:1px solid var(--line);margin-top:15px}.dialog-actions .close{font-size:14px}#form-error{color:#b4442d;margin:15px 26px;font-size:12px}#toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);background:#17283e;color:white;padding:12px 22px;border-radius:7px;box-shadow:0 5px 20px #0002;z-index:100;display:none}#loading,#error{padding:24px;color:var(--muted)}#error{color:#b4442d}[hidden]{display:none!important}@media(min-width:1500px){main{padding:0 55px}}@media(max-width:1100px){aside{width:184px;padding-left:12px;padding-right:12px}main{margin-left:184px;padding:0 24px}.stats{gap:10px}.stats button{padding:18px}.filters{flex-wrap:wrap}.search{max-width:none;flex-basis:100%}}@media(max-width:700px){aside{position:relative;top:auto;width:100%;padding:16px;display:flex;flex-wrap:wrap;gap:6px}.brand{flex-basis:100%;padding:0 0 12px}.brand br{display:none}.brand b{padding-left:5px}.mark{width:30px;height:30px;font-size:22px}.workspace,.aside-footer,.nav span{display:none}.nav{width:auto;flex:1;justify-content:center;padding:0 9px;font-size:12px;margin:0;height:44px}main{margin:0;padding:0 16px}header{height:53px;font-size:11px}.heading{padding:28px 0 22px;align-items:flex-start}.heading .primary{padding:10px;font-size:12px;margin-top:21px}h1{font-size:26px}.heading p{font-size:11px}.eyebrow{font-size:9px;letter-spacing:1.5px}.stats{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:19px}.stats button{padding:16px}.stats strong{font-size:27px}.panel-head{padding:14px}.filters{padding:12px;gap:8px}.filters select{flex:1;min-width:0;max-width:none;font-size:11px;padding:9px 5px}.panel-head h2{font-size:14px}.panel-head span{font-size:10px}.table-wrap{overflow:auto}.table-foot{padding:12px;gap:10px;font-size:9px}.form-grid{grid-template-columns:1fr;padding:0 18px}.full{grid-column:auto}.dialog-head,.dialog-actions{padding-left:18px;padding-right:18px}footer{font-size:8px;letter-spacing:1px}.empty{padding:45px 15px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}