:root{--bg:#f5f6f8;--panel:#fff;--line:#e6e8eb;--text:#1f2329;--muted:#8a9099;--brand:#ff5a1f;--brand-dark:#e64a16;--green:#18a058;--red:#d03050;--blue:#2080f0;--radius:10px;--shadow:0 1px 3px rgba(0,0,0,.06),0 1px 2px rgba(0,0,0,.04)}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,Hiragino Sans GB,sans-serif;font-size:14px;line-height:1.6}a{color:inherit;text-decoration:none}.nav{display:flex;align-items:center;gap:4px;background:var(--panel);border-bottom:1px solid var(--line);padding:0 20px;height:56px;position:-webkit-sticky;position:sticky;top:0;z-index:10}.nav .logo{font-weight:700;font-size:16px;margin-right:16px;color:var(--brand);white-space:nowrap}.nav a.tab{padding:8px 14px;border-radius:8px;color:var(--muted);font-weight:500}.nav a.tab.active{color:var(--brand);background:#fff3ee}.nav a.tab:hover{color:var(--text)}.nav .spacer{flex:1 1}.nav .logout{color:var(--muted);font-size:13px;cursor:pointer}.nav .logout:hover{color:var(--red)}.container{max-width:1180px;margin:0 auto;padding:24px 20px 60px}.page-title{font-size:20px;font-weight:700;margin:0 0 4px}.page-sub{color:var(--muted);margin:0 0 20px;font-size:13px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;margin-bottom:18px}.card h3{margin:0 0 14px;font-size:15px}.field{margin-bottom:14px}.field label{display:block;font-size:13px;color:var(--muted);margin-bottom:6px}input,select,textarea{width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:8px;font-size:14px;background:#fff;color:var(--text);outline:none;font-family:inherit}input:focus,select:focus,textarea:focus{border-color:var(--brand)}.row{display:flex;gap:12px;flex-wrap:wrap}.row>*{flex:1 1;min-width:120px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 16px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--text);font-size:14px;font-weight:500;cursor:pointer;transition:all .12s}.btn:hover{border-color:#cfd3d8}.btn.primary{background:var(--brand);color:#fff;border-color:var(--brand)}.btn.primary:hover{background:var(--brand-dark);border-color:var(--brand-dark)}.btn.ghost{background:transparent}.btn.danger{color:var(--red)}.btn.danger:hover{background:#fff1f3;border-color:var(--red)}.btn.sm{padding:5px 10px;font-size:13px}.btn:disabled{opacity:.5;cursor:not-allowed}table{width:100%;border-collapse:collapse;font-size:13px}td,th{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line)}th{color:var(--muted);font-weight:600;position:-webkit-sticky;position:sticky;top:56px}th,tr:hover td{background:#fafbfc}.table-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.tag{display:inline-block;padding:2px 8px;border-radius:20px;font-size:12px;background:#f0f1f3;color:var(--muted)}.tag.blue{background:#e8f3ff;color:var(--blue)}.tag.green{background:#e7f7ee;color:var(--green)}.tag.red{background:#fdeef1;color:var(--red)}.tag.brand{background:#fff3ee;color:var(--brand)}.over{color:var(--red);font-weight:700}.ok{color:var(--green)}.muted{color:var(--muted)}.title-out{background:#fafbfc;border:1px dashed var(--line);border-radius:8px;padding:14px;font-size:16px;font-weight:600;letter-spacing:.5px;word-break:break-all}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:14px;gap:14px}.stat{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px}.stat .num{font-size:28px;font-weight:700;color:var(--brand)}.stat .lbl{color:var(--muted);font-size:13px;margin-top:2px}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#fff5f0,#f5f6f8)}.login-box{background:#fff;padding:36px 32px;border-radius:16px;box-shadow:0 8px 30px rgba(0,0,0,.08);width:340px;text-align:center}.login-box .brand{font-size:24px;font-weight:800;color:var(--brand);margin-bottom:4px}.login-box .desc{color:var(--muted);font-size:13px;margin-bottom:24px}.err{color:var(--red);font-size:13px;margin-top:10px;min-height:18px}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.toolbar .spacer{flex:1 1}.empty{text-align:center;color:var(--muted);padding:40px}.inline-edit{display:flex;gap:6px;align-items:center}