:root{--ground:#0F1A26;--surface:#16232F;--surface-2:#1C2C3A;--line:#26384A;--text:#E6EDF3;--muted:#8294A6;--faint:#5A6E81;--accent:#46D6C0;--accent-ink:#06231F;--amber:#E8B341;--rose:#F2706B;--blue:#5AA6F0;--mono:ui-monospace,"SF Mono","JetBrains Mono",Menlo,Consolas,monospace;--sans:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color-scheme:dark}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{background:radial-gradient(1200px 600px at 78% -10%,#16313a33,transparent 60%),var(--ground);color:var(--text);font-family:var(--sans);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,textarea,select{font-family:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app{display:grid;grid-template-columns:232px 1fr;min-height:100vh}.nav{background:linear-gradient(180deg,#13202c,#0e1822);border-right:1px solid var(--line);padding:20px 14px;display:flex;flex-direction:column;gap:4px}.brand{display:flex;align-items:center;gap:10px;padding:6px 8px 22px}.brand .mark{width:30px;height:30px;border-radius:8px;flex:none;background:conic-gradient(from 200deg,var(--accent),#2f8fb0,#46D6C0);display:grid;place-items:center;color:var(--accent-ink);font-weight:800;box-shadow:0 0 0 1px #ffffff14,0 6px 18px #46d6c033}.brand b{font-size:15px;letter-spacing:.2px}.brand small{display:block;font-size:11px;color:var(--muted);letter-spacing:.12em;text-transform:uppercase}.navitem{display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:8px;color:var(--muted);font-weight:500}.navitem svg{width:17px;height:17px;flex:none}.navitem:hover{background:#ffffff08;color:var(--text)}.navitem.active{background:#46d6c014;color:var(--text);box-shadow:inset 0 0 0 1px #46d6c033}.navitem.active svg{color:var(--accent)}.nav .group{margin:18px 8px 6px;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint)}.nav .foot{margin-top:auto;padding:10px 8px;border-top:1px solid var(--line);color:var(--faint);font:500 11px/1.5 var(--mono)}.nav .foot a{color:var(--accent);cursor:pointer}.main{display:flex;flex-direction:column;min-width:0}.top{display:flex;align-items:center;gap:16px;padding:20px 28px;border-bottom:1px solid var(--line)}.top h1{font-size:19px;margin:0;font-weight:650;letter-spacing:.2px}.top .count{font:600 12px/1 var(--mono);color:var(--accent);background:#46d6c012;border:1px solid #46d6c033;padding:5px 8px;border-radius:999px}.spacer{flex:1}.search{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:8px 11px;color:var(--muted);min-width:230px}.search input{background:none;border:0;outline:0;color:var(--text);font-size:13px;width:100%}.search svg{width:15px;height:15px;flex:none}.btn{display:inline-flex;align-items:center;gap:8px;border-radius:9px;padding:9px 14px;font-weight:600;font-size:13px;cursor:pointer;border:1px solid transparent}.btn:disabled{opacity:.5;cursor:default}.btn svg{width:15px;height:15px}.btn-primary{background:var(--accent);color:var(--accent-ink);box-shadow:0 6px 16px #46d6c029}.btn-primary:hover{filter:brightness(1.06)}.btn-ghost{background:var(--surface);border-color:var(--line);color:var(--text)}.btn-ghost:hover{border-color:#3a5163}.btn-danger{background:#f2706b14;border-color:#f2706b44;color:var(--rose)}.filters{display:flex;gap:8px;padding:14px 28px 0;flex-wrap:wrap}.chip{font:600 12px/1 var(--sans);color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:7px 12px;cursor:pointer;display:flex;align-items:center;gap:7px}.chip.on{color:var(--text);border-color:#46d6c055;background:#46d6c010}.chip .dot{width:7px;height:7px;border-radius:50%}.content{display:grid;grid-template-columns:1fr 392px;flex:1;min-height:0}.content.full{grid-template-columns:1fr}.listwrap{padding:18px 28px 28px;overflow:auto}table{width:100%;border-collapse:collapse}thead th{text-align:left;font:600 10.5px/1 var(--sans);letter-spacing:.13em;text-transform:uppercase;color:var(--faint);padding:14px 14px 12px}tbody tr{cursor:pointer}tbody td{padding:13px 14px;border-top:1px solid var(--line);vertical-align:middle}tbody tr:hover td{background:#ffffff06}tbody tr.sel td{background:#46d6c00e}tbody tr.sel td:first-child{box-shadow:inset 3px 0 0 var(--accent)}tbody tr.recent td{background:#46d6c00a}tbody tr.recent td:first-child{box-shadow:inset 3px 0 0 var(--blue)}tbody tr.recent.sel td:first-child{box-shadow:inset 3px 0 0 var(--accent)}.recent-tag{margin-left:8px;font:700 9.5px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--blue);background:#5aa6f016;border:1px solid #5aa6f03a;border-radius:5px;padding:3px 6px;vertical-align:middle}.empty{padding:60px 20px;text-align:center;color:var(--faint)}.who{display:flex;flex-direction:column;gap:3px}.who b{font-weight:600}.who span{color:var(--muted);font:500 12px/1.2 var(--mono)}.serial{font:500 12.5px/1 var(--mono);color:var(--muted);letter-spacing:.2px}.serial b{color:var(--text);font-weight:600}.badge{display:inline-flex;align-items:center;gap:7px;font:600 12px/1 var(--sans);padding:6px 10px;border-radius:7px;white-space:nowrap}.badge .dot{width:7px;height:7px;border-radius:50%;background:currentColor}.s-active{color:var(--accent);background:#46d6c012}.s-soon{color:var(--amber);background:#e8b34112}.s-expired{color:var(--faint);background:#ffffff06}.s-revoked{color:var(--rose);background:#f2706b12}.s-pending{color:var(--blue);background:#5aa6f012}.gauge{width:170px}.gauge .track{position:relative;height:6px;border-radius:4px;background:#ffffff10}.gauge .fill{position:absolute;inset:0 auto 0 0;border-radius:4px;background:linear-gradient(90deg,#2f8fb0,var(--accent))}.gauge .fill.warn{background:linear-gradient(90deg,#b9863a,var(--amber))}.gauge .fill.dead{background:#3a4d5e}.gauge .now{position:absolute;top:-3px;width:2px;height:12px;background:var(--text);border-radius:2px;box-shadow:0 0 0 2px var(--ground)}.gauge .lbl{display:flex;justify-content:space-between;margin-top:6px;font:500 10.5px/1 var(--mono);color:var(--faint)}.gauge .lbl .rem{color:var(--muted)}.detail{border-left:1px solid transparent;border-image:linear-gradient(180deg,transparent 0%,var(--line) 16%,var(--line) 84%,transparent 100%) 1;background:linear-gradient(180deg,#15222e,#121d28);overflow:auto;padding:24px 22px 22px}.eyebrow{font:600 10.5px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--faint)}.detail h2{font-size:17px;margin:8px 0 2px;font-weight:650}.detail .sub{color:var(--muted);font:500 12.5px/1.3 var(--mono)}.panelcard{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px;margin-top:16px}.kv{display:grid;grid-template-columns:118px 1fr;gap:9px 12px;align-items:start;margin:0}.kv dt{color:var(--faint);font:600 11px/1.5 var(--sans)}.kv dd{margin:0;font:500 12.5px/1.4 var(--mono);color:var(--text);word-break:break-all}.biggauge .dates{display:flex;justify-content:space-between;font:600 11px/1 var(--mono);color:var(--muted);margin-bottom:9px}.biggauge .track{height:9px;border-radius:5px;background:#ffffff10;position:relative}.biggauge .fill{position:absolute;inset:0 auto 0 0;border-radius:5px;background:linear-gradient(90deg,#2f8fb0,var(--accent))}.biggauge .fill.warn{background:linear-gradient(90deg,#b9863a,var(--amber))}.biggauge .fill.dead{background:#3a4d5e}.biggauge .now{position:absolute;top:-4px;width:2px;height:17px;background:var(--text);box-shadow:0 0 0 2px var(--surface)}.biggauge .cap{margin-top:9px;font:500 11.5px/1 var(--sans);color:var(--muted);display:flex;justify-content:space-between}.chain{display:flex;align-items:center;margin-top:4px}.node{display:flex;flex-direction:column;align-items:center;gap:7px;flex:none;width:84px}.node .ring{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;border:1.5px solid #46d6c055;background:#46d6c010;color:var(--accent)}.node .ring svg{width:16px;height:16px}.node small{font:600 10px/1.2 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--faint);text-align:center}.node b{font:600 11px/1 var(--mono);color:var(--text)}.link{height:1.5px;flex:1;background:linear-gradient(90deg,#46d6c055,#46d6c0aa);min-width:18px;position:relative;top:-13px}.dethead{display:flex;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none;margin:-2px 0;color:var(--faint);transition:color .12s}.dethead:hover{color:var(--muted)}.dethead .eyebrow{flex:1;color:inherit}.dethead .chev{width:16px;height:16px;color:var(--muted);transition:transform .15s}.dethead.open .chev{transform:rotate(180deg)}.segmented{display:inline-flex;background:var(--ground);border:1px solid var(--line);border-radius:9px;padding:3px;gap:3px;margin-bottom:14px}.segmented .seg{font:600 12px/1 var(--sans);color:var(--muted);background:none;border:0;border-radius:6px;padding:6px 12px;cursor:pointer;transition:background .12s,color .12s}.segmented .seg:hover{color:var(--text)}.segmented .seg.on{background:#46d6c014;color:var(--accent);box-shadow:inset 0 0 0 1px #46d6c044}.codehead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px;font:500 11px/1.5 var(--sans);color:var(--faint)}.codehead code{font:inherit;font-family:var(--mono);color:var(--muted)}.codeblock{margin:0;padding:12px 13px;border-radius:9px;background:var(--ground);border:1px solid var(--line);font:500 12px/1.5 var(--mono);color:var(--text);overflow:auto;max-height:280px}.opts{display:flex;flex-wrap:wrap;gap:7px}.opt{font:600 11.5px/1 var(--mono);color:var(--text);background:var(--surface-2);border:1px solid var(--line);border-radius:7px;padding:7px 9px}.opt em{color:var(--accent);font-style:normal}.actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:18px}.actions .btn{flex:1 1 auto;justify-content:center}.hint{margin-top:14px;font:500 11.5px/1.5 var(--sans);color:var(--faint);display:flex;gap:8px}.hint svg{width:14px;height:14px;flex:none;color:var(--accent);margin-top:2px}textarea,input.field,select.field{width:100%;background:var(--ground);border:1px solid var(--line);border-radius:8px;color:var(--text);padding:9px 11px;font-size:13px}textarea,input.field,select.field{transition:border-color .12s}textarea:hover,input.field:hover,select.field:hover{border-color:#3a5163}textarea:focus,input.field:focus,select.field:focus{border-color:#46d6c0aa;outline:none}textarea{font-family:var(--mono);min-height:90px;resize:vertical}select.field{-moz-appearance:none;appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:34px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14' fill='none' stroke='%238294A6' stroke-width='1.6'><path d='M3 5.5 7 9.5 11 5.5'/></svg>");background-repeat:no-repeat;background-position:right 11px center;background-size:14px}select.field option{background:var(--surface);color:var(--text)}label.lbl{display:block;font:600 11px/1.6 var(--sans);color:var(--faint);letter-spacing:.04em;margin-top:12px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#06101a99;display:grid;place-items:center;padding:24px;z-index:50}.modal{background:var(--surface);border:1px solid var(--line);border-radius:14px;width:min(520px,100%);padding:22px;box-shadow:0 24px 60px #0008}.modal h3{margin:0 0 4px;font-size:17px}.modal .muted{color:var(--muted);font-size:12.5px}.modal .row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.modal .foot{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}.err{color:var(--rose);font-size:12.5px;margin-top:10px}svg{stroke-width:1.7}
