@import url('./ink/tokens.css');
@import url('./ink/components.css');
@font-face{font-family:Inter;src:url('../fonts/InterVariable.woff2') format('woff2');font-weight:100 900;font-display:swap;}
@font-face{font-family:'DM Sans';src:url('../fonts/DMSansVariable.woff2') format('woff2');font-weight:100 900;font-display:swap;}
@font-face{font-family:'Roboto Mono';src:url('../fonts/RobotoMonoVariable.woff2') format('woff2');font-weight:100 900;font-display:swap;}

body.ink {margin:0; background:var(--ink-bg-canvas); color:var(--ink-fg-default);}
.vault-shell {min-height:100dvh;}
.vault-main {flex:1; min-width:0; padding:var(--ink-space-8); outline:none;}
.vault-main--workspace {padding-bottom:0;}
.vault-mark {display:grid; place-items:center; width:32px; height:32px; border-radius:var(--ink-radius-lg); background:var(--ink-bg-emphasis); color:var(--ink-fg-on-emphasis);}
.vault-mark svg {width:18px; height:18px;}
.vault-nav-caption {font-size:var(--ink-type-caption-size); color:var(--ink-fg-muted); margin:var(--ink-space-2) 0 0;}
.vault-topbar.MuiAppBar-root {position:sticky; top:0; width:100%; margin:0; box-shadow:none; border:0; border-bottom:1px solid var(--ink-border-default); background:var(--ink-bg-surface); color:var(--ink-fg-default); z-index:var(--ink-z-sticky);}
.vault-topbar .MuiContainer-root {max-width:none; padding-inline:var(--ink-space-8);}
.vault-topbar .MuiToolbar-root {min-height:var(--ink-size-header-height); gap:var(--ink-space-2);}
.vault-topbar-title {font-size:var(--ink-type-label-size); font-weight:var(--ink-weight-medium); white-space:nowrap;}
.vault-page-title {margin:0 0 var(--ink-space-8); font-size:var(--ink-type-title1-size); line-height:var(--ink-type-title1-line-height); font-weight:var(--ink-weight-semibold); letter-spacing:var(--ink-type-title1-tracking);}
.vault-page-content {width:100%; min-width:0;}
.vault-skip {position:fixed; top:var(--ink-space-2); left:var(--ink-space-2); transform:translateY(-200%); padding:var(--ink-space-2) var(--ink-space-4); z-index:2000; background:var(--ink-bg-emphasis); color:var(--ink-fg-on-emphasis);}
.vault-skip:focus {transform:none;}
.vault-auth {background:var(--ink-bg-surface); color:var(--ink-fg-default); border:1px solid var(--ink-border-default); border-radius:var(--ink-radius-xl); box-shadow:var(--ink-shadow-md);}
.vault-auth a {color:var(--ink-fg-default);}
.vault-auth h2 {font-size:var(--ink-type-title2-size);}
.vault-auth .infolabel {display:none;}
.vault-brand {display:flex; align-items:center; justify-content:center; gap:var(--ink-space-2); font-size:var(--ink-type-title2-size); color:var(--ink-fg-default); min-height:48px; margin-bottom:var(--ink-space-4);}
.vault-brand svg {width:24px; height:24px;}
.vault-main .MuiPaper-root {background-image:none;}
.vault-main .MuiTabs-root {margin-bottom:var(--ink-space-4);}
.vault-main .MuiTableContainer-root {border:1px solid var(--ink-border-default); border-radius:var(--ink-radius-lg);}
.vault-main .MuiTableRow-root:last-child td {border-bottom:0;}
.vault-main .MuiOutlinedInput-root {border-radius:var(--ink-radius-md);}
@media(max-width:767px) {.vault-main{padding:var(--ink-space-4);}.vault-topbar .MuiContainer-root{padding-inline:var(--ink-space-4);}.vault-page-title{margin-bottom:var(--ink-space-4);}}
@media(prefers-reduced-motion:reduce) {*,*::before,*::after{scroll-behavior:auto!important;animation-duration:0.01ms!important;transition-duration:0.01ms!important;}}

