:root{--bg: #f6f7f9;--card: #fff;--text: #1a1a2e;--muted: #6b7280;--up: #d64545;--down: #1a9c5b;--accent: #2f5bea;font-family:system-ui,-apple-system,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}.page{max-width:960px;margin:0 auto;padding:24px 16px}h1{font-size:22px}h2{font-size:16px}.muted{color:var(--muted);font-size:13px}.error{color:var(--up);font-size:13px}.notice{margin-top:16px;padding:10px 12px;background:#eef2ff;border-radius:8px}.auth-card{max-width:320px;margin:96px auto;padding:24px;background:var(--card);border-radius:12px;box-shadow:0 4px 20px #0000000f}.auth-card form{display:flex;flex-direction:column;gap:10px}input{padding:10px 12px;border:1px solid #e5e7eb;border-radius:8px;font-size:14px}button{padding:10px 14px;border:none;border-radius:8px;background:var(--accent);color:#fff;font-size:14px;cursor:pointer}button:hover{opacity:.92}.topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;background:var(--card);border-bottom:1px solid #eef0f4}.topbar .brand{font-weight:700}.topbar .brand-logo{height:26px;display:block}.topbar-actions{display:flex;align-items:center;gap:20px}.topbar-actions .link{background:none;color:var(--accent);padding:0;font-size:14px;text-decoration:none}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.card{display:block;padding:16px;background:var(--card);border-radius:12px;text-decoration:none;color:inherit;box-shadow:0 2px 10px #0000000d}.card-title{font-weight:600;display:flex;align-items:center;gap:8px}.card-nav{font-size:28px;font-weight:700;margin:8px 0 2px}.card-unit{font-size:15px;font-weight:600;color:var(--muted)}.badge{font-size:11px;background:#fde68a;color:#92400e;padding:2px 6px;border-radius:6px}.row{display:flex;justify-content:space-between;font-size:13px;margin-top:6px}.up{color:var(--up)}.down{color:var(--down)}.range-tabs{display:flex;gap:8px;margin:12px 0;flex-wrap:wrap}.range-tabs button{background:#eef0f4;color:var(--text)}.range-tabs button.active{background:var(--accent);color:#fff}.muted.small{font-size:12px}.detail-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}.detail-nav{text-align:right}.detail-nav-value{font-size:30px;font-weight:700}.dual{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:12px;margin-top:8px}.metrics>div{display:flex;flex-direction:column;gap:4px}.metrics b{font-size:18px}.metrics .unit{font-size:12px;font-weight:600;color:var(--muted)}.table-scroll{max-height:320px;overflow-y:auto}.pager{display:flex;align-items:center;gap:16px;margin-top:12px}.pager button:disabled{color:#9ca3af;cursor:not-allowed}.note-input{width:100%;padding:10px 12px;border:1px solid #e5e7eb;border-radius:8px;font-size:14px;font-family:inherit;resize:vertical}.note-box{background:#fffbeb;border:1px solid #fde68a;color:#92400e;border-radius:10px;padding:12px 14px;margin:12px 0;white-space:pre-wrap;line-height:1.6}.admin-shell{display:flex;min-height:100vh}.sidebar{width:220px;flex-shrink:0;background:#1f2430;color:#cbd5e1;display:flex;flex-direction:column}.sidebar h3{color:#fff;font-size:15px;padding:20px;margin:0;border-bottom:1px solid #2c3340}.sidebar nav{display:flex;flex-direction:column;padding:8px 0;flex:1}.sidebar nav a{padding:12px 20px;color:#cbd5e1;text-decoration:none;font-size:14px;border-left:3px solid transparent}.sidebar nav a:hover{background:#262c3a}.sidebar nav a.active{background:#262c3a;color:#fff;border-left-color:var(--accent)}.sidebar .logout{margin:16px 20px;background:#2c3340}.admin-content{flex:1;min-width:0;overflow-x:auto}.panel{background:var(--card);border-radius:12px;padding:16px;margin-bottom:16px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;align-items:center}select{padding:10px 12px;border:1px solid #e5e7eb;border-radius:8px;font-size:14px;background:#fff}.chk{display:flex;align-items:center;gap:6px;font-size:13px}.chk input{width:auto}.datefield{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.datefield input{font-size:14px;color:var(--text)}table.grid{width:100%;border-collapse:collapse;font-size:13px}table.grid th,table.grid td{text-align:left;padding:8px 10px;border-bottom:1px solid #eef0f4}table.grid th{color:var(--muted);font-weight:600}table.grid tr.sel{background:#eef2ff}table.grid tr.void td{color:#9ca3af;text-decoration:line-through}.actions{display:flex;gap:10px;flex-wrap:wrap}button.link{background:none;color:var(--accent);padding:0;font-size:13px}button.link.danger{color:var(--up)}.audit-detail{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:8px 0}.audit-detail pre{background:#f6f7f9;border-radius:8px;padding:10px;font-size:12px;overflow-x:auto;margin:4px 0 0}table.grid td.err{color:var(--up);max-width:280px;overflow:hidden;text-overflow:ellipsis}.st-ok{color:var(--down)}.st-fail{color:var(--up);font-weight:600}.st-run{color:var(--accent)}.st-pending{color:var(--muted)}
