:root{color:#18332f;font-synthesis:none;background:#f6f8f5;font-family:Inter,Microsoft YaHei,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;color:#fff;background:#176a61;border:0;border-radius:10px;padding:10px 15px}button:disabled{opacity:.5;cursor:not-allowed}a{color:#176a61}h1,h2,h3,p{margin-top:0}h1{font-size:2rem}h2{font-size:1.8rem}h3{font-size:1.1rem}.app-shell{min-height:100vh;display:flex}.sidebar{color:#eef8f3;background:#123d38;flex-direction:column;flex-shrink:0;gap:42px;width:250px;padding:28px 18px;display:flex}.brand{align-items:center;gap:11px;padding:0 10px;display:flex}.brand strong{font-size:1.2rem;display:block}.brand small{letter-spacing:.16em;opacity:.6;font-size:.57rem;display:block}.brand-mark{color:#164338;background:#c9e9aa;border-radius:11px;place-items:center;width:38px;height:38px;font-weight:800;display:grid}.sidebar nav{gap:7px;display:grid}.sidebar nav button{text-align:left;color:#cee2da;background:0 0}.sidebar nav button.active,.sidebar nav button:hover{color:#fff;background:#275a51}.sidebar-foot{border-top:1px solid #3b665e;margin-top:auto;padding:18px 10px 0}.sidebar-foot p{margin:0 0 14px}.sidebar-foot small{color:#a7c2b9}.sidebar-foot button{background:0 0;border:1px solid #6b8d83;width:100%}.content{flex:1;min-width:0}.topbar{color:#667a73;background:#fff;border-bottom:1px solid #e4ebe5;justify-content:space-between;align-items:center;height:62px;padding:0 34px;font-size:.9rem;display:flex}.main-inner{max-width:1300px;margin:0 auto;padding:34px}.page-heading,.row{justify-content:space-between;align-items:center;gap:16px;display:flex}.eyebrow{color:#428173;letter-spacing:.12em;margin-bottom:6px;font-size:.76rem;font-weight:700}.hint,.quiet{color:#70817b}.hint{font-size:.9rem;line-height:1.6}.page-heading h2{margin-bottom:8px}.card-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;display:grid}.card,.table-wrap{background:#fff;border:1px solid #e1eae2;border-radius:15px;box-shadow:0 5px 20px #18332f08}.card{padding:20px}.card p{color:#65756f;margin:9px 0;font-size:.88rem}.card button{margin-top:6px}.card h3{margin-bottom:9px}.badge{white-space:nowrap;border-radius:40px;padding:5px 9px;font-size:.76rem}.badge.live{color:#237040;background:#ddf2df}.badge.stale{color:#9b5d12;background:#fff0d2}.badge.never_seen,.badge.ended{color:#62716c;background:#edf0ef}.map,.map-fallback{border-radius:16px;height:300px;margin:20px 0;overflow:hidden}.map-fallback{text-align:center;color:#40655a;background:linear-gradient(130deg,#dbece4,#ecf3dc);place-items:center;padding:25px;display:grid}.stack{gap:12px;margin:16px 0 26px;display:grid}.empty{color:#788980;background:#f0f4ef;border-radius:12px;padding:24px}.toolbar{gap:14px;margin-bottom:20px;display:flex}.form-grid{flex-wrap:wrap;align-items:end;gap:15px;margin:18px 0;display:flex}.form-grid label,.toolbar label,.login-card label{gap:6px;font-size:.82rem;font-weight:650;display:grid}.form-grid input,.form-grid select,.toolbar input,.toolbar select,.login-card input{color:#18332f;background:#fff;border:1px solid #cbd9d0;border-radius:9px;min-width:170px;height:40px;padding:8px 10px}.form-grid button{height:40px}.table-wrap{margin-top:16px;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:650px}th,td{text-align:left;border-bottom:1px solid #e9eee8;padding:15px;font-size:.88rem}th{color:#5c726a;background:#f4f8f4;font-size:.78rem}tr:last-child td{border-bottom:0}td select{border:1px solid #d8e4d9;border-radius:8px;max-width:170px;padding:6px}.text-button{color:#176a61;background:0 0;padding:4px}.inline{white-space:nowrap;align-items:center;gap:7px;display:flex}.error,.success{border-radius:9px;padding:11px 14px}.error{color:#9b2b29;background:#fff0ed}.success{color:#266b3d;background:#e7f5e8}.login-shell{background:linear-gradient(135deg,#d8efe2,#f6f8f5);place-items:center;min-height:100vh;display:grid}.login-card{background:#fff;border-radius:18px;gap:15px;width:min(420px,100vw - 32px);padding:34px;display:grid;box-shadow:0 20px 70px #143a3024}.login-card .brand-mark{width:48px;height:48px}.login-card h1{margin:0}.login-card .hint{margin:0 0 7px}.login-card input,.login-card button{width:100%}.loading{padding:25px}.floating-error{background:#fff0ed;padding:10px;position:fixed;top:15px;right:15px}@media (width<=700px){.app-shell{display:block}.sidebar{gap:15px;width:auto;padding:14px}.sidebar nav{display:flex;overflow-x:auto}.sidebar nav button{white-space:nowrap}.sidebar-foot{display:none}.topbar{padding:0 16px}.main-inner{padding:20px 15px}.page-heading{align-items:flex-start}.toolbar{flex-wrap:wrap}}
