/* Vault AI Console (task 079): the console's own parts. Everything else is the app's theme (ui.css: Tabler and the
   app's adapters; styles.css: the app's layout), so the console looks like the app in both themes. Colours come from the
   theme's tokens only. */

/* Before the console shows: signing in, or why it can't */
.console-gate {min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px max(16px,env(safe-area-inset-right,0px)) 24px max(16px,env(safe-area-inset-left,0px));text-align:center;background:var(--canvas);color:var(--ink);}
.console-gate[hidden] {display:none;}
.console-gate .brand-symbol {width:48px;height:48px;font-size:22px;}
.console-gate p {margin:0;color:var(--muted);font-size:15px;max-width:42ch;}

/* The console's own sign-in page (task 083): the app's sign-in layout (aws/web/login.css), kept to this page */
.console-signin {max-width:1040px;min-height:100vh;min-height:100svh;margin:auto;display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:80px;align-items:center;padding:48px max(28px,env(safe-area-inset-right,0px)) 48px max(28px,env(safe-area-inset-left,0px));}
.console-signin[hidden] {display:none;}
.vault-ui .console-signin .login-brand .brand {display:flex;gap:12px;align-items:center;margin-bottom:40px;padding:0;}
.vault-ui .console-signin .login-brand .brand small {display:block;color:var(--muted);}
.console-signin .login-brand .brand>span:last-child {display:flex;flex-direction:column;line-height:1.1;}
.console-signin .login-brand .brand-symbol {display:grid;place-items:center;width:40px;height:40px;}
.console-signin .login-card label {display:block;margin:18px 0 6px;}
.console-signin .login-card input {width:100%;}
.console-signin .login-card #signin-submit {margin-top:22px;width:100%;}
.console-signin .login-card .text-button {margin-top:12px;}
.console-signin #signin-fallback {display:block;}
.console-signin #signin-fallback[hidden] {display:none;}
.vault-ui .console-signin #signin-error {margin:16px 0 0;color:var(--tblr-danger-text-emphasis);background:var(--tblr-danger-lt);border-radius:6px;padding:12px;font-size:13px;}
.console-signin .login-note {text-align:center;margin:24px 0 0;}
.console-signin .mfa-steps {margin:0 0 16px;padding-left:20px;}
.console-signin .mfa-qr {width:184px;max-width:100%;margin:0 auto 14px;}
.console-signin .mfa-qr svg {display:block;width:100%;height:auto;}
.console-signin .mfa-key-help {margin:0 0 6px;}
.console-signin .mfa-key-row {display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;margin:0;}
.console-signin .login-card .mfa-key-row .text-button {margin-top:0;}
.console-signin .mfa-on-phone,.console-signin .login-card .mfa-setup a.mfa-open {display:none;}
.console-signin .login-card .mfa-setup a.mfa-open {justify-content:center;margin:0 0 14px;}
@media (hover:none) and (pointer:coarse) {.console-signin .mfa-on-phone {display:inline;}.console-signin .login-card .mfa-setup a.mfa-open[href] {display:flex;}}
@media (max-width:740px) {
  .console-signin {grid-template-columns:minmax(0,1fr);gap:24px;max-width:460px;padding:28px max(20px,env(safe-area-inset-right,0px)) 28px max(20px,env(safe-area-inset-left,0px));align-content:center;}
  .vault-ui .console-signin .login-brand .brand {margin-bottom:18px;}
  .console-signin .login-brand>p {display:none;}
  .vault-ui .console-signin .login-brand h1 {font-size:27px;letter-spacing:-.6px;}
}

