:root{
  --navy:#0d2b4f;
  --navy-2:#163d68;
  --navy-3:#0a203b;
  --orange:#f47a16;
  --orange-2:#e9690a;
  --cream:#fff7e9;
  --cream-2:#f8ecd7;
  --line:#e8d9bf;
  --text:#10233c;
  --muted:#64748b;
  --white:#ffffff;
  --green:#1f8a3b;
  --red:#b42318;
  --shadow:0 16px 50px rgba(13,43,79,.13);
  --radius:18px;
}
*{box-sizing:border-box}
html{min-width:320px;background:var(--cream)}
body{margin:0;min-height:100vh;font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--text);background:linear-gradient(135deg,var(--cream) 0%,#fffdf8 58%,var(--cream-2) 100%);overflow-x:hidden}
button,input,select,textarea{font:inherit;max-width:100%}
button{cursor:pointer;border:0}
input,select,textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:12px 13px;background:#fff;color:var(--text);outline:none;min-height:44px}
textarea{resize:vertical;min-height:96px;line-height:1.4}
label{display:grid;gap:7px;font-weight:800;font-size:.9rem;color:var(--navy-3)}
table{width:100%;border-collapse:collapse;min-width:680px}
th,td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:.78rem;text-transform:uppercase;letter-spacing:.07em;color:var(--navy)}
.hidden{display:none!important}.muted{color:var(--muted)}.good{color:var(--green);font-weight:900}.bad{color:var(--red);font-weight:900}
.shell{min-height:100vh;display:grid;grid-template-columns:280px minmax(0,1fr)}
.sidebar{position:sticky;top:0;align-self:start;min-height:100vh;padding:24px 18px;background:linear-gradient(180deg,var(--navy) 0%,var(--navy-3) 100%);color:#fff;display:flex;flex-direction:column;gap:20px;box-shadow:6px 0 30px rgba(13,43,79,.18);z-index:5}
.brand-block{display:grid;gap:14px;padding:16px;border:1px solid rgba(255,255,255,.16);border-radius:20px;background:rgba(255,255,255,.06);overflow:hidden}
.brand-flag{width:100%;height:78px;object-fit:cover;border-radius:14px;border:1px solid rgba(255,255,255,.2)}
.brand-text span,.eyebrow{margin:0 0 6px 0;font-weight:900;text-transform:uppercase;letter-spacing:.11em;font-size:.73rem;color:var(--orange)}
.brand-text strong{display:block;font-family:Georgia,serif;font-size:1.72rem;line-height:1.02;color:#fff;overflow-wrap:anywhere}
.nav{display:grid;gap:8px}.nav button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 14px;border-radius:13px;background:transparent;color:#fff;font-weight:800;text-align:left}.nav button:hover,.nav button.active{background:linear-gradient(135deg,var(--orange),var(--orange-2));box-shadow:0 8px 20px rgba(244,122,22,.25)}
.security-note{margin-top:auto;display:flex;align-items:flex-start;gap:10px;padding:14px;border:1px solid rgba(255,255,255,.16);border-radius:16px;background:rgba(255,255,255,.06)}.security-note p{margin:4px 0 0;color:rgba(255,255,255,.76);font-size:.86rem}.dot{width:10px;height:10px;border-radius:50%;background:#5bd46d;margin-top:5px;flex:0 0 auto}.logout-button{padding:12px 14px;border-radius:13px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);color:#fff;font-weight:900}
.main{min-width:0;width:100%}.auth-mode .shell{display:block}.auth-mode .sidebar{display:none}.auth-mode .main{min-height:100vh;width:100%}
.auth-screen{min-height:100vh;display:grid;place-items:center;padding:32px 20px}.auth-card{width:min(1060px,100%);display:grid;grid-template-columns:minmax(320px,.95fr) minmax(420px,1.05fr);gap:24px;align-items:stretch}.auth-intro{background:linear-gradient(160deg,var(--navy) 0%,var(--navy-3) 100%);color:#fff;border-radius:28px;padding:34px;box-shadow:var(--shadow);border-bottom:7px solid var(--orange);display:flex;flex-direction:column;justify-content:center;min-height:450px;overflow:hidden}.flag-chip{width:150px;height:76px;border-radius:18px;overflow:hidden;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);margin-bottom:24px}.flag-chip img{width:100%;height:100%;object-fit:cover}.auth-intro h1{font-family:Georgia,serif;font-size:clamp(2.3rem,5vw,4.3rem);line-height:.98;margin:0 0 18px}.auth-intro p:last-child{font-size:1.08rem;line-height:1.65;color:rgba(255,255,255,.86);max-width:500px}.auth-forms{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-content:center}.form-card,.panel,.card{background:rgba(255,255,255,.93);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.form-card{padding:24px;display:grid;gap:13px;align-content:start}.form-card h2,.panel h3,.card h3{margin:0;color:var(--navy-3)}
.app-screen{padding:28px;max-width:1480px;margin:0 auto}.topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:22px;padding:22px 24px;background:linear-gradient(135deg,var(--navy),var(--navy-3));border-radius:24px;color:#fff;box-shadow:var(--shadow);border-bottom:5px solid var(--orange)}.topbar h1{margin:0;font-family:Georgia,serif;font-size:2rem}.topbar .eyebrow{margin:0 0 4px}.content{display:grid;gap:20px}.grid{display:grid;gap:18px;min-width:0}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.card,.panel{padding:20px;min-width:0;overflow:hidden}.card h2{font-size:2.05rem;line-height:1.05;margin:12px 0;color:var(--navy)}.card p{margin:0;line-height:1.5}.section-title{margin-top:4px}.section-title h3{margin:0;color:var(--navy-3)}
.accounts{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;min-width:0}.account{padding:18px;border-radius:17px;background:linear-gradient(145deg,#fff,#fff8ed);border:1px solid var(--line);min-width:0}.account h3{margin:8px 0 10px;color:var(--navy-3);overflow-wrap:anywhere}.num{font-family:Consolas,ui-monospace,monospace;color:var(--muted);font-size:.86rem;overflow-wrap:anywhere}.bal{font-size:1.55rem;font-weight:950;color:var(--navy);margin-bottom:12px}.pill{display:inline-block;margin:4px 5px 0 0;padding:6px 9px;border-radius:999px;background:#eef4fb;color:var(--navy);font-size:.75rem;font-weight:900;max-width:100%;overflow-wrap:anywhere}.form{display:grid;gap:13px}.actions{display:flex;flex-wrap:wrap;gap:10px}.table-wrap{width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:14px;background:#fff}.button,button:not(.nav button):not(.logout-button){display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:12px;padding:12px 16px;font-weight:900;background:var(--navy);color:#fff;min-height:44px}.button.primary,.primary{background:linear-gradient(135deg,var(--orange),var(--orange-2));color:#fff}.button.secondary,.secondary{background:#fff;color:var(--navy);border:1px solid rgba(255,255,255,.35)}.orange{background:linear-gradient(135deg,var(--orange),var(--orange-2));color:#fff}.danger{background:var(--red)!important;color:#fff}.full{width:100%}
.toast{position:fixed;top:18px;right:18px;z-index:9999;display:none;max-width:min(420px,calc(100vw - 36px));padding:14px 16px;background:var(--navy-3);color:#fff;border-radius:14px;box-shadow:0 12px 34px rgba(0,0,0,.22);font-weight:800}
@media (max-width:1100px){.shell{grid-template-columns:230px minmax(0,1fr)}.sidebar{padding:18px 14px}.brand-text strong{font-size:1.35rem}.auth-card{grid-template-columns:1fr}.auth-intro{min-height:0}.grid.three{grid-template-columns:1fr 1fr}}
@media (max-width:780px){.shell{display:block}.sidebar{position:static;min-height:0}.app-screen{padding:18px}.topbar{align-items:flex-start;flex-direction:column}.topbar .button{width:100%}.grid.two,.grid.three{grid-template-columns:1fr}.auth-screen{padding:18px}.auth-forms{grid-template-columns:1fr}.auth-intro{padding:28px}.auth-intro h1{font-size:2.45rem}.flag-chip{width:130px;height:64px}.card h2{font-size:1.65rem}}
@media (max-width:430px){.auth-screen,.app-screen{padding:12px}.auth-card{gap:14px}.auth-intro,.form-card,.panel,.card{border-radius:16px;padding:18px}.auth-intro h1{font-size:2.05rem}.brand-block{grid-template-columns:72px 1fr;align-items:center}.brand-flag{height:54px}.brand-text strong{font-size:1.15rem}.topbar h1{font-size:1.55rem}.actions .button,.actions button{width:100%}}

/* v8 layout hardening */
.page-stack{display:grid;gap:18px;min-width:0;width:100%}
.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin:0 0 18px 0;min-width:0}
.panel-head h3{margin:0;color:var(--navy-3)}
.panel-head p{margin:6px 0 0;line-height:1.45;max-width:760px}
.journal-head{padding-bottom:16px;border-bottom:1px solid var(--line)}
.no-shrink{flex:0 0 auto;white-space:nowrap}
.compact-form{gap:0}
.form-grid{display:grid;grid-template-columns:minmax(220px,1fr) minmax(220px,1fr) minmax(170px,.45fr);gap:14px;align-items:end;min-width:0}
.form-submit{min-width:0}
.accounts.accounts-stable{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));align-items:stretch}
.accounts.accounts-stable .account{display:grid;align-content:start;min-height:190px;overflow:hidden}
.account .num:last-child{margin-top:10px;line-height:1.35}
.account .bal{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.panel .accounts{margin-top:0}
@media (max-width:900px){
  .panel-head{flex-direction:column;align-items:stretch;gap:12px}
  .panel-head .button,.panel-head button{width:100%}
  .no-shrink{width:100%}
  .form-grid{grid-template-columns:1fr}
}
@media (max-width:520px){
  .accounts,.accounts.accounts-stable{grid-template-columns:1fr}
  .journal-head{padding-bottom:12px}
  table{min-width:760px}
}

/* v9 additions */
.small{padding:8px 10px!important;min-height:34px!important;font-size:.82rem!important}
.header-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end;min-width:260px}
.header-actions select{width:auto;min-width:160px;background:#fff}
.closed-account{opacity:.72;background:linear-gradient(145deg,#f8fafc,#fff8ed)!important}
.closed-account::after{content:"Closed for recordkeeping";display:block;margin-top:10px;color:var(--red);font-weight:900;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em}
.actions.spaced{margin-top:12px}
.panel h3 + .table-wrap{margin-top:12px}
@media (max-width:900px){.header-actions{width:100%;justify-content:stretch}.header-actions select,.header-actions .button{width:100%}}

/* v13 classic Quentovic sidebar mark */
.brand-block-classic{
  display:grid;
  gap:18px;
  padding:22px 18px 18px;
  border:none;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  text-align:center;
  overflow:visible;
}
.brand-block-classic .brand-flag{
  width:100%;
  max-width:176px;
  height:84px;
  object-fit:cover;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.18);
  justify-self:center;
  box-shadow:0 12px 30px rgba(0,0,0,.18);
}
.brand-block-classic .brand-text strong{
  display:grid;
  gap:2px;
  justify-items:center;
  font-family:Georgia,serif;
  color:#fff;
  text-transform:uppercase;
  letter-spacing:.035em;
  line-height:.96;
}
.brand-block-classic .brand-text strong span{
  color:#fff;
  font-size:1.72rem;
  letter-spacing:.035em;
}
.brand-block-classic .brand-text strong small{
  color:#fff7e9;
  font-size:.88rem;
  letter-spacing:.24em;
  font-family:Georgia,serif;
}
.treasury-stack{display:grid;gap:20px}
.process-note{border-left:5px solid var(--orange);background:#fffaf1;padding:14px 16px;border-radius:14px;margin:0;color:var(--navy-3);line-height:1.45}

/* v14 focused fixes */
.calc-box{
  border:1px dashed var(--line);
  border-radius:14px;
  background:#fffaf1;
  padding:12px 14px;
  color:var(--muted);
  font-weight:800;
  line-height:1.4;
}
.calc-box.active{
  border-style:solid;
  color:var(--navy-3);
  background:#fff7e9;
}
.calc-box strong{color:var(--navy);font-size:1.08rem}
.brand-block-classic{gap:14px;padding:20px 14px 16px}
@media (max-width:1100px){
  .brand-block-classic .brand-text strong span{font-size:1.42rem}
  .brand-block-classic .brand-text strong small{font-size:.72rem;letter-spacing:.18em}
}

/* v15 polish/security-facing UI fixes */
.compact-action{width:auto!important;min-width:150px;justify-self:start;padding:10px 14px!important;min-height:38px!important;font-size:.9rem!important}
.positive{color:#15803d;font-weight:950}.negative{color:#b91c1c;font-weight:950}.nowrap{white-space:nowrap}.ledger-id{font-family:Consolas,ui-monospace,monospace;color:var(--navy)}.journal-desc{max-width:420px;line-height:1.35;overflow-wrap:anywhere}.pill.soft{background:#fff3e3;color:var(--navy-3);border:1px solid #f5d2aa}
.table-wrap table td{vertical-align:top}.table-wrap table th{white-space:nowrap}.panel.form h3{margin-bottom:2px}
@media (max-width:900px){.compact-action{width:100%!important}.journal-desc{max-width:none}}

/* v18 beta: account activity + naming polish */
.account-activity-list{display:grid;gap:16px}
.account-activity{padding:18px!important;background:#fffdf8}
.account-activity .panel-head{margin-bottom:10px}
.account-activity table{font-size:.93rem}
.brand-block-classic .brand-text strong small{letter-spacing:.18em}

/* v19 official sign-on page */
.auth-state-portal{
  position:relative;
  min-height:100vh;
  overflow:hidden;
  display:grid;
  place-items:center;
  padding:24px;
  background:
    radial-gradient(circle at 50% 0%, rgba(68,96,132,.42), transparent 42%),
    linear-gradient(180deg,#09213f 0%, #071a32 64%, #061528 100%);
}
.auth-state-portal::before{
  content:"";
  position:absolute;
  inset:14px;
  border:1px solid rgba(244,122,22,.74);
  border-radius:18px;
  pointer-events:none;
  z-index:3;
}
.auth-state-portal::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(3,12,26,.04),rgba(3,12,26,.38));
  z-index:1;
  pointer-events:none;
}
.auth-building-bg{
  position:absolute;
  left:50%;
  bottom:-6vh;
  width:min(1280px,118vw);
  height:auto;
  transform:translateX(-50%);
  opacity:.78;
  z-index:0;
  filter:drop-shadow(0 28px 45px rgba(0,0,0,.18));
}
.auth-frame{
  position:relative;
  z-index:2;
  width:min(820px,100%);
  min-height:min(860px,calc(100vh - 48px));
  display:grid;
  grid-template-rows:auto auto 1fr;
  align-content:center;
  justify-items:center;
  gap:18px;
  color:#fff;
}
.auth-title-wrap{
  text-align:center;
  display:grid;
  justify-items:center;
  gap:10px;
  text-shadow:0 8px 24px rgba(0,0,0,.38);
}
.auth-seal{
  width:112px;
  max-width:24vw;
  height:auto;
  display:block;
  filter:drop-shadow(0 14px 28px rgba(0,0,0,.34));
}
.auth-title-wrap h1{
  margin:0;
  font-family:Georgia, 'Times New Roman', serif;
  font-size:clamp(2.75rem,7.2vw,5.25rem);
  line-height:.96;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#fffaf0;
}
.auth-title-wrap p{
  margin:0;
  color:#f5b05c;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-family:Georgia, 'Times New Roman', serif;
  font-weight:800;
  font-size:clamp(.72rem,1.7vw,.95rem);
}
.auth-rule{
  width:min(410px,84vw);
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:12px;
  color:var(--orange);
}
.auth-rule span{height:2px;background:linear-gradient(90deg,transparent,var(--orange),transparent)}
.auth-rule strong{font-size:1rem;line-height:1}
.auth-panel{
  width:min(620px,100%);
  background:#fff9ee;
  color:var(--text);
  border:1px solid rgba(255,247,233,.9);
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 26px 60px rgba(0,0,0,.38);
}
.auth-tabs{
  display:grid;
  grid-template-columns:1fr 1fr;
  border-bottom:1px solid #ddcfb8;
}
.auth-tab{
  min-height:66px;
  border-radius:0;
  background:#fffaf1;
  color:var(--navy-3);
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.045em;
  border:0;
  border-bottom:4px solid transparent;
  box-shadow:none;
}
.auth-tab.active{
  background:linear-gradient(135deg,#0d2b4f,#071a32);
  color:#fff;
  border-bottom-color:var(--orange);
}
.auth-form{
  display:none;
  padding:28px clamp(22px,5vw,54px) 30px;
  gap:12px;
}
.auth-form.active{display:grid}
.auth-card-seal{
  width:62px;
  height:auto;
  justify-self:center;
  margin:0 0 4px;
  filter:drop-shadow(0 8px 16px rgba(13,43,79,.2));
}
.auth-form h2{
  margin:0;
  text-align:center;
  font-family:Georgia, 'Times New Roman', serif;
  font-size:1.62rem;
  color:var(--navy-3);
  text-transform:uppercase;
  letter-spacing:.045em;
}
.auth-subtitle{
  margin:-4px 0 10px;
  text-align:center;
  color:#667085;
  line-height:1.4;
}
.auth-form label{
  margin-top:4px;
  text-transform:uppercase;
  letter-spacing:.035em;
  font-size:.78rem;
}
.auth-form input{
  border-radius:10px;
  border-color:#dccdb6;
  min-height:50px;
  background:#fffdf8;
}
.auth-form input:focus{
  border-color:var(--orange);
  box-shadow:0 0 0 4px rgba(244,122,22,.13);
}
.auth-submit{
  margin-top:10px;
  min-height:54px;
  text-transform:uppercase;
  letter-spacing:.045em;
  border-radius:10px;
  box-shadow:0 12px 26px rgba(244,122,22,.28);
}
.auth-footer{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  color:#fff7e9;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-family:Georgia, 'Times New Roman', serif;
  font-weight:800;
  font-size:.86rem;
  text-shadow:0 8px 18px rgba(0,0,0,.38);
}
.auth-footer b{
  width:1px;
  height:20px;
  background:rgba(244,122,22,.82);
  display:block;
}
@media (max-width:720px){
  .auth-state-portal{padding:18px 14px;place-items:start center;overflow:auto}
  .auth-state-portal::before{inset:8px;border-radius:14px}
  .auth-building-bg{width:1180px;max-width:none;bottom:4vh;opacity:.45}
  .auth-frame{min-height:auto;padding:6px 0 10px;gap:14px;align-content:start}
  .auth-seal{width:90px}
  .auth-title-wrap h1{font-size:clamp(2.05rem,10vw,3.25rem);letter-spacing:.08em}
  .auth-panel{border-radius:16px}
  .auth-tab{min-height:58px;font-size:.9rem}
  .auth-form{padding:24px 18px 26px}
  .auth-footer{font-size:.72rem;gap:10px;flex-wrap:wrap}
}
@media (max-width:420px){
  .auth-title-wrap p{letter-spacing:.08em}
  .auth-card-seal{width:54px}
  .auth-form h2{font-size:1.35rem}
}


/* v21 login refinement: one seal above Quentovic + neutral access wording */
.auth-card-seal{display:none!important}
.auth-seal{display:block!important;width:104px;max-width:24vw;height:auto;filter:drop-shadow(0 14px 28px rgba(0,0,0,.34));margin-bottom:2px}
.auth-title-wrap{gap:12px}
.auth-title-wrap h1{
  display:grid;
  gap:2px;
  margin:0;
  line-height:.98;
  color:#fffaf0;
  text-transform:uppercase;
}
.auth-title-main{
  display:block;
  font-family:Georgia,'Times New Roman',serif;
  font-size:clamp(2.65rem,7vw,5rem);
  letter-spacing:.13em;
}
.auth-title-sub{
  display:block;
  font-family:Inter,Segoe UI,Arial,sans-serif;
  font-size:clamp(1.28rem,3.65vw,2.35rem);
  font-weight:950;
  letter-spacing:.20em;
  color:#fff7e9;
}
.auth-tabs{
  position:relative;
  display:grid;
  grid-template-columns:1fr 1fr;
  background:#fff9ee;
  border-bottom:2px solid var(--navy);
}
.auth-tabs::before{
  content:"";
  position:absolute;
  top:12px;
  bottom:12px;
  left:50%;
  width:2px;
  transform:translateX(-50%);
  background:var(--navy);
  opacity:.85;
  z-index:1;
}
.auth-tab{
  position:relative;
  z-index:2;
  min-height:64px;
  border-radius:0;
  background:#fff9ee!important;
  color:var(--navy-3)!important;
  border:0!important;
  border-bottom:4px solid transparent!important;
  box-shadow:none!important;
}
.auth-tab.active{
  background:#fff9ee!important;
  color:var(--navy-3)!important;
  border-bottom-color:var(--orange)!important;
}
.auth-tab.active::after{
  content:"";
  position:absolute;
  left:20%;
  right:20%;
  bottom:-4px;
  height:4px;
  background:var(--orange);
  border-radius:99px 99px 0 0;
}
.auth-form{padding-top:34px}
@media (max-width:720px){
  .auth-seal{width:82px}
  .auth-title-main{font-size:clamp(2rem,9.5vw,3.15rem);letter-spacing:.1em}
  .auth-title-sub{font-size:clamp(1.05rem,6vw,1.75rem);letter-spacing:.18em}
  .auth-tab{min-height:58px}
}
