:root{--bg:#07100f;--panel:#0d1816;--panel2:#12211e;--line:#254039;--text:#eef8f4;--muted:#91aaa2;--green:#3ee6a4;--green2:#18b77b;--amber:#f5c451;--red:#ff6f78;--blue:#69a8ff;--shadow:0 24px 70px rgba(0,0,0,.34)}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 10% 0,#123128 0,transparent 32%),var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;min-height:100vh}button,input,textarea,select{font:inherit}button{cursor:pointer}.muted{color:var(--muted)}.eyebrow{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--green);margin:0 0 8px}.offline-banner{position:fixed;z-index:50;top:0;left:0;right:0;padding:9px 16px;text-align:center;background:#7a3b00;color:#fff;font-weight:700}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(440px,100%);background:linear-gradient(160deg,rgba(18,33,30,.98),rgba(8,17,15,.98));border:1px solid var(--line);border-radius:24px;padding:34px;box-shadow:var(--shadow)}.brand-mark{width:58px;height:58px;border-radius:18px;background:var(--green);display:grid;place-items:center;color:#04261a;font-weight:950;letter-spacing:-.08em;margin-bottom:24px}.brand-mark.small{width:38px;height:38px;border-radius:12px;margin:0;font-size:13px}.login-card h1{font-size:34px;margin:0 0 10px}.login-card label,.field{display:grid;gap:7px;font-size:13px;color:#cfe1db;margin-top:18px}.login-card input,input,textarea,select{width:100%;border:1px solid var(--line);background:#081310;color:var(--text);border-radius:10px;padding:11px 12px;outline:none}input:focus,textarea:focus,select:focus{border-color:var(--green2);box-shadow:0 0 0 3px rgba(62,230,164,.1)}textarea{min-height:96px;resize:vertical}.primary,.secondary,.ghost{border-radius:10px;padding:11px 14px;font-weight:750}.primary{border:0;background:var(--green);color:#04261a}.login-card .primary{width:100%;margin-top:22px}.secondary{border:1px solid var(--line);background:var(--panel2);color:var(--text)}.ghost{border:0;background:transparent;color:var(--muted)}button:disabled{opacity:.45;cursor:not-allowed}.security-note{font-size:12px;color:var(--muted);line-height:1.6}.message{min-height:20px;color:var(--red)}.app-shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;padding:22px 16px;border-right:1px solid var(--line);background:rgba(7,16,15,.9);display:flex;flex-direction:column;backdrop-filter:blur(18px)}.brand{display:flex;gap:12px;align-items:center;padding:0 8px 22px}.brand div{display:grid;gap:3px}.brand small{color:var(--muted);font-size:11px}.sidebar nav{display:grid;gap:5px}.sidebar nav button{display:flex;justify-content:space-between;border:0;border-radius:10px;background:transparent;color:var(--muted);padding:11px 12px;text-align:left}.sidebar nav button:hover,.sidebar nav button.active{background:var(--panel2);color:var(--text)}.sidebar nav button.active{box-shadow:inset 3px 0 var(--green)}.sidebar-footer{margin-top:auto;display:grid;gap:8px}.main{padding:26px 30px 60px;min-width:0}.topbar{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:24px}.topbar h1{font-size:30px;margin:0}.status-stack{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.pill{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;padding:5px 9px;background:#0c1916;color:#bcd1ca;font-size:11px}.pill.ok,.safe{color:var(--green)}.pill.warning{color:var(--amber)}.pill.bad{color:var(--red)}.user-label{font-size:12px;color:var(--muted)}.metrics{display:grid;grid-template-columns:repeat(6,minmax(130px,1fr));gap:12px;margin-bottom:18px}.metrics article,.panel{background:linear-gradient(160deg,var(--panel2),var(--panel));border:1px solid var(--line);border-radius:15px;box-shadow:0 12px 36px rgba(0,0,0,.14)}.metrics article{padding:16px}.metrics span{color:var(--muted);font-size:12px}.metrics strong{display:block;font-size:32px;margin:8px 0 3px}.metrics small{color:#6f8c83}.grid{display:grid;gap:16px}.grid.two{grid-template-columns:1fr 1fr}.panel{padding:18px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.panel h2{font-size:16px;margin:0}.rule-list{padding-left:20px;line-height:1.8;color:#c9d9d4}.toolbar{display:flex;gap:12px;align-items:center;margin-bottom:14px}.toolbar input{max-width:520px}.split{display:grid;grid-template-columns:minmax(310px,38%) minmax(420px,1fr);gap:14px;align-items:start}.item-list,.detail-panel{background:var(--panel);border:1px solid var(--line);border-radius:15px;min-height:68vh;overflow:hidden}.item-list{max-height:calc(100vh - 150px);overflow:auto}.item{display:block;width:100%;border:0;border-bottom:1px solid rgba(37,64,57,.75);background:transparent;color:var(--text);text-align:left;padding:14px}.item:hover,.item.active{background:var(--panel2)}.item.active{box-shadow:inset 3px 0 var(--green)}.item-row{display:flex;justify-content:space-between;gap:8px;align-items:center}.item b{font-size:14px}.item p{color:var(--muted);font-size:12px;margin:6px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.detail-panel{padding:18px;max-height:calc(100vh - 150px);overflow:auto}.empty{display:grid;place-items:center;min-height:50vh;color:var(--muted)}.detail-title{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:14px}.detail-title h2{margin:0 0 6px;font-size:21px}.detail-title p{margin:0;color:var(--muted)}.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0}.fact{background:#091411;border:1px solid var(--line);padding:10px;border-radius:10px}.fact span{display:block;color:var(--muted);font-size:11px;margin-bottom:5px}.fact b{font-size:13px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.full{grid-column:1/-1}.field.checkbox{display:flex;align-items:center;grid-template-columns:auto 1fr;gap:9px;border:1px solid var(--line);background:#091411;padding:12px;border-radius:10px}.field.checkbox input{width:auto;margin:0}.warning-box,.safe-box{border-radius:10px;padding:11px 12px;font-size:12px;line-height:1.55}.warning-box{background:rgba(245,196,81,.08);border:1px solid rgba(245,196,81,.35);color:#ffe49a}.safe-box{background:rgba(62,230,164,.07);border:1px solid rgba(62,230,164,.3);color:#abf4d7}.send-gates{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.gate{border:1px solid var(--line);border-radius:9px;padding:8px;color:var(--red);font-size:11px}.gate.pass{color:var(--green);border-color:rgba(62,230,164,.35)}.actions{display:flex;gap:10px;align-items:center;margin-top:14px}.timeline{display:grid;gap:9px}.timeline-item{border:1px solid var(--line);border-radius:10px;padding:11px;background:#091411}.timeline-item header{display:flex;justify-content:space-between;gap:10px}.timeline-item b{font-size:13px}.timeline-item time{font-size:11px;color:var(--muted)}.timeline-item p{margin:7px 0 0;color:#bfd2cc;font-size:12px;word-break:break-word}.toast{position:fixed;right:20px;bottom:20px;max-width:420px;padding:12px 15px;border-radius:10px;background:#172925;border:1px solid var(--line);box-shadow:var(--shadow);transform:translateY(30px);opacity:0;pointer-events:none;transition:.2s}.toast.show{transform:none;opacity:1}.toast.bad{border-color:var(--red)}.toast.ok{border-color:var(--green)}a{color:var(--blue);word-break:break-all}
@media(max-width:1100px){.metrics{grid-template-columns:repeat(3,1fr)}.split{grid-template-columns:1fr}.item-list{min-height:260px;max-height:320px}.detail-panel{max-height:none}.app-shell{grid-template-columns:210px 1fr}.main{padding:22px 20px}.send-gates{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.app-shell{display:block}.sidebar{position:relative;width:100%;height:auto;border-right:0;border-bottom:1px solid var(--line)}.sidebar nav{grid-template-columns:repeat(2,1fr)}.sidebar-footer{margin-top:14px}.main{padding:18px 12px}.topbar{display:grid}.status-stack{justify-content:flex-start}.metrics{grid-template-columns:repeat(2,1fr)}.grid.two,.form-grid{grid-template-columns:1fr}.full{grid-column:auto}.facts{grid-template-columns:1fr 1fr}}
