:root{--ink:#172b3a;--muted:#6c7a89;--line:#e5eaef;--bg:#f6f8fa;--paper:#fff;--brand:#196e67;--brand-dark:#0f514d;--soft:#e9f5f2;--warn:#d97706;--good:#15803d}*{box-sizing:border-box}body{margin:0;background:var(--bg);font:14px/1.45 Inter,"Microsoft YaHei",Arial,sans-serif;color:var(--ink)}button,input,select,textarea{font:inherit}button{cursor:pointer}.login{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 20% 20%,#c7ebe4,transparent 32%),radial-gradient(circle at 80% 75%,#f7dfb4,transparent 32%),#f7faf9}.login-card{width:min(390px,92vw);padding:38px;background:#fff;border:1px solid #e0e8e6;border-radius:20px;box-shadow:0 24px 65px #14453b1c}.login-mark{display:grid;place-items:center;width:46px;height:46px;border-radius:13px;background:var(--brand);color:#fff;font-weight:800;letter-spacing:.5px}.login h1{margin:18px 0 4px;font-size:25px}.muted{color:var(--muted)}.form{display:grid;gap:14px;margin-top:18px}.form label{display:grid;gap:6px;font-weight:650}.form input,.form select,.form textarea,.toolbar input,.toolbar select,td select{width:100%;border:1px solid #dbe3e9;border-radius:9px;padding:10px;background:#fff;color:var(--ink)}textarea{resize:vertical}.btn{border:0;border-radius:9px;padding:10px 14px;background:var(--brand);color:#fff;font-weight:750}.btn:hover{background:var(--brand-dark)}.btn.secondary{background:#edf3f2;color:var(--brand-dark)}.btn.small{padding:7px 10px;font-size:12px}.shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}.side{display:flex;flex-direction:column;background:#143f43;color:#eff9f7;padding:22px 14px}.brand{display:flex;align-items:center;gap:9px;padding:6px 10px 30px;font-size:19px;font-weight:850}.brand-dot{width:11px;height:11px;border-radius:50%;background:#80d0c2;box-shadow:0 0 0 5px #ffffff13}.brand small{display:block;position:absolute;margin:38px 0 0 20px;color:#b8d6d2;font-size:11px;font-weight:500}.nav{display:grid;gap:5px}.nav button{border:0;background:transparent;color:#cfe3df;text-align:left;padding:11px 12px;border-radius:8px;font-weight:600}.nav button.active,.nav button:hover{color:#fff;background:#27666a}.account{display:grid;gap:5px;margin-top:auto;padding:16px 10px 0;border-top:1px solid #ffffff24}.account span{font-size:12px;color:#b8d6d2}.text-button{justify-self:start;padding:0;margin-top:8px;border:0;background:none;color:#cfe3df;font-size:12px}.main{width:100%;max-width:1600px;margin:auto;padding:28px 32px}.top{display:flex;align-items:end;justify-content:space-between;margin-bottom:24px}.top h1{margin:3px 0 0;font-size:27px}.eyebrow{margin:0;color:var(--brand);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.today{color:var(--muted);font-size:13px}.metrics{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));gap:14px}.metrics.compact{grid-template-columns:repeat(3,minmax(130px,1fr));margin-bottom:18px}.metric,.panel{background:var(--paper);border:1px solid var(--line);border-radius:14px;box-shadow:0 5px 16px #21354708}.metric{min-height:122px;padding:17px}.metric span{color:var(--muted);font-size:12px}.metric strong{display:block;margin:7px 0 4px;font-size:28px}.metric small{color:#8a97a4;font-size:11px}.metric.warn strong{color:var(--warn)}.metric.good strong{color:var(--good)}.split{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:18px;margin-top:18px}.panel{padding:18px;margin-top:18px}.split .panel{margin-top:0}.panel-head,.toolbar,.row-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-head h2,.panel h2{margin:0;font-size:18px}.panel-head p{margin:5px 0 0;color:var(--muted);font-size:12px}.toolbar{margin-top:17px;flex-wrap:wrap}.toolbar input{max-width:340px}.table-wrap{overflow:auto;margin-top:14px}table{border-collapse:collapse;width:100%;min-width:700px}th,td{padding:11px 9px;text-align:left;border-bottom:1px solid #edf0f3;vertical-align:middle;white-space:nowrap}th{color:#718093;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}td b{display:block}td small{display:block;margin-top:2px;color:var(--muted);font-size:11px}.status,.pill{display:inline-block;padding:4px 8px;border-radius:999px;background:#edf3f5;color:#536371;font-size:11px;font-weight:700}.status.needs{background:#e8f7ed;color:#16713a}.status.following,.status.considering{background:#eaf4ff;color:#2468a5}.status.no_need,.status.age_under,.status.age_over{background:#fff0ed;color:#b34737}.status.recycled{background:#f2ebfb;color:#7151a6}.empty{text-align:center!important;color:var(--muted);padding:34px}.insight{display:grid;align-content:start;gap:14px}.insight div{padding:12px;border-radius:10px;background:#f4f8f7}.insight b{display:block;font-size:23px;color:var(--brand)}.insight span{font-size:12px;color:var(--muted)}.insight p{margin:2px 0 0;font-size:12px}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.settings-grid .panel{margin:0}.settings-grid .wide{grid-column:1/-1}.setting-row{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid #edf0f3}.setting-row+button{margin-top:16px}.rule-list{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:15px}.rule-list div{padding:13px;background:#f7faf9;border-radius:10px}.rule-list b,.rule-list span{display:block}.rule-list span{margin-top:5px;color:var(--muted);font-size:12px}.modal{position:fixed;z-index:20;inset:0;display:grid;place-items:center;padding:18px;background:#102d3155}.modal-box{width:min(590px,96vw);max-height:90vh;overflow:auto;padding:22px;background:#fff;border-radius:16px;box-shadow:0 20px 55px #102d3160}.modal-head,.modal-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}.modal-head h2{margin:0;font-size:19px}.modal-actions{justify-content:flex-end;margin-top:22px}.icon-button{width:30px;height:30px;border:0;border-radius:8px;background:#edf3f2;color:#355}.grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.full{grid-column:1/-1}@media(max-width:1050px){.metrics{grid-template-columns:repeat(3,1fr)}.split,.settings-grid{grid-template-columns:1fr}.settings-grid .wide{grid-column:auto}.rule-list{grid-template-columns:1fr}}@media(max-width:760px){.shell{grid-template-columns:1fr}.side{min-height:auto;padding:15px}.brand{padding-bottom:20px}.nav{grid-template-columns:repeat(2,1fr)}.account{display:none}.main{padding:20px 14px}.metrics,.metrics.compact{grid-template-columns:repeat(2,1fr)}.top{align-items:start}.today{display:none}.grid{grid-template-columns:1fr}.full{grid-column:auto}.rule-list{grid-template-columns:1fr}}
