@import url('../fonts/vazirmatn/font.css');
:root{--green:#0b8d51;--green-dark:#087744;--text:#1b293a;--muted:#7d8998;--line:#dfe6ec;--bg:#f4f7fb;--danger:#b83d3d}*{box-sizing:border-box}html,body{min-height:100%}body{margin:0;background:radial-gradient(circle at 20% 0%,rgba(11,141,81,.08),transparent 28%),linear-gradient(180deg,#fbfcfe,#f2f6fa);font-family:"Vazirmatn",Tahoma,sans-serif;color:var(--text);direction:rtl}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-card{width:min(100%,560px);background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 22px 65px rgba(27,45,72,.11);overflow:hidden}.auth-card.wide{width:min(100%,920px)}.auth-head{padding:28px 30px 22px;border-bottom:1px solid #e8edf1;background:linear-gradient(135deg,#fff,#f8fcfa)}.brand-row{display:flex;align-items:center;gap:12px}.brand-logo{width:48px;height:48px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(135deg,var(--green),var(--green-dark));color:#fff;font-weight:900;box-shadow:0 10px 24px rgba(11,141,81,.25)}h1{font-size:20px;margin:0 0 4px}.subtitle{margin:0;color:var(--muted);font-size:11px;line-height:1.9}.auth-body{padding:25px 30px 30px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.field{display:flex;flex-direction:column;gap:6px}.field.full{grid-column:1/-1}.field label{font-size:10.5px;font-weight:700;color:#5d6978}.field input,.field select{height:42px;border:1px solid #d4dde5;border-radius:8px;padding:0 12px;font:inherit;font-size:11px;outline:none;background:#fff}.field input:focus,.field select:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(11,141,81,.09)}.button{height:43px;border:0;border-radius:8px;background:linear-gradient(135deg,var(--green),var(--green-dark));color:#fff;font:inherit;font-size:11px;font-weight:800;cursor:pointer;box-shadow:0 8px 20px rgba(11,141,81,.2)}.button:hover{filter:brightness(.96)}.button:disabled{opacity:.6;cursor:not-allowed}.alert{padding:11px 13px;border-radius:8px;margin-bottom:15px;font-size:10.5px;line-height:1.8}.alert.error{background:#fff1f1;border:1px solid #efcaca;color:var(--danger)}.alert.success{background:#ebf8f1;border:1px solid #ccebd9;color:#147849}.requirements{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:18px}.requirement{padding:9px 11px;border:1px solid #e2e8ed;border-radius:8px;background:#fafcfd;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:10px}.requirement .ok{color:#0b8d51;font-weight:800}.requirement .bad{color:#bf4141;font-weight:800}.database-fields{display:none;grid-column:1/-1}.database-fields.show{display:grid}.muted{color:var(--muted);font-size:9.5px;line-height:1.9}.auth-footer{padding:13px 30px;border-top:1px solid #e8edf1;text-align:center;color:#909aa6;font-size:9px}.login-meta{margin-top:14px;text-align:center;color:#8c97a4;font-size:9.5px}.install-complete{text-align:center;padding:12px}.install-complete .check{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;margin:0 auto 15px;background:#e7f7ee;color:#0b8d51;font-size:28px;font-weight:900}.link-button{display:inline-flex;align-items:center;justify-content:center;min-width:160px;height:42px;margin-top:14px;border-radius:8px;background:var(--green);color:#fff;text-decoration:none;font-size:11px;font-weight:800}@media(max-width:650px){.auth-shell{padding:10px}.auth-head,.auth-body{padding:20px}.grid,.requirements{grid-template-columns:1fr}.field.full{grid-column:auto}.auth-card{border-radius:12px}}
.auth-links{text-align:center}.text-link{color:#0b8d51;text-decoration:none;font-size:10.5px;font-weight:700}.text-link:hover{text-decoration:underline}

/* SmartOS 4.3.3 — responsive authentication and installer */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;overflow-x:hidden}
body{min-width:280px;min-height:100dvh;overflow-x:hidden}
.auth-shell{min-height:100dvh;padding:clamp(10px,3vw,28px);padding-bottom:max(clamp(10px,3vw,28px),env(safe-area-inset-bottom))}
.auth-card{max-width:100%}
.auth-head,.auth-body,.auth-footer{padding-inline:clamp(16px,4vw,30px)}
.brand-row{min-width:0}.brand-row>div:last-child{min-width:0}
h1,.subtitle{overflow-wrap:anywhere}
.grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}
.requirements{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}
.database-fields.show{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}
.field input,.field select,.button,.link-button{min-height:44px}

