:root{--bg-0: #0a0b0f;--bg-1: #12141b;--bg-2: #1a1d26;--border: #2a2e3a;--border-hi: #3d4251;--text-0: #e8ebf0;--text-1: #a7adbb;--text-2: #6b7280;--accent: #ff3a3a;--accent-dim: #c12626;--danger: #ff5151;--ok: #ff3a3a;--warn: #fbbf24;--mono: "JetBrains Mono", ui-monospace, Menlo, monospace;--sans: "Space Grotesk", system-ui, sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--sans);background:var(--bg-0);color:var(--text-0);min-height:100vh;padding:2rem 1rem 4rem;background-image:radial-gradient(circle at 20% 10%,rgba(255,58,58,.03) 0%,transparent 40%),radial-gradient(circle at 80% 80%,rgba(255,58,58,.02) 0%,transparent 45%)}.container{max-width:1200px;margin:0 auto}.grain:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='a'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.08 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23a)'/%3E%3C/svg%3E");opacity:.4;z-index:1}header.masthead{display:grid;grid-template-columns:1fr auto;gap:2rem;align-items:start;padding-bottom:2rem;border-bottom:1px solid var(--border);margin-bottom:2.5rem}@media (max-width: 720px){header.masthead{grid-template-columns:1fr}}.brand{display:flex;flex-direction:column;gap:.4rem}.brand-mark{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--mono);font-size:.75rem;color:var(--accent);letter-spacing:.15em;text-transform:uppercase}.brand-mark:before{content:"";width:8px;height:8px;background:var(--accent);border-radius:50%;box-shadow:0 0 12px var(--accent);animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}h1{font-size:clamp(2rem,5vw,3.2rem);font-weight:700;letter-spacing:-.03em;line-height:1.05}h1 em{font-style:normal;color:var(--accent)}.brand-sub{color:var(--text-1);font-family:var(--mono);font-size:.8rem;margin-top:.3rem}.auth{display:flex;flex-direction:column;gap:.7rem;padding:1rem 1.2rem;background:var(--bg-1);border:1px solid var(--border);border-radius:10px;min-width:290px}.auth-row{display:flex;align-items:center;gap:.6rem}.auth-status{font-family:var(--mono);font-size:.72rem;color:var(--text-2);text-transform:uppercase;letter-spacing:.1em}.auth-principal{font-family:var(--mono);font-size:.72rem;color:var(--text-1);word-break:break-all;line-height:1.4}.role-badge{display:inline-block;padding:.2rem .6rem;font-family:var(--mono);font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;border-radius:4px}.role-sovereign{background:var(--accent);color:#000;font-weight:700}.role-public{background:var(--border);color:var(--text-1)}.role-anon{background:transparent;border:1px dashed var(--border-hi);color:var(--text-2)}button,.btn{font-family:var(--sans);font-size:.85rem;font-weight:600;padding:.65rem 1.2rem;border-radius:6px;border:1px solid var(--border-hi);background:var(--bg-2);color:var(--text-0);cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .1s ease;letter-spacing:.02em}button:hover,.btn:hover{background:var(--border);border-color:var(--text-2)}button:active,.btn:active{transform:scale(.98)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--accent);color:#000;border-color:var(--accent)}button.primary:hover{background:#ff5a5a;border-color:#ff5a5a}button.danger{color:var(--danger);border-color:var(--danger);background:transparent}button.danger:hover{background:#ff51511a}button.ghost{background:transparent;border-color:var(--border)}.grid{display:grid;gap:1.5rem;grid-template-columns:1fr}@media (min-width: 900px){.grid.two{grid-template-columns:1fr 1fr}}section.panel{background:var(--bg-1);border:1px solid var(--border);border-radius:12px;padding:1.5rem 1.6rem}section.panel h2{font-size:.85rem;font-weight:600;color:var(--text-0);text-transform:uppercase;letter-spacing:.12em;margin-bottom:.3rem;display:flex;align-items:center;gap:.6rem}section.panel h2:before{content:"";width:16px;height:2px;background:var(--accent)}section.panel .subtitle{color:var(--text-2);font-size:.8rem;margin-bottom:1.2rem;font-family:var(--mono)}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:2rem}.stat{background:var(--bg-1);border:1px solid var(--border);padding:1rem 1.2rem;border-radius:10px}.stat-label{font-family:var(--mono);font-size:.7rem;color:var(--text-2);text-transform:uppercase;letter-spacing:.1em}.stat-value{font-size:1.7rem;font-weight:700;font-family:var(--mono);color:var(--accent);margin-top:.3rem;word-break:break-all}input[type=text],textarea{width:100%;font-family:var(--mono);font-size:.85rem;background:var(--bg-0);border:1px solid var(--border);color:var(--text-0);padding:.7rem .9rem;border-radius:6px;transition:border-color .15s ease}input[type=text]:focus,textarea:focus{outline:none;border-color:var(--accent)}textarea{resize:vertical;min-height:70px}label{display:block;font-size:.75rem;color:var(--text-1);font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.4rem}.form-row{margin-bottom:1rem}.dropzone{border:2px dashed var(--border-hi);border-radius:8px;padding:1.8rem;text-align:center;background:var(--bg-0);transition:border-color .2s ease,background .2s ease;cursor:pointer}.dropzone:hover,.dropzone.drag{border-color:var(--accent);background:#ff3a3a0a}.dropzone-label{font-family:var(--mono);font-size:.8rem;color:var(--text-1)}.dropzone-file{font-family:var(--mono);font-size:.75rem;color:var(--accent);margin-top:.5rem;word-break:break-all}.chain-list{display:flex;flex-direction:column;gap:.6rem;max-height:480px;overflow-y:auto;padding-right:.4rem}.chain-list::-webkit-scrollbar{width:8px}.chain-list::-webkit-scrollbar-track{background:var(--bg-0)}.chain-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.cert{background:var(--bg-0);border:1px solid var(--border);border-left:2px solid var(--accent);border-radius:6px;padding:.9rem 1rem;transition:border-color .15s ease}.cert:hover{border-left-color:#ff5a5a}.cert-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.3rem;flex-wrap:wrap}.cert-index{font-family:var(--mono);font-size:.72rem;color:var(--accent);font-weight:700}.cert-name{font-weight:600;font-size:.9rem;flex:1}.cert-meta{font-family:var(--mono);font-size:.7rem;color:var(--text-2);line-height:1.5;word-break:break-all}.cert-notes{color:var(--text-1);font-size:.8rem;margin-top:.35rem;font-style:italic}.result{font-family:var(--mono);font-size:.8rem;padding:.8rem 1rem;border-radius:6px;margin-top:.8rem;border:1px solid var(--border);background:var(--bg-0);word-break:break-all;line-height:1.5}.result.ok{border-color:var(--ok);color:var(--ok)}.result.err{border-color:var(--danger);color:var(--danger)}.result.warn{border-color:var(--warn);color:var(--warn)}#toast{position:fixed;bottom:1.5rem;right:1.5rem;background:var(--bg-2);border:1px solid var(--border-hi);padding:.9rem 1.2rem;border-radius:8px;font-family:var(--mono);font-size:.8rem;z-index:100;opacity:0;transform:translateY(10px);transition:all .25s ease;pointer-events:none;max-width:400px}#toast.show{opacity:1;transform:translateY(0)}#toast.ok{border-color:var(--ok);color:var(--ok)}#toast.err{border-color:var(--danger);color:var(--danger)}footer{margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--border);font-family:var(--mono);font-size:.7rem;color:var(--text-2);text-align:center;line-height:1.8}footer a{color:var(--text-1);text-decoration:none;border-bottom:1px dotted var(--border-hi)}footer a:hover{color:var(--accent);border-color:var(--accent)}.mono{font-family:var(--mono)}.hidden{display:none!important}.hash-copy{cursor:pointer;border-bottom:1px dashed var(--border-hi);transition:color .15s ease}.hash-copy:hover{color:var(--accent);border-color:var(--accent)}.canister-copy{cursor:pointer;color:var(--text-0);transition:color .15s ease}.canister-copy:hover{color:var(--accent)}.cert-time{font-family:var(--mono);font-size:.7rem;color:var(--text-2);white-space:nowrap}
