/* Readability scale: enterprise dashboard type ramp based on Fluent 2, Atlassian and IBM Carbon. 
 * Most former 6–11px labels now use 12–16px. Larger titles follow a proportional ramp.
 * See docs/ENTERPRISE-READABILITY-RESEARCH.md for researched measurements and validation. */
:root{
  --brand-50:#effcfd;
  --brand-100:#d6f7f9;
  --brand-200:#abeef2;
  --brand-300:#74e0e7;
  --brand-400:#34cdd7;
  --brand-500:#08b8c6;
  --brand-600:#009aaa;
  --brand-700:#087b89;
  --brand-800:#0d626d;
  --brand-900:#0d5059;
  --ink-950:#0b171c;
  --ink-900:#11252d;
  --ink-800:#203840;
  --ink-700:#38515a;
  --ink-600:#526871;
  --ink-500:#71848c;
  --ink-400:#94a4aa;
  --silver-50:#f8fafb;
  --silver-100:#f2f6f7;
  --silver-150:#edf2f4;
  --silver-200:#e3eaed;
  --silver-300:#d1dce0;
  --white:#fff;
  --green:#187a5b;
  --green-soft:#eaf7f1;
  --amber:#b96d13;
  --amber-soft:#fff5e7;
  --red:#be4545;
  --red-soft:#fff0f0;
  --blue:#3a6f92;
  --shadow-1:0 1px 2px rgba(8,25,31,.04);
  --shadow-2:0 12px 34px rgba(8,25,31,.06);
  --shadow-3:0 24px 64px rgba(8,25,31,.12);
  --radius-1:8px;
  --radius-2:12px;
  --radius-3:16px;
  --sidebar:256px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#f5f8f9;color:var(--ink-900);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(8,184,198,.18);outline-offset:2px}
svg{display:block}
#app{min-height:100vh;display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr)}
.sidebar{height:100vh;position:sticky;top:0;background:#fff;border-right:1px solid var(--silver-200);padding:18px 14px 14px;display:flex;flex-direction:column;z-index:30}
.brand-lockup{display:flex;gap:10px;align-items:center;padding:1px 7px 17px}
.brand-lockup img{width:40px;height:40px;object-fit:cover;object-position:50% 23%;border-radius:10px}
.brand-lockup strong,.brand-lockup span{display:block}
.brand-lockup strong{font-size:19px;letter-spacing:-.025em}
.brand-lockup span{font-size:15px;color:var(--ink-500);margin-top:2px;white-space:nowrap}
.entity-switcher{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;margin-bottom:12px;padding:10px;border:1px solid var(--silver-200);border-radius:11px;background:var(--silver-50);cursor:pointer}
.entity-mark{width:31px;height:31px;border-radius:8px;background:linear-gradient(145deg,var(--brand-500),var(--brand-700));color:#fff;display:grid;place-items:center;font-size:15px;font-weight:900;box-shadow:0 5px 12px rgba(8,184,198,.14)}
.entity-copy{min-width:0}.entity-copy span,.entity-copy strong,.entity-copy small{display:block}.entity-copy strong{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:2px 0}.entity-copy small{font-size:14px;color:var(--ink-500)}
.mini-label,.section-kicker{font-size:14px!important;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-500);font-weight:850}
.chev{font-size:16px;color:var(--ink-400)}
.primary-nav{display:flex;flex-direction:column;gap:2px}
.nav-group-label{padding:12px 10px 5px;font-size:14px;font-weight:850;letter-spacing:.13em;color:var(--ink-400)}
.nav-item{height:38px;border:0;background:transparent;border-radius:9px;padding:0 10px;display:flex;align-items:center;gap:9px;color:var(--ink-600);text-align:left}
.nav-item>span:first-child{width:17px;height:17px}
.nav-item em{font-style:normal;font-size:15px;font-weight:650}
.nav-item:hover{background:var(--silver-100);color:var(--ink-900)}
.nav-item.active{background:linear-gradient(90deg,var(--brand-50),#f8fdfd);color:var(--brand-700)}
.nav-item.active em{font-weight:800}
.nav-item.active>span:first-child{color:var(--brand-600)}
.nav-meta{margin-left:auto;font-size:13px;color:var(--ink-400);font-weight:650}
.nav-count{margin-left:auto;min-width:19px;height:19px;padding:0 5px;border-radius:99px;background:var(--brand-100);color:var(--brand-800);font-size:13px;display:grid;place-items:center}
.nav-count.warning{background:var(--amber-soft);color:var(--amber)}
.nav-dot{margin-left:auto;width:7px;height:7px;border-radius:50%}.nav-dot.success{background:var(--green);box-shadow:0 0 0 3px var(--green-soft)}
.sidebar-foot{margin-top:auto;border-top:1px solid var(--silver-200);padding:12px 6px 2px}
.sync-chip{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:6px;font-size:14px;color:var(--ink-500);margin-bottom:11px}
.sync-chip i{width:6px;height:6px;border-radius:50%;background:var(--green)}
.sync-chip small{font-size:13px}
.user-card{display:flex;align-items:center;gap:8px}.avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--ink-900);color:#fff;font-size:15px;font-weight:850}.user-copy{flex:1}.user-copy strong,.user-copy span{display:block}.user-copy strong{font-size:15px}.user-copy span{font-size:14px;color:var(--ink-500);margin-top:2px}
.icon{width:100%;height:100%;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ghost-icon{width:30px;height:30px;border:0;background:transparent;color:var(--ink-500);border-radius:8px;padding:7px}.ghost-icon:hover{background:var(--silver-100);color:var(--ink-900)}
.workspace{min-width:0}
.global-bar{height:66px;position:sticky;top:0;z-index:25;background:rgba(245,248,249,.9);backdrop-filter:blur(18px);border-bottom:1px solid rgba(209,220,224,.9);display:flex;align-items:center;justify-content:space-between;padding:0 28px}
.command-search{width:min(600px,50vw);height:40px;border:1px solid var(--silver-200);background:#fff;border-radius:10px;display:flex;align-items:center;gap:9px;padding:0 11px;box-shadow:var(--shadow-1)}
.command-search>span{width:16px;height:16px;color:var(--ink-400)}.command-search input{border:0;outline:0;width:100%;font-size:15px;color:var(--ink-900);background:transparent}.command-search kbd{font-size:14px;color:var(--ink-400);padding:3px 6px;background:var(--silver-50);border:1px solid var(--silver-200);border-radius:5px}
.global-actions{display:flex;align-items:center;gap:7px}.environment-pill{font-size:14px;color:var(--ink-500);display:flex;align-items:center;gap:5px;margin-right:3px}.environment-pill i{width:6px;height:6px;border-radius:50%;background:var(--green)}
.top-icon{width:36px;height:36px;border:1px solid var(--silver-200);background:#fff;border-radius:9px;color:var(--ink-600);padding:9px;position:relative}.top-icon b{position:absolute;right:-4px;top:-5px;min-width:16px;height:16px;border-radius:99px;background:var(--red);color:#fff;font-size:13px;display:grid;place-items:center;border:2px solid #f5f8f9}
.button{height:38px;border-radius:9px;padding:0 13px;border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:15px;font-weight:800;white-space:nowrap}
.button>span{width:14px;height:14px}.button.primary{background:linear-gradient(180deg,var(--brand-500),var(--brand-600));color:#fff;box-shadow:0 5px 14px rgba(8,184,198,.16)}.button.primary:hover{background:var(--brand-700)}.button.secondary{background:#fff;border-color:var(--silver-300);color:var(--ink-800)}.button.secondary:hover{border-color:var(--ink-400);background:var(--silver-50)}.button.tertiary{background:var(--silver-100);border-color:var(--silver-100);color:var(--ink-700)}.button.danger-soft{background:var(--red-soft);border-color:#f0cccc;color:var(--red)}.button.compact{height:34px;padding:0 10px;font-size:14px}.button.large{height:43px;padding:0 17px}.button.wide{width:100%}
.view{display:none;padding:26px 28px 42px}.view.active{display:block}
.hero-row,.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:20px}.hero-row h1,.page-heading h1{font-size:34px;letter-spacing:-.045em;margin:5px 0 6px;line-height:1.1}.hero-sub,.page-heading p{font-size:15px;color:var(--ink-500);margin:0;line-height:1.5;max-width:700px}
.breadcrumb{font-size:14px;color:var(--ink-400);font-weight:650}.breadcrumb span{padding:0 5px;color:var(--silver-300)}
.hero-actions,.heading-actions,.header-actions{display:flex;align-items:center;gap:7px}
.role-switcher{height:38px;background:#fff;border:1px solid var(--silver-200);border-radius:9px;padding:4px 7px 4px 10px;display:flex;align-items:center;gap:7px}.role-switcher span{font-size:13px;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-400);font-weight:800}.role-switcher select{border:0;outline:0;background:transparent;font-size:15px;color:var(--ink-800);font-weight:750}
.signal-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:10px}
.signal-card{background:#fff;border:1px solid var(--silver-200);border-radius:var(--radius-2);padding:14px 15px;box-shadow:var(--shadow-1);position:relative;overflow:hidden}
.signal-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--brand-500),transparent 70%);opacity:.7}.signal-card.critical:before{background:linear-gradient(90deg,var(--red),transparent 70%)}
.signal-title{display:flex;align-items:center;gap:6px;color:var(--ink-500);font-size:14px;font-weight:750}.signal-title span{width:13px;height:13px}.signal-card>strong{display:block;font-size:30px;letter-spacing:-.04em;margin:9px 0 4px}.signal-card p{font-size:14px;color:var(--ink-500);line-height:1.45;min-height:24px;margin:0 0 8px}.signal-card button{border:0;background:transparent;color:var(--brand-700);padding:0;display:flex;align-items:center;gap:4px;font-size:14px;font-weight:800}.signal-card button span{width:11px;height:11px}
.micro-progress{height:4px;background:var(--silver-150);border-radius:99px;overflow:hidden;margin:0 0 6px}.micro-progress i{display:block;height:100%;background:linear-gradient(90deg,var(--brand-600),var(--brand-300));border-radius:99px}
.dashboard-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:10px}.span-7{grid-column:span 7}.span-5{grid-column:span 5}
.card{background:#fff;border:1px solid var(--silver-200);border-radius:var(--radius-2);box-shadow:var(--shadow-1);padding:17px}
.card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:14px}.card-header h2{font-size:18px;letter-spacing:-.025em;margin:3px 0 3px}.card-header p{font-size:14px;color:var(--ink-500);margin:0;line-height:1.45}
.status-chip{display:inline-flex;align-items:center;border:1px solid var(--silver-200);background:var(--silver-50);border-radius:99px;color:var(--ink-600);font-size:13px;font-weight:850;padding:4px 7px;white-space:nowrap}.status-chip.positive{background:var(--green-soft);border-color:#cde8dd;color:var(--green)}.status-chip.warning{background:var(--amber-soft);border-color:#f0ddbf;color:var(--amber)}.status-chip.critical{background:var(--red-soft);border-color:#efcccc;color:var(--red)}
.campaign-layout{display:grid;grid-template-columns:150px 1fr;gap:17px;align-items:center}.radial-shell{width:130px;height:130px;position:relative;display:grid;place-items:center}.radial{width:130px;height:130px;transform:rotate(-90deg)}.radial-track,.radial-value{fill:none;stroke-width:9}.radial-track{stroke:var(--silver-150)}.radial-value{stroke:var(--brand-500);stroke-linecap:round}.radial-label{position:absolute;text-align:center}.radial-label strong,.radial-label span{display:block}.radial-label strong{font-size:26px;letter-spacing:-.035em}.radial-label span{font-size:14px;color:var(--ink-500);margin-top:2px}
.campaign-numbers{display:grid;grid-template-columns:1fr 1fr;gap:8px}.campaign-numbers>div{background:var(--silver-50);border-radius:9px;padding:10px}.campaign-numbers span,.campaign-numbers strong,.campaign-numbers small{display:block}.campaign-numbers span{font-size:13px;color:var(--ink-500)}.campaign-numbers strong{font-size:18px;margin:3px 0 1px}.campaign-numbers small{font-size:13px;color:var(--ink-400)}
.site-progress{margin-top:12px;padding-top:11px;border-top:1px solid var(--silver-150);display:flex;flex-direction:column;gap:7px}.site-progress>div,.assurance-breakdown>div{display:grid;grid-template-columns:120px 1fr 34px;align-items:center;gap:8px;font-size:14px}.bar{height:5px;background:var(--silver-150);border-radius:99px;overflow:hidden}.bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--brand-600),var(--brand-300))}.bar i.warning{background:var(--amber)}
.site-progress b,.assurance-breakdown b{text-align:right;font-size:14px}
.action-feed{display:flex;flex-direction:column}.action-feed button{border:0;background:transparent;color:var(--ink-900);display:grid;grid-template-columns:4px 1fr auto 13px;align-items:center;gap:9px;padding:11px 3px;border-top:1px solid var(--silver-150);text-align:left}.action-feed button:first-child{border-top:0}.action-feed button:hover{background:var(--silver-50)}.action-feed button>span:last-child{width:12px;height:12px;color:var(--ink-400)}.risk-bar{width:4px;height:31px;border-radius:99px;background:var(--silver-300)}.risk-bar.critical{background:var(--red)}.risk-bar.warning{background:var(--amber)}.risk-bar.brand{background:var(--brand-500)}.risk-bar.neutral{background:var(--ink-400)}.action-feed strong,.action-feed small{display:block}.action-feed strong{font-size:15px}.action-feed small{font-size:13px;color:var(--ink-500);margin-top:2px}.action-feed em{font-style:normal;font-size:13px;color:var(--ink-400)}
.risk-layout{display:grid;grid-template-columns:1.3fr .7fr;gap:14px}.age-chart{display:flex;flex-direction:column;gap:9px}.chart-row{display:grid;grid-template-columns:72px 1fr 28px;gap:8px;align-items:center;font-size:14px}.chart-row>div{height:7px;background:var(--silver-150);border-radius:99px;overflow:hidden}.chart-row i{height:100%;display:block;border-radius:99px;background:var(--brand-500)}.chart-row i.danger{background:var(--red)}.chart-row b{text-align:right}.risk-summary{display:grid;grid-template-columns:1fr 1fr;gap:7px}.risk-summary div{padding:9px;background:var(--silver-50);border-radius:8px}.risk-summary span,.risk-summary strong{display:block}.risk-summary span{font-size:13px;color:var(--ink-500);line-height:1.25}.risk-summary strong{font-size:18px;margin-top:4px}
.score-badge{width:45px;height:45px;border-radius:50%;display:grid;place-items:center;background:var(--brand-50);color:var(--brand-700);font-size:17px;font-weight:850;border:1px solid var(--brand-100)}.quality-queue{display:flex;flex-direction:column}.quality-queue button{border:0;background:transparent;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 2px;border-top:1px solid var(--silver-150);text-align:left;color:var(--ink-900)}.quality-queue button:first-child{border-top:0}.quality-queue span{display:flex;align-items:baseline;gap:7px}.quality-queue strong{font-size:17px}.quality-queue small{font-size:14px;color:var(--ink-600)}.quality-queue em{font-style:normal;font-size:13px;color:var(--ink-400)}
.register-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:9px}.view-tabs{display:flex;gap:4px;align-items:center;overflow:auto}.view-tabs button,.workbench-tabs button{height:31px;border:1px solid var(--silver-200);background:#fff;color:var(--ink-600);border-radius:7px;padding:0 9px;font-size:14px;white-space:nowrap}.view-tabs button b,.workbench-tabs button b{font-size:13px;margin-left:4px;color:var(--ink-400)}.view-tabs button.active,.workbench-tabs button.active{background:var(--ink-900);border-color:var(--ink-900);color:#fff}.view-tabs button.active b,.workbench-tabs button.active b{color:#b5c2c7}.register-actions{display:flex;gap:5px}.tool-button{height:31px;border:1px solid var(--silver-200);background:#fff;border-radius:7px;padding:0 8px;display:flex;align-items:center;gap:5px;font-size:14px;color:var(--ink-600)}.tool-button span{width:12px;height:12px}.tool-button b{background:var(--brand-100);color:var(--brand-800);border-radius:99px;font-size:13px;padding:1px 5px}
.table-card{background:#fff;border:1px solid var(--silver-200);border-radius:var(--radius-2);overflow:hidden;box-shadow:var(--shadow-1)}.table-command{height:48px;padding:0 13px;display:flex;align-items:center;border-bottom:1px solid var(--silver-150)}.table-search{display:flex;align-items:center;gap:7px;flex:1}.table-search span{width:14px;height:14px;color:var(--ink-400)}.table-search input{border:0;outline:0;font-size:15px;width:min(350px,100%);background:transparent}.selection-actions{display:flex;align-items:center;gap:5px}.selection-actions.hidden{display:none}.selection-actions strong{font-size:14px}.selection-actions button{border:1px solid var(--silver-200);background:#fff;height:26px;border-radius:6px;font-size:13px;padding:0 7px}.table-summary{margin-left:auto;display:flex;align-items:center;gap:7px;font-size:14px;color:var(--ink-400)}
.table-wrap{overflow:auto}.asset-table{width:100%;border-collapse:collapse;font-size:14px}.asset-table th{text-align:left;background:#fafcfc;color:var(--ink-400);text-transform:uppercase;letter-spacing:.07em;font-size:13px;padding:10px 11px;border-bottom:1px solid var(--silver-200);white-space:nowrap;position:sticky;top:0}.asset-table td{padding:11px;border-bottom:1px solid var(--silver-150);white-space:nowrap;vertical-align:middle}.asset-table tbody tr{cursor:pointer}.asset-table tbody tr:hover{background:#fbfdfd}.asset-table td strong,.asset-table td small{display:block}.asset-table td strong{font-size:15px}.asset-table td small{font-size:13px;color:var(--ink-400);margin-top:2px}.asset-table th.num,.asset-table td.num{text-align:right}.confidence-cell{display:flex;align-items:center;gap:6px}.confidence-dot{width:6px;height:6px;border-radius:50%;background:var(--brand-500)}.confidence-dot.low{background:var(--amber)}.confidence-dot.none{background:var(--silver-300)}
.row-more{width:26px;height:26px;border:0;background:transparent;border-radius:6px;color:var(--ink-400);padding:7px}.row-more:hover{background:var(--silver-100)}.table-footer{display:flex;justify-content:space-between;align-items:center;padding:10px 13px;font-size:13px;color:var(--ink-400)}.table-footer>div{display:flex;gap:3px}.table-footer button{height:26px;border:1px solid var(--silver-200);background:#fff;border-radius:6px;font-size:13px;color:var(--ink-600)}.table-footer button.active{background:var(--ink-900);color:#fff}.table-footer button:disabled{opacity:.4}
.connectivity,.segregation-pill{display:flex;align-items:center;gap:7px;font-size:14px;color:var(--ink-500)}.connectivity i{width:7px;height:7px;border-radius:50%;background:var(--green)}.segregation-pill{background:var(--green-soft);border:1px solid #d2e9e1;border-radius:9px;padding:8px 10px;color:var(--green)}.segregation-pill>span{width:16px;height:16px}.segregation-pill strong,.segregation-pill small{display:block}.segregation-pill strong{font-size:14px}.segregation-pill small{font-size:13px;margin-top:2px}
.field-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(270px,.65fr);gap:10px}.field-main{min-height:560px}.field-head{display:flex;justify-content:space-between;gap:16px}.field-head h2{font-size:22px;margin:4px 0 3px}.field-head p{font-size:14px;color:var(--ink-500);margin:0}.route-progress{text-align:right}.route-progress strong,.route-progress span{display:block}.route-progress strong{font-size:24px}.route-progress span{font-size:13px;color:var(--ink-400)}
.scanner-shell{margin-top:20px;height:410px;border:1px solid #c8e8eb;background:linear-gradient(145deg,#f7fdfd,#eefafa);border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;overflow:hidden}.scanner-shell:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,rgba(8,184,198,.08),transparent 48%)}.scanner-top{position:absolute;top:13px;left:13px;right:13px;display:flex;justify-content:space-between}.camera-pill{display:flex;align-items:center;gap:5px;border:1px solid #d5ecee;background:rgba(255,255,255,.8);border-radius:99px;padding:5px 7px;font-size:13px;color:var(--ink-500)}.camera-pill span{width:12px;height:12px}
.scanner-target{width:220px;height:145px;position:relative;display:grid;place-items:center;margin-bottom:18px}.scanner-target>div{width:38px;height:38px;color:var(--brand-700);opacity:.8}.corner{position:absolute;width:26px;height:26px;border-color:var(--brand-500)}.corner.tl{top:0;left:0;border-left:2px solid;border-top:2px solid}.corner.tr{top:0;right:0;border-right:2px solid;border-top:2px solid}.corner.bl{bottom:0;left:0;border-left:2px solid;border-bottom:2px solid}.corner.br{bottom:0;right:0;border-right:2px solid;border-bottom:2px solid}.scanner-shell>strong{font-size:16px;z-index:1}.scanner-shell>p{font-size:14px;color:var(--ink-500);margin:4px 0 13px;z-index:1}.scanner-shell>.button,.scanner-shell>.link-button{z-index:1}.link-button{border:0;background:transparent;color:var(--brand-700);font-size:14px;font-weight:800;margin-top:7px}
.field-side{display:flex;flex-direction:column;gap:10px}.route-stack{display:flex;flex-direction:column}.route{border:0;border-top:1px solid var(--silver-150);background:transparent;display:flex;align-items:center;justify-content:space-between;padding:10px 3px;text-align:left;color:var(--ink-900)}.route:first-child{border-top:0}.route.active{color:var(--brand-800)}.route strong,.route small{display:block}.route strong{font-size:15px}.route small{font-size:13px;color:var(--ink-400);margin-top:2px}.route b{font-size:14px}.field-metrics{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:10px}.field-metrics div{background:var(--silver-50);border-radius:8px;padding:10px}.field-metrics strong,.field-metrics span{display:block}.field-metrics strong{font-size:19px}.field-metrics span{font-size:13px;color:var(--ink-400);margin-top:2px}
.verify-sheet{margin-top:16px;border-top:1px solid var(--silver-150);padding-top:16px}.verify-sheet.hidden{display:none}.verify-identity{display:grid;grid-template-columns:auto 1fr auto;gap:11px;align-items:center}.asset-photo-placeholder{width:50px;height:50px;border-radius:10px;background:var(--silver-100);display:grid;place-items:center;color:var(--ink-400)}.asset-photo-placeholder span{width:25px;height:25px}.verify-identity h2{font-size:19px;margin:4px 0 2px}.verify-identity p{font-size:14px;color:var(--ink-400);margin:0}.confidence-score{width:72px;height:72px;border:6px solid var(--brand-500);border-radius:50%;display:grid;place-content:center;text-align:center}.confidence-score strong,.confidence-score span{display:block}.confidence-score strong{font-size:22px}.confidence-score span{font-size:12px;color:var(--ink-400)}
.confirm-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin:15px 0}.confirm-tile{border:1px solid var(--silver-200);background:#fff;border-radius:9px;padding:9px;display:flex;align-items:center;gap:7px;text-align:left}.confirm-tile i{font-style:normal;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--silver-200);color:var(--ink-400)}.confirm-tile i span{width:11px;height:11px}.confirm-tile.done{background:#f7fcfa;border-color:#d7ebe3}.confirm-tile.done i{background:var(--green);border-color:var(--green);color:#fff}.confirm-tile strong,.confirm-tile small{display:block}.confirm-tile strong{font-size:14px}.confirm-tile small{font-size:13px;color:var(--ink-400);margin-top:1px}
.field-form{display:grid;grid-template-columns:1fr 1fr;gap:8px}.field-form label,.decision-note,.admin-form label{display:flex;flex-direction:column;gap:5px}.field-form label>span,.decision-note>span,.admin-form label>span{font-size:13px;text-transform:uppercase;letter-spacing:.07em;font-weight:800;color:var(--ink-500)}.field-form label span em,.decision-note span em{font-style:normal;text-transform:none;letter-spacing:0;font-weight:500}.field-form select,.field-form textarea,.decision-note textarea,.admin-form input,.admin-form select{border:1px solid var(--silver-200);background:#fff;border-radius:8px;padding:8px 9px;color:var(--ink-900);font-size:15px}.field-form textarea,.decision-note textarea{min-height:62px;resize:vertical}.field-form .wide{grid-column:1/-1}.sheet-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:11px}
.inbox-layout{display:grid;grid-template-columns:330px minmax(0,1fr);gap:10px}.approval-rail{background:#fff;border:1px solid var(--silver-200);border-radius:var(--radius-2);overflow:hidden}.approval-filter{padding:9px;display:flex;gap:5px;border-bottom:1px solid var(--silver-150)}.approval-filter button{height:29px;border:0;background:transparent;border-radius:6px;font-size:14px;color:var(--ink-500);padding:0 8px}.approval-filter button.active{background:var(--ink-900);color:#fff}.approval-filter b{font-size:13px;margin-left:3px}
.approval-item{width:100%;border:0;border-bottom:1px solid var(--silver-150);background:#fff;text-align:left;padding:12px;color:var(--ink-900)}.approval-item:hover,.approval-item.active{background:var(--brand-50)}.approval-item-top{display:flex;justify-content:space-between;gap:9px}.approval-item strong,.approval-item small{display:block}.approval-item strong{font-size:15px}.approval-item small{font-size:13px;color:var(--ink-400);margin-top:3px}.approval-item em{font-style:normal;font-size:13px;color:var(--ink-400)}.approval-item .type{font-size:13px;text-transform:uppercase;letter-spacing:.07em;color:var(--brand-700);font-weight:850;margin-bottom:4px}
.approval-panel{background:#fff;border:1px solid var(--silver-200);border-radius:var(--radius-2);padding:18px}.approval-panel-head{display:flex;justify-content:space-between;gap:15px}.approval-panel-head h2{font-size:22px;margin:4px 0 3px}.approval-panel-head p{font-size:14px;color:var(--ink-400);margin:0}.change-comparison{display:grid;grid-template-columns:1fr 38px 1fr;align-items:stretch;gap:7px;margin:18px 0}.change-comparison>div:not(.comparison-arrow){border:1px solid var(--silver-200);background:var(--silver-50);border-radius:9px;padding:12px}.change-comparison .proposed{border-color:#c8eaec!important;background:var(--brand-50)!important}.comparison-label{font-size:13px;color:var(--ink-400);font-weight:850;letter-spacing:.08em}.change-comparison strong,.change-comparison small{display:block}.change-comparison strong{font-size:15px;margin:5px 0 3px}.change-comparison small{font-size:13px;color:var(--ink-500);margin-top:2px}.comparison-arrow{display:grid;place-items:center;color:var(--brand-600)}.comparison-arrow span{width:16px;height:16px}
.approval-asset{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:10px;border:1px solid var(--silver-200);border-radius:9px;padding:10px}.asset-icon{width:36px;height:36px;border-radius:8px;background:var(--silver-100);display:grid;place-items:center;color:var(--ink-500)}.asset-icon span{width:20px;height:20px}.approval-asset>div:nth-child(2) strong,.approval-asset>div:nth-child(2) span{display:block}.approval-asset>div:nth-child(2) strong{font-size:15px}.approval-asset>div:nth-child(2) span{font-size:13px;color:var(--ink-400);margin-top:2px}.approval-value span,.approval-value strong{display:block}.approval-value span{font-size:13px;color:var(--ink-400)}.approval-value strong{font-size:15px;margin-top:2px}
.control-check{display:flex;gap:9px;align-items:center;border-radius:9px;padding:10px;margin:11px 0}.control-check.positive{background:var(--green-soft);border:1px solid #d2e9e1;color:var(--green)}.control-check>span{width:18px;height:18px}.control-check strong,.control-check small{display:block}.control-check strong{font-size:14px}.control-check small{font-size:13px;margin-top:2px;color:#4d7969}
.evidence-row{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:10px}.evidence-row>div{display:flex;align-items:center;gap:8px;border:1px solid var(--silver-200);border-radius:8px;padding:9px}.evidence-row>div>span{width:17px;height:17px;color:var(--brand-700)}.evidence-row strong,.evidence-row small{display:block}.evidence-row strong{font-size:14px}.evidence-row small{font-size:13px;color:var(--ink-400);margin-top:2px}.decision-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:10px}
.exception-overview{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:9px}.exception-overview>div{background:#fff;border:1px solid var(--silver-200);border-radius:10px;padding:12px}.exception-overview>div.critical{border-top:2px solid var(--red)}.exception-overview span,.exception-overview strong,.exception-overview small{display:block}.exception-overview span{font-size:13px;color:var(--ink-500)}.exception-overview strong{font-size:22px;margin:3px 0}.exception-overview small{font-size:13px;color:var(--ink-400)}.workbench-tabs{display:flex;gap:4px;padding:9px;border-bottom:1px solid var(--silver-150);overflow:auto}
.process-stepper{display:flex;align-items:center;max-width:760px;margin:0 auto 18px}.process-stepper>b{height:1px;background:var(--silver-200);flex:1;margin:0 10px}.step{display:flex;align-items:center;gap:7px}.step i{width:26px;height:26px;border-radius:50%;border:1px solid var(--silver-300);background:#fff;display:grid;place-items:center;font-style:normal;font-size:14px;color:var(--ink-400)}.step strong,.step small{display:block}.step strong{font-size:14px}.step small{font-size:13px;color:var(--ink-400);margin-top:1px}.step.done i{background:var(--green);border-color:var(--green);color:#fff}.step.active i{background:var(--brand-50);border-color:var(--brand-500);color:var(--brand-700)}
.recon-summary{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:10px}.recon-metric{background:#fff;border:1px solid var(--silver-200);border-radius:10px;padding:11px;display:flex;align-items:center;gap:8px}.recon-metric>span{width:23px;height:23px;padding:5px;border-radius:7px;background:var(--silver-100);color:var(--ink-500)}.recon-metric strong,.recon-metric small{display:block}.recon-metric strong{font-size:19px}.recon-metric small{font-size:13px;color:var(--ink-400)}.recon-metric.create>span{background:var(--green-soft);color:var(--green)}.recon-metric.update>span{background:var(--brand-50);color:var(--brand-700)}.recon-metric.error>span{background:var(--red-soft);color:var(--red)}
.diff-table{display:flex;flex-direction:column}.diff-row{display:grid;grid-template-columns:1.2fr .7fr 1fr 16px 1fr auto;gap:9px;align-items:center;border-top:1px solid var(--silver-150);padding:10px 0;font-size:14px}.diff-row:first-child{border-top:0}.diff-row strong,.diff-row small{display:block}.diff-row small{color:var(--ink-400);margin-top:2px}.diff-row>span:nth-of-type(1){color:var(--ink-400)}.diff-row>span[data-icon]{width:13px;height:13px;color:var(--brand-600)}.diff-row del{color:var(--red);text-decoration-color:#e7a0a0}.diff-row ins{color:var(--green);text-decoration:none;font-weight:750}.diff-row.error{background:#fffafa}
.audit-hero{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}.assurance-score,.assurance-breakdown{background:#fff;border:1px solid var(--silver-200);border-radius:var(--radius-2);padding:17px}.assurance-score{display:flex;align-items:center;gap:15px}.score-ring{width:100px;height:100px;position:relative;display:grid;place-items:center}.score-ring svg{position:absolute;width:100px;height:100px;transform:rotate(-90deg)}.score-ring>div{display:flex;align-items:baseline}.score-ring strong{font-size:34px}.score-ring span{font-size:14px;color:var(--ink-400)}.assurance-score h2{font-size:19px;margin:4px 0}.assurance-score p{font-size:14px;color:var(--ink-500);line-height:1.45;margin:0}.assurance-breakdown{display:flex;flex-direction:column;gap:10px;justify-content:center}.assurance-breakdown>div{grid-template-columns:125px 1fr 35px}
.pack-builder{display:flex;flex-direction:column;gap:6px}.pack-builder label{display:flex;align-items:center;gap:8px;border:1px solid var(--silver-150);border-radius:8px;padding:8px}.pack-builder label>span strong,.pack-builder label>span small{display:block}.pack-builder strong{font-size:14px}.pack-builder small{font-size:13px;color:var(--ink-400);margin-top:1px}.pack-builder .button{margin-top:5px}.audit-timeline{display:flex;flex-direction:column}.audit-timeline>div{display:grid;grid-template-columns:auto 1fr auto;gap:9px;padding:10px 2px;border-top:1px solid var(--silver-150)}.audit-timeline>div:first-child{border-top:0}.audit-timeline i{width:9px;height:9px;border:2px solid var(--brand-500);border-radius:50%;margin-top:2px}.audit-timeline strong,.audit-timeline span,.audit-timeline small{display:block}.audit-timeline strong{font-size:14px}.audit-timeline span{font-size:13px;color:var(--brand-700);margin-top:2px}.audit-timeline small{font-size:13px;color:var(--ink-400);margin-top:2px}.audit-timeline b{font-size:13px;color:var(--ink-400);font-weight:500}
.report-categories{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.report-card{min-height:132px;border:1px solid var(--silver-200);background:#fff;border-radius:12px;padding:15px;text-align:left;display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:start;color:var(--ink-900);box-shadow:var(--shadow-1)}.report-card:hover{border-color:var(--brand-300);box-shadow:var(--shadow-2);transform:translateY(-1px)}.report-card>span:last-child{width:14px;height:14px;color:var(--ink-400)}.report-icon{width:32px;height:32px!important;padding:7px;border-radius:8px;background:var(--brand-50);color:var(--brand-700)}.report-card strong{font-size:15px}.report-card p{font-size:14px;color:var(--ink-500);line-height:1.45;margin:4px 0}
.admin-layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:10px}.admin-nav{background:#fff;border:1px solid var(--silver-200);border-radius:11px;padding:7px;align-self:start;display:flex;flex-direction:column}.admin-nav button{height:36px;border:0;background:transparent;text-align:left;border-radius:7px;padding:0 9px;font-size:14px;color:var(--ink-600)}.admin-nav button.active{background:var(--brand-50);color:var(--brand-800);font-weight:800}.admin-content{display:flex;flex-direction:column;gap:9px}.admin-form{display:grid;grid-template-columns:1fr 1fr;gap:9px}.admin-form input,.admin-form select{height:36px}.form-actions{display:flex;justify-content:flex-end;gap:6px;margin-top:12px}.admin-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.mini-admin-card{background:#fff;border:1px solid var(--silver-200);border-radius:10px;padding:11px;display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center}.mini-admin-card>span{width:26px;height:26px;padding:6px;border-radius:7px;background:var(--silver-100);color:var(--brand-700)}.mini-admin-card strong,.mini-admin-card small{display:block}.mini-admin-card strong{font-size:14px}.mini-admin-card small{font-size:13px;color:var(--ink-400);margin-top:2px}.mini-admin-card button{border:0;background:transparent;color:var(--brand-700);font-size:13px;font-weight:800}
.drawer,.modal{position:fixed;inset:0;z-index:100;display:none}.drawer.open,.modal.open{display:block}.drawer-backdrop,.modal-backdrop{position:absolute;inset:0;background:rgba(7,20,25,.28);backdrop-filter:blur(2px)}.drawer-panel{position:absolute;right:0;top:0;bottom:0;width:min(760px,95vw);background:#fff;box-shadow:-24px 0 70px rgba(7,20,25,.14);overflow:auto}.drawer-head{display:flex;justify-content:space-between;gap:12px;padding:19px 20px 11px}.drawer-head h2{font-size:26px;letter-spacing:-.035em;margin:6px 0 2px}.drawer-head p{font-size:14px;color:var(--ink-400);margin:0}.drawer-close{width:31px;height:31px;border:0;background:var(--silver-100);border-radius:50%;font-size:22px;color:var(--ink-500)}.drawer-tabs{display:flex;overflow:auto;padding:0 20px;border-bottom:1px solid var(--silver-200)}.drawer-tabs button{height:36px;border:0;background:transparent;border-bottom:2px solid transparent;color:var(--ink-500);font-size:14px;padding:0 8px;white-space:nowrap}.drawer-tabs button.active{color:var(--brand-700);border-color:var(--brand-500);font-weight:800}.drawer-content{padding:18px 20px}.asset-hero{display:grid;grid-template-columns:1fr 100px;gap:14px;align-items:start}.asset-hero h3{font-size:19px;margin:3px 0}.asset-hero p{font-size:14px;color:var(--ink-400)}.asset-confidence{background:var(--brand-50);border:1px solid var(--brand-100);border-radius:10px;padding:10px;text-align:center}.asset-confidence strong,.asset-confidence span{display:block}.asset-confidence strong{font-size:30px;color:var(--brand-700)}.asset-confidence span{font-size:13px;color:var(--ink-500)}.drawer-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:14px 0}.drawer-detail-grid div{border:1px solid var(--silver-200);border-radius:8px;padding:9px}.drawer-detail-grid span,.drawer-detail-grid strong{display:block}.drawer-detail-grid span{font-size:13px;color:var(--ink-400);text-transform:uppercase;letter-spacing:.06em}.drawer-detail-grid strong{font-size:15px;margin-top:3px}.trust-band{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;background:var(--silver-50);border:1px solid var(--silver-200);border-radius:9px;padding:9px}.trust-band span,.trust-band strong{display:block}.trust-band span{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-400)}.trust-band strong{font-size:14px;margin-top:3px}.drawer-actions{display:flex;gap:6px;margin-top:13px}
.notification-panel{position:absolute;right:12px;top:12px;bottom:12px;width:min(390px,calc(100vw - 24px));background:#fff;border-radius:14px;box-shadow:var(--shadow-3);overflow:auto}.notification-head{display:flex;justify-content:space-between;padding:17px;border-bottom:1px solid var(--silver-150)}.notification-head h2{font-size:19px;margin:3px 0}.notifications{display:flex;flex-direction:column}.notifications button{border:0;background:#fff;display:grid;grid-template-columns:auto 1fr auto;gap:8px;text-align:left;color:var(--ink-900);padding:12px 15px;border-bottom:1px solid var(--silver-150)}.notifications button:hover{background:var(--silver-50)}.notification-dot{width:7px;height:7px;border-radius:50%;margin-top:3px;background:var(--silver-300)}.notification-dot.critical{background:var(--red)}.notification-dot.warning{background:var(--amber)}.notification-dot.brand{background:var(--brand-500)}.notification-dot.neutral{background:var(--ink-400)}.notifications strong,.notifications small{display:block}.notifications strong{font-size:14px}.notifications small{font-size:13px;color:var(--ink-400);margin-top:3px}.notifications em{font-style:normal;font-size:13px;color:var(--ink-400)}
#toast{position:fixed;right:20px;bottom:20px;z-index:200;background:var(--ink-950);color:#fff;border-radius:9px;padding:10px 13px;font-size:14px;box-shadow:var(--shadow-3);opacity:0;transform:translateY(8px);transition:.2s;pointer-events:none;max-width:320px}#toast.show{opacity:1;transform:none}
.hidden{display:none!important}
@media(max-width:1180px){
  :root{--sidebar:78px}
  .brand-lockup>div,.entity-copy,.entity-switcher .chev,.nav-group-label,.nav-item em,.nav-meta,.sidebar-foot .user-copy,.sync-chip span,.sync-chip small{display:none}
  .brand-lockup{justify-content:center;padding:0 0 15px}.brand-lockup img{width:39px;height:39px}.entity-switcher{display:flex;justify-content:center;padding:7px}.nav-item{justify-content:center;padding:0}.nav-item>span:first-child{width:18px;height:18px}.nav-count{position:absolute;transform:translate(13px,-11px)}.nav-item{position:relative}.sidebar-foot{display:grid;place-items:center}.sync-chip{display:none}
  .signal-strip{grid-template-columns:1fr 1fr}.span-7,.span-5{grid-column:span 12}.field-layout{grid-template-columns:1fr}.inbox-layout{grid-template-columns:290px 1fr}.exception-overview{grid-template-columns:repeat(3,1fr)}.recon-summary{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:820px){
  #app{display:block}.sidebar{height:54px;position:sticky;top:0;display:flex;flex-direction:row;align-items:center;padding:6px 8px;border-right:0;border-bottom:1px solid var(--silver-200)}.brand-lockup{padding:0}.brand-lockup img{width:35px;height:35px}.entity-switcher,.sidebar-foot{display:none}.primary-nav{display:flex;flex-direction:row;overflow:auto;flex:1;margin-left:8px}.nav-group-label{display:none}.nav-item{min-width:39px;height:39px}.global-bar{top:54px;height:57px;padding:0 11px}.command-search{width:100%}.command-search kbd,.environment-pill,.global-actions .button.secondary{display:none}.global-actions .button.primary{padding:0 9px}.view{padding:17px 12px 35px}.hero-row,.page-heading{align-items:flex-start;flex-direction:column}.hero-row h1,.page-heading h1{font-size:30px}.hero-actions,.heading-actions{width:100%;overflow:auto}.signal-strip{grid-template-columns:1fr 1fr}.campaign-layout{grid-template-columns:1fr}.radial-shell{margin:auto}.risk-layout{grid-template-columns:1fr}.report-categories{grid-template-columns:1fr 1fr}.admin-layout{grid-template-columns:1fr}.admin-nav{display:flex;flex-direction:row;overflow:auto}.admin-nav button{white-space:nowrap}.inbox-layout{grid-template-columns:1fr}.approval-rail{max-height:245px;overflow:auto}.exception-overview{grid-template-columns:1fr 1fr}.recon-summary{grid-template-columns:1fr 1fr}.process-stepper{overflow:auto;justify-content:flex-start}.process-stepper>b{min-width:24px}.diff-row{grid-template-columns:1fr 1fr}.diff-row>*{min-width:0}.audit-hero{grid-template-columns:1fr}.confirm-grid{grid-template-columns:1fr 1fr}.drawer-panel{width:100%}.global-actions .top-icon{display:none}
}
@media(max-width:520px){
  .signal-strip,.exception-overview,.recon-summary,.report-categories,.admin-cards{grid-template-columns:1fr}.field-form,.admin-form,.drawer-detail-grid{grid-template-columns:1fr}.field-form .wide{grid-column:auto}.confirm-grid{grid-template-columns:1fr}.change-comparison{grid-template-columns:1fr}.comparison-arrow{transform:rotate(90deg);height:25px}.approval-asset{grid-template-columns:auto 1fr}.approval-value,.approval-asset .button{grid-column:2}.evidence-row{grid-template-columns:1fr}.trust-band{grid-template-columns:1fr 1fr}.view-tabs{max-width:100%}
}

/* V3 launch-candidate capabilities */
.offline-dock{position:fixed;left:calc(var(--sidebar) + 18px);bottom:17px;z-index:40}
.offline-dock button{border:1px solid var(--silver-200);background:rgba(255,255,255,.95);backdrop-filter:blur(12px);border-radius:10px;padding:7px 9px;display:flex;align-items:center;gap:8px;box-shadow:var(--shadow-2);color:var(--ink-900)}
.offline-dock i{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 3px var(--green-soft)}
.offline-dock.offline i{background:var(--amber);box-shadow:0 0 0 3px var(--amber-soft)}
.offline-dock strong,.offline-dock small{display:block;text-align:left}.offline-dock strong{font-size:14px}.offline-dock small{font-size:13px;color:var(--ink-400);margin-top:1px}.offline-dock b{min-width:19px;height:19px;border-radius:99px;background:var(--brand-100);color:var(--brand-800);display:grid;place-items:center;font-size:13px}
.scan-modal-card,.workflow-modal{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(720px,calc(100vw - 24px));max-height:calc(100vh - 24px);overflow:auto;background:#fff;border-radius:15px;box-shadow:var(--shadow-3);padding:18px}
.workflow-modal{width:min(850px,calc(100vw - 24px))}
.modal-title-row{display:flex;justify-content:space-between;gap:15px;align-items:flex-start;margin-bottom:14px}.modal-title-row h2{font-size:22px;margin:4px 0 3px}.modal-title-row p{font-size:14px;color:var(--ink-500);line-height:1.45;margin:0}
.live-camera{height:380px;background:#071317;border-radius:12px;position:relative;overflow:hidden;display:grid;place-items:center}.live-camera video{width:100%;height:100%;object-fit:cover}.live-target{position:absolute;width:55%;height:42%}.live-target i{position:absolute;width:28px;height:28px;border-color:var(--brand-400)}.live-target i:nth-child(1){left:0;top:0;border-left:3px solid;border-top:3px solid}.live-target i:nth-child(2){right:0;top:0;border-right:3px solid;border-top:3px solid}.live-target i:nth-child(3){left:0;bottom:0;border-left:3px solid;border-bottom:3px solid}.live-target i:nth-child(4){right:0;bottom:0;border-right:3px solid;border-bottom:3px solid}.camera-status{position:absolute;left:12px;bottom:12px;background:rgba(5,15,18,.7);color:#fff;border-radius:99px;padding:5px 8px;font-size:13px}.scanner-controls{display:flex;justify-content:flex-end;gap:7px;margin-top:10px}.manual-scan-row{display:grid;grid-template-columns:1fr auto;gap:7px;margin-top:10px}.manual-scan-row input{height:38px;border:1px solid var(--silver-200);border-radius:8px;padding:0 10px;font-size:15px}
.drop-zone{border:1.5px dashed var(--silver-300);border-radius:12px;min-height:230px;background:var(--silver-50);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;position:relative}.drop-zone>span{width:32px;height:32px;color:var(--brand-700);margin-bottom:10px}.drop-zone strong{font-size:15px}.drop-zone small{font-size:14px;color:var(--ink-400);margin-top:4px}.drop-zone input{position:absolute;inset:0;opacity:0;cursor:pointer}.drop-zone.drag{border-color:var(--brand-500);background:var(--brand-50)}
.import-preview{margin-top:13px}.import-preview .import-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-bottom:9px}.import-preview .import-stats div{background:var(--silver-50);border-radius:8px;padding:10px}.import-preview .import-stats span,.import-preview .import-stats strong{display:block}.import-preview .import-stats span{font-size:13px;color:var(--ink-400)}.import-preview .import-stats strong{font-size:19px;margin-top:3px}.preview-table{max-height:260px;overflow:auto;border:1px solid var(--silver-200);border-radius:9px}.preview-table table{width:100%;border-collapse:collapse;font-size:14px}.preview-table th,.preview-table td{padding:8px;border-bottom:1px solid var(--silver-150);text-align:left;white-space:nowrap}.preview-table th{position:sticky;top:0;background:#fff;color:var(--ink-400);font-size:13px;text-transform:uppercase}.import-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:10px}
.command-palette{position:absolute;left:50%;top:13vh;transform:translateX(-50%);width:min(650px,calc(100vw - 24px));background:#fff;border-radius:14px;box-shadow:var(--shadow-3);overflow:hidden}.palette-backdrop{position:absolute;inset:0;background:rgba(7,20,25,.18);backdrop-filter:blur(3px)}.palette-search{height:54px;border-bottom:1px solid var(--silver-150);display:flex;align-items:center;gap:9px;padding:0 14px}.palette-search span{width:17px;height:17px;color:var(--ink-400)}.palette-search input{border:0;outline:0;width:100%;font-size:15px}.palette-results{padding:7px;max-height:430px;overflow:auto}.palette-section{font-size:13px;color:var(--ink-400);font-weight:850;letter-spacing:.1em;padding:8px 8px 4px}.palette-item{width:100%;height:40px;border:0;background:transparent;border-radius:8px;display:flex;align-items:center;gap:9px;padding:0 9px;text-align:left;color:var(--ink-800)}.palette-item:hover{background:var(--brand-50)}.palette-item>span{width:16px;height:16px;color:var(--brand-700)}.palette-item strong{font-size:14px}.palette-item small{margin-left:auto;font-size:13px;color:var(--ink-400)}
.sync-summary{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:14px}.sync-summary div{background:var(--silver-50);border-radius:8px;padding:9px}.sync-summary span,.sync-summary strong{display:block}.sync-summary span{font-size:13px;color:var(--ink-400)}.sync-summary strong{font-size:15px;margin-top:3px}.offline-queue-list{padding:0 14px}.queue-item{display:flex;align-items:center;gap:8px;border-top:1px solid var(--silver-150);padding:10px 2px}.queue-item>i{width:7px;height:7px;border-radius:50%;background:var(--amber)}.queue-item.synced>i{background:var(--green)}.queue-item>div{flex:1}.queue-item strong,.queue-item small{display:block}.queue-item strong{font-size:14px}.queue-item small{font-size:13px;color:var(--ink-400);margin-top:2px}.queue-item em{font-style:normal;font-size:13px;color:var(--ink-400)}.offline-panel-actions{display:flex;justify-content:flex-end;gap:7px;padding:14px}
.lifecycle-block{margin-top:13px}.lifecycle-block h3{font-size:16px;margin:0 0 8px}.event-list{display:flex;flex-direction:column}.event-list>div{display:grid;grid-template-columns:auto 1fr auto;gap:8px;padding:9px 1px;border-top:1px solid var(--silver-150)}.event-list i{width:8px;height:8px;border-radius:50%;background:var(--brand-500);margin-top:3px}.event-list strong,.event-list small{display:block}.event-list strong{font-size:14px}.event-list small{font-size:13px;color:var(--ink-400);margin-top:2px}.event-list em{font-style:normal;font-size:13px;color:var(--ink-400)}
.document-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.document-card{border:1px solid var(--silver-200);border-radius:8px;padding:9px;display:flex;align-items:center;gap:8px}.document-card>span{width:20px;height:20px;color:var(--brand-700)}.document-card strong,.document-card small{display:block}.document-card strong{font-size:14px}.document-card small{font-size:13px;color:var(--ink-400);margin-top:2px}
@media(max-width:1180px){.offline-dock{left:96px}}
@media(max-width:820px){.offline-dock{left:12px;bottom:12px}.live-camera{height:310px}}
@media(max-width:520px){.import-preview .import-stats{grid-template-columns:1fr 1fr}.document-grid{grid-template-columns:1fr}.live-camera{height:250px}}

/* V4 — Explainable Asset Control Risk Engine */
.risk-workbench-card{margin-top:0}
.risk-asset-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.risk-asset-card{border:1px solid var(--silver-200);background:var(--silver-50);border-radius:10px;padding:11px;text-align:left;color:var(--ink-900)}
.risk-asset-card:hover{border-color:var(--brand-300);background:#fff;box-shadow:var(--shadow-2)}
.risk-asset-head{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.risk-asset-head strong{font-size:15px}.risk-asset-head small{display:block;font-size:13px;color:var(--ink-400);margin-top:2px}
.risk-score-pill{min-width:42px;height:28px;border-radius:8px;display:grid;place-items:center;font-size:15px;font-weight:900}
.risk-score-pill.low{background:var(--green-soft);color:var(--green)}.risk-score-pill.moderate{background:var(--brand-50);color:var(--brand-800)}.risk-score-pill.high{background:var(--amber-soft);color:var(--amber)}.risk-score-pill.critical{background:var(--red-soft);color:var(--red)}
.risk-reasons{display:flex;flex-direction:column;gap:4px;margin-top:10px}.risk-reasons span{font-size:13px;color:var(--ink-600);display:flex;align-items:center;gap:5px}.risk-reasons span:before{content:"";width:5px;height:5px;border-radius:50%;background:var(--amber);flex:0 0 auto}
.risk-reasons span.good:before{background:var(--green)}
.risk-next{margin-top:9px;padding-top:8px;border-top:1px solid var(--silver-200);font-size:13px;color:var(--brand-800);font-weight:750}
.risk-legend{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-400);margin-left:auto;margin-right:6px}.risk-legend span{display:flex;align-items:center;gap:4px}.risk-dot{width:6px;height:6px;border-radius:50%}.risk-dot.low{background:var(--green)}.risk-dot.moderate{background:var(--brand-500)}.risk-dot.high{background:var(--amber)}.risk-dot.critical{background:var(--red)}
.control-risk-cell{display:flex;align-items:center;gap:6px}.control-risk-cell .risk-label{font-size:13px;color:var(--ink-400)}
.risk-overview{display:grid;grid-template-columns:150px 1fr;gap:13px;align-items:start}.risk-gauge{border:1px solid var(--silver-200);background:var(--silver-50);border-radius:12px;padding:14px;text-align:center}.risk-gauge strong{font-size:38px;display:block;letter-spacing:-.04em}.risk-gauge span{font-size:13px;color:var(--ink-400);text-transform:uppercase;letter-spacing:.08em}.risk-gauge.low strong{color:var(--green)}.risk-gauge.moderate strong{color:var(--brand-700)}.risk-gauge.high strong{color:var(--amber)}.risk-gauge.critical strong{color:var(--red)}
.risk-explainer{border:1px solid var(--silver-200);border-radius:12px;overflow:hidden}.risk-explainer-head{padding:11px 12px;background:var(--silver-50);border-bottom:1px solid var(--silver-200);display:flex;justify-content:space-between;gap:10px}.risk-explainer-head strong{font-size:15px}.risk-explainer-head small{font-size:13px;color:var(--ink-400)}
.risk-factor{display:grid;grid-template-columns:140px 1fr 36px;align-items:center;gap:8px;padding:8px 12px;border-top:1px solid var(--silver-150)}.risk-factor:first-of-type{border-top:0}.risk-factor>span{font-size:14px}.risk-factor .factor-bar{height:6px;background:var(--silver-150);border-radius:99px;overflow:hidden}.risk-factor .factor-bar i{display:block;height:100%;border-radius:99px;background:var(--brand-500)}.risk-factor .factor-bar i.good{background:var(--green)}.risk-factor .factor-bar i.warn{background:var(--amber)}.risk-factor .factor-bar i.bad{background:var(--red)}.risk-factor b{text-align:right;font-size:14px}
.risk-findings{margin-top:12px}.risk-findings h3{font-size:15px;margin:0 0 7px}.risk-finding{display:flex;gap:8px;align-items:flex-start;border:1px solid var(--silver-200);border-radius:9px;padding:9px;margin-top:6px}.risk-finding i{width:8px;height:8px;border-radius:50%;margin-top:2px;background:var(--amber);flex:0 0 auto}.risk-finding.critical i{background:var(--red)}.risk-finding.good i{background:var(--green)}.risk-finding strong,.risk-finding small{display:block}.risk-finding strong{font-size:14px}.risk-finding small{font-size:13px;color:var(--ink-400);line-height:1.4;margin-top:2px}
.risk-recommendation{margin-top:12px;border:1px solid var(--brand-100);background:var(--brand-50);border-radius:10px;padding:11px;display:flex;gap:9px;align-items:flex-start}.risk-recommendation>span{width:18px;height:18px;color:var(--brand-700)}.risk-recommendation strong,.risk-recommendation small{display:block}.risk-recommendation strong{font-size:14px}.risk-recommendation small{font-size:13px;color:var(--ink-600);line-height:1.45;margin-top:2px}
.risk-band-summary{display:flex;gap:6px;margin-top:10px}.risk-band-summary div{flex:1;background:var(--silver-50);border-radius:7px;padding:7px}.risk-band-summary span,.risk-band-summary strong{display:block}.risk-band-summary span{font-size:12px;color:var(--ink-400)}.risk-band-summary strong{font-size:16px;margin-top:2px}
@media(max-width:1180px){.risk-asset-grid{grid-template-columns:1fr 1fr}.risk-overview{grid-template-columns:1fr}.risk-legend{display:none}}
@media(max-width:620px){.risk-asset-grid{grid-template-columns:1fr}.risk-factor{grid-template-columns:110px 1fr 32px}}

/* V5 — "11/10" refinement layer */
:root{
  --ease-out:cubic-bezier(.16,1,.3,1);
  --ease-spring:cubic-bezier(.2,.9,.2,1.15);
}
::selection{background:var(--brand-200);color:var(--ink-950)}
.skip-link{position:fixed;left:12px;top:-50px;z-index:999;background:var(--ink-950);color:#fff;padding:9px 12px;border-radius:8px;font-size:15px;text-decoration:none;transition:top .2s}.skip-link:focus{top:12px}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.view.active{animation:viewIn .34s var(--ease-out)}
@keyframes viewIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
.card,.signal-card,.table-card,.approval-panel,.approval-rail,.assurance-score,.assurance-breakdown{transition:border-color .2s,box-shadow .25s var(--ease-out),transform .25s var(--ease-out)}
.card:hover{border-color:#d5e3e7}
.button,.nav-item,.tool-button,.view-tabs button,.report-card,.risk-asset-card{transition:background .18s,border-color .18s,color .18s,box-shadow .22s var(--ease-out),transform .16s var(--ease-out)}
.button:active,.tool-button:active,.view-tabs button:active{transform:translateY(1px)}
.global-bar{box-shadow:0 1px 0 rgba(255,255,255,.7)}
.sidebar{box-shadow:4px 0 24px rgba(10,28,34,.015)}
.brand-lockup img{box-shadow:0 6px 16px rgba(8,184,198,.12)}
.primary-nav .nav-item.active:after{content:"";position:absolute;right:-14px;width:2px;height:20px;background:var(--brand-500);border-radius:2px}
.primary-nav .nav-item{position:relative}
.hero-row h1,.page-heading h1{font-weight:760;text-wrap:balance}
.hero-sub,.page-heading p{text-wrap:pretty}
.executive-ribbon{display:grid;grid-template-columns:1fr 1fr 1.35fr 1.35fr;gap:8px;margin-bottom:10px}
.ribbon-metric,.trend-viz{background:#fff;border:1px solid var(--silver-200);border-radius:10px;padding:11px;box-shadow:var(--shadow-1)}
.ribbon-metric span,.ribbon-metric strong,.ribbon-metric small{display:block}.ribbon-metric span{font-size:13px;color:var(--ink-400);text-transform:uppercase;letter-spacing:.06em}.ribbon-metric strong{font-size:22px;margin:4px 0}.ribbon-metric small{font-size:13px;color:var(--ink-500)}.ribbon-metric i{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:3px}.ribbon-metric i.up{background:var(--brand-500)}.ribbon-metric i.down{background:var(--green)}
.trend-head{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--ink-400)}.trend-head strong{font-size:16px;color:var(--ink-900)}.trend-viz svg{width:100%;height:42px;margin-top:3px}
.control-matrix{display:flex;flex-direction:column}.matrix-head,.matrix-row{display:grid;grid-template-columns:1.3fr repeat(5,1fr);gap:7px;align-items:center}.matrix-head{font-size:13px;color:var(--ink-400);text-transform:uppercase;letter-spacing:.06em;padding:0 3px 7px}.matrix-row{padding:7px 3px;border-top:1px solid var(--silver-150)}.matrix-row strong{font-size:14px}.matrix-row i{font-style:normal;height:28px;border-radius:7px;display:grid;place-items:center;font-size:14px;font-weight:850}.m-good{background:var(--green-soft);color:var(--green)}.m-warn{background:var(--amber-soft);color:var(--amber)}.m-bad{background:var(--red-soft);color:var(--red)}
.field-modebar{display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid var(--silver-200);background:#fff;border-radius:10px;padding:8px 10px;margin-bottom:9px}.field-mode-label{display:flex;align-items:center;gap:6px}.field-mode-label strong{font-size:14px}.field-mode-label small{font-size:13px;color:var(--ink-400)}.pulse-dot{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 3px var(--green-soft);animation:pulse 2s infinite}@keyframes pulse{50%{box-shadow:0 0 0 6px rgba(24,122,91,0)}}.field-mode-actions{display:flex;gap:5px}.field-mode-actions button{height:28px;border:1px solid var(--silver-200);background:#fff;border-radius:7px;padding:0 8px;font-size:13px;color:var(--ink-600)}.field-mode-actions button.active{background:var(--ink-900);color:#fff;border-color:var(--ink-900)}
.route-map-card{overflow:hidden}.mini-map{height:175px;position:relative;background:linear-gradient(45deg,#f6f9fa 25%,transparent 25%),linear-gradient(-45deg,#f6f9fa 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#f6f9fa 75%),linear-gradient(-45deg,transparent 75%,#f6f9fa 75%);background-size:22px 22px;background-position:0 0,0 11px,11px -11px,-11px 0;border:1px solid var(--silver-200);border-radius:9px;overflow:hidden}.mini-map:before,.mini-map:after{content:"";position:absolute;background:#fff;border:1px solid var(--silver-200);border-radius:5px}.mini-map:before{left:18px;top:22px;width:80px;height:45px;box-shadow:120px 50px 0 -1px #fff,120px 50px 0 0 var(--silver-200)}.mini-map:after{right:22px;top:20px;width:62px;height:34px}.map-route{position:absolute;left:62px;top:69px;width:130px;height:55px;border-left:3px solid var(--brand-400);border-bottom:3px solid var(--brand-400);border-radius:0 0 0 32px;transform:rotate(-9deg);opacity:.75}.map-pin{position:absolute;width:22px;height:22px;border-radius:50% 50% 50% 0;background:var(--brand-600);color:#fff;display:grid;place-items:center;font-size:13px;font-weight:850;transform:rotate(-45deg);box-shadow:0 4px 10px rgba(0,154,170,.2)}.map-pin::first-letter{transform:rotate(45deg)}.map-pin.p1{left:47px;top:49px}.map-pin.p2{left:123px;top:102px}.map-pin.p3{right:55px;top:77px}.map-user{position:absolute;left:102px;top:78px;width:13px;height:13px;border:3px solid #fff;background:var(--ink-900);border-radius:50%;box-shadow:0 0 0 2px rgba(17,37,45,.16)}.map-footer{display:flex;justify-content:space-between;font-size:13px;color:var(--ink-400);padding-top:7px}.map-footer strong{color:var(--ink-800)}
.asset-answer-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;padding:0 20px 12px}.asset-answer-strip>div{border:1px solid var(--silver-200);background:var(--silver-50);border-radius:8px;padding:8px;min-height:53px}.asset-answer-strip span,.asset-answer-strip strong{display:block}.asset-answer-strip span{font-size:12px;color:var(--ink-400);text-transform:uppercase;letter-spacing:.06em}.asset-answer-strip strong{font-size:14px;line-height:1.35;margin-top:3px}.asset-answer-strip>div:last-child{background:var(--brand-50);border-color:var(--brand-100)}
.page-loader{padding:26px 28px}.skeleton{background:linear-gradient(90deg,#edf2f4 25%,#f8fafb 50%,#edf2f4 75%);background-size:200% 100%;animation:shimmer 1.25s linear infinite;border-radius:8px}@keyframes shimmer{to{background-position:-200% 0}}.sk-title{width:270px;height:27px}.sk-sub{width:430px;max-width:80%;height:10px;margin-top:10px}.skeleton-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:22px}.skeleton-grid .skeleton{height:120px}
.asset-empty{padding:55px 20px;text-align:center}.asset-empty>span{display:block;width:40px;height:40px;margin:0 auto 10px;color:var(--ink-400)}.asset-empty strong{display:block;font-size:16px}.asset-empty p{font-size:14px;color:var(--ink-400);margin:4px 0 12px}
.mobile-bottom-nav{display:none}
body.compact-mode .card{padding:13px}body.compact-mode .asset-table td{padding:8px 10px}body.compact-mode .signal-card{padding:11px 12px}body.compact-mode .global-bar{height:58px}body.compact-mode .view{padding-top:20px}
body.high-contrast{--ink-950:#000;--ink-900:#071014;--ink-800:#10252d;--ink-700:#213b44;--ink-500:#425d66;--silver-50:#fff;--silver-100:#f4f7f8;--silver-150:#e5ecef;--silver-200:#c9d5da;--brand-500:#009bad;--brand-600:#007f8f;--brand-700:#006775}
body.high-contrast .button.primary{background:#007d8e}body.high-contrast .asset-table th{color:#354d56}body.high-contrast .section-kicker{color:#455d66}
body.batch-mode .confirm-grid{grid-template-columns:repeat(5,1fr)}body.batch-mode .field-form .wide{display:none}body.batch-mode .field-form{grid-template-columns:1fr 1fr}body.batch-mode #verifyNextBtn{min-width:170px}
@media(max-width:1180px){.executive-ribbon{grid-template-columns:1fr 1fr}.asset-answer-strip{grid-template-columns:repeat(2,1fr)}}
@media(max-width:820px){
  body{padding-bottom:66px}
  .sidebar{display:none}.global-bar{top:0}.view{padding-bottom:86px}.offline-dock{bottom:75px}
  .mobile-bottom-nav{position:fixed;left:0;right:0;bottom:0;height:64px;z-index:80;background:rgba(255,255,255,.96);backdrop-filter:blur(16px);border-top:1px solid var(--silver-200);display:grid;grid-template-columns:repeat(5,1fr);padding:4px 8px max(4px,env(safe-area-inset-bottom))}
  .mobile-bottom-nav button{border:0;background:transparent;color:var(--ink-500);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:13px}.mobile-bottom-nav button>span{width:18px;height:18px}.mobile-bottom-nav .mobile-scan{width:54px;height:54px;margin:-17px auto 0;border-radius:50%;background:linear-gradient(180deg,var(--brand-500),var(--brand-700));color:#fff;box-shadow:0 10px 25px rgba(8,184,198,.28);border:4px solid #fff}.mobile-bottom-nav .mobile-scan small{display:none}.mobile-bottom-nav .mobile-scan>span{width:21px;height:21px}
  .field-modebar{align-items:flex-start;flex-direction:column}.field-mode-actions{width:100%;overflow:auto}.field-mode-actions button{min-height:38px;white-space:nowrap}.scanner-shell{min-height:440px}.button.large{min-height:48px}.confirm-tile{min-height:56px}.route-map-card{display:block}.executive-ribbon{grid-template-columns:1fr 1fr}.asset-answer-strip{grid-template-columns:1fr 1fr;padding:0 12px 10px}.drawer-head,.drawer-tabs,.drawer-content{padding-left:12px;padding-right:12px}.drawer-tabs{padding-left:12px}
}
@media(max-width:520px){.executive-ribbon{grid-template-columns:1fr}.control-matrix{overflow:auto}.matrix-head,.matrix-row{min-width:620px}.skeleton-grid{grid-template-columns:1fr 1fr}.asset-answer-strip{grid-template-columns:1fr 1fr}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}}

/* V6 — AssetVault Native GIS */
.gis-status-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:10px}.gis-status-strip>div{background:#fff;border:1px solid var(--silver-200);border-radius:10px;padding:10px}.gis-status-strip span,.gis-status-strip strong,.gis-status-strip small{display:block}.gis-status-strip span{font-size:12px;color:var(--ink-400);text-transform:uppercase;letter-spacing:.07em}.gis-status-strip strong{font-size:15px;margin:3px 0}.gis-status-strip small{font-size:13px;color:var(--ink-400)}
.gis-layout{display:grid;grid-template-columns:minmax(0,1fr) 315px;gap:10px}.gis-map-card{background:#fff;border:1px solid var(--silver-200);border-radius:var(--radius-2);overflow:hidden;box-shadow:var(--shadow-1)}.gis-toolbar{height:51px;display:flex;align-items:center;gap:10px;padding:0 11px;border-bottom:1px solid var(--silver-150)}.gis-search{display:flex;align-items:center;gap:7px;flex:1}.gis-search>span{width:15px;height:15px;color:var(--ink-400)}.gis-search input{width:100%;border:0;outline:0;background:transparent;font-size:15px}.gis-map-actions{display:flex;gap:4px}.gis-map-actions button{height:29px;border:1px solid var(--silver-200);background:#fff;border-radius:7px;padding:0 8px;font-size:13px;color:var(--ink-600)}.gis-map-actions button.active{background:var(--ink-900);border-color:var(--ink-900);color:#fff}
.native-map{height:610px;position:relative;overflow:hidden;background:radial-gradient(circle at 60% 40%,#fff 0,#f6fafb 55%,#eef4f6 100%)}.native-map:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(23,52,61,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(23,52,61,.035) 1px,transparent 1px);background-size:32px 32px}.sa-map-preview{position:absolute;inset:25px 30px 34px;width:calc(100% - 60px);height:calc(100% - 59px)}.sa-country-shape{fill:url(#landFill);stroke:#87cdd3;stroke-width:2.2;filter:url(#softShadow)}.lesotho-shape{fill:#fff;stroke:#b6c9ce;stroke-width:1.5}.province-lines path{fill:none;stroke:#bfd4d8;stroke-width:1.15;stroke-dasharray:4 4}
.gis-marker{cursor:pointer;transition:transform .15s var(--ease-out)}.gis-marker:hover{transform:scale(1.15)}.gis-marker circle.outer{fill:#fff;stroke-width:3}.gis-marker.low circle.outer{stroke:var(--green)}.gis-marker.moderate circle.outer{stroke:var(--brand-500)}.gis-marker.high circle.outer{stroke:var(--amber)}.gis-marker.critical circle.outer{stroke:var(--red)}.gis-marker circle.inner{fill:var(--ink-900)}
.map-scale{position:absolute;left:13px;bottom:14px;border-bottom:2px solid var(--ink-700);width:60px;padding-bottom:2px;font-size:12px;color:var(--ink-500)}.map-attribution{position:absolute;right:12px;bottom:8px;font-size:12px;color:var(--ink-400);background:rgba(255,255,255,.8);padding:3px 5px;border-radius:4px}.map-coordinates{position:absolute;left:12px;top:12px;background:rgba(255,255,255,.9);border:1px solid var(--silver-200);border-radius:7px;padding:5px 7px;font-size:13px;color:var(--ink-500)}
.gis-side{display:flex;flex-direction:column;gap:10px}.spatial-kpis{display:grid;grid-template-columns:1fr 1fr;gap:7px}.spatial-kpis div{background:var(--silver-50);border-radius:8px;padding:9px}.spatial-kpis strong,.spatial-kpis span{display:block}.spatial-kpis strong{font-size:17px}.spatial-kpis span{font-size:13px;color:var(--ink-400);margin-top:2px}
.layer-list{display:flex;flex-direction:column}.layer-list label{display:flex;align-items:center;gap:8px;padding:8px 1px;border-top:1px solid var(--silver-150)}.layer-list label:first-child{border-top:0}.layer-list strong,.layer-list small{display:block}.layer-list strong{font-size:14px}.layer-list small{font-size:13px;color:var(--ink-400);margin-top:2px}
.coord-inspector{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:9px}.coord-inspector div{background:var(--silver-50);border-radius:8px;padding:8px}.coord-inspector span,.coord-inspector strong{display:block}.coord-inspector span{font-size:12px;color:var(--ink-400);text-transform:uppercase}.coord-inspector strong{font-size:15px;margin-top:3px}
.asset-mini-map{height:310px;border:1px solid var(--silver-200);border-radius:10px;background:radial-gradient(circle at 60% 40%,#fff,#eef6f7);position:relative;overflow:hidden}.asset-mini-map:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(20,53,61,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(20,53,61,.045) 1px,transparent 1px);background-size:26px 26px}.asset-map-pin{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:34px;height:34px;border-radius:50% 50% 50% 0;background:var(--brand-600);border:4px solid #fff;box-shadow:0 8px 24px rgba(0,154,170,.25);rotate:-45deg}.asset-map-radius{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:130px;height:130px;border-radius:50%;background:rgba(8,184,198,.08);border:1px solid rgba(8,184,198,.22)}.asset-map-label{position:absolute;left:50%;top:calc(50% + 55px);transform:translateX(-50%);background:#fff;border:1px solid var(--silver-200);border-radius:7px;padding:6px 8px;text-align:center;box-shadow:var(--shadow-2)}.asset-map-label strong,.asset-map-label small{display:block}.asset-map-label strong{font-size:14px}.asset-map-label small{font-size:13px;color:var(--ink-400);margin-top:2px}
@media(max-width:1180px){.gis-layout{grid-template-columns:1fr}.gis-side{display:grid;grid-template-columns:repeat(3,1fr)}.gis-status-strip{grid-template-columns:repeat(3,1fr)}}
@media(max-width:820px){.native-map{height:520px}.gis-side{grid-template-columns:1fr}.gis-status-strip{grid-template-columns:1fr 1fr}.gis-toolbar{height:auto;align-items:stretch;flex-direction:column;padding:9px}.gis-search{min-height:38px}.gis-map-actions{overflow:auto}.gis-map-actions button{min-height:36px}.sa-map-preview{inset:15px 10px 35px;width:calc(100% - 20px);height:calc(100% - 50px)}}
@media(max-width:520px){.gis-status-strip{grid-template-columns:1fr}.native-map{height:440px}.map-attribution{max-width:190px;text-align:right}}
/* Portable QA: optional compact register column mode */
.asset-table.compact-columns th:nth-child(7), .asset-table.compact-columns td:nth-child(7),
.asset-table.compact-columns th:nth-child(8), .asset-table.compact-columns td:nth-child(8){display:none}

/* Real South Africa GIS map */
.native-map:before{display:none}
.sa-interactive-map{position:absolute;inset:0;background:#eef3f4}
.sa-interactive-map .maplibregl-canvas{outline:none}
.sa-interactive-map .maplibregl-ctrl-top-right{top:10px;right:10px}
.sa-interactive-map .maplibregl-ctrl-group{border:1px solid var(--silver-200);border-radius:9px;box-shadow:0 5px 18px rgba(21,47,55,.10);overflow:hidden}
.sa-interactive-map .maplibregl-ctrl-group button{width:32px;height:32px}
.sa-interactive-map .maplibregl-popup-content{border-radius:10px;padding:10px 12px;box-shadow:0 10px 30px rgba(19,42,49,.16);font-size:15px;color:var(--ink-800)}
.sa-interactive-map .maplibregl-popup-content strong{font-size:16px;display:block;margin-bottom:3px}
.sa-interactive-map .maplibregl-popup-content small{color:var(--ink-400)}
.map-loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:linear-gradient(180deg,#f7fafb,#edf4f5);z-index:3;pointer-events:none;transition:opacity .2s ease}
.map-loading.hidden{opacity:0;visibility:hidden}
.map-loading.error{background:#fff5f3;color:#8f241c}
.map-loading span{width:24px;height:24px;border:2px solid #c9dadd;border-top-color:#17343d;border-radius:50%;animation:av-map-spin .8s linear infinite}
.map-loading.error span{display:none}
.map-loading strong{font-size:15px;color:var(--ink-700)}
.map-loading small{font-size:14px;color:var(--ink-400);max-width:280px;text-align:center}
@keyframes av-map-spin{to{transform:rotate(360deg)}}
.map-search-marker{width:18px;height:18px;border-radius:50%;border:4px solid rgba(255,255,255,.95);background:#17343d;box-shadow:0 2px 10px rgba(23,52,61,.35)}
.map-attribution{z-index:4;pointer-events:none}
.map-coordinates{z-index:4;pointer-events:none}
.map-scale{z-index:4;pointer-events:none;width:auto;border:0;background:rgba(255,255,255,.88);padding:4px 6px;border-radius:5px}
@media(max-width:820px){.sa-interactive-map .maplibregl-ctrl-group button{width:38px;height:38px}}


/* AssetVault Native Slippy Map — no external renderer dependency */
.sa-interactive-map{position:absolute;inset:0;overflow:hidden;background:#eaf1f2;touch-action:none;cursor:grab;user-select:none}
.sa-interactive-map.dragging{cursor:grabbing}
.av-map-tiles,.av-map-overlays,.av-map-labels{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.av-map-tile{position:absolute;width:256px;height:256px;max-width:none;pointer-events:none;background:#eaf1f2}
.av-map-tile.failed{opacity:.2}
.av-map-overlays,.av-map-labels{z-index:3}
.av-map-marker{pointer-events:auto;position:absolute;transform:translate(-50%,-50%);width:16px;height:16px;border:3px solid #fff;border-radius:50%;background:#17343d;box-shadow:0 2px 8px rgba(14,43,52,.35);padding:0;min-width:0;min-height:0}
.av-map-marker.low{background:#3d7662}.av-map-marker.moderate{background:#b88922}.av-map-marker.high{background:#c1621b}.av-map-marker.critical{background:#9f2d25}.av-map-marker.review{background:#6d7f85}
.av-map-marker.selected{width:19px;height:19px;background:#08a9b8;box-shadow:0 0 0 5px rgba(8,169,184,.16)}
.av-map-label{pointer-events:auto;position:absolute;transform:translate(6px,-50%);border:0;background:rgba(255,255,255,.84);color:#294750;border-radius:4px;padding:2px 4px;font-size:13px;font-weight:750;line-height:1.1;white-space:nowrap;box-shadow:0 1px 3px rgba(25,52,61,.08);min-width:0;min-height:0}
.av-map-controls{position:absolute;right:12px;top:12px;z-index:6;display:flex;flex-direction:column;border:1px solid var(--silver-200);border-radius:9px;overflow:hidden;box-shadow:0 5px 18px rgba(21,47,55,.10)}
.av-map-controls button{width:38px;height:38px;border:0;border-bottom:1px solid var(--silver-200);background:rgba(255,255,255,.96);color:var(--ink-800);font-size:22px;font-weight:800;line-height:1}.av-map-controls button:last-child{border-bottom:0;font-size:19px}.av-map-controls button:active{background:var(--brand-50)}
.av-map-popup{position:absolute;z-index:7;max-width:240px;background:#fff;border:1px solid var(--silver-200);border-radius:9px;padding:9px;box-shadow:0 10px 30px rgba(19,42,49,.16);font-size:14px}.av-map-popup.hidden{display:none}
.map-loading{z-index:8}.map-attribution,.map-coordinates,.map-scale{z-index:5}
@media(max-width:820px){.av-map-controls button{width:44px;height:44px}.av-map-marker{width:19px;height:19px}.av-map-label{font-size:14px}.map-coordinates{display:none}}

/* Satellite / hybrid verification basemap */
.gis-toolbar-groups{display:flex;align-items:center;gap:8px}.gis-basemap-actions{display:flex;gap:4px;padding-right:8px;border-right:1px solid var(--silver-200)}.gis-basemap-actions button{height:29px;border:1px solid var(--silver-200);background:#fff;border-radius:7px;padding:0 8px;font-size:13px;color:var(--ink-600);white-space:nowrap}.gis-basemap-actions button.active{background:#0c7f89;border-color:#0c7f89;color:#fff}.av-map-imagery{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0;background:#dbe4e6}.av-map-imagery-tile{position:absolute;width:256px;height:256px;max-width:none;object-fit:cover;pointer-events:none;background:#dfe7e9}.av-map-imagery-tile.failed{opacity:.18}.av-map-tiles{z-index:1}.av-map-tiles.satellite-only{display:none}.av-map-imagery.hidden{display:none}.map-attribution{max-width:min(72%,560px);line-height:1.3}.gis-imagery-note{font-size:13px;color:var(--ink-400)}
@media(max-width:820px){.gis-toolbar-groups{width:100%;align-items:stretch;flex-direction:column}.gis-basemap-actions{width:100%;border-right:0;border-bottom:1px solid var(--silver-200);padding:0 0 6px;overflow:auto}.gis-basemap-actions button{min-height:36px;flex:1}.gis-map-actions{width:100%}}