:root{
  --ink:#102033;
  --muted:#607083;
  --navy:#08172a;
  --navy-2:#0e2540;
  --blue:#2e6df6;
  --blue-dark:#1f55cf;
  --teal:#12a88f;
  --teal-soft:#e8f7f3;
  --green:#087f6c;
  --amber:#946200;
  --amber-soft:#fff7df;
  --red:#b43b32;
  --red-soft:#fff0ee;
  --line:#d9e1ea;
  --line2:#c7d2de;
  --surface:#ffffff;
  --canvas:#f4f6f9;
  --radius:10px;
  --shadow-sm:0 2px 8px rgba(15,32,51,.06);
  --shadow:0 12px 32px rgba(15,32,51,.10);
}

*{box-sizing:border-box}
html{background:var(--canvas);scroll-behavior:smooth}
body{font-family:Manrope,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--canvas);color:var(--ink);font-size:14px}
body.dialog-open{overflow:hidden}
button,input,select,textarea{font:inherit}
button,.btn,a{-webkit-tap-highlight-color:transparent}
.skip-link{position:fixed;left:16px;top:-60px;z-index:500;background:#fff;color:var(--ink);padding:10px 14px;border:2px solid var(--blue);border-radius:8px;font-weight:800}
.skip-link:focus{top:14px}
:focus-visible{outline:3px solid #2e6df6;outline-offset:2px}
#main-content:focus-visible{outline:none}

/* Public surface */
.wrap{width:min(100% - 48px,1200px)}
.top{height:82px;border-bottom:1px solid rgba(16,32,51,.09)}
.hero{min-height:620px;padding:82px 0;grid-template-columns:minmax(0,1.15fr) minmax(360px,.72fr);gap:72px;align-items:center}
.hero h1{font-size:clamp(48px,6vw,76px);line-height:1.01;letter-spacing:-4px;max-width:790px}
.hero p{font-size:18px;line-height:1.7;max-width:700px}
.eyebrow{border-radius:5px;padding:5px 8px;letter-spacing:.11em;background:#eaf0ff;color:#245cca}
.hero-card{border-radius:12px;padding:30px;background:linear-gradient(150deg,#0c2139,#071426);box-shadow:0 24px 70px rgba(8,23,42,.25)}
.flow-step{border-radius:8px;background:rgba(255,255,255,.055)}
.flow-step span{border-radius:6px;background:#1e4d7a;color:#75e7d3}
.trust{gap:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff;margin-bottom:80px}
.trust-card{border:0;border-right:1px solid var(--line);border-radius:0;box-shadow:none;padding:26px}
.trust-card:last-child{border-right:0}

/* Enterprise shell */
.app-shell{grid-template-columns:244px minmax(0,1fr)}
.sidebar{padding:20px 12px;background:#08172a;border-right:1px solid #132943}
.sidebar-brand{padding:4px 10px 24px}
.org-box{margin:0 4px 22px;border-radius:8px;background:#102844;border-color:#1b395a;padding:12px}
.org-box small{color:#9cafc4}
.side-label{color:#6f88a3;padding-left:12px}
.side-nav{gap:2px}
.side-nav button{min-height:44px;border-radius:7px;color:#aebdd0;padding:8px 10px}
.side-nav button .nav-ico{border-radius:6px;background:transparent}
.side-nav button:hover{background:#102844}
.side-nav button.active{background:#153455;box-shadow:inset 3px 0 0 #2f78ff}
.side-nav button.active .nav-ico{background:rgba(47,120,255,.16);color:#65e0c9}
.sidebar-foot{color:#71879e}
.app-main{padding:0 32px 64px}
.app-topbar{height:68px;margin-bottom:28px;background:rgba(244,246,249,.94);position:sticky;top:0;z-index:40;backdrop-filter:blur(12px)}
.page{max-width:1360px}
.crumb{font-weight:700;color:#586a7f}
.account-chip{margin-left:auto}
.avatar{border-radius:8px;background:#102844;color:#77e3ce}
.region-control{display:flex;align-items:center;gap:8px;margin-left:auto;margin-right:18px}
.region-control label{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.region-control select{height:34px;min-width:148px;border:1px solid var(--line2);border-radius:7px;background:#fff;padding:0 28px 0 10px;color:var(--ink);font-size:11px;font-weight:700}

/* Type and density */
.page-head{margin-bottom:20px;align-items:flex-end}
.page-title h1{font-size:32px;letter-spacing:-1.4px;margin:7px 0 6px}
.page-title p{font-size:13px;line-height:1.6}
.card{border-radius:10px;padding:18px;box-shadow:none}
.card+.card{margin-top:14px}
.card-head{margin-bottom:14px}
.card-head h2{font-size:18px}.card-head h3{font-size:15px}
.btn{min-height:38px;border-radius:7px;font-size:12px;font-weight:800;box-shadow:none}
.btn-primary{background:var(--blue);border-color:var(--blue);color:#fff}
.btn-primary:hover{background:var(--blue-dark);border-color:var(--blue-dark)}
.btn-sm{min-height:32px;border-radius:6px}
.field label{font-size:11px;letter-spacing:.02em}
.field input,.field select,.field textarea{min-height:42px;border-radius:7px;border-color:var(--line2);background:#fff}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(46,109,246,.12)}
.pill{border-radius:5px;padding:5px 7px;letter-spacing:.02em}
.code{font-variant-numeric:tabular-nums}

/* Dashboard */
.grid4{gap:10px}
.metric{padding:16px;border-top:3px solid #dbe5f1}
.metric::after{display:none}
.metric .metric-icon{width:34px;height:34px;border-radius:7px;margin-bottom:14px;background:#edf3ff;color:#2c64d7}
.metric strong{font-size:28px;font-variant-numeric:tabular-nums}
.metric span{font-size:11px}
.metric-link:hover,.metric-link:focus-visible{transform:none;border-color:#96b4df;box-shadow:var(--shadow-sm)}
.metric-link small{color:#2c64d7}
.dashboard-grid{gap:12px;margin-top:12px;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr)}
.focus-card{border-radius:10px;background:linear-gradient(135deg,#102a47,#08172a);border-color:#102a47}
.quick-item{border-radius:8px;padding:10px}
.quick-item .qicon{border-radius:7px}

/* Workflow and data-heavy surfaces */
.progress-card{padding:12px 14px}
.progress{gap:5px}
.progress-step{min-height:42px;border-radius:7px;padding-left:34px}
.progress-step .num{border-radius:5px}
.workflow-grid{gap:12px}
.upload-zone{border-radius:8px;background:#fafcff}
.upload-zone:focus-within{border-color:#2e6df6;box-shadow:0 0 0 3px rgba(46,109,246,.2)}
.upload-zone .upload-icon{border-radius:7px;background:#edf3ff;color:#2c64d7}
.table-wrap{border-radius:8px;background:#fff}
.table{font-variant-numeric:tabular-nums}
.table th{position:sticky;top:0;z-index:1;background:#f5f7fa;color:#536579;font-size:10px}
.table th,.table td{padding:11px 12px}
.table tbody tr:focus-within{outline:2px solid rgba(46,109,246,.22);outline-offset:-2px}
.exception-list{gap:8px}
.exception{border-radius:8px;padding:14px;box-shadow:none}
.exception:hover{border-color:#b8c7d8}
.ex-icon{border-radius:7px}
.segmented{border-radius:8px;padding:3px}
.segmented button{border-radius:6px}
.report-features>div,.reason-box,.evidence-grid>div,.evidence-row,.variance-box,.audit-events{border-radius:8px}

/* Accessible dialog base */
.modal-backdrop{background:rgba(4,12,22,.68);backdrop-filter:blur(2px)}
.modal{border-radius:12px;padding:22px;box-shadow:0 28px 90px rgba(4,12,22,.34)}
.modal:focus{outline:none}
.detail-stats>div{border-radius:8px}
.toast{border-radius:8px;box-shadow:var(--shadow);font-weight:700}

.auth-page{grid-template-columns:minmax(360px,.85fr) minmax(520px,1.15fr)}
.auth-aside{background:linear-gradient(150deg,#0d2948,#071426)}
.auth-card{border-radius:12px;box-shadow:0 20px 50px rgba(15,32,51,.10)}

@media(max-width:1040px){
  .dashboard-grid{grid-template-columns:1fr}
  .region-control{margin-right:12px}
}
@media(max-width:900px){
  body{background:var(--canvas)}
  .app-main{padding-left:14px;padding-right:14px}
  .mobile-top{background:rgba(244,246,249,.94);height:66px}
  .mobile-top .region-control{display:none}
  .bottom-nav{left:8px;right:8px;border-radius:12px;background:rgba(8,23,42,.97);padding:6px}
  .bottom-nav button{min-height:46px;border-radius:8px;font-size:10px}
  .mobile-more{border-radius:10px}
  .card{border-radius:9px}
  .modal{border-radius:10px}
}
@media(max-width:520px){
  .wrap{width:min(100% - 28px,1200px)}
  .hero{min-height:auto;padding:48px 0 56px}
  .hero h1{font-size:45px;letter-spacing:-2.4px}
  .hero-card{padding:22px}
  .trust{display:block}
  .trust-card{border-right:0;border-bottom:1px solid var(--line)}
  .trust-card:last-child{border-bottom:0}
  .page-title h1{font-size:28px}
  .metric{padding:14px}
  .metric strong{font-size:25px}
  .bottom-nav button{font-size:9px}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
