:root{--bg: #0e1116;--bg-raised: #161b22;--bg-panel: #1b222c;--border: #2b3441;--text: #e6e9ee;--text-muted: #8b96a5;--accent: #4f8cff;--accent-hover: #6ba0ff;--ok: #2ea06a;--warn: #c99a2e;--danger: #d05252;--radius: 8px;--font: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:15px;line-height:1.5}.mono,code{font-family:var(--mono);font-size:.92em}.shell{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:24px;padding:12px 24px;background:var(--bg-raised);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.brand{font-weight:700;font-size:17px;color:var(--text);text-decoration:none;white-space:nowrap}.brand-mark{color:var(--accent)}.topbar nav{display:flex;gap:4px;flex:1}.topbar nav a{color:var(--text-muted);text-decoration:none;padding:6px 12px;border-radius:var(--radius);font-weight:500}.topbar nav a:hover{color:var(--text);background:var(--bg-panel)}.topbar nav a.active{color:var(--text);background:var(--bg-panel)}.userbox{display:flex;align-items:center;gap:12px}.user-email{color:var(--text-muted);font-size:13px}.content{flex:1;width:100%;max-width:1080px;margin:0 auto;padding:32px 24px 64px}.page-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:8px}.page-head h1{margin:0;font-size:24px}.hint{color:var(--text-muted);margin-top:0}.page-loading,.empty{color:var(--text-muted);text-align:center;padding:48px 0}.card-list{display:flex;flex-direction:column;gap:10px;margin-top:16px}.card{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.card-open{border-color:var(--accent)}.card-row{display:flex;align-items:center;gap:14px;width:100%;padding:14px 18px;background:none;border:none;color:var(--text);font:inherit;cursor:pointer;text-align:left}.card-row:hover{background:var(--bg-panel)}.card-row .key{font-weight:600;flex:0 1 auto}.card-row .muted{margin-left:auto}.card-row .muted+.muted{margin-left:16px}.card-detail{border-top:1px solid var(--border);padding:18px;background:var(--bg-panel)}.detail-section{margin-bottom:20px}.detail-section h3{margin:0 0 8px;font-size:14px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.panel{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin:16px 0;display:flex;flex-direction:column;gap:14px;max-width:640px}.panel h2{margin:0;font-size:18px}.panel-inline{margin:16px 0}.panel-token{border-color:var(--warn)}.token-value{background:var(--bg);padding:8px 12px;border-radius:var(--radius);border:1px solid var(--border);overflow-x:auto;-webkit-user-select:all;user-select:all}label{display:flex;flex-direction:column;gap:6px;font-weight:500}label.check{flex-direction:row;align-items:center;gap:8px;font-weight:400}input,textarea,select{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);padding:8px 12px;font:inherit}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent)}fieldset{border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;gap:6px}legend{color:var(--text-muted);padding:0 6px}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.row input{flex:1;min-width:200px}.btn{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);padding:8px 16px;font:inherit;font-weight:500;cursor:pointer;white-space:nowrap}.btn:hover:not(:disabled){border-color:var(--accent)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-ghost{background:none}.link-btn{background:none;border:none;padding:0;color:var(--accent);cursor:pointer;font:inherit;text-decoration:none}.link-btn:hover{text-decoration:underline}.link-btn:disabled{color:inherit;cursor:default}.btn-danger{border-color:var(--danger);color:var(--danger)}.btn-danger:hover:not(:disabled){background:var(--danger);color:#fff}.btn-sm{padding:4px 10px;font-size:13px}.tag{background:var(--bg-panel);border:1px solid var(--border);border-radius:999px;padding:2px 10px;font-size:12px;color:var(--text-muted);white-space:nowrap}.tag-shared{color:var(--accent);border-color:var(--accent)}.muted{color:var(--text-muted);font-size:13px}.banner{border-radius:var(--radius);padding:10px 14px;font-size:14px}.banner-error{background:#d052521f;border:1px solid var(--danger);color:#f2b8b8}.banner-ok{background:#2ea06a1f;border:1px solid var(--ok);color:#a9dfc3}.banner-warn{background:#c99a2e1f;border:1px solid var(--warn);color:#ecd9a5}.table{width:100%;border-collapse:collapse;margin-top:16px}.table th{text-align:left;color:var(--text-muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em;padding:8px 12px;border-bottom:1px solid var(--border)}.table td{padding:10px 12px;border-bottom:1px solid var(--border)}.row-revoked td{opacity:.45}.plain-list{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-direction:column;gap:6px}.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.auth-panel{width:100%;max-width:360px;display:flex;flex-direction:column;gap:12px}.auth-panel form{display:flex;flex-direction:column;gap:12px}.auth-brand{font-size:18px;justify-content:center;margin-bottom:4px}.auth-panel h2{margin:0;font-size:16px;font-weight:600}.auth-error{color:var(--danger);margin:0;font-size:13px}.grid-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius)}.matrix{width:100%;border-collapse:collapse;font-size:14px}.matrix th,.matrix td{padding:8px 12px;border-bottom:1px solid var(--border);text-align:left;white-space:nowrap}.matrix thead th{background:var(--bg-raised);position:sticky;top:0}.matrix .env-col{text-transform:none;font-family:var(--mono);font-size:12px}.matrix .cell{cursor:pointer;text-align:center;font-size:15px;-webkit-user-select:none;user-select:none}.matrix .cell:hover{background:var(--bg-raised)}.matrix .peek{margin-left:6px;color:var(--text-muted);font-size:11px}.tag.type-password{background:#3d2b52}.tag.type-secret{background:#52342b}.tag.type-variable{background:#2b523c}.drawer{position:fixed;right:24px;bottom:24px;width:min(520px,calc(100vw - 48px));max-height:calc(100vh - 120px);overflow-y:auto;z-index:40;box-shadow:0 12px 40px #00000080;border:1px solid var(--border)}.row.wrap{flex-wrap:wrap}.matrix .varval{font-size:12px;color:var(--text)}.matrix .vlabel{display:inline-block;margin-left:6px;padding:0 5px;border-radius:4px;background:var(--bg-raised);color:var(--text-muted);font-size:10px;font-family:var(--mono);font-style:normal;vertical-align:middle;max-width:110px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.input-eye{display:flex;align-items:flex-end;gap:4px}.input-eye button{margin-bottom:0;font-size:16px;padding:4px 8px}.matrix .cell-fallback{font-style:italic;opacity:.55}.matrix .default-col{font-style:italic}.matrix .note{display:block;color:var(--text-muted);font-size:11px;font-weight:400;max-width:280px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:60;display:flex;align-items:center;justify-content:center;padding:24px}.modal{width:min(480px,100%);max-height:calc(100vh - 96px);overflow-y:auto;border:1px solid var(--border);box-shadow:0 16px 48px #0009}.modal form{display:flex;flex-direction:column;gap:12px}.org-items{margin-top:12px}.grid-toolbar{justify-content:space-between;margin-bottom:8px}.row-inherited td{opacity:.6}.cell-readonly{cursor:default!important}.cell-readonly:hover{background:transparent!important}.copy-btn{font-size:12px;padding:2px 6px;opacity:.5;transition:opacity .15s;vertical-align:middle}.copy-btn:hover{opacity:1}.copy-btn.copied{color:var(--ok);opacity:1}.copy-group{display:inline-flex;gap:2px;margin-left:6px;vertical-align:middle}.matrix .cell-value-wrap{display:inline-flex;align-items:center;gap:4px}.matrix .cell .copy-btn{opacity:0;transition:opacity .15s}.matrix .cell:hover .copy-btn,.matrix .cell .copy-btn.copied{opacity:1}
