.app{display:grid;grid-template-columns:248px 1fr;min-height:100vh;background:var(--paper);color:var(--ink)}.app button{font-family:inherit;cursor:pointer}.app a{color:inherit;text-decoration:none}.side{border-right:1px solid var(--line);background:var(--surface);display:flex;flex-direction:column;padding:16px 14px;position:sticky;top:0;height:100vh}.side-logo{display:flex;align-items:center;gap:9px;font-weight:700;font-size:18px;letter-spacing:-.03em;padding:6px 8px 16px}.side-logo .sh{color:var(--accent)}.side-logo img{width:26px;height:26px}.env{display:flex;gap:4px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-md);padding:4px;margin-bottom:18px}.env button{flex:1;font-weight:600;font-size:12.5px;padding:6px;border-radius:var(--r-sm);border:none;background:transparent;color:var(--ink-3);display:flex;align-items:center;justify-content:center;gap:6px}.env button .led{width:7px;height:7px;border-radius:50%;background:var(--ink-4)}.env button.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}.env button.active.live .led{background:var(--ok)}.env button.active.test .led{background:var(--warn)}.nav-group{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-4);font-weight:600;padding:14px 8px 6px}.nav-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--r-sm);font-size:14px;font-weight:500;color:var(--ink-2);border:none;background:transparent;width:100%;text-align:left;transition:background var(--dur-fast),color var(--dur-fast)}.nav-item svg{width:17px;height:17px}.nav-item:hover{background:var(--surface-3);color:var(--ink)}.nav-item.active{background:var(--accent-soft);color:var(--accent)}.nav-item .count{margin-left:auto;font-family:var(--font-mono);font-size:11px;color:var(--ink-3)}.side-foot{margin-top:auto;padding:12px 8px 4px;border-top:1px solid var(--line);gap:10px}.avatar,.side-foot{display:flex;align-items:center}.avatar{width:30px;height:30px;border-radius:50%;background:var(--accent);color:var(--on-accent);justify-content:center;font-weight:700;font-size:13px}.side-foot .who{font-size:13px;font-weight:600;line-height:1.2;min-width:0}.side-foot .who b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-foot .who small{display:block;font-weight:400;font-size:11.5px;color:var(--ink-3)}.main{display:flex;flex-direction:column;min-width:0}.topbar{height:60px;border-bottom:1px solid var(--line);gap:16px;padding:0 28px;position:sticky;top:0;background:color-mix(in srgb,var(--paper) 85%,transparent);backdrop-filter:blur(10px);z-index:20}.crumb,.topbar{display:flex;align-items:center}.crumb{font-size:14px;color:var(--ink-3);gap:8px}.crumb b{color:var(--ink);font-weight:600}.crumb svg{width:15px;height:15px}.search{margin-left:auto;display:flex;align-items:center;gap:8px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-md);padding:7px 12px;color:var(--ink-3);font-size:13px;width:230px}.search svg{width:15px;height:15px}.search .kbd{margin-left:auto;font-family:var(--font-mono);font-size:11px;background:var(--surface);border:1px solid var(--line);border-radius:5px;padding:1px 5px}.app .icon-btn{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface);color:var(--ink-2)}.app .icon-btn:hover{color:var(--ink);border-color:var(--line-2)}.app .icon-btn svg{width:17px;height:17px}.content{padding:30px 28px 60px;width:100%;min-width:0}.page-head{display:flex;align-items:flex-start;gap:16px;margin-bottom:26px}.page-head h1{font-weight:700;font-size:26px;letter-spacing:-.025em;margin:0}.page-head p{font-size:14.5px;color:var(--ink-2);margin:5px 0 0}.page-head .actions{margin-left:auto;display:flex;gap:10px}.app .btn{font-family:var(--font-brand);font-weight:600;font-size:13.5px;padding:9px 15px;border-radius:var(--r-md);border:1px solid transparent;display:inline-flex;align-items:center;gap:7px;line-height:1;transition:background var(--dur-fast),border-color var(--dur-fast),transform var(--dur-fast)}.app .btn:active{transform:scale(.98)}.app .btn svg{width:15px;height:15px}.app .btn-primary{background:var(--accent);color:var(--on-accent)}.app .btn-primary:hover{background:var(--accent-press)}.app .btn-secondary{background:var(--surface);color:var(--ink);border-color:var(--line-2);box-shadow:var(--shadow-sm)}.app .btn-secondary:hover{border-color:var(--ink-3)}.app .btn-ghost{background:transparent;color:var(--ink-2)}.app .btn-ghost:hover{background:var(--surface-3);color:var(--ink)}.btn-danger{background:var(--danger-soft);color:var(--danger);border-color:transparent}.btn-danger:hover{background:var(--danger);color:#fff}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px;box-shadow:var(--shadow-sm)}.stat .lbl{font-size:12.5px;color:var(--ink-3);display:flex;align-items:center;gap:7px}.stat .lbl svg{width:15px;height:15px;color:var(--ink-3)}.stat .val{font-weight:700;font-size:28px;letter-spacing:-.03em;margin:10px 0 4px}.stat .delta{font-size:12.5px;font-weight:600;display:inline-flex;align-items:center;gap:4px}.stat .delta.up{color:var(--ok)}.stat .delta.down{color:var(--danger)}.stat .delta.flat{color:var(--ink-3)}.stat .delta svg{width:13px;height:13px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);overflow:hidden}.panel-head{display:flex;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line)}.panel-head h3{font-weight:600;font-size:15.5px;margin:0}.panel-head .actions{margin-left:auto;display:flex;gap:8px}.chip-filter{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;color:var(--ink-2);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:6px 11px}.chip-filter svg{width:14px;height:14px}.panel table{width:100%;border-collapse:collapse;table-layout:auto}.panel thead th{text-align:left;font-size:11.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);font-weight:600;padding:11px 18px;background:var(--surface-2);white-space:nowrap}.panel tbody td,.panel thead th{border-bottom:1px solid var(--line)}.panel tbody td{padding:13px 18px;font-size:13.5px;color:var(--ink-2);vertical-align:middle}.panel tbody tr:last-child td{border-bottom:none}.panel tbody tr{transition:background var(--dur-fast)}.panel tbody tr.clickable:hover{background:var(--surface-2);cursor:pointer}.panel td .doc-id{font-family:var(--font-mono);font-size:12.5px;color:var(--ink)}.panel td .tmpl{display:inline-flex;align-items:center;gap:8px;color:var(--ink);font-weight:500;white-space:nowrap}.panel td .tmpl svg{width:16px;height:16px;color:var(--ink-3);flex:none}.pill{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:12px;padding:4px 10px;border-radius:var(--r-pill);line-height:1}.pill .dot{width:6px;height:6px;border-radius:50%}.pill.ok{background:var(--ok-soft);color:var(--ok)}.pill.ok .dot{background:var(--ok)}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.warn .dot{background:var(--warn)}.pill.danger{background:var(--danger-soft);color:var(--danger)}.pill.danger .dot{background:var(--danger)}.pill.accent{background:var(--accent-soft);color:var(--accent)}.pill.accent .dot{background:var(--accent)}.pill.neutral{background:var(--surface-3);color:var(--ink-2)}.pill.neutral .dot{background:var(--ink-3)}.key-row{display:flex;align-items:center;gap:14px;padding:15px 18px;border-bottom:1px solid var(--line);flex-wrap:wrap}.key-row:last-child{border-bottom:none}.key-row .kname{font-weight:600;font-size:14px;display:flex;align-items:center;gap:9px}.key-row .ktoken{font-family:var(--font-mono);font-size:12.5px;color:var(--ink-2);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:5px 10px}.key-row .kmeta{font-size:12px;color:var(--ink-3)}.key-row .kact{margin-left:auto;display:flex;gap:6px}.cols{display:grid;grid-template-columns:1.6fr 1fr;gap:18px}.usage-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:20px;box-shadow:var(--shadow-sm)}.usage-card h3{font-weight:600;font-size:15px;margin:0 0 4px}.usage-card .sub{font-size:12.5px;color:var(--ink-3);margin:0 0 16px}.meter{height:9px;background:var(--surface-3);overflow:hidden}.meter,.meter>i{border-radius:999px}.meter>i{display:block;height:100%;background:var(--accent)}.meter-row{display:flex;justify-content:space-between;font-size:12.5px;margin-top:9px;color:var(--ink-2)}.meter-row b{color:var(--ink)}.chart{padding:18px}.bars{display:flex;align-items:flex-end;gap:8px;height:150px}.bars .col{display:flex;flex-direction:column;flex:1;gap:3px;height:100%;justify-content:flex-end}.bars .b{background:var(--accent-soft);position:relative;min-height:2px}.bars .b,.bars .b>i{border-radius:5px 5px 0 0}.bars .b>i{position:absolute;inset:0;background:var(--accent);opacity:.85}.chart-x{display:flex;gap:8px;margin-top:8px}.chart-x span{flex:1;text-align:center;font-family:var(--font-mono);font-size:10.5px;color:var(--ink-4)}.scrim{position:fixed;inset:0;background:rgba(20,16,10,.42);display:flex;align-items:center;justify-content:center;z-index:100;backdrop-filter:blur(2px)}.modal{width:460px;max-width:calc(100vw - 40px);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);padding:24px}.modal h3{font-weight:700;font-size:19px;letter-spacing:-.02em;margin:0 0 6px}.modal p{font-size:14px;color:var(--ink-2);margin:0 0 18px}.modal label{font-size:13px;font-weight:600;color:var(--ink-2);display:block;margin-bottom:7px}.modal input{width:100%;box-sizing:border-box;font-family:var(--font-brand);font-size:14px;color:var(--ink);background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-md);padding:10px 12px}.modal input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.modal .modal-foot{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.new-key{font-family:var(--font-mono);font-size:13px;background:var(--surface-2);border:1px solid var(--accent-line);border-radius:var(--r-md);padding:12px;word-break:break-all;color:var(--ink);display:flex;align-items:center;gap:10px}.empty{text-align:center;padding:60px 20px}.empty svg{width:34px;height:34px;color:var(--ink-4)}.empty h3{font-weight:600;font-size:16px;margin:14px 0 5px}.empty p{font-size:13.5px;color:var(--ink-3);margin:0}.menu-pop{position:absolute;min-width:232px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-lg);padding:5px;z-index:60}.menu-item{display:flex;align-items:center;gap:9px;width:100%;text-align:left;font-size:13.5px;font-weight:500;color:var(--ink);background:none;border:none;padding:8px 10px;border-radius:var(--r-sm);cursor:pointer}.menu-item:hover{background:var(--surface-3)}.menu-item svg{width:16px;height:16px;color:var(--ink-3)}.menu-label{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);padding:7px 10px 4px;overflow:hidden;text-overflow:ellipsis}.menu-sep{height:1px;background:var(--line);margin:5px 0}.tpl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(236px,1fr));gap:16px}.tpl-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);padding:18px;display:flex;flex-direction:column;gap:6px;transition:transform var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease-out)}.tpl-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.tpl-card .tpl-cat{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.tpl-card h3{font-weight:600;font-size:15.5px;margin:0}.tpl-card p{font-size:13px;color:var(--ink-2);margin:0 0 12px;line-height:1.5}.tpl-card .btn{justify-content:center}.tpl-card .tpl-actions{display:flex;gap:8px;margin-top:auto}.tpl-card .tpl-actions .btn-secondary{flex:0 0 auto;padding-left:13px;padding-right:13px}.tpl-card .tpl-actions .btn-primary{flex:1}@media (max-width:860px){.app{grid-template-columns:1fr}.side{display:none}.cols,.stats{grid-template-columns:1fr 1fr}}.seg{gap:4px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-md);padding:4px;width:100%}.seg,.seg-btn{display:inline-flex}.seg-btn{flex:1;align-items:center;justify-content:center;gap:7px;font-weight:600;font-size:13px;padding:8px;border-radius:var(--r-sm);border:none;background:transparent;color:var(--ink-3)}.seg-btn svg{width:14px;height:14px}.seg-btn.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}.signers-cell{display:inline-flex;align-items:center}.timeline{display:flex;flex-direction:column}.tl-row{display:flex;gap:12px;padding:10px 0;align-items:flex-start;position:relative}.tl-row:not(:last-child):before{content:"";position:absolute;left:13px;top:32px;bottom:-8px;width:2px;background:var(--line)}.tl-dot{width:28px;height:28px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;background:var(--surface-3);color:var(--ink-3);border:1px solid var(--line);z-index:1}.tl-dot[data-on=true]{border-color:transparent}.audit-note,.tl-dot[data-on=true]{background:var(--ok-soft);color:var(--ok)}.audit-note{display:flex;align-items:center;gap:8px;margin-top:14px;padding:10px 12px;border-radius:var(--r-md);font-size:12.5px;font-weight:500}.audit-note svg{width:15px;height:15px}.topbar-link{font-size:13.5px;color:var(--ink-2);padding:6px 9px;border-radius:7px;text-decoration:none}.topbar-link:hover{background:var(--surface-2,rgba(0,0,0,.04));color:var(--ink)}.topbar-search{display:inline-flex;align-items:center;gap:8px;height:32px;padding:0 7px 0 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface,#fff);color:var(--ink-3);font-size:13px;cursor:pointer;min-width:190px}.topbar-search:hover{border-color:var(--line-2,var(--line))}.topbar-search>span{flex:1;text-align:left}.cmdk-input kbd,.topbar-search kbd{font:600 11px/1 var(--font-brand,system-ui);background:var(--surface-2,rgba(0,0,0,.05));border:1px solid var(--line);border-radius:5px;padding:3px 5px;color:var(--ink-3)}.cmdk-scrim{align-items:flex-start;padding-top:12vh}.cmdk{width:520px;max-width:calc(100vw - 40px);background:var(--surface,#fff);border:1px solid var(--line);border-radius:12px;box-shadow:0 24px 60px rgba(0,0,0,.2);overflow:hidden}.cmdk-input{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line);color:var(--ink-3)}.cmdk-input input{flex:1;border:none;outline:none;background:transparent;font-size:15px;color:var(--ink)}.cmdk-list{max-height:56vh;overflow-y:auto;padding:6px}.cmdk-item{display:flex;align-items:center;gap:11px;width:100%;padding:9px 12px;border-radius:8px;background:none;border:none;color:var(--ink);font-size:14px;cursor:pointer;text-align:left}.cmdk-item>span{flex:1}.cmdk-item:hover{background:var(--surface-2,rgba(0,0,0,.05))}.cmdk-empty{padding:22px;text-align:center;color:var(--ink-3);font-size:14px}