@media(max-width:650px){
  .auth-shell{place-items:start center;padding:8px;padding-top:max(8px,env(safe-area-inset-top))}
  .auth-card,.auth-card.wide{width:100%;border-radius:13px}
  .auth-head{padding-block:20px 17px}
  .auth-body{padding-block:18px 22px}
  .auth-footer{padding-block:12px}
  .brand-row{align-items:flex-start}
  .brand-logo{width:43px;height:43px;border-radius:11px;flex:0 0 43px}
  h1{font-size:17px;line-height:1.7}
  .subtitle{font-size:10px}
  .grid,.requirements,.database-fields.show{grid-template-columns:1fr}
  .field.full{grid-column:auto}
  .requirement{min-height:42px}
  .button,.link-button{width:100%;min-width:0}
}

@media(max-width:380px){
  .auth-shell{padding-inline:4px}
  .auth-head,.auth-body,.auth-footer{padding-inline:14px}
  .brand-row{gap:9px}
  h1{font-size:15px}
}

@media(max-height:560px) and (orientation:landscape){
  .auth-shell{place-items:start center;padding-block:6px}
  .auth-head{padding-block:13px 11px}
  .auth-body{padding-block:13px}
  .brand-logo{width:38px;height:38px;flex-basis:38px}
  h1{font-size:15px}
}

