/* Aiguille site reports - shared look for the console and the tablet page */
/* ui-tokens:start (generated by scripts/ui_assets.py - edit shared/ui) */
/* Aiguille Security design tokens: one source for every application (scripts/ui_assets.py copies this block into each one).
   Navy and restrained gold on neutrals. Status always has words as well as colour. System fonts only: no external font service. */
:root{
  --ui-navy-900:#0b1830; --ui-navy-800:#0e1e3a; --ui-navy-700:#16294c; --ui-navy-600:#1d3461; --ui-navy-500:#2b4a80;
  --ui-gold-600:#a9842a; --ui-gold-500:#c9a23f; --ui-gold-400:#d9b95f; --ui-gold-100:#f6efd9; --ui-on-gold:#17120a;
  --ui-grey-50:#f5f7fa; --ui-grey-100:#eceff4; --ui-grey-200:#dde2ea; --ui-grey-300:#c6cdd8; --ui-grey-500:#68727f; --ui-grey-600:#525c69; --ui-grey-800:#262f3b; --ui-grey-900:#161c26;
  --ui-ok:#1f7a4d; --ui-ok-bg:#e3f3ea; --ui-warn:#955800; --ui-warn-bg:#fdf0d8; --ui-bad:#b3261e; --ui-bad-bg:#fbe6e4; --ui-info:#1d5fa8; --ui-info-bg:#e4eefa;
  --ui-dark-bg:#0a1426; --ui-dark-surface:#111e36; --ui-dark-surface-2:#182845; --ui-dark-raise:#20345a; --ui-dark-line:#2a3d62; --ui-dark-line-2:#3a5080;
  --ui-dark-ink:#eaf0f8; --ui-dark-ink-2:#c6d1e2; --ui-dark-dim:#9aa9c0; --ui-dark-ok:#4cc38a; --ui-dark-warn:#e8b04a; --ui-dark-bad:#f0776c; --ui-dark-info:#6aaaf5;
  --ui-font:"Segoe UI Variable Text","Segoe UI",system-ui,-apple-system,BlinkMacSystemFont,Roboto,"Helvetica Neue",Arial,sans-serif;
  --ui-mono:ui-monospace,"Cascadia Mono",Consolas,"SFMono-Regular",Menlo,monospace;
  --ui-r:10px; --ui-r-sm:7px; --ui-r-lg:14px;
  --ui-shadow:0 1px 2px rgba(11,24,48,.06),0 3px 10px rgba(11,24,48,.07); --ui-shadow-lg:0 12px 32px rgba(11,24,48,.22),0 2px 6px rgba(11,24,48,.10);
  --ui-ring:0 0 0 3px rgba(201,162,63,.45);
  --ui-touch:44px;
}
:focus-visible,input[type=date]:focus-within,input[type=datetime-local]:focus-within,input[type=month]:focus-within,input[type=time]:focus-within{outline:3px solid var(--ui-gold-500);outline-offset:1px;box-shadow:0 0 0 1px var(--ui-navy-800)}
input[type=checkbox],input[type=radio]{min-width:24px;min-height:24px}
@media(pointer:coarse){input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),select,textarea,summary,button{min-height:var(--ui-touch)}}
.ic{width:1.2em;height:1.2em;flex:none;display:inline-block;vertical-align:-.22em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ic-lg{width:30px;height:30px;vertical-align:middle}
.ic-fill{fill:currentColor}
.ui-sr{position:absolute!important;left:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
/* ui-tokens:end */
:root{--navy:#0f2a44;--navy2:#173b5e;--gold:#f2b705;--bg:#eef1f4;--card:#fff;--ink:#14202b;--mute:#5d6b78;--line:#d5dbe1;
  --green:#1d8a3b;--amber:#c98a00;--red:#c62828;--blue:#1f5f99;--l1:#e3f1e6;--l2:#fff1cc;--l3:#fde0e0;--shadow:0 1px 3px rgba(0,0,0,.12)}
[data-theme="night"]{--bg:#0d1620;--card:#15222f;--ink:#e8edf2;--mute:#9aa9b7;--line:#2a3a4a;--l1:#123821;--l2:#3d3108;--l3:#4a1515;
  --shadow:0 1px 3px rgba(0,0,0,.5)}
*{box-sizing:border-box}html,body{margin:0;height:100%}
body{font:15px/1.45 "Segoe UI",Roboto,Arial,sans-serif;background:var(--bg);color:var(--ink);-webkit-text-size-adjust:100%}
a{color:var(--blue)}button,input,select,textarea{font:inherit;color:inherit}
input,select,textarea{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:8px 10px;width:100%;min-height:40px}
textarea{min-height:90px;resize:vertical}input:focus,select:focus,textarea:focus{outline:2px solid var(--gold);border-color:var(--gold)}
label{display:block;font-size:13px;color:var(--mute);margin:8px 0 3px}label.chk{display:flex;gap:8px;align-items:center;color:var(--ink);font-size:15px}
label.chk input{width:22px;min-height:22px;height:22px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;border-radius:8px;padding:9px 14px;min-height:40px;
  background:var(--navy);color:#fff;font-weight:600;cursor:pointer;text-decoration:none;white-space:nowrap}
.btn:hover{filter:brightness(1.12)}.btn:disabled{opacity:.45;cursor:not-allowed}
.btn.gold{background:var(--gold);color:#111}.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}
.btn.red{background:var(--red)}.btn.green{background:var(--green)}.btn.sm{padding:5px 10px;min-height:32px;font-size:13px}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.grow{flex:1 1 12em}.right{margin-left:auto}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
@media(max-width:700px){.grid2,.grid3{grid-template-columns:1fr}}
.card{background:var(--card);border-radius:12px;box-shadow:var(--shadow);padding:14px;margin-bottom:12px}
.card h3{margin:0 0 8px;font-size:16px}.muted{color:var(--mute)}.small{font-size:13px}.tiny{font-size:12px}
.pill{display:inline-block;padding:1px 8px;border-radius:10px;font-size:12px;font-weight:700;white-space:nowrap}
.l1{background:var(--l1);color:#1b6b31}.l2{background:var(--l2);color:#7a5200}.l3{background:var(--l3);color:#a01515}
[data-theme="night"] .l1{color:#8fe0a5}[data-theme="night"] .l2{color:#ffd76a}[data-theme="night"] .l3{color:#ff9a9a}
.dot{display:inline-block;width:12px;height:12px;border-radius:50%;vertical-align:middle}
.dot.green{background:var(--green)}.dot.amber{background:var(--amber)}.dot.red{background:var(--red);box-shadow:0 0 0 4px rgba(198,40,40,.18)}
.ok{color:var(--green);font-weight:600}.bad{color:var(--red);font-weight:700}.warn{color:var(--amber);font-weight:600}
table.t{border-collapse:collapse;width:100%;font-size:14px}table.t th,table.t td{border-bottom:1px solid var(--line);padding:7px 8px;text-align:left;vertical-align:top}
table.t th{font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--mute);background:var(--bg);position:sticky;top:0}
table.t tr.click{cursor:pointer}table.t tr.click:hover td{background:rgba(242,183,5,.10)}
table.t tr.struck td{text-decoration:line-through;color:var(--mute)}
.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);background:var(--navy);color:#fff;padding:12px 18px;border-radius:10px;
  box-shadow:0 4px 18px rgba(0,0,0,.3);z-index:99;max-width:92vw;font-weight:600}.toast.bad{background:var(--red)}
.modal-bg{position:fixed;inset:0;background:rgba(5,15,25,.55);display:flex;align-items:flex-start;justify-content:center;z-index:50;
  padding:4vh 10px;overflow:auto}
.modal{background:var(--card);border-radius:14px;width:min(720px,100%);box-shadow:0 10px 40px rgba(0,0,0,.35)}
.modal .mh{display:flex;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line)}.modal .mh h3{margin:0;font-size:17px}
.modal .mb{padding:14px 16px}.modal .mf{display:flex;gap:10px;justify-content:flex-end;padding:12px 16px;border-top:1px solid var(--line)}
.x{background:none;border:0;font-size:22px;cursor:pointer;margin-left:auto;color:var(--mute)}
.empty{padding:22px;text-align:center;color:var(--mute)}
.photos img{height:84px;border-radius:6px;margin:3px;border:1px solid var(--line);cursor:pointer}
.kv{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px;font-size:14px}.kv b{color:var(--mute);font-weight:600}
.flag{font-size:11px;padding:0 6px;border-radius:6px;background:var(--bg);border:1px solid var(--line);margin-left:4px}
.spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--line);border-top-color:var(--gold);border-radius:50%;animation:sp 1s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}
.login{max-width:380px;margin:9vh auto;padding:0 14px}.login .card{padding:22px}.login img{height:54px;display:block;margin:0 auto 10px}
.login h2{text-align:center;margin:4px 0 14px;font-size:19px}
.tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
/* voice-to-text (voice.js): a Speak button under every text box */
.voicebar{display:flex;align-items:center;gap:8px;margin-top:4px;flex-wrap:wrap}
.voicebar .mic{display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:6px 14px;border-radius:20px;border:1px solid var(--line);
  background:var(--card);color:var(--ink);font-weight:600;cursor:pointer}
.voicebar .mic:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.voicebar .vdot{width:10px;height:10px;border-radius:50%;background:var(--mute)}
.voicebar .mic.rec{background:var(--red);border-color:var(--red);color:#fff}.voicebar .mic.rec .vdot{background:#fff;animation:vpulse 1s infinite}
@keyframes vpulse{50%{opacity:.3}}
@media(prefers-reduced-motion:reduce){.voicebar .mic.rec .vdot{animation:none}}
.voicebar .vstate{font-size:13px;color:var(--mute)}.voicebar .vstate.bad{color:var(--red);font-weight:600}
@media print{.voicebar{display:none}}
/* ======================================================================================================================
   Enterprise design system (November 2026; the look awaits the owner's approval, decision BA-03). Styling only: same screens and
   workflows. Colours come from the shared tokens; status always carries words as well as colour.
   ==================================================================================================================== */
:root{--navy:var(--ui-navy-800);--navy2:var(--ui-navy-600);--gold:var(--ui-gold-500);--bg:var(--ui-grey-50);--card:#fff;--ink:var(--ui-grey-900);--mute:var(--ui-grey-600);--line:var(--ui-grey-200);
  --green:var(--ui-ok);--amber:var(--ui-warn);--red:var(--ui-bad);--blue:var(--ui-info);--l1:var(--ui-ok-bg);--l2:var(--ui-warn-bg);--l3:var(--ui-bad-bg);
  --radius:var(--ui-r);--radius-sm:var(--ui-r-sm);--shadow:var(--ui-shadow);--shadow-lg:var(--ui-shadow-lg);--ring:var(--ui-ring)}
[data-theme="night"]{--bg:var(--ui-dark-bg);--card:var(--ui-dark-surface);--line:var(--ui-dark-line);--ink:var(--ui-dark-ink);--mute:var(--ui-dark-dim);--green:var(--ui-dark-ok);--amber:var(--ui-dark-warn);--red:var(--ui-dark-bad);--blue:var(--ui-dark-info);
  --l1:#123524;--l2:#3a2c0c;--l3:#431a18;--shadow:0 1px 2px rgba(0,0,0,.4),0 6px 18px rgba(0,0,0,.35)}
body{font-family:var(--ui-font);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,h3{letter-spacing:-.01em;color:var(--ink)}
a{color:var(--blue)}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
input,select,textarea{border-radius:var(--radius-sm);transition:border-color .15s,box-shadow .15s;border-color:var(--ui-grey-300)}
[data-theme="night"] input,[data-theme="night"] select,[data-theme="night"] textarea{border-color:var(--line)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--gold);box-shadow:var(--ring)}
label{color:var(--mute);font-weight:600}
.btn{border-radius:var(--radius-sm);font-weight:600;transition:background .15s,box-shadow .15s;box-shadow:none;gap:7px}
.btn:hover{filter:none;background:var(--navy2)}
.btn:focus-visible{outline:none;box-shadow:var(--ring)}
.btn.gold{background:var(--gold);color:var(--ui-on-gold)}.btn.gold:hover{background:var(--ui-gold-400)}
.btn.red{background:var(--ui-bad);color:#fff}.btn.red:hover{background:#962019}
.btn.green{background:var(--ui-ok);color:#fff}.btn.green:hover{background:#19663f}
.btn.ghost{background:var(--card);color:var(--ink);border:1px solid var(--ui-grey-300)}.btn.ghost:hover{background:var(--ui-grey-100)}
[data-theme="night"] .btn.ghost{border-color:var(--line)}[data-theme="night"] .btn.ghost:hover{background:var(--ui-dark-surface-2)}
.card{border-radius:var(--radius);border:1px solid var(--line);box-shadow:var(--shadow);overflow-wrap:break-word}
.card h3{font-size:16px;font-weight:650}
.card,.row > *{min-width:0}
.card table th{overflow-wrap:normal;word-break:normal}
.pill{border-radius:999px;padding:2px 9px}
.l1{color:#14613c}.l2{color:#7a4a00}.l3{color:#8f1d17}
table.t th{font-weight:700;letter-spacing:.04em;background:var(--ui-grey-100);color:var(--mute)}
[data-theme="night"] table.t th{background:var(--ui-dark-surface-2)}
table.t td{font-variant-numeric:tabular-nums}
table.t tr.click:hover td{background:var(--ui-gold-100)}
[data-theme="night"] table.t tr.click:hover td{background:var(--ui-dark-surface-2)}
.toast{border-radius:var(--radius);box-shadow:var(--shadow-lg);background:var(--ui-navy-800)}.toast.bad{background:var(--ui-bad)}
.modal-bg{background:rgba(11,24,48,.55)}
.modal{border-radius:var(--ui-r-lg);box-shadow:var(--shadow-lg)}
.x{min-width:40px;min-height:40px;border-radius:var(--radius-sm)}.x:hover{background:var(--ui-grey-100)}
.login{margin-top:8vh}
.login .card{padding:26px 24px;border-top:3px solid var(--gold)}
.tablewrap{border-radius:var(--radius-sm)}
.empty{color:var(--mute)}
.spinner{border-top-color:var(--navy2)}
/* touch screens: every control is at least 44 px, also the small ones */
input.tick{width:24px;height:24px;min-height:24px}
.nw{white-space:nowrap}
@media(max-width:700px){.scroll>table.t,.tablewrap>table.t{min-width:680px}}
@media(pointer:coarse){td.cell{height:var(--ui-touch)}.btn,.btn.sm,.x,a.tab,.seg button,.voicebar .mic{min-height:var(--ui-touch)}.x,.btn.sm{min-width:var(--ui-touch);flex-shrink:0}label.chk{min-height:var(--ui-touch)}
  input,select{min-height:var(--ui-touch)}a[data-act],p.small a{display:inline-flex;align-items:center;min-height:var(--ui-touch);padding:0 4px}}
