*{box-sizing:border-box}html{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#172033;background:#f4f7fb}body{margin:0;background:radial-gradient(circle at top right,#e8f1ff 0,transparent 31rem),linear-gradient(145deg,#f5f7fb,#eef4fb 55%,#f8fafc);min-height:100vh}button,input,select{font:inherit}.app-shell{min-height:100vh}.desktop-rail{display:none}.main{min-width:0}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:18px 18px 12px;background:rgba(244,247,251,.86);backdrop-filter:blur(18px);border-bottom:1px solid rgba(215,224,235,.72)}.eyebrow{display:block;text-transform:uppercase;letter-spacing:.1em;font-weight:800;color:#64748b;font-size:12px}.topbar h1{font-size:25px;letter-spacing:-.035em;margin:2px 0 0}.top-actions{display:flex;gap:8px}.icon-button,.soft-button,.primary-button{border:1px solid #d8e0ea;background:#fff;color:#203047;border-radius:13px;min-height:42px;padding:0 14px;font-weight:700;box-shadow:0 4px 14px rgba(38,59,82,.06)}.icon-button{width:42px;padding:0;border-radius:50%;background:linear-gradient(145deg,#fff,#edf4ff);color:#1d4ed8}.primary-button{background:linear-gradient(135deg,#2563eb,#0f7694);border:0;color:#fff}.content{padding:12px 12px 90px;max-width:1220px;margin:auto}.hero{padding:20px;border-radius:22px;color:#fff;background:linear-gradient(135deg,#1d4ed8 0%,#0a748b 60%,#0f766e 100%);box-shadow:0 20px 42px rgba(30,86,138,.2);overflow:hidden;position:relative}.hero:after{content:"";position:absolute;width:220px;height:220px;border-radius:50%;right:-90px;top:-105px;background:rgba(255,255,255,.08)}.hero small{font-size:12px;text-transform:uppercase;letter-spacing:.1em;font-weight:800;color:#dbeafe}.hero h2{font-size:31px;line-height:1.08;letter-spacing:-.04em;margin:7px 0 6px;max-width:600px}.hero p{margin:0;max-width:720px;color:#e7f5fb;font-size:15px;line-height:1.5}.hero .hero-row{margin-top:16px;display:flex;gap:8px;flex-wrap:wrap}.glass-pill{background:#ffffff17;border:1px solid #ffffff2d;border-radius:999px;padding:8px 11px;font-size:13px;font-weight:700}.kpi-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.kpi,.card{background:#fff;border:1px solid #d8e1ec;border-radius:16px;box-shadow:0 8px 24px rgba(32,57,82,.065)}.kpi{padding:14px;border-top:4px solid var(--accent,#2563eb)}.kpi-label{font-size:11px;text-transform:uppercase;letter-spacing:.075em;color:#6b7890;font-weight:850}.kpi-value{display:block;margin-top:5px;font-size:23px;letter-spacing:-.035em}.kpi small{display:block;color:#7b879b;font-size:12px;margin-top:3px}.section-grid{display:grid;grid-template-columns:1fr;gap:12px;margin-top:12px}.card{padding:16px;min-width:0}.card-header{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:14px}.card h3{margin:0;font-size:18px;letter-spacing:-.02em}.card .sub{font-size:13px;color:#718096;line-height:1.45;margin-top:4px}.tag{display:inline-flex;align-items:center;border-radius:999px;padding:5px 8px;background:#eef4ff;color:#2556b8;font-size:11px;font-weight:850;white-space:nowrap}.tag.teal{background:#e9f8f4;color:#0c7662}.tag.amber{background:#fff6e6;color:#a75b08}.tag.purple{background:#f2edff;color:#6d42c7}.chart-wrap{min-height:190px}.donut-layout{display:grid;grid-template-columns:140px 1fr;gap:12px;align-items:center}.donut{width:132px;height:132px;position:relative}.donut svg{width:132px;height:132px}.donut-center{position:absolute;inset:0;display:grid;place-content:center;text-align:center}.donut-center b{font-size:26px}.donut-center span{font-size:11px;color:#718096}.legend{display:grid;gap:9px}.legend-row{display:grid;grid-template-columns:10px 1fr auto;gap:8px;align-items:center;font-size:13px}.legend-row i{width:8px;height:8px;border-radius:50%}.legend-row strong{font-size:13px}.bar-list{display:grid;gap:12px}.bar-meta{display:flex;justify-content:space-between;gap:12px;font-size:13px;margin-bottom:5px}.bar-track{height:8px;border-radius:99px;background:#edf2f7;overflow:hidden}.bar-track span{display:block;height:100%;border-radius:99px}.list{display:grid}.list-row{display:grid;grid-template-columns:1fr auto;gap:10px;padding:12px 0;border-bottom:1px solid #eef2f6;align-items:center}.list-row:last-child{border-bottom:0}.list-row b{font-size:14px}.list-row small{display:block;color:#758196;font-size:12px;margin-top:3px}.list-row .right{text-align:right}.money{font-variant-numeric:tabular-nums}.table-scroll{overflow:auto;border:1px solid #e1e7ef;border-radius:13px}.table{width:100%;border-collapse:collapse;min-width:650px;font-size:13px}.table th{text-align:left;color:#657188;background:#f8fafc;padding:10px;font-size:11px;text-transform:uppercase;letter-spacing:.06em}.table td{padding:10px;border-top:1px solid #edf1f5}.status{display:inline-flex;padding:4px 7px;border-radius:999px;font-size:11px;font-weight:850}.status.good{background:#eaf8f2;color:#0f765a}.status.warn{background:#fff5e6;color:#a35b0b}.status.neutral{background:#eef3fa;color:#536178}.toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.search{flex:1;min-width:180px;border:1px solid #d8e1eb;border-radius:12px;background:#fff;min-height:42px;padding:0 12px;outline:none}.filter{border:1px solid #d8e1eb;border-radius:12px;background:#fff;min-height:42px;padding:0 10px}.unit-grid{display:grid;grid-template-columns:1fr;gap:10px}.unit-card{appearance:none;text-align:left;border:1px solid #dbe3ed;background:#fff;border-radius:15px;padding:14px;color:inherit;box-shadow:0 5px 15px rgba(30,55,80,.05)}.unit-card .unit-top{display:flex;justify-content:space-between;gap:8px}.unit-card h4{font-size:16px;margin:0}.unit-card p{margin:5px 0 0;color:#718096;font-size:12px}.unit-stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:12px}.mini-stat{background:#f7f9fc;border:1px solid #edf1f5;border-radius:10px;padding:8px}.mini-stat span{display:block;color:#758196;font-size:10px;text-transform:uppercase;font-weight:800}.mini-stat b{font-size:13px;margin-top:2px;display:block}.line-chart{width:100%;height:210px;overflow:visible}.line-chart text{font-size:11px;fill:#758196}.line-chart .grid{stroke:#e7edf4;stroke-width:1}.line-chart .axis{stroke:#cfd9e5;stroke-width:1}.line-chart .series-a{fill:none;stroke:#2563eb;stroke-width:3}.line-chart .series-b{fill:none;stroke:#0f766e;stroke-width:3}.line-chart .dot-a{fill:#fff;stroke:#2563eb;stroke-width:2}.line-chart .dot-b{fill:#fff;stroke:#0f766e;stroke-width:2}.split{display:grid;grid-template-columns:1fr 1fr;gap:8px}.split-box{padding:14px;border-radius:13px;border:1px solid #e2e8f0;background:#f8fafc}.split-box span{font-size:11px;color:#6c788d;text-transform:uppercase;font-weight:800}.split-box strong{display:block;margin-top:4px;font-size:20px}.notice{border-left:5px solid #d97706;background:linear-gradient(180deg,#fffaf0,#fff)}.notice.teal{border-left-color:#0f766e;background:linear-gradient(180deg,#effbf8,#fff)}.notice p{font-size:13px;line-height:1.55;color:#5f6e83;margin:6px 0 0}.receipt-drop{border:1.5px dashed #bfcddd;border-radius:16px;padding:28px 18px;text-align:center;background:#f9fbfd}.receipt-drop b{display:block;font-size:16px}.receipt-drop p{margin:6px auto 14px;color:#718096;font-size:13px;max-width:420px}.timeline{display:grid;gap:0}.timeline-row{display:grid;grid-template-columns:22px 1fr;gap:10px}.timeline-dot{position:relative}.timeline-dot:before{content:"";position:absolute;left:9px;top:14px;bottom:-14px;width:2px;background:#e4eaf1}.timeline-row:last-child .timeline-dot:before{display:none}.timeline-dot i{display:block;width:20px;height:20px;border-radius:50%;background:#eaf1ff;border:5px solid #fff;box-shadow:0 0 0 1px #c8d6e9}.timeline-copy{padding-bottom:18px}.timeline-copy b{font-size:13px}.timeline-copy small{display:block;color:#758196;margin-top:3px;font-size:11px}.bottom-nav{position:fixed;z-index:30;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(5,1fr);background:rgba(255,255,255,.94);backdrop-filter:blur(18px);border-top:1px solid #dce4ed;padding:7px 4px calc(7px + env(safe-area-inset-bottom))}.nav-btn{border:0;background:none;color:#68758a;display:grid;place-items:center;gap:2px;min-height:48px;font-size:10px;font-weight:700}.nav-btn .ico{font-size:20px;line-height:1}.nav-btn.active{color:#1d4ed8}.modal{border:0;border-radius:20px;width:min(620px,calc(100% - 24px));max-height:86vh;padding:0;box-shadow:0 25px 80px rgba(15,31,52,.28)}.modal::backdrop{background:rgba(22,32,51,.48);backdrop-filter:blur(4px)}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;padding:18px;border-bottom:1px solid #e6ebf2}.modal-head h3{margin:0}.modal-body{padding:18px;overflow:auto}.close-btn{border:0;background:#f1f5f9;width:36px;height:36px;border-radius:50%}.screen-tabs{display:flex;gap:7px;overflow:auto;padding-bottom:4px;margin-bottom:12px}.tab-btn{border:1px solid #dce4ed;background:#fff;border-radius:999px;padding:8px 11px;white-space:nowrap;color:#64748b;font-size:12px;font-weight:800}.tab-btn.active{background:#eaf2ff;color:#1d4ed8;border-color:#c9dbfa}.empty-state{text-align:center;padding:28px 12px}.empty-state b{display:block;font-size:17px}.empty-state p{font-size:13px;color:#728097;max-width:480px;margin:7px auto 0;line-height:1.5}.review-banner{display:flex;gap:10px;align-items:flex-start;border-radius:13px;padding:12px;background:#eff7ff;border:1px solid #d4e6fb;margin-bottom:12px}.review-banner b{font-size:13px}.review-banner p{font-size:12px;color:#607087;margin:3px 0 0}.review-banner span{font-size:20px}.desktop-only{display:none}
@media(min-width:720px){.content{padding:16px 18px 30px}.kpi-grid{grid-template-columns:repeat(4,1fr)}.section-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.section-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.unit-grid{grid-template-columns:repeat(2,1fr)}.desktop-only{display:block}}
@media(min-width:1040px){.app-shell{display:grid;grid-template-columns:260px minmax(0,1fr)}.desktop-rail{display:flex;position:sticky;top:0;height:100vh;flex-direction:column;padding:18px 14px;background:rgba(255,255,255,.84);backdrop-filter:blur(18px);border-right:1px solid #dce4ed}.rail-brand{display:flex;align-items:center;gap:10px;padding:4px 5px 18px}.logo-mark{width:40px;height:40px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,#1d4ed8,#0f766e);color:white;font-weight:900}.rail-brand span:last-child{display:grid}.rail-brand b{font-size:15px}.rail-brand small{font-size:11px;color:#758196;margin-top:2px}.desktop-rail nav{display:grid;gap:5px}.desktop-rail .nav-btn{display:flex;justify-content:flex-start;grid-template-columns:26px 1fr;place-items:center start;border-radius:11px;padding:0 10px;font-size:13px;min-height:44px}.desktop-rail .nav-btn.active{background:#eaf2ff}.rail-note{margin-top:auto;background:#f6f8fb;border:1px solid #e2e8f0;border-radius:13px;padding:12px;display:grid;gap:4px}.rail-note b{font-size:12px}.rail-note span{font-size:11px;line-height:1.45;color:#718096}.bottom-nav{display:none}.topbar{padding:22px 28px 14px}.content{padding:18px 28px 40px}.unit-grid{grid-template-columns:repeat(3,1fr)}}


/* R0.4 review refinements */
.standalone-section{margin-top:12px}
.finance-selector{display:grid;gap:12px}
.finance-controls{display:grid;grid-template-columns:1fr;gap:9px}
.finance-field{display:grid;gap:5px}
.finance-field label{font-size:11px;text-transform:uppercase;letter-spacing:.07em;font-weight:850;color:#6b7890}
.finance-field select{width:100%;min-height:44px;border:1px solid #d8e1eb;border-radius:12px;background:#fff;color:#203047;padding:0 11px;font-weight:700}
.finance-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:end}
.detail-button{min-height:32px;padding:0 10px;border-radius:10px}
.rail-collapse{display:none}
@media(min-width:720px){.finance-controls{grid-template-columns:repeat(3,minmax(0,1fr))}.finance-actions{grid-column:1/-1}}
@media(min-width:1040px){
  .desktop-rail{position:sticky}
  .rail-collapse{display:grid;place-items:center;position:absolute;right:-15px;top:19px;width:30px;height:30px;border-radius:50%;border:1px solid #d6e0ec;background:#fff;color:#35506f;box-shadow:0 4px 14px rgba(32,57,82,.12);z-index:3;font-size:20px;cursor:pointer}
  .app-shell.rail-collapsed{grid-template-columns:78px minmax(0,1fr)}
  .app-shell.rail-collapsed .desktop-rail{padding-left:10px;padding-right:10px}
  .app-shell.rail-collapsed .rail-brand{justify-content:center;padding-left:0;padding-right:0}
  .app-shell.rail-collapsed .rail-brand>span:last-child,.app-shell.rail-collapsed .rail-note{display:none}
  .app-shell.rail-collapsed .desktop-rail .nav-btn{justify-content:center;padding:0;grid-template-columns:1fr}
  .app-shell.rail-collapsed .desktop-rail .nav-btn>span:not(.ico){display:none}
  .app-shell.rail-collapsed .desktop-rail .nav-btn .ico{font-size:21px}
}


/* ==========================================================
   R0.5 — NGN brand system
   Primary sampled from supplied logo: RGB 215,165,52 / #D7A534
   ========================================================== */
:root{
  --brand:#D7A534;
  --brand-deep:#A86F13;
  --brand-dark:#7B4D07;
  --brand-soft:#F7E8BC;
  --page:#FBF3DF;
  --page-2:#F7E9C8;
  --ink:#2D2518;
  --muted:#746954;
  --border:#E6D7B1;
}
html{background:var(--page);color:var(--ink)}
body{
  background:
    radial-gradient(circle at top right,rgba(215,165,52,.28) 0,transparent 31rem),
    radial-gradient(circle at bottom left,rgba(183,121,31,.12) 0,transparent 26rem),
    linear-gradient(145deg,#FFF9EA 0%,var(--page) 52%,#F9EDCF 100%);
}
.topbar{
  background:rgba(251,243,223,.90);
  border-bottom-color:rgba(198,159,70,.28);
}
.top-brand{display:flex;align-items:center;gap:11px;min-width:0}
.top-logo,.brand-logo{
  display:block;object-fit:cover;border-radius:13px;border:1px solid rgba(255,255,255,.7);
  box-shadow:0 5px 16px rgba(107,72,11,.14);
}
.top-logo{width:42px;height:42px}
.brand-logo{width:44px;height:44px}
.topbar h1{font-size:22px;margin:1px 0 0;letter-spacing:-.025em}
.page-context{display:block;color:var(--muted);font-size:12px;font-weight:750;margin-top:2px}
.eyebrow{color:#8C6A22}
.desktop-rail{
  background:rgba(255,249,235,.92)!important;
  border-right-color:#E7D6AA!important;
}
.rail-brand b{color:var(--ink)}
.rail-brand small{color:#8A7752}
.rail-note{background:#FFF8E8!important;border-color:#E9D6A7!important}
.rail-note span{color:#796A4D!important}
.icon-button{
  background:linear-gradient(145deg,#FFFDF6,#F4E3B7);
  color:var(--brand-dark);
  border-color:#E2C983;
}
.primary-button{
  background:linear-gradient(135deg,#A96D0F 0%,#D7A534 58%,#C18720 100%);
  color:#fff;
  box-shadow:0 8px 18px rgba(169,109,15,.18);
}
.soft-button{border-color:#E4D2A5;background:#FFFDF7;color:#644B16}
.hero{
  background:linear-gradient(135deg,#9A620D 0%,#D7A534 55%,#BF8118 100%);
  box-shadow:0 20px 42px rgba(144,94,12,.22);
}
.hero small{color:#FFF5D9}
.hero p{color:#FFF8E9}
.glass-pill{background:#ffffff1f;border-color:#ffffff45}
.kpi,.card{
  border-color:#E7D8B6;
  box-shadow:0 8px 24px rgba(98,72,25,.07);
}
.kpi{
  border-top:4px solid var(--brand)!important;
  background:linear-gradient(180deg,#FFFFFF,#FFFCF5);
}
.card{
  border-top:4px solid var(--card-accent,var(--brand));
  background:linear-gradient(180deg,#FFFFFF,#FFFEFA);
}
.card h3{color:#2F281C}
.card .sub,.kpi small,.kpi-label{color:#7A6E59}
.tag{
  background:#FFF2C9;color:#77520C;border:1px solid #F0D792;
}
.unit-card{
  border-color:#E8D9B7;
  border-top:4px solid var(--brand);
  background:linear-gradient(180deg,#fff,#FFFCF4);
  box-shadow:0 5px 15px rgba(102,73,21,.06);
}
.mini-stat,.split-box{background:#FFFBF1;border-color:#EEE0BF}
.table-scroll{border-color:#E7D8B7}
.table th{background:#FFF8E7;color:#786748}
.table td{border-top-color:#F0E5CC}
.search,.filter,.finance-field select{
  border-color:#E4D4AE;background:#FFFDF8;color:#403521;
}
.notice{
  border-left-color:var(--brand);
  background:linear-gradient(180deg,#FFF4D5,#fff);
}
.notice.teal{border-left-color:#0f766e;background:linear-gradient(180deg,#effbf8,#fff)}
.receipt-drop,.upload-zone{
  border-color:#DABF7A;background:#FFF9EA;
}
.timeline-dot i{background:#F5D98E;box-shadow:0 0 0 1px #D7BA70}
.timeline-dot:before{background:#ECDCB8}
.review-banner{
  background:#FFF3CE;border-color:#EFD58D;color:#5E430B;
}
.review-banner p{color:#725F38}
.nav-btn.active{color:#8C5D06}
.desktop-rail .nav-btn.active{background:#FFF0C5!important}
.bottom-nav{
  background:rgba(255,250,239,.95);
  border-top-color:#E7D5A8;
}
.tab-btn.active{background:#FFF0C5;color:#865807;border-color:#E8CD87}
.line-chart .series-a{stroke:#D7A534}
.line-chart .series-b{stroke:#A86F13}
.line-chart .dot-a{stroke:#D7A534}
.line-chart .dot-b{stroke:#A86F13}
.line-chart .grid{stroke:#EFE3C8}
.line-chart .axis{stroke:#DBC69A}
.bar-track{background:#F3E9D2}
.status.good{background:#EAF8F2;color:#0F765A}
.status.warn{background:#FFF1D3;color:#8B5908}
.status.neutral{background:#F3E9D2;color:#6C5C3E}
.rail-collapse{border-color:#DEC88F!important;color:#76500C!important;background:#FFFDF7!important}
.app-shell.rail-collapsed .rail-brand .brand-logo{width:44px;height:44px}
.app-shell.rail-collapsed .rail-brand>span:last-child{display:none}

.integration-grid{display:grid;gap:10px}
.integration-item{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:12px 0;border-bottom:1px solid #F0E5CD;
}
.integration-item:last-child{border-bottom:0}
.integration-item b{font-size:14px}
.integration-item small{display:block;color:#7B6D54;font-size:11px;margin-top:3px;line-height:1.45}
.integration-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.upload-zone{
  border:1.5px dashed #CFAE59;border-radius:16px;padding:28px 18px;text-align:center;
}
.upload-zone .upload-icon{font-size:30px;line-height:1;color:#A86F13;margin-bottom:6px}
.upload-zone b{display:block;font-size:16px}
.upload-zone p{margin:6px auto 14px;max-width:540px;color:#786B52;font-size:13px;line-height:1.55}
.import-flow{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-top:12px}
.import-flow span{
  text-align:center;padding:8px 5px;border-radius:10px;background:#FFF4D7;border:1px solid #EBD49A;
  color:#765316;font-size:11px;font-weight:800;
}
.health-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.health-item{display:flex;align-items:center;gap:9px;padding:11px;border:1px solid #EDDFC0;background:#FFFCF4;border-radius:12px}
.health-item i{width:10px;height:10px;border-radius:50%;background:#16A36A;box-shadow:0 0 0 4px #E7F8EF}
.health-item i.pending{background:#D7A534;box-shadow:0 0 0 4px #FFF0C1}
.health-item b{font-size:12px}
.health-item small{display:block;color:#7C6C50;font-size:10px;margin-top:2px}
.source-warning{
  border:1px solid #E8C96E;background:#FFF5D6;border-radius:13px;padding:12px;color:#68490B;
}
.source-warning b{font-size:13px}
.source-warning p{font-size:12px;line-height:1.55;margin:4px 0 0;color:#755F31}
.toggle{
  border:1px solid #D7C18A;background:#F5E9CC;color:#6B5B39;border-radius:999px;
  padding:5px 9px 5px 6px;font-size:11px;font-weight:850;display:inline-flex;align-items:center;gap:5px;cursor:pointer;
}
.toggle span{width:11px;height:11px;border-radius:50%;background:#A8A095}
.toggle.active{background:#E8F7EF;color:#0F765A;border-color:#B8E0CB}
.toggle.active span{background:#18A36A}
.settings-form{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
.settings-form label{display:grid;gap:5px}
.settings-form label span{font-size:11px;text-transform:uppercase;letter-spacing:.05em;font-weight:850;color:#806D47}
.settings-form input{min-height:42px;border:1px solid #E2D1A8;border-radius:11px;background:#FFFDF8;padding:0 10px;color:#3D321E}
@media(max-width:719px){
  .import-flow{grid-template-columns:1fr}
  .health-grid{grid-template-columns:1fr}
  .settings-form{grid-template-columns:1fr}
}

/* ==========================================================
   R0.6 — live test, auth, expense input & admin master data
   ========================================================== */
.hidden{display:none!important}
.app-shell.locked{filter:blur(1px);pointer-events:none;user-select:none}
.connection-pill{display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:0 9px;border-radius:999px;border:1px solid #E3CF9D;background:#FFF8E7;color:#72500C;font-size:11px;font-weight:850;white-space:nowrap}
.connection-pill:before{content:"";width:7px;height:7px;border-radius:50%;background:#D7A534;box-shadow:0 0 0 3px #F9E9B7}
.connection-pill.live{background:#EAF8F2;border-color:#B9E2D0;color:#0F765A}.connection-pill.live:before{background:#19A36A;box-shadow:0 0 0 3px #D9F2E6}
.auth-screen{position:fixed;z-index:1000;inset:0;display:grid;place-items:center;padding:18px;background:radial-gradient(circle at top right,rgba(215,165,52,.45),transparent 35rem),linear-gradient(145deg,#FFF7DF,#F2D893)}
.auth-card{width:min(440px,100%);background:rgba(255,253,247,.97);border:1px solid #E3CD95;border-top:5px solid var(--brand);border-radius:24px;padding:24px;box-shadow:0 30px 80px rgba(111,74,10,.24)}
.auth-logo{width:88px;height:88px;display:block;margin:0 auto 14px;object-fit:cover;border-radius:20px;box-shadow:0 10px 28px rgba(128,83,10,.18)}
.auth-copy{text-align:center;margin-bottom:20px}.auth-copy small{text-transform:uppercase;letter-spacing:.09em;color:#8D6B25;font-weight:900;font-size:11px}.auth-copy h1{margin:4px 0 5px;font-size:28px;letter-spacing:-.035em}.auth-copy p{margin:0;color:#76694F;font-size:13px}
.auth-message{min-height:18px;margin-top:10px;text-align:center;color:#9A4A13;font-size:12px;font-weight:700}.auth-foot{font-size:11px;line-height:1.5;color:#7C6D51;text-align:center;margin:12px 0 0}.text-button{display:block;margin:10px auto 0;border:0;background:none;color:#895C0B;font-weight:850;font-size:12px;cursor:pointer}
.loading-screen{position:fixed;z-index:1200;inset:0;display:grid;place-content:center;gap:12px;text-align:center;background:rgba(255,250,239,.78);backdrop-filter:blur(7px);color:#5E430B}.loading-screen b{font-size:13px}.loader{width:38px;height:38px;border-radius:50%;border:4px solid #F1DFB0;border-top-color:#B97913;animation:ngnspin .75s linear infinite;margin:auto}@keyframes ngnspin{to{transform:rotate(360deg)}}
.toast{position:fixed;z-index:1300;left:50%;bottom:86px;transform:translate(-50%,20px);opacity:0;pointer-events:none;max-width:min(520px,calc(100% - 24px));padding:11px 14px;border-radius:13px;background:#244C3C;color:#fff;box-shadow:0 12px 35px rgba(40,55,45,.22);font-size:12px;font-weight:800;transition:.2s ease}.toast.show{opacity:1;transform:translate(-50%,0)}.toast.warn{background:#8A5209}
.form-grid{display:grid;grid-template-columns:1fr;gap:11px}.form-grid.single{grid-template-columns:1fr}.field{display:grid;gap:5px}.field>span{font-size:11px;text-transform:uppercase;letter-spacing:.055em;font-weight:850;color:#806D47}.field input,.field select,.field textarea{width:100%;min-height:43px;border:1px solid #E2D1A8;border-radius:11px;background:#FFFDF8;color:#3D321E;padding:9px 10px;outline:none}.field textarea{min-height:76px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:#C6982E;box-shadow:0 0 0 3px rgba(215,165,52,.13)}.field.full,.full{grid-column:1/-1;width:100%}.check-field{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:750;color:#64563D;min-height:38px}.check-field input{accent-color:#B97913}.file-name{font-size:11px;color:#76684D;background:#FFF8E9;border:1px solid #ECD9AA;border-radius:10px;padding:8px 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upload-zone.compact{padding:18px 14px;cursor:pointer;display:block}.upload-zone.compact small{display:block;margin-top:4px;color:#7F6F50;font-size:11px}.upload-zone.compact .upload-icon{display:block}.primary-button:disabled,.soft-button:disabled{opacity:.48;cursor:not-allowed}.table small{display:block;margin-top:3px;color:#7D7057;font-size:10px}
@media(min-width:720px){.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.toast{bottom:28px}}
@media(max-width:719px){.connection-pill{display:none}.topbar h1{font-size:19px}.top-logo{width:38px;height:38px}}


/* ==========================================================
   R0.7 — accessibility / typography + Portal Access
   ========================================================== */
body{font-size:16px}
.unit-access-grid{display:grid;grid-template-columns:1fr;gap:10px}
.access-unit-card{border:1px solid var(--border);border-top:4px solid var(--brand);border-radius:15px;background:#FFFDF8;padding:14px;box-shadow:0 6px 18px rgba(88,62,18,.06)}
.access-unit-card .unit-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.access-unit-card h4{margin:0;font-size:16px}.access-unit-card p{margin:4px 0 0;color:var(--muted);font-size:12px}
.access-chip-wrap{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}
.access-chip,.ownership-chip{display:inline-flex;align-items:center;border-radius:999px;border:1px solid #E5CD91;background:#FFF5D8;color:#6F4A08;padding:5px 8px;font-size:11px;font-weight:800}
.ownership-chip{margin:2px 3px 2px 0;background:#F4EEE0;border-color:#E2D4B3;color:#655536}
.muted-copy{font-size:12px;color:var(--muted)}
.portal-account-state{display:grid;gap:7px;border:1px solid #E7D7B2;background:#FFF9EA;border-radius:12px;padding:11px}
.portal-account-state>b{font-size:13px}
.access-matrix-head{margin:4px 0 8px}.access-matrix-head b{display:block;font-size:14px}.access-matrix-head small{display:block;color:var(--muted);font-size:12px;line-height:1.5;margin-top:3px}
.access-matrix{display:grid;gap:8px;max-height:400px;overflow:auto;padding-right:2px}
.access-matrix-row{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:10px;align-items:center;border:1px solid #E6D8B6;border-radius:12px;background:#FFFDF8;padding:10px}
.access-check{display:flex;align-items:center;gap:9px;cursor:pointer}.access-check input{width:18px;height:18px;accent-color:var(--brand-deep)}.access-check span{display:grid}.access-check b{font-size:13px}.access-check small{color:var(--muted);font-size:11px;margin-top:2px}
.ownership-field{display:grid;gap:4px}.ownership-field>span{font-size:10px;text-transform:uppercase;letter-spacing:.04em;font-weight:850;color:#806D47}.ownership-field input{width:100%;min-height:39px;border:1px solid #E2D1A8;border-radius:10px;background:#fff;padding:7px 9px}
@media(min-width:720px){.unit-access-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1040px){.unit-access-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:560px){.access-matrix-row{grid-template-columns:1fr}.ownership-field{grid-template-columns:1fr 110px;align-items:center}}
