/* The vault pane: a drawer on the right that moves the page left while it is open. */
:root { --vault-w: 400px; }
.vault-btn { font: inherit; font-size: .82rem; padding: .3rem .7rem; border: 1px solid var(--line2, #cfd2d8); border-radius: 999px; background: var(--panel, #fff); color: var(--fg, #1c1d21); cursor: pointer; line-height: 1.2; white-space: nowrap; }
.vault-btn:hover { border-color: var(--accent, #0f6b4f); }
.vault-btn[aria-expanded="true"], .vault-btn.on { background: var(--accent, #0f6b4f); border-color: var(--accent, #0f6b4f); color: #fff; }
.vault-btn .dot { display: inline-block; width: .5em; height: .5em; border-radius: 50%; background: #b8bcc4; margin-right: .4em; vertical-align: .05em; }
.vault-btn.on .dot { background: #8be0c2; }

html.vault-open body { padding-right: var(--vault-w); transition: padding-right .25s ease; }
.vault-pane { position: fixed; top: 0; right: 0; bottom: 0; width: var(--vault-w); max-width: 100vw; box-sizing: border-box; overflow-y: auto; z-index: 60;
  background: var(--panel, #fff); border-left: 1px solid var(--line, #e3e5ea); box-shadow: -12px 0 30px rgba(0,0,0,.06); padding: 1rem 1.1rem 2rem; font: .9rem/1.5 var(--sans, system-ui, sans-serif); color: var(--fg, #1c1d21); transform: translateX(100%); transition: transform .25s ease; }
html.vault-open .vault-pane { transform: none; }
.vault-pane h2 { margin: 0 0 .2rem; font: 700 1.05rem/1.3 var(--serif, Georgia, serif); }
.vault-pane h3 { margin: 1.1rem 0 .4rem; font: 700 .7rem/1.4 var(--sans, system-ui); letter-spacing: .14em; text-transform: uppercase; color: var(--dim, #5a5e68); }
.vault-pane .head { display: flex; align-items: baseline; gap: .6rem; }
.vault-pane .head .close { margin-left: auto; }
.vault-pane p { margin: .35rem 0; }
.vault-pane .dim { color: var(--dim, #5a5e68); font-size: .84rem; }
.vault-pane .ok { color: #0f6b4f; }
.vault-pane .warn { color: #8a5a0a; background: #fff7e6; border: 1px solid #f1d7a2; border-radius: 8px; padding: .5rem .7rem; }
.vault-pane .mono { font-family: var(--mono, ui-monospace, monospace); font-size: .82rem; }
.vault-pane .acts { display: flex; flex-wrap: wrap; gap: .4rem; margin: .5rem 0; }
.vault-pane .btn { font: inherit; font-size: .84rem; padding: .35rem .7rem; border: 1px solid var(--line2, #cfd2d8); border-radius: 8px; background: var(--panel, #fff); color: var(--fg, #1c1d21); cursor: pointer; }
.vault-pane .btn.primary { background: var(--accent, #0f6b4f); border-color: var(--accent, #0f6b4f); color: #fff; font-weight: 600; }
.vault-pane .btn:disabled { opacity: .5; cursor: default; }
.vault-pane label { display: block; font-size: .84rem; margin: .4rem 0; }
.vault-pane input[type=text], .vault-pane input[type=password] { font: inherit; font-size: .88rem; width: 100%; box-sizing: border-box; padding: .35rem .5rem; border: 1px solid var(--line2, #cfd2d8); border-radius: 6px; background: #fff; }
.vault-pane .kv { display: grid; grid-template-columns: 9rem 1fr; gap: .2rem .6rem; font-size: .86rem; padding: .25rem 0; border-bottom: 1px solid var(--line, #eceef2); }
.vault-pane .kv .k { color: var(--dim, #5a5e68); }
.vault-pane table { width: 100%; border-collapse: collapse; font-size: .82rem; }
.vault-pane th, .vault-pane td { text-align: left; padding: .25rem .3rem; border-bottom: 1px solid var(--line, #eceef2); vertical-align: top; }
.vault-pane th { font-weight: 600; color: var(--dim, #5a5e68); }
.vault-pane td.n, .vault-pane th.n { text-align: right; font-variant-numeric: tabular-nums; }
.vault-pane tr.me td { font-weight: 600; }
.vault-pane tr.total td { border-top: 2px solid #1c1d21; border-bottom: 0; }
.vault-pane .log { margin: .4rem 0 0; padding: .5rem .7rem; max-height: 14rem; overflow: auto; background: #14161a; color: #a6e3c3; border-radius: 8px; font: .72rem/1.5 var(--mono, ui-monospace, monospace); list-style: none; }
.vault-pane .log li { white-space: nowrap; }
.vault-pane .log li.warn { color: #ffd38a; background: none; border: 0; padding: 0; }
.vault-pane details summary { cursor: pointer; color: var(--dim, #5a5e68); font-size: .84rem; }
.vault-pane .secret button { margin-left: .3rem; }
@media (max-width: 900px) { html.vault-open body { padding-right: 0; } .vault-pane { width: min(var(--vault-w), 100vw); } }