@media(pointer:coarse){
  .field input,.field select,.button,.link-button{min-height:46px;font-size:max(11px,1em)}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* SmartOS 4.4.2 — authentication UX completion */
body{font-size:14px;line-height:1.65}.auth-card{border-color:#d8e1e8}.auth-head{position:relative}.field label{font-size:11.5px;color:#4f5f70}.field label.is-required::after{content:" *";color:#bf3838}.field input,.field select{font-size:12px;border-color:#cbd6df}.field input:hover,.field select:hover{border-color:#a9b8c6}.field.has-error input,.field.has-error select{border-color:#d25555;background:#fff8f8;box-shadow:0 0 0 3px rgba(210,85,85,.1)}.field.has-error::after{content:"این مقدار را تکمیل یا اصلاح کنید.";font-size:10px;color:#b63b3b}.password-wrap{position:relative}.password-wrap input{width:100%;padding-inline-end:54px}.password-wrap input[dir="ltr"]{padding-inline-end:12px;padding-inline-start:54px}.password-toggle{position:absolute;inset-inline-end:3px;inset-block:3px;width:36px;height:36px;border:0;border-radius:7px;background:transparent;color:#657486;display:grid;place-items:center;cursor:pointer}.password-toggle:hover,.password-toggle.active{background:#eef7f2;color:#087c48}.password-toggle svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8}.alert{font-size:11.5px;padding:12px 14px;border-inline-start-width:4px}.button,.link-button{font-size:12px}.button.is-loading{position:relative;color:transparent!important;pointer-events:none}.button.is-loading::after{content:"";position:absolute;inset:50% auto auto 50%;width:18px;height:18px;margin:-9px;border:2px solid #fff;border-inline-end-color:transparent;border-radius:50%;animation:authSpin .7s linear infinite}@keyframes authSpin{to{transform:rotate(360deg)}}.login-meta,.auth-footer{font-size:10px}.text-link{font-size:11.5px}.requirement{font-size:11px}.muted{font-size:10.5px}.requirement .ok::before{content:"✓ ";}.requirement .bad::before{content:"! ";}.auth-card:focus-within{box-shadow:0 24px 75px rgba(27,45,72,.14)}
:where(a,button,input,select):focus-visible{outline:2px solid #1f7ae0;outline-offset:2px;box-shadow:0 0 0 3px rgba(31,122,224,.18)}
@media(max-width:650px){body{font-size:13.5px}.auth-head,.auth-body{padding-inline:18px}.field input,.field select,.button,.link-button{font-size:13px}.subtitle{font-size:11px}.login-meta{font-size:10.5px}}
@media(pointer:coarse){.password-toggle{width:42px;height:42px;inset-block:2px}.password-wrap input{padding-inline-end:58px}.password-wrap input[dir="ltr"]{padding-inline-end:12px;padding-inline-start:58px}}

/* Installer — custom database driver dropdown */
.db-driver-field{gap:8px}
.db-driver-dropdown{position:relative}
.db-driver-trigger{
  width:100%;min-height:46px;display:flex;align-items:stretch;gap:0;padding:0;border:1px solid #c5d9cc;border-radius:11px;
  background:linear-gradient(135deg,#f7fcf9 0%,#eef7f1 100%);color:var(--text);font:inherit;text-align:right;cursor:pointer;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.85),0 1px 2px rgba(11,141,81,.06);
  transition:border-color .18s ease,box-shadow .18s ease,background .18s ease
}
.db-driver-field[data-driver="mysql"] .db-driver-trigger{
  border-color:#c5d0e3;background:linear-gradient(135deg,#f7f9fd 0%,#eef3fa 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.85),0 1px 2px rgba(31,90,141,.06)
}
.db-driver-trigger:hover{border-color:#9fc5ad}
.db-driver-field[data-driver="mysql"] .db-driver-trigger:hover{border-color:#a8b8d4}
.db-driver-trigger:focus,
.db-driver-trigger:focus-visible,
.db-driver-dropdown.is-open .db-driver-trigger{
  outline:none;box-shadow:inset 0 1px 0 rgba(255,255,255,.85),0 1px 2px rgba(11,141,81,.06)
}
.db-driver-dropdown.is-open .db-driver-trigger{border-color:#9fc5ad}
.db-driver-field[data-driver="mysql"] .db-driver-trigger:focus,
.db-driver-field[data-driver="mysql"] .db-driver-trigger:focus-visible,
.db-driver-field[data-driver="mysql"] .db-driver-dropdown.is-open .db-driver-trigger{
  outline:none;box-shadow:inset 0 1px 0 rgba(255,255,255,.85),0 1px 2px rgba(31,90,141,.06)
}
.db-driver-field[data-driver="mysql"] .db-driver-dropdown.is-open .db-driver-trigger{border-color:#a8b8d4}
.db-driver-badge{
  flex:0 0 46px;display:grid;place-items:center;font-size:10px;font-weight:900;letter-spacing:.02em;
  color:var(--green-dark);background:rgba(11,141,81,.1);border-inline-end:1px solid rgba(11,141,81,.14);
  border-start-start-radius:11px;border-end-start-radius:11px
}
.db-driver-field[data-driver="mysql"] .db-driver-badge{
  color:#2d5f94;background:rgba(45,95,148,.1);border-inline-end-color:rgba(45,95,148,.14)
}
.db-driver-trigger-text{
  flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:2px;padding:8px 10px;text-align:right
}
.db-driver-trigger-text b{font-size:12px;font-weight:800;color:var(--text)}
.db-driver-trigger-text small{font-size:10px;font-weight:500;color:var(--muted);line-height:1.5}
.db-driver-caret{
  flex:0 0 40px;display:grid;place-items:center;border-inline-start:1px solid rgba(11,141,81,.1);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b8d51' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:center;background-size:18px;
  border-start-end-radius:11px;border-end-end-radius:11px;transition:transform .18s ease
}
.db-driver-field[data-driver="mysql"] .db-driver-caret{
  border-inline-start-color:rgba(45,95,148,.12);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232d5f94' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")
}
.db-driver-field[data-driver="mariadb"] .db-driver-trigger{
  border-color:#d9c4b8;background:linear-gradient(135deg,#fdf8f5 0%,#f8efe9 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.85),0 1px 2px rgba(154,74,42,.06)
}
.db-driver-field[data-driver="mariadb"] .db-driver-trigger:hover{border-color:#c9a894}
.db-driver-field[data-driver="mariadb"] .db-driver-trigger:focus,
.db-driver-field[data-driver="mariadb"] .db-driver-trigger:focus-visible,
.db-driver-field[data-driver="mariadb"] .db-driver-dropdown.is-open .db-driver-trigger{
  outline:none;box-shadow:inset 0 1px 0 rgba(255,255,255,.85),0 1px 2px rgba(154,74,42,.06)
}
.db-driver-field[data-driver="mariadb"] .db-driver-dropdown.is-open .db-driver-trigger{border-color:#c9a894}
.db-driver-field[data-driver="mariadb"] .db-driver-badge{
  color:#9a4a2a;background:rgba(154,74,42,.1);border-inline-end-color:rgba(154,74,42,.14)
}
.db-driver-field[data-driver="mariadb"] .db-driver-caret{
  border-inline-start-color:rgba(154,74,42,.12);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239a4a2a' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")
}
.db-driver-field[data-driver="mariadb"] .db-driver-menu{border-color:#e4d4c8;box-shadow:0 16px 40px rgba(58,35,24,.14),0 2px 8px rgba(154,74,42,.08)}
.db-driver-dropdown.is-open .db-driver-caret{transform:rotate(180deg)}
.db-driver-menu{
  position:absolute;inset-inline:0;top:calc(100% + 6px);z-index:30;margin:0;padding:6px;list-style:none;
  border:1px solid #d2e0d6;border-radius:12px;background:#fff;
  box-shadow:0 16px 40px rgba(15,35,24,.14),0 2px 8px rgba(11,141,81,.08);
  max-height:min(280px,52dvh);overflow:auto;outline:none
}
.db-driver-menu:focus,.db-driver-menu:focus-visible{outline:none;box-shadow:0 16px 40px rgba(15,35,24,.14),0 2px 8px rgba(11,141,81,.08)}
.db-driver-field[data-driver="mysql"] .db-driver-menu{border-color:#d0dae8;box-shadow:0 16px 40px rgba(20,35,58,.14),0 2px 8px rgba(45,95,148,.08)}
.db-driver-option{
  display:flex;align-items:center;gap:10px;padding:10px 10px 10px 8px;border-radius:9px;cursor:pointer;
  border:1px solid transparent;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease
}
.db-driver-option+.db-driver-option{margin-top:4px}
.db-driver-option:hover,.db-driver-option.is-focused{background:#f3faf6;border-color:#d4ebdc}
.db-driver-option[data-value="mysql"]:hover,.db-driver-option[data-value="mysql"].is-focused{background:#f3f7fc;border-color:#d4e0ef}
.db-driver-option[data-value="mariadb"]:hover,.db-driver-option[data-value="mariadb"].is-focused{background:#fdf6f2;border-color:#e8d4c6}
.db-driver-option.is-selected{
  background:linear-gradient(135deg,#ebf8f1 0%,#f7fcf9 100%);border-color:#b9dec9;
  box-shadow:inset 0 0 0 1px rgba(11,141,81,.08)
}
.db-driver-option[data-value="mysql"].is-selected{
  background:linear-gradient(135deg,#edf3fb 0%,#f7f9fd 100%);border-color:#c5d5ea;
  box-shadow:inset 0 0 0 1px rgba(45,95,148,.08)
}
.db-driver-option[data-value="mariadb"].is-selected{
  background:linear-gradient(135deg,#faeee7 0%,#fdf8f5 100%);border-color:#e0c9b8;
  box-shadow:inset 0 0 0 1px rgba(154,74,42,.08)
}
.db-driver-option-badge{
  flex:0 0 38px;height:38px;display:grid;place-items:center;border-radius:9px;font-size:9.5px;font-weight:900;
  color:var(--green-dark);background:rgba(11,141,81,.12)
}
.db-driver-option[data-value="mysql"] .db-driver-option-badge{color:#2d5f94;background:rgba(45,95,148,.12)}
.db-driver-option[data-value="mariadb"] .db-driver-option-badge{color:#9a4a2a;background:rgba(154,74,42,.12)}
.db-driver-option-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.db-driver-option-body b{font-size:12px;font-weight:800;color:var(--text)}
.db-driver-option-body small{font-size:10px;color:var(--muted);line-height:1.55}
.db-driver-option-check{
  flex:0 0 18px;height:18px;border-radius:50%;border:2px solid #c5d5ce;background:#fff;position:relative
}
.db-driver-option.is-selected .db-driver-option-check{
  border-color:var(--green);background:var(--green)
}
.db-driver-option[data-value="mysql"].is-selected .db-driver-option-check{border-color:#3d7ab8;background:#3d7ab8}
.db-driver-option[data-value="mariadb"].is-selected .db-driver-option-check{border-color:#b85c38;background:#b85c38}
.db-driver-option.is-selected .db-driver-option-check::after{
  content:"";position:absolute;left:50%;top:44%;width:5px;height:9px;border:2px solid #fff;border-width:0 2px 2px 0;
  transform:translate(-50%,-50%) rotate(45deg)
}
.db-driver-hint{display:block;margin-top:2px}
@media(max-width:650px){
  .db-driver-trigger{min-height:48px}
  .db-driver-badge{flex-basis:42px}
  .db-driver-trigger-text b,.db-driver-option-body b{font-size:13px}
  .db-driver-menu{padding:5px}
}

/* Skip link and password strength (auth pages) */
.skip-link{
  position:fixed;z-index:1000;inset-block-start:8px;inset-inline-start:12px;padding:9px 14px;border-radius:8px;
  background:#172033;color:#fff;transform:translateY(-150%);transition:transform .18s;box-shadow:0 8px 24px rgba(0,0,0,.2)
}
.skip-link:focus{transform:none;outline:3px solid #fff;outline-offset:2px}
.password-strength{margin-top:6px;display:flex;align-items:center;gap:8px}
.password-strength-bar{flex:1;height:4px;border-radius:999px;background:#e5eaef;overflow:hidden}
.password-strength-bar i{display:block;height:100%;width:0;border-radius:999px;background:#c43e3e;transition:width .18s ease,background .18s ease}
.password-strength[data-level="2"] .password-strength-bar i{background:#d4a017;width:50%}
.password-strength[data-level="3"] .password-strength-bar i{background:#15925a;width:75%}
.password-strength[data-level="4"] .password-strength-bar i{background:#087744;width:100%}
.password-strength-text{font-size:10px;font-weight:700;color:var(--muted);min-width:3.5em}

/* Dark mode — auth & installer pages */
body.dark-ui{
  --text:#e6ebf0;
  --muted:#a8b4c0;
  --line:#394552;
  --bg:#151a21;
  --danger:#ff9a9a;
}
body.dark-ui{background:radial-gradient(circle at 20% 0%,rgba(11,141,81,.12),transparent 28%),linear-gradient(180deg,#1a2028,#151a21);color:var(--text)}
body.dark-ui .auth-card{background:#202731;border-color:var(--line);box-shadow:0 22px 65px rgba(0,0,0,.35)}
body.dark-ui .auth-head{background:linear-gradient(135deg,#202731,#1b222b);border-bottom-color:var(--line)}
body.dark-ui .auth-footer{border-top-color:var(--line);color:var(--muted)}
body.dark-ui .field label{color:#b2bec9}
body.dark-ui .field input,
body.dark-ui .field select{background:#1b222b;border-color:var(--line);color:var(--text)}
body.dark-ui .field input:hover,
body.dark-ui .field select:hover{border-color:#4f5d6d}
body.dark-ui .field.has-error input,
body.dark-ui .field.has-error select{border-color:#a85a5a;background:#3a2828}
body.dark-ui .requirement{background:#242d37;border-color:var(--line)}
body.dark-ui .password-toggle{color:#9aa8b5}
body.dark-ui .password-toggle:hover,
body.dark-ui .password-toggle.active{background:#243029;color:#9edcb5}
body.dark-ui .alert.error{background:#3a2828;border-color:#604044;color:#ffb9b9}
body.dark-ui .alert.success{background:#203d2e;border-color:#365342;color:#a6e0bd}
body.dark-ui .login-meta,
body.dark-ui .auth-footer,
body.dark-ui .muted{color:var(--muted)}
body.dark-ui .text-link{color:#6dd99a}
body.dark-ui .db-driver-trigger{background:linear-gradient(135deg,#242d37,#1b222b);border-color:var(--line);box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 1px 2px rgba(0,0,0,.2)}
body.dark-ui .db-driver-field[data-driver="mysql"] .db-driver-trigger{background:linear-gradient(135deg,#252f3d,#1d2430);border-color:#3a4a62}
body.dark-ui .db-driver-field[data-driver="mariadb"] .db-driver-trigger{background:linear-gradient(135deg,#302824,#241e1a);border-color:#4a3d36}
body.dark-ui .db-driver-menu{background:#1b222b;border-color:var(--line);box-shadow:0 16px 40px rgba(0,0,0,.35)}
body.dark-ui .db-driver-option:hover,
body.dark-ui .db-driver-option.is-focused{background:#243029;border-color:#355a47}
body.dark-ui .db-driver-option[data-value="mysql"]:hover,
body.dark-ui .db-driver-option[data-value="mysql"].is-focused{background:#26313f;border-color:#3d5270}
body.dark-ui .db-driver-option[data-value="mariadb"]:hover,
body.dark-ui .db-driver-option[data-value="mariadb"].is-focused{background:#302824;border-color:#5a4638}
body.dark-ui .db-driver-option.is-selected{background:linear-gradient(135deg,#203d2e,#243029);border-color:#3f7d5c}
body.dark-ui .db-driver-option-check{background:#1b222b;border-color:#4a5562}
body.dark-ui .password-strength-bar{background:#394552}

/* SmartOS installer layout */
.hidden{display:none!important}
.install-form{display:flex;flex-direction:column;gap:18px}
.install-section{
  padding:18px 18px 16px;border:1px solid #e2e9ef;border-radius:14px;background:linear-gradient(180deg,#fcfdfd 0%,#f8fafb 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9)
}
.install-section--checks{padding-bottom:14px}
.install-section-head{display:flex;flex-direction:column;gap:4px;margin-bottom:14px}
.install-section-head h2{margin:0;font-size:15px;font-weight:800;color:#1b293a}
.install-section-head p{margin:0;font-size:11px;line-height:1.8;color:var(--muted)}
.install-grid{gap:12px 14px}
.install-toggle{
  display:flex;align-items:flex-start;gap:12px;margin-top:14px;padding:12px 14px;border:1px solid #d8e8de;border-radius:12px;
  background:linear-gradient(135deg,#f3fbf6 0%,#eef8f1 100%);cursor:pointer
}
.install-toggle input[type="checkbox"]{
  width:18px;height:18px;margin-top:2px;accent-color:var(--green);flex:0 0 auto
}
.install-toggle-copy{display:flex;flex-direction:column;gap:3px;min-width:0}
.install-toggle-copy b{font-size:12px;font-weight:800;color:#1b293a}
.install-toggle-copy small{font-size:10.5px;line-height:1.7;color:var(--muted)}
.install-notice{
  margin-top:12px;padding:11px 13px;border-radius:10px;border:1px solid #d4ebdc;background:#f3fbf6;
  font-size:11px;line-height:1.85;color:#3f5d4d
}
.install-db-stack{display:flex;flex-direction:column;gap:12px}
.install-actions{
  position:sticky;bottom:0;z-index:2;padding:14px 0 2px;background:linear-gradient(180deg,rgba(255,255,255,0) 0%,#fff 28%);
}
.install-actions .button{width:100%;min-height:48px;font-size:13px;border-radius:10px}
.install-complete-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:8px}
.link-button--ghost{background:#fff;color:var(--green);border:1px solid #b9dec9;box-shadow:none}
.link-button--ghost:hover{background:#f3fbf6}
.auth-card.wide .auth-body{padding-top:20px}
.install-section--checks .requirements{margin-bottom:0;grid-template-columns:repeat(3,minmax(0,1fr))}
.install-section--checks .requirement{
  flex-direction:column;align-items:flex-start;gap:6px;min-height:64px;padding:10px 12px;border-radius:10px
}
.install-section--checks .requirement span:first-child{font-size:10.5px;line-height:1.6;color:#4f5f70}
.install-section--checks .requirement .ok,
.install-section--checks .requirement .bad{font-size:11px}
@media(max-width:900px){
  .install-section--checks .requirements{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:650px){
  .install-section{padding:15px 14px 13px;border-radius:12px}
  .install-section-head h2{font-size:14px}
  .install-section--checks .requirements{grid-template-columns:1fr}
  .install-toggle{align-items:flex-start}
  .install-actions{padding-bottom:max(2px,env(safe-area-inset-bottom))}
  .install-complete-actions{flex-direction:column;width:100%}
  .install-complete-actions .link-button{width:100%}
}
body.dark-ui .install-section{background:linear-gradient(180deg,#232b35 0%,#1d242d 100%);border-color:var(--line);box-shadow:inset 0 1px 0 rgba(255,255,255,.03)}
body.dark-ui .install-section-head h2{color:var(--text)}
body.dark-ui .install-toggle{background:linear-gradient(135deg,#243029 0%,#1f2a24 100%);border-color:#355a47}
body.dark-ui .install-toggle-copy b{color:var(--text)}
body.dark-ui .install-notice{background:#243029;border-color:#355a47;color:#b8d6c4}
body.dark-ui .install-actions{background:linear-gradient(180deg,rgba(32,39,49,0) 0%,#202731 28%)}
body.dark-ui .link-button--ghost{background:#1b222b;color:#6dd99a;border-color:#355a47}

/* Account-first auth switch */
.auth-switch{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:5px;margin:0 0 18px;border:1px solid var(--line);border-radius:10px;background:#f5f8fa}
.auth-switch a,.auth-switch button{display:flex;align-items:center;justify-content:center;min-height:38px;border:0;background:transparent;border-radius:7px;color:#667586;text-decoration:none;font:inherit;font-size:11.5px;font-weight:800;cursor:pointer}
.auth-switch a.is-active,.auth-switch button.is-active{background:#fff;color:var(--green-dark);box-shadow:0 2px 8px rgba(27,45,72,.08)}
.auth-mode-switch{margin-top:-8px}
[hidden]{display:none!important}
[data-login-panel="otp"] input[name="code"]{letter-spacing:.42em;font-size:22px;text-align:center;font-variant-numeric:tabular-nums}
.auth-choice-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}
.auth-choice-actions .button,.auth-choice-actions .link-button{width:100%;min-width:0;margin:0;text-decoration:none;display:flex;align-items:center;justify-content:center}
.auth-choice-actions .link-button{background:#fff;color:var(--green-dark);border:1px solid #b9dec9;box-shadow:none}
body.dark-ui .auth-switch{background:#1b222b;border-color:var(--line)}
body.dark-ui .auth-switch a,body.dark-ui .auth-switch button{color:#a8b4c0}
body.dark-ui .auth-switch a.is-active,body.dark-ui .auth-switch button.is-active{background:#27313c;color:#6dd99a;box-shadow:none}
body.dark-ui .auth-choice-actions .link-button{background:#1b222b;color:#6dd99a;border-color:#355a47}
@media(max-width:650px){.auth-choice-actions{grid-template-columns:1fr}}

.login-card{width:min(100%,500px);position:relative}
.auth-theme-toggle{position:absolute;inset-inline-end:16px;inset-block-start:16px;z-index:2;border:1px solid var(--line);background:#fff;color:var(--green-dark);border-radius:999px;min-height:36px;padding:0 12px;font:inherit;font-size:11px;font-weight:800;cursor:pointer}
.login-form .field input{min-height:50px;height:50px;font-size:14px}
.login-form .button{min-height:50px;height:50px;font-size:14px}
.login-card .auth-head{padding:32px 28px 18px}
.login-card .auth-body{padding:22px 28px 28px}
.login-card h1{font-size:22px}
.login-card .subtitle{font-size:12.5px;line-height:1.9}
body.dark-ui .auth-theme-toggle{background:#1b222b;color:#6dd99a;border-color:#355a47}
@media(max-width:650px){
  .login-card{width:100%}
  .auth-theme-toggle{inset-inline-end:10px;inset-block-start:10px}
}
