:root{--ink:#17211f;--muted:#65706d;--paper:#f7f8f4;--panel:#fff;--line:#dce2dd;--green:#0f6b4e;--green-soft:#e2f2ea;--amber:#b35b00;--danger:#b42318}*{box-sizing:border-box}body{color:var(--ink);background:var(--paper);margin:0;font-family:Arial,Helvetica,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.login{background:radial-gradient(circle at top right, #d8eee4, transparent 45%), var(--paper);place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{border:1px solid var(--line);background:var(--panel);border-radius:18px;width:min(440px,100%);padding:36px;box-shadow:0 18px 50px #18352a1a}.brand{letter-spacing:.03em;color:var(--green);align-items:center;gap:10px;font-weight:800;display:flex}.brand-mark{color:#fff;background:var(--green);border-radius:9px;place-items:center;width:34px;height:34px;display:grid}.login h1{margin:30px 0 8px;font-size:29px}.login p{color:var(--muted);line-height:1.5}.app-shell{grid-template-columns:264px 1fr;min-height:100vh;display:grid}.sidebar{color:#ebf4ef;background:#102b23;height:100vh;padding:22px 14px;position:sticky;top:0;overflow-y:auto}.sidebar .brand{color:#fff;padding:4px 8px 24px}.sidebar .brand-mark{color:#102b23;background:#75be9a}.nav-group{color:#a5beb2;letter-spacing:.12em;margin:20px 0 6px;padding:0 10px;font-size:11px;font-weight:700}.nav-link{color:#dce9e2;border-radius:8px;padding:10px 12px;font-size:14px;display:block}.nav-link:hover,.nav-link.active{color:#fff;background:#1e4a3c}.content{min-width:0}.topbar{background:var(--panel);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:67px;padding:12px 30px;display:flex}.account{color:var(--muted);font-size:14px}.page{max-width:1480px;padding:30px}.page-title{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px;display:flex}.page-title h1{margin:0;font-size:28px}.page-title p{color:var(--muted);margin:7px 0 0}.cards{grid-template-columns:repeat(4,minmax(150px,1fr));gap:16px;display:grid}.metric{border:1px solid var(--line);background:var(--panel);border-radius:12px;padding:19px}.metric span{color:var(--muted);font-size:13px;display:block}.metric strong{margin-top:7px;font-size:31px;display:block}.panel{border:1px solid var(--line);background:var(--panel);border-radius:12px;margin-top:20px;padding:20px}.panel h2{margin:0 0 15px;font-size:17px}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.toolbar-left,.toolbar-right{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.field{gap:6px;font-size:13px;font-weight:600;display:grid}.field span{color:#45514d}input,select,textarea{width:100%;color:var(--ink);background:#fff;border:1px solid #bdc9c2;border-radius:7px;padding:10px 11px}textarea{resize:vertical;min-height:83px}.form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.form-grid .full{grid-column:1/-1}.checkbox{align-items:center;gap:8px;padding-top:25px;display:flex}.checkbox input{width:auto}.button{color:#fff;background:var(--green);border:0;border-radius:7px;padding:10px 14px;font-weight:700}.button:hover{background:#09543b}.button.secondary{color:var(--ink);background:#e6ece8}.button.danger{color:#fff;background:var(--danger)}.button:disabled{cursor:not-allowed;opacity:.55}.table-wrap{border:1px solid var(--line);border-radius:9px;overflow-x:auto}table{border-collapse:collapse;background:#fff;width:100%;font-size:14px}th,td{text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;padding:12px 13px}th{color:#56625d;text-transform:uppercase;letter-spacing:.04em;background:#f5f8f6;font-size:12px}tr:last-child td{border-bottom:0}tr.selected td{background:#eff8f3}.status{background:var(--green-soft);color:var(--green);border-radius:999px;padding:3px 8px;font-size:12px;font-weight:700;display:inline-block}.status.off{color:#69736f;background:#f0f1f0}.notice{color:#834600;background:#fff7e9;border:1px solid #efcd9a;border-radius:8px;margin-bottom:14px;padding:12px 14px}.error{color:#991b1b;background:#fef2f2;border-radius:7px;margin:12px 0;padding:10px 12px}.route-list{gap:13px;display:grid}.route-card{border:1px solid var(--line);background:#fff;border-radius:10px;padding:17px}.route-head{justify-content:space-between;align-items:flex-start;gap:15px;display:flex}.route-head h3{margin:0;font-size:17px}.route-head p{color:var(--muted);margin:5px 0 0;font-size:13px}.route-flow{align-items:stretch;gap:8px;padding:18px 0 4px;display:flex;overflow-x:auto}.route-step{background:#f5fbf7;border:1px solid #c7dacf;border-radius:8px;min-width:160px;padding:10px}.route-step b{color:var(--green);font-size:12px}.arrow{color:var(--green);align-self:center;font-weight:800}.warning-list{gap:9px;display:grid}.warning{border-left:4px solid var(--amber);color:#6c490d;background:#fffaf3;padding:12px}.audit-json{text-overflow:ellipsis;max-width:310px;color:var(--muted);overflow:hidden}@media (max-width:1000px){.app-shell{grid-template-columns:210px 1fr}.cards{grid-template-columns:repeat(3,1fr)}.form-grid{grid-template-columns:repeat(2,1fr)}.page{padding:22px}}@media (max-width:720px){.app-shell{display:block}.sidebar{height:auto;position:static;overflow:visible}.sidebar nav{flex-wrap:wrap;gap:3px;display:flex}.nav-group{width:100%}.nav-link{padding:8px 9px}.topbar{padding:11px 17px}.page{padding:18px}.cards{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:1fr}.page-title{display:block}.page-title .button{margin-top:15px}}