/* MUI input sizing relies on content-box; Ink's reset must not collapse it. */
.ink .MuiInputBase-input {box-sizing:content-box;}
body.ink {overflow:auto;}
.vault-shell > .ink-nav .ink-nav-footer {display:flex; flex-direction:column; align-items:stretch;}
.vault-nav-caption {text-align:center;}
.vault-topbar .MuiButtonGroup-root[aria-label="main menu"] {max-width:100%;}
.vault-account-name {max-width:260px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.vault-workspace-card.MuiPaper-root {border:1px solid var(--ink-border-default); border-radius:var(--ink-radius-lg); box-shadow:none; overflow:hidden;}
.vault-toolbar.MuiToolbar-root {height:auto; min-height:64px; padding:var(--ink-space-3); gap:var(--ink-space-3); flex-wrap:wrap;}
.vault-toolbar-actions {display:flex; align-items:center; gap:var(--ink-space-1); margin-left:auto; min-width:0; flex-wrap:wrap;}
@media(max-width:767px) {.vault-toolbar-actions{width:100%; margin:0;}.vault-auth{max-width:calc(100vw - 32px);}.vault-account-name{max-width:140px;}}

@media(max-width:767px){.vault-toolbar-actions .vault-search{flex:1;min-width:80px;}.vault-toolbar-actions .vault-search input{width:100%;min-width:0;}.vault-toolbar-actions .MuiIconButton-root{padding:8px;}.vault-toolbar-actions .MuiDivider-root{display:none;}}

.vault-startup{min-height:100dvh;display:flex;flex-direction:column;gap:16px;justify-content:center;align-items:center;color:var(--ink-fg-muted);}

/* Authentication uses document flow, including short windows and zoomed screens. */
.vault-auth-layout {min-height:100dvh; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:80px 24px 40px; position:relative; gap:24px;}
.vault-auth-tools {position:absolute; inset-block-start:20px; inset-inline-end:24px;}
body.ink .vault-auth {position:relative; inset:auto; transform:none; width:100%; max-width:460px; margin:0; padding:36px; border-radius:20px; border-color:var(--ink-border-default); box-shadow:0 8px 40px rgb(0 0 0 / 4%);}
.vault-auth .vault-brand {justify-content:flex-start; gap:12px; min-height:40px; margin:0 0 32px; font-size:18px; letter-spacing:-.4px;}
.vault-auth .vault-brand svg {width:40px; height:40px; padding:10px; border-radius:11px; background:var(--ink-bg-emphasis); color:var(--ink-fg-on-emphasis);}
.vault-auth .vault-brand img {max-width:100%; max-height:64px; width:auto; height:auto; object-fit:contain;}
.vault-auth-intro {margin-bottom:28px;}
.vault-auth-intro h1 {margin:0 0 8px; font-size:28px; line-height:1.2; letter-spacing:-.9px; font-weight:650; color:var(--ink-fg-default);}
.vault-auth-intro p {margin:0; font-size:14px; line-height:1.6; color:var(--ink-fg-muted);}
.vault-credentials {display:grid; gap:20px;}
.vault-credentials .ink-input, .vault-credentials .ink-input-group {min-height:48px; border-radius:9px;}
.vault-credentials .ink-input {padding-inline:14px 40px; width:100%; min-width:0;}
.vault-credentials .ink-input-group > .ink-input {min-height:46px;}
.vault-login-domain {overflow-wrap:anywhere; line-height:1.5;}
.vault-login-preferences {display:grid; gap:14px; padding-block:2px;}
.vault-login-preferences .ink-choice-text {min-width:0;}
.vault-login-submit.ink-btn {width:100%; min-height:48px; justify-content:center; border-radius:9px; font-weight:600; gap:10px;}
.vault-login-submit svg, .vault-reveal svg {width:18px; height:18px; flex-shrink:0;}
.vault-reveal.ink-btn {min-width:44px; margin:2px; padding:8px; border-radius:7px;}
.vault-register-action.MuiButton-root {width:100%; margin-top:8px;}
.vault-login-methods > .MuiGrid-container {margin-bottom:16px;}
.vault-login-methods > .MuiGrid-container .MuiButton-root {width:100%; min-height:44px;}
.vault-auth-links {display:flex; flex-wrap:wrap; align-items:center; gap:12px 20px; padding-top:24px; margin-top:24px; border-top:1px solid var(--ink-border-default); font-size:13px; line-height:1.6;}
.vault-auth-links a {text-decoration:none; color:var(--ink-fg-muted);}
.vault-auth-links a:hover {color:var(--ink-fg-default); text-decoration:underline; text-underline-offset:3px;}
.vault-auth-assurance {max-width:420px; display:flex; align-items:flex-start; gap:8px; margin:0; color:var(--ink-fg-muted); font-size:12px; line-height:1.6; text-align:start;}
.vault-auth-assurance svg {width:15px; height:15px; margin-top:2px; flex-shrink:0;}
.vault-spinner {animation:vault-spin 1s linear infinite;}
@keyframes vault-spin {to {transform:rotate(360deg);}}
/* MUI already draws a whole-field focus indicator. Don't draw another around its input text. */
.ink .MuiInputBase-input:focus-visible {outline:none;}
.ink .MuiOutlinedInput-root.Mui-focused .MuiOutlinedInput-notchedOutline {border-color:var(--ink-border-focus);}
.ink .MuiInputBase-root {max-width:100%;}
@media(max-width:600px) {
  .vault-auth-layout {padding:76px 16px 28px; justify-content:flex-start; gap:20px;}
  body.ink .vault-auth {max-width:460px; padding:28px 24px; border-radius:16px;}
  .vault-auth-tools {inset-inline-end:16px; inset-block-start:16px;}
  .vault-auth-intro h1 {font-size:26px;}
  .vault-auth-assurance {max-width:calc(100% - 24px);}
  .ink .MuiInputBase-input {font-size:16px;}
}
.vault-auth-layout--popup {min-height:0; padding:16px 20px; gap:12px; background:var(--ink-bg-surface);}
body.ink .vault-auth-layout--popup .vault-auth {max-width:none; padding:0; border:0; border-radius:0; box-shadow:none;}
.vault-auth-layout--popup .vault-brand {min-height:32px; margin-bottom:20px; padding-inline-end:44px; font-size:17px;}
.vault-auth-layout--popup .vault-brand svg {width:32px; height:32px; padding:7px; border-radius:8px;}
.vault-auth-layout--popup .vault-auth-tools .ink-btn {width:36px; min-width:36px; height:36px; padding:8px; gap:0;}
.vault-auth-layout--popup .vault-appearance-label {display:none;}
.vault-auth-layout--popup .vault-auth-intro {margin-bottom:16px;}
.vault-auth-layout--popup .vault-auth-intro h1 {font-size:24px;}
.vault-auth-layout--popup .vault-auth-intro p {display:none;}
.vault-auth-layout--popup .vault-credentials {gap:12px;}
.vault-auth-layout--popup .vault-credentials .ink-input,
.vault-auth-layout--popup .vault-credentials .ink-input-group {min-height:44px;}
.vault-auth-layout--popup .vault-credentials .ink-input-group > .ink-input {min-height:42px;}
.vault-auth-layout--popup .vault-login-submit.ink-btn {min-height:44px;}
.vault-auth-layout--popup .vault-auth-links {margin-top:16px; padding-top:16px; gap:8px 16px;}
.vault-auth-layout--popup .vault-login-preferences {gap:10px;}
.vault-auth-layout--popup .vault-auth-assurance {max-width:none; width:100%; padding-top:0;}
.vault-auth-layout--popup .vault-auth-tools {inset-block-start:14px; inset-inline-end:16px; z-index:1;}
.vault-login-server {margin-top:20px;}
.vault-login-server .ink-input {width:100%; min-width:0; min-height:44px;}
.vault-login-server .ink-hint {overflow-wrap:anywhere;}

/* Section navigation exposes every destination without horizontal tab scrolling. */
.vault-sections {display:grid; grid-template-columns:220px minmax(0,1fr); gap:32px; align-items:start; max-width:1440px;}
.vault-section-nav {display:flex; flex-direction:column; gap:4px; position:sticky; top:88px;}
.vault-section-link {display:flex; align-items:center; min-height:44px; padding:10px 14px; border-radius:8px; color:var(--ink-fg-muted); font-size:14px; line-height:1.45; text-decoration:none; overflow-wrap:anywhere;}
.vault-section-link:hover {background:var(--ink-bg-subtle); color:var(--ink-fg-default);}
.vault-section-link[aria-current="page"] {background:var(--ink-bg-muted); color:var(--ink-fg-default); font-weight:600;}
.vault-section-content {min-width:0; padding:28px; background:var(--ink-bg-surface); border:1px solid var(--ink-border-default); border-radius:14px;}
.vault-section-panel {min-width:0;}
.vault-section-panel .MuiTypography-h6 {font-size:18px; font-weight:600; line-height:1.4; margin-bottom:12px;}
.vault-account-overview {display:grid; grid-template-columns:minmax(220px,1fr) minmax(0,1.6fr); gap:32px;}
.vault-account-overview > :first-child {padding:0;}
.vault-account-overview .MuiAvatar-root {width:80px; height:80px; font-size:4rem; padding-top:0;}
.vault-account-overview .MuiAvatar-root span {display:none;}
@media(max-width:1100px) {.vault-account-overview {grid-template-columns:minmax(0,1fr);}}
@media(max-width:900px) {
 .vault-sections {grid-template-columns:minmax(0,1fr); gap:20px;}
 .vault-section-nav {position:static; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px;}
 .vault-section-link {font-size:13px; padding:10px;}
 .vault-section-content {padding:20px;}
}
@media(max-width:380px) {.vault-section-nav {grid-template-columns:minmax(0,1fr);}.vault-section-content {padding:16px;}}
.vault-success-icon {width:40px; height:40px; margin-bottom:20px; color:var(--ink-status-good-fg);}
.vault-next-step {margin-top:28px; color:var(--ink-fg-muted); font-size:14px; line-height:1.6;}
.vault-next-step summary {cursor:pointer; color:var(--ink-fg-default);}
.vault-next-step a {text-underline-offset:3px;}
.vault-page-content > .MuiPaper-root {border:1px solid var(--ink-border-default); border-radius:14px; box-shadow:none; overflow:hidden;}
.vault-page-content > .MuiPaper-root > .MuiAppBar-root {border-bottom:1px solid var(--ink-border-default);}
.vault-section-panel h2 {margin-top:0; font-size:20px; letter-spacing:-.4px;}
.vault-section-panel p {line-height:1.65;}
.vault-auth-step-title {font-size:22px; line-height:1.3; letter-spacing:-.5px; margin:0 0 16px;}
.vault-auth-field {display:grid; gap:6px; margin-block:16px; width:100%; min-width:0;}
.vault-auth-field .MuiFormControl-root {margin:0; width:100%;}
.vault-auth-field .MuiOutlinedInput-root {border-radius:9px; min-height:46px;}
.vault-auth-field .MuiOutlinedInput-input {padding:12px 14px;}
.vault-auth-field .MuiFormHelperText-root {margin-inline:0; line-height:1.5;}
.vault-auth-field .ink-label {line-height:1.5;}
.vault-auth form:not(.vault-login-form) .MuiButton-contained {min-height:44px; padding-inline:20px;}
.vault-auth form:not(.vault-login-form) .MuiButton-text {min-height:44px;}
.vault-popup-workspace {padding:16px; background:var(--ink-bg-surface); color:var(--ink-fg-default);}
.vault-visually-hidden {position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;}
.vault-setting-choice {display:flex; align-items:center; gap:4px; min-height:44px; line-height:1.5; cursor:pointer; color:var(--ink-fg-default);}
.vault-section-panel .vault-auth-field {max-width:440px;}
.vault-section-panel h2.vault-subsection-title {margin-top:32px;}
.vault-main a:not([class]) {color:var(--ink-fg-default); text-underline-offset:3px;}
.vault-factor-row.MuiGrid-container {display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:16px; padding:16px; margin-bottom:12px; border:1px solid var(--ink-border-default); border-radius:10px;}
.vault-factor-row > .MuiGrid-item {max-width:none; padding-top:0!important;}
.vault-security-report > div {padding:24px;}
.vault-security-report .vault-auth-field {max-width:440px;}
.vault-security-report .MuiAlert-root {margin-bottom:16px;}
.vault-security-report .MuiButton-root {margin-top:16px;}
.vault-main .MuiButton-root {min-height:40px;}