/* The shell */
.console-sidebar-note {margin-top:auto;padding:24px 14px 0;}
.console-sidebar-note p {margin:0;font-size:12px;line-height:1.5;color:var(--sidebar-muted);}
.console-account {font-size:13px;color:var(--muted);max-width:28ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.vault-ui .topbar-right {display:flex;align-items:center;gap:10px;}
/* The menu collapses to its icons on wider screens, as the app's (task 082); on a phone it slides in from the top bar. */
.app-shell.sidebar-collapsed .console-sidebar-note {display:none;}
@media (max-width:650px) {.console-account {display:none;}.console-sidebar-note {display:none;}}

/* Environments: tiles like the app's Orgs */
.console-tile .org-tile-heading>strong {font-size:17px;}
/* A long name keeps its words whole: the status moves below it rather than squeezing it. */
.console-tile .org-tile-heading {flex-wrap:wrap;}
.console-tile .org-tile-heading>strong {overflow-wrap:break-word;flex:1 1 12ch;}
.console-tile-facts {display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13px;color:var(--ink);}
.console-tile-facts span {white-space:nowrap;}
.console-tile .org-tile-index {overflow-wrap:anywhere;}

/* An environment */
.console-back {padding-left:0;margin-bottom:12px;gap:6px;}
.console-columns {display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:20px;align-items:start;}
.console-column {display:flex;flex-direction:column;gap:20px;min-width:0;}
/* One column on narrower screens: what the environment reports first, then its settings, Super Admins and details. */
@media (max-width:1100px) {
  .console-columns {display:flex;flex-direction:column;align-items:stretch;}
  .console-column {display:contents;}
  .console-card--report {order:1;}.console-card--settings {order:2;}.console-card--admins {order:3;}.console-card--details {order:4;}
}
.vault-ui .console-card {margin:0;min-width:0;}
.console-card h2 {font-size:18px;margin:0 0 6px;}
.console-card-head {display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:6px;}
.console-card-head h2 {margin:0;}
.console-fieldset {border:0;padding:0;margin:20px 0 0;min-width:0;}
.console-fieldset legend {font-size:14px;font-weight:600;margin-bottom:10px;float:none;width:auto;padding:0;}
.console-fieldset legend .optional {font-weight:400;}
.console-field-row {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}
@media (max-width:650px) {.console-field-row {grid-template-columns:minmax(0,1fr);gap:0;}}
.console-settings .form-field,.form-drawer .form-field {display:flex;flex-direction:column;gap:4px;margin-bottom:14px;min-width:0;}
.console-settings .form-field small,.form-drawer .form-field small {color:var(--muted);font-size:12px;}
.console-money {display:flex;align-items:center;gap:6px;}
/* A number with what it's per (tasks 084, 085): "10 [a day]", "30 days". */
.console-per {display:flex;align-items:center;gap:8px;}
.console-per input {flex:1 1 auto;min-width:0;}
.console-per select {flex:0 0 auto;width:auto;}
.console-per>span {color:var(--muted);font-weight:500;}
.console-money>span {color:var(--muted);font-weight:500;}
.console-money input {flex:1 1 auto;min-width:0;}
.vault-ui .console-settings input[aria-invalid="true"] {border-color:var(--danger);}
.console-checks {display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:8px 16px;}
.console-check {display:flex;align-items:flex-start;gap:10px;margin:0;padding:6px 0;cursor:pointer;line-height:1.4;}
.vault-ui .console-check .form-check-input {float:none;margin:2px 0 0;flex:none;}
.vault-ui .console-check.form-switch {padding-left:0;}
.vault-ui .console-check.form-switch .form-check-input {width:2em;margin-left:0;}
.console-form-actions {display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:22px;}
.console-form-actions .form-drawer-status {margin:0;flex:1 1 220px;}

/* Provisioning a new environment (phase 2): each step the tool Codex runs has reported */
.vault-ui .console-provisioning {margin:0 0 20px;}
.console-provisioning p {margin:0 0 10px;font-size:14px;line-height:1.55;}
.console-provisioning .console-report-problem {margin:0 0 12px;}
.console-steps {list-style:none;margin:6px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:6px 20px;counter-reset:step;}
.console-step {position:relative;display:flex;align-items:center;gap:10px;padding:6px 0;font-size:14px;line-height:1.4;counter-increment:step;color:var(--muted);}
.console-step::before {content:counter(step);flex:none;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;font-size:12px;font-weight:600;border:1px solid var(--line);background:var(--card);color:var(--muted);}
.console-step.is-done {color:var(--ink);}
.console-step.is-done::before {content:"✓";border-color:transparent;background:var(--tblr-success-lt);color:var(--tblr-success-text-emphasis);}
.console-step.is-current {color:var(--ink);font-weight:600;}
.console-step.is-current::before {border-color:var(--tblr-primary);background:var(--tblr-primary-lt);color:var(--tblr-primary);}
.console-step.is-stopped {color:var(--ink);font-weight:600;}
.console-step.is-stopped::before {content:"!";border-color:transparent;background:var(--tblr-warning-lt);color:var(--tblr-warning-text-emphasis);}

/* What the environment reports */
.console-report {display:flex;flex-direction:column;gap:10px;}
.console-report p {margin:0;}
.console-report-line {padding:10px 12px;border-radius:var(--tblr-border-radius);font-size:13px;line-height:1.5;}
.console-report-line.is-current {background:var(--tblr-success-lt);color:var(--tblr-success-text-emphasis);}
.console-report-line.is-waiting {background:var(--tblr-secondary-lt);color:var(--ink);}
.console-report-problem {padding:10px 12px;border-radius:var(--tblr-border-radius);font-size:13px;background:var(--tblr-warning-lt);color:var(--tblr-warning-text-emphasis);}
.console-facts,.console-details {display:grid;grid-template-columns:max-content minmax(0,1fr);gap:8px 16px;margin:0;font-size:14px;}
.console-facts dt,.console-details dt {font-weight:500;color:var(--muted);}
.console-facts dd,.console-details dd {margin:0;min-width:0;overflow-wrap:anywhere;}
.console-notes {white-space:pre-wrap;}
@media (max-width:650px) {.console-details {grid-template-columns:minmax(0,1fr);gap:2px;}.console-details dd {margin-bottom:10px;}}

/* People: Super Admins and Enterprise Admins */
.console-people {list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;}
.console-person {display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;padding:12px 0;border-top:1px solid var(--line);}
.console-person:first-child {border-top:0;}
.console-person-text {display:flex;flex-direction:column;min-width:0;flex:1 1 200px;}
.console-person-text strong {font-weight:600;overflow-wrap:anywhere;}
.console-person-text small {color:var(--muted);font-size:12px;overflow-wrap:anywhere;}
.console-inline-confirm {display:inline-flex;align-items:center;gap:6px;}
.console-admins {margin-top:0;}
.vault-ui .console-list {border:1px solid var(--line);border-radius:var(--tblr-border-radius-lg);background:var(--card);padding:4px 20px;box-shadow:var(--tblr-shadow-card);}
.console-remove {margin-top:18px;}
.console-confirm {display:flex;flex-wrap:wrap;align-items:center;gap:8px;}
.console-confirm p {margin:0;flex:1 1 100%;font-size:13px;}

/* Activity */
.console-activity {list-style:none;margin:0;padding:4px 20px;border:1px solid var(--line);border-radius:var(--tblr-border-radius-lg);background:var(--card);box-shadow:var(--tblr-shadow-card);}
.console-activity-row {display:grid;grid-template-columns:minmax(150px,max-content) minmax(0,1fr) max-content;gap:6px 18px;padding:12px 0;border-top:1px solid var(--line);font-size:14px;align-items:baseline;}
.console-activity-row:first-child {border-top:0;}
.console-activity-row time {color:var(--muted);font-size:13px;white-space:nowrap;}
.console-activity-row span {min-width:0;overflow-wrap:anywhere;}
@media (max-width:650px) {.console-activity-row {grid-template-columns:minmax(0,1fr);}}

/* Backups (task 081): one card for each environment and one for the console */
.console-backups {display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,360px),1fr));gap:20px;align-items:start;}
.vault-ui .console-backup {margin:0;min-width:0;}
.vault-ui .console-backup.is-warning {border-color:var(--tblr-warning);box-shadow:inset 3px 0 0 var(--tblr-warning),var(--tblr-shadow-card);}
.console-backup .console-card-head {margin-bottom:12px;align-items:flex-start;}
.console-backup h2 {font-size:17px;margin:0;overflow-wrap:anywhere;min-width:0;}
@media (max-width:650px) {.console-backup .console-facts {grid-template-columns:minmax(0,1fr);gap:2px;}.console-backup .console-facts dd {margin-bottom:10px;}}
/* Task 124: Older copies…, and one folder's copies in its drawer. */
.console-backup-actions {margin-top:12px;display:flex;justify-content:flex-end;}
.console-copies-tools {margin:0 0 8px;display:flex;justify-content:flex-end;}
.console-copies {list-style:none;margin:0 0 8px;padding:0;border-top:1px solid var(--tblr-border-color);}
.console-copies li {border-bottom:1px solid var(--tblr-border-color);}
.console-copy {display:flex;align-items:center;gap:10px;padding:8px 2px;margin:0;min-width:0;}
.console-copy input, .console-copy-box {flex:0 0 16px;width:16px;height:16px;margin:0;}
.console-copy-when {flex:1 1 auto;min-width:0;overflow-wrap:anywhere;}
.console-copy-size {flex:0 0 auto;color:var(--tblr-secondary);white-space:nowrap;}

