* { margin: 0; box-sizing: border-box; } html, body { height: 100%; } body { display: grid; place-items: center; background: #0b0d11; color: #e7e7ea; font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; -webkit-font-smoothing: antialiased; } .card { width: min(24rem, calc(100vw - 3rem)); padding: 2.5rem 2rem; background: #14161b; border: 1px solid #26292f; border-radius: 14px; text-align: center; } .logo { width: 56px; height: 56px; border-radius: 12px; margin-bottom: 1rem; } h1 { font-size: 1.4rem; font-weight: 600; letter-spacing: -0.01em; } .sub { margin-top: 0.4rem; color: #9a9aa3; font-size: 0.9rem; } form { display: flex; flex-direction: column; gap: 0.75rem; margin-top: 1.75rem; } input { padding: 0.65rem 0.8rem; background: #0b0d11; border: 1px solid #2e3239; border-radius: 8px; color: inherit; font-size: 0.95rem; outline: none; } input:focus { border-color: #f4693a; } button { padding: 0.65rem 0.8rem; background: #f4693a; border: none; border-radius: 8px; color: #fff; font-size: 0.95rem; font-weight: 600; cursor: pointer; } button:disabled { opacity: 0.6; cursor: default; } .err { margin-top: 0.9rem; color: #ef6b6b; font-size: 0.85rem; } .hint { margin-top: 1.5rem; color: #6d6d76; font-size: 0.78rem; line-height: 1.5; } /* ---------- secrets vault window ---------- */ body.vault { display: block; padding: 0; } .bar { display: flex; align-items: center; justify-content: space-between; padding: 1rem 1.25rem; border-bottom: 1px solid #26292f; background: #101216; position: sticky; top: 0; } .brand { display: flex; align-items: center; gap: 0.75rem; min-width: 0; } .brand img { width: 32px; height: 32px; border-radius: 8px; } .brand h1 { font-size: 0.95rem; font-weight: 600; } .bar-sub { font-size: 0.72rem; color: #6d6d76; font-family: ui-monospace, monospace; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 24rem; } .bar-right { display: flex; align-items: center; gap: 0.6rem; } .pill { font-size: 0.75rem; font-family: ui-monospace, monospace; color: #6d6d76; padding: 0.25rem 0.6rem; border: 1px solid #26292f; border-radius: 999px; white-space: nowrap; } .pill.ok { color: #34d399; border-color: #1e3a2f; } .pill.warn { color: #9a9aa3; } .view { padding: 1.25rem; display: flex; flex-direction: column; gap: 1rem; } .vcard { background: #14161b; border: 1px solid #26292f; border-radius: 14px; padding: 1.5rem; display: flex; flex-direction: column; gap: 0.9rem; } .vcard h2 { font-size: 1.05rem; font-weight: 600; letter-spacing: -0.01em; } .vcard select { padding: 0.65rem 0.8rem; background: #0b0d11; border: 1px solid #2e3239; border-radius: 8px; color: inherit; font-size: 0.9rem; outline: none; } .vtable { width: 100%; border-collapse: collapse; font-size: 0.85rem; } .vtable th { text-align: left; color: #6d6d76; font-weight: 500; font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.05em; padding: 0.4rem 0.5rem; border-bottom: 1px solid #26292f; } .vtable td { padding: 0.55rem 0.5rem; border-bottom: 1px solid #1e2025; vertical-align: middle; } .vtable tr:last-child td { border-bottom: none; } .mono { font-family: ui-monospace, monospace; font-size: 0.82rem; } .dimcell { color: #9a9aa3; max-width: 12rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .acts { display: flex; gap: 0.35rem; justify-content: flex-end; } .ghost { background: transparent; border: 1px solid #2e3239; color: #c9c9cf; font-weight: 500; } .ghost:hover { border-color: #f4693a; color: #fff; } .ghost.sm { padding: 0.25rem 0.55rem; font-size: 0.75rem; border-radius: 6px; } .danger:hover { border-color: #ef6b6b; color: #ef6b6b; } .vform { display: flex; gap: 0.5rem; flex-wrap: wrap; } .vform input { flex: 1 1 8rem; min-width: 0; } .vform input.grow { flex: 3 1 14rem; } .vform button { flex: 0 0 auto; padding: 0.65rem 1rem; } .codeblock { background: #0b0d11; border: 1px solid #26292f; border-radius: 8px; padding: 0.8rem 1rem; font-family: ui-monospace, monospace; font-size: 0.82rem; color: #e7e7ea; line-height: 1.6; } .vlink { color: #f4693a; cursor: pointer; font-size: 0.8rem; } .vlink:hover { text-decoration: underline; } .dim { color: #6d6d76; font-size: 0.85rem; }