:root{--yellow:#ffd60a;--orange:#f28c42;--orange-hover:#e67f31;--orange-soft:#ffe3c7;--milk:#ffd3b2;--bg:#ffeada;--ink:#17120e;--black:#17120e;--muted:#5a5148;--line:#f0dcc6;--green:#1db954;--red:#e5484d;--gray:#6b6259}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);margin:0;padding:0;font-family:Source Han Sans SC,Noto Sans SC,PingFang SC,Microsoft YaHei,system-ui,sans-serif;font-weight:500}a{color:var(--ink);text-decoration:none}button{cursor:pointer;font-family:inherit}.num,.oswald,.mono-num,h1,h2,.big-num{font-family:Oswald,Source Han Sans SC,Noto Sans SC,system-ui,sans-serif}.logo{letter-spacing:.12em;align-items:center;gap:6px;font-family:Oswald,sans-serif;font-size:22px;font-weight:700;display:inline-flex}.flash{width:auto;height:26px}.sidebar .flash polygon,.login-card .flash polygon{fill:var(--orange)}.layout{min-height:100vh;display:flex}.sidebar{color:#fff;background:#241811;flex-shrink:0;width:216px;height:100vh;padding:18px 12px;position:sticky;top:0;overflow:auto}.sidebar nav{flex-direction:column;gap:2px;margin-top:22px;display:flex}.sidebar nav a{color:#dcd2c6;border-radius:6px;padding:9px 12px;font-size:14px}.sidebar nav a.active{background:var(--orange);color:#17120e;font-weight:700}.sidebar nav a:hover{color:#fff;background:#f28c4238}.sidebar nav a.active:hover{color:#17120e;background:var(--orange-hover)}.nav-group{margin-bottom:10px}.nav-group-head{color:#b7a88f;letter-spacing:.22em;cursor:pointer;text-align:left;background:0 0;border:none;border-bottom:1px solid #f28c4240;justify-content:space-between;align-items:center;width:100%;padding:8px 12px 7px;font-size:13px;font-weight:700;display:flex}.nav-group-head:hover{color:#fff}.nav-group-head.has-active{color:#f5c396}.nav-chevron{letter-spacing:0;opacity:.85;font-size:11px}.nav-group-items{flex-direction:column;gap:2px;margin-top:4px;display:flex}.nav-group-items a{padding-left:22px}.sidebar nav a.nav-screen{color:#17120e;background:var(--orange);font-weight:700}.sidebar nav a.nav-screen:hover{color:#17120e;background:var(--orange-hover)}.main{flex:1;min-width:0}.topbar{border-bottom:3px solid var(--orange);z-index:5;background:#fffdfb;flex-wrap:wrap;align-items:center;gap:16px;padding:10px 22px;display:flex;position:sticky;top:0}.content{max-width:1280px;padding:22px}.card{border:1px solid var(--line);background:#fff;border-radius:10px;margin-bottom:16px;padding:16px;box-shadow:0 1px 3px #b0601a12}.card h2{margin:0 0 12px;font-size:18px}.grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;display:grid}.stat{border:1px solid var(--line);border-top:4px solid var(--orange);background:#fff;border-radius:10px;padding:16px;box-shadow:0 1px 3px #b0601a12}.stat .v{font-size:40px;font-weight:700;line-height:1}.stat .l{color:var(--muted);margin-top:6px;font-size:13px}table{border-collapse:collapse;width:100%;font-size:14px}th{text-align:left;color:var(--muted);border-bottom:2px solid var(--ink);padding:8px;font-weight:600}td{vertical-align:top;border-bottom:1px solid #f3e4d2;padding:8px}tr.row-red td{background:#fdecec}.btn{background:var(--orange);color:#17120e;border:1.5px solid #17120e;border-radius:6px;padding:7px 14px;font-size:13px;font-weight:700}.btn:hover:not(:disabled){background:var(--orange-hover)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.secondary{background:#fff}.btn.secondary:hover:not(:disabled){background:#fff3e6}.btn.dark{color:#fff;background:#17120e}.btn.dark:hover:not(:disabled){background:#17120e}.btn.danger{color:var(--red);border-color:var(--red);background:#fff}.btn.small{padding:3px 9px;font-size:12px}input,select,textarea{color:var(--ink);background:#fff;border:1px solid #d9c3ab;border-radius:6px;padding:8px 10px;font-family:inherit;font-size:14px}input:focus,select:focus,textarea:focus{border-color:var(--orange);outline-offset:0;outline:2px solid #f28c4259}label{color:#453c34;flex-direction:column;gap:4px;font-size:13px;display:flex}.form{flex-wrap:wrap;align-items:end;gap:12px;display:flex}.form label{flex:1;min-width:140px}.badge{color:#453c34;background:#f8f1e8;border:1px solid #e4d6c4;border-radius:99px;align-items:center;gap:6px;padding:2px 9px;font-size:12px;font-weight:700;display:inline-flex}.badge .dot{background:#999;border-radius:50%;width:8px;height:8px}.badge.b-green{color:#0d7a37;background:#e7f7ee;border-color:#bfe8cf}.badge.b-green .dot{background:var(--green)}.badge.b-yellow{background:var(--orange-soft);color:#17120e;border-color:#f2b183}.badge.b-yellow .dot{background:var(--orange)}.badge.b-red{color:#a61e24;background:#fdecec;border-color:#f3c2c4}.badge.b-red .dot{background:var(--red)}.msg{border-radius:8px;margin:10px 0;padding:10px 14px;font-size:14px}.msg.err{color:#8f1d22;background:#fdecec;border:1px solid #f3c2c4}.msg.ok{color:#0d7a37;background:#e7f7ee}.empty{color:var(--gray);text-align:center;background:#fffbf5;border:1px dashed #e2cbae;border-radius:8px;padding:18px}.steps{flex-wrap:wrap;gap:0;margin:10px 0;display:flex}.step{text-align:center;min-width:90px;color:var(--gray);border-bottom:4px solid #ebd7be;flex:1;padding:10px 4px;font-size:13px}.step.done{border-color:var(--green);color:var(--ink)}.step.cur{border-color:var(--orange);color:var(--ink);font-weight:800}.bar{background:#f6e4cf;border-radius:99px;min-width:120px;height:10px;overflow:hidden}.bar-fill{height:100%}.big-num{font-size:34px;font-weight:700}.flex{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.mt{margin-top:12px}.small{color:var(--muted);font-size:12px}.login-wrap{background:linear-gradient(135deg,#ffd3b2 0%,#ffeada 78%);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{border-top:8px solid var(--orange);background:#fff;border-radius:12px;width:360px;max-width:92vw;padding:32px;box-shadow:0 10px 32px #b0601a29}.login-card input{width:100%;margin-bottom:12px}.login-card .btn{width:100%;padding:11px}.screen{color:#fff;background:#000;min-height:100vh;padding:28px 40px;font-family:Oswald,Source Han Sans SC,Noto Sans SC,sans-serif}.screen h1{letter-spacing:.06em;margin:0;font-size:34px}.screen .cur{color:#fff;margin:18px 0 4px;font-size:52px;font-weight:700}.screen table{color:#fff}.screen th{color:#999;border-color:var(--yellow);font-size:18px}.screen td{border-color:#2a2a2a;padding:12px 10px;font-size:22px}.screen .rank{color:var(--yellow);font-size:34px;font-weight:700}.screen .time{font-size:38px;font-weight:700}.screen .next{border:1.5px solid var(--yellow);color:#eee;border-radius:8px;margin-top:26px;padding:14px 18px}.tl-row{align-items:stretch;gap:10px;margin:4px 0;display:flex}.tl-time{width:128px;color:var(--muted);text-align:right;flex-shrink:0;padding-top:4px;font-size:13px;line-height:1.5}.tl-track{background:#fffbf5;border:1px dashed #e2cbae;border-radius:8px;flex:1;height:42px;position:relative}.tl-block{background:var(--orange);color:#17120e;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;text-align:left;border:1.5px solid #17120e;border-radius:6px;max-width:100%;height:34px;padding:0 10px;font-size:13px;font-weight:700;position:absolute;top:4px;overflow:hidden}.tl-block:hover{background:var(--orange-hover)}.tl-block.conflict{border-color:var(--red);color:#a61e24;background:#fdecec}.tl-gap{color:var(--muted);margin:2px 0 2px 138px;font-size:12px}.tl-gap.overlap{color:#a61e24;font-weight:700}.tl-warn{color:#a61e24;margin:2px 0 6px 138px;font-size:12.5px}.card{overflow-x:auto}@media (width<=820px){.layout{flex-direction:column}.sidebar{width:100%;height:auto;padding:12px;position:static;overflow:visible}.sidebar nav{flex-wrap:wrap;gap:8px;display:flex}.nav-group{flex:45%;margin-bottom:6px}.nav-group-items a{padding-left:12px}.topbar{padding:10px 12px;position:sticky;top:0}.content,.card{padding:12px}.grid{grid-template-columns:1fr}.form label{flex:100%;min-width:0}input,select,textarea{font-size:16px}table{min-width:640px}.btn{padding:10px 16px;font-size:14px}.btn.small{padding:8px 12px;font-size:13px}.stat .v{font-size:32px}.tl-time{width:84px}.tl-gap,.tl-warn{margin-left:94px}}@media (width<=480px){.nav-group{flex:100%}.content{padding:10px}h1{font-size:22px}}