/* Add an environment: what kind */
.console-kind {display:flex;flex-wrap:wrap;gap:8px;}
.console-kind label {flex:1 1 200px;display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--line);border-radius:var(--tblr-border-radius);cursor:pointer;margin:0;}
.console-kind label:has(input:checked) {border-color:var(--tblr-primary);background:var(--tblr-primary-lt);}
.vault-ui .console-kind .form-check-input {float:none;margin:0;}

/* The registration page (task 086): the sign-in page's layout with a longer form. */
.register-shell .login-card textarea {width:100%;}
.register-shell .login-card #register-submit {margin-top:22px;width:100%;}
.register-shell .register-sent {margin:18px 0 0;}
.register-shell .optional {font-weight:400;color:var(--muted);}
.register-shell .register-code-actions {display:flex;flex-wrap:wrap;gap:0 18px;}
.vault-ui .register-shell #register-error {margin:16px 0 0;color:var(--tblr-danger-text-emphasis);background:var(--tblr-danger-lt);border-radius:6px;padding:12px;font-size:13px;}
.register-shell #register-notice {margin:16px 0 0;}
.register-trap {position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden;}
/* The public site's placeholder page (task 128): the same layout, with a link to register. */
.site-shell .login-card #site-register {margin-top:22px;width:100%;}
.site-shell .site-note {margin:16px 0 0;}

/* Registrations (task 086): the waiting ones stand out; their answers sit under their details. */
.vault-ui .console-registration.is-pending {box-shadow:inset 3px 0 0 var(--tblr-primary),var(--tblr-shadow-card);}
.console-registration-actions {display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:14px;}
.console-registration .console-decline {display:block;margin-top:14px;}
.console-registration .console-decline label {display:block;margin:0 0 6px;}
.console-registration .console-decline input {width:100%;}
.console-registration .console-decline .console-registration-actions {margin-top:10px;}
.console-registration .console-notes {white-space:pre-line;}
.console-empty a {overflow-wrap:anywhere;}
.console-registration-note {margin:0 0 18px;font-size:13px;line-height:1.6;}
