/* BGR ERP — interface */
:root{
  --ink:#15130f; --ink2:#4a4840; --muted:#6f6b60; --line:#e2dccb; --bg:#f6f3ea; --card:#fff;
  --gold:#9c7a0a; --gold2:#d5aa15; --gold-l:#f8edc8; --foil:linear-gradient(135deg,#b48a0c 0%,#e3b91c 38%,#f8d63a 52%,#d5aa15 70%,#a8820c 100%); --navy:#0a1f44; --navy-l:#e6ebf5;
  --green:#1f7a4a; --green-l:#e2f3e9; --red:#a8261b; --red-l:#fbe7e4; --amber:#9a5b00; --amber-l:#fdf0d9;
  --violet:#5b3a8c; --violet-l:#efe8f8; --blue:#1b4d9a; --blue-l:#e5edfa;
  --r:8px; --sh:0 1px 2px rgba(0,0,0,.06),0 2px 8px rgba(0,0,0,.04);
  --side:#0a1f44; --surface:#fff; --th:#f1ece0; --row-line:#eee8d9; --hover:#fbf8f0; --foot:#f8f4e8; --input-line:#cfc8b4; --ro:#f3f0e8; --ro-ink:#555;
  --btn-hover:#f6f2e6; --neutral:#eee; --neutral-ink:#555; --warn-row:#fff4e6; --docbox:#fffdf8; --gold-ink:#6e520c; --navy-btn:#0a1f44; --navy-line:#0a1f44;
  --green-line:#b5dcc4; --green-ink:#145a35; --red-line:#efbdb5; --red-ink:#7d1c13; --amber-line:#f0d39f; --amber-ink:#6e4200;
  color-scheme:light;
}
[data-theme="dark"]{
  --ink:#e9edf6; --ink2:#c4cde0; --muted:#8f9cb9; --line:#223a66; --bg:#06132c; --card:#0b1d40; --surface:#0e2249;
  --gold:#e3b91c; --gold2:#e3b91c; --gold-l:#2c2c1e; --gold-ink:#f8d63a; --navy:#8fb0ee; --navy-l:#132b55; --navy-btn:#1f4488; --navy-line:#5d82d0;
  --green:#5cc28a; --green-l:#0e2e2e; --green-line:#2c6a56; --green-ink:#9be0b8; --red:#f07a6e; --red-l:#341a2a; --red-line:#7a3140; --red-ink:#ffb3aa;
  --amber:#f0b45a; --amber-l:#2e2a20; --amber-line:#7a5a2a; --amber-ink:#ffd59a; --violet:#c2a8f0; --violet-l:#201f4a; --blue:#8ab4f0; --blue-l:#132b55;
  --side:#040e24; --th:#12284f; --row-line:#1a3159; --hover:#112850; --foot:#12284f; --input-line:#2d4a7a; --ro:#0f2348; --ro-ink:#9fadc8;
  --btn-hover:#163260; --neutral:#18305a; --neutral-ink:#b3bfd6; --warn-row:#2e2a20; --docbox:#0d2046;
  --sh:none; color-scheme:dark;
}
[data-theme="dark"] .btn-green{background:#2a7a50;border-color:#2a7a50}
[data-theme="dark"] .auth{background:radial-gradient(circle at 30% 20%,#12306a,#040e24 60%)}
.toggles{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.tgl{display:inline-flex;align-items:center;gap:4px;background:none;border:1px solid #2d4a7a;color:#d8d1bd;border-radius:6px;padding:3px 8px;font:600 12px/1.4 inherit;cursor:pointer;text-decoration:none}
.tgl:hover{border-color:#d5aa15;color:#fff}
.tgl.on{background:var(--foil);color:#0a1f44;border-color:#b48a0c}
.auth .toggles{position:absolute;top:14px;right:16px}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.45 "Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}
h1,h2,h3,.brand,.kpi .v,.lothead .num,.btn{font-family:"Gill Sans","Gill Sans MT","Segoe UI",Calibri,"Trebuchet MS",sans-serif}
.foil{background:var(--foil);-webkit-background-clip:text;background-clip:text;color:transparent}
a{color:var(--gold)} a:hover{color:var(--gold-ink)}
h1,h2,h3{margin:0 0 .6em;line-height:1.2} h1{font-size:22px} h2{font-size:17px} h3{font-size:15px}
.ico{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.shell{display:flex;min-height:100vh}
.side{width:240px;background:var(--side);color:#e9e3d0;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;flex:none}
.brand{display:flex;gap:10px;align-items:center;padding:18px 16px;color:#fff;text-decoration:none;border-bottom:1px solid #1f3a6b}
.brand img{width:38px;height:auto}
.brand span{font-weight:700;letter-spacing:1px;line-height:1.05;font-size:15px;background:var(--foil);-webkit-background-clip:text;background-clip:text;color:transparent}
.brand small{display:block;font-weight:600;font-size:10px;letter-spacing:2.5px;margin-top:3px}
.side{border-right:3px solid transparent;border-image:var(--foil) 1}
.side nav{display:flex;flex-direction:column;padding:10px 8px;gap:2px;overflow:auto;flex:1}
.side nav a{display:flex;gap:10px;align-items:center;color:#d8d1bd;text-decoration:none;padding:9px 10px;border-radius:6px}
.side nav a:hover{background:#16336b;color:#fff}
.side nav a.active{background:var(--foil);color:#0a1f44;font-weight:700}
.userbox{border-top:1px solid #1f3a6b;padding:12px;display:flex;flex-direction:column;gap:6px}
.userbox .uname{display:flex;gap:8px;align-items:center;color:#fff;text-decoration:none;flex-wrap:wrap}
.userbox small{display:block;width:100%;color:#a9b8d6;margin-left:26px;margin-top:-4px}
.linkbtn{background:none;border:0;color:#d8d1bd;display:flex;gap:8px;align-items:center;cursor:pointer;padding:4px 0;font:inherit}
.linkbtn:hover{color:#fff}
.main{flex:1;min-width:0;padding:22px 28px 60px}
.topbar{border-bottom:2px solid transparent;border-image:var(--foil) 1;padding-bottom:10px;display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:16px;flex-wrap:wrap}
.topbar .co{color:var(--muted);font-size:12px;letter-spacing:.5px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:18px;box-shadow:var(--sh);margin-bottom:16px}
.card.tight{padding:12px}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.spacer{flex:1}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:16px}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px;box-shadow:var(--sh)}
.kpi .l{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.6px}
.kpi .v{font-size:22px;font-weight:700;margin-top:4px;font-variant-numeric:tabular-nums}
.kpi .s{color:var(--muted);font-size:12px}
.kpi.gold{border-top:3px solid var(--gold2)} .kpi.navy{border-top:3px solid var(--navy-line)} .kpi.red{border-top:3px solid var(--red)} .kpi.green{border-top:3px solid var(--green)}
table.t{width:100%;border-collapse:collapse;background:var(--surface)}
table.t th{background:var(--th);text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.4px;color:var(--ink2);padding:8px;border-bottom:1px solid var(--line);white-space:nowrap}
table.t td{white-space:normal;padding:7px 8px;border-bottom:1px solid var(--row-line);vertical-align:middle}
table.t tr:hover td{background:var(--hover)}
table.t td.n,table.t th.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
table.t tfoot td{font-weight:700;background:var(--foot);border-top:2px solid var(--ink)}
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r)}
.field{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}
.field label{font-size:12px;font-weight:600;color:var(--ink2)}
input,select,textarea{font:inherit;padding:8px 10px;border:1px solid var(--input-line);border-radius:6px;background:var(--surface);color:var(--ink);min-height:38px;width:100%}
input:focus,select:focus,textarea:focus{outline:2px solid var(--gold2);outline-offset:0;border-color:var(--gold)}
input[readonly],input:disabled,select:disabled,textarea[readonly]{background:var(--ro);color:var(--ro-ink)}
.hint{color:var(--muted);font-size:12px}
.check{display:flex;gap:8px;align-items:center;margin:6px 0 12px}
.check input{width:auto;min-height:auto}
.btn{display:inline-flex;gap:6px;align-items:center;justify-content:center;padding:8px 14px;border-radius:6px;border:1px solid var(--input-line);background:var(--surface);color:var(--ink);text-decoration:none;cursor:pointer;font:inherit;font-weight:600;min-height:38px;white-space:nowrap}
.btn:hover{background:var(--btn-hover);color:var(--ink)}
.btn-primary{background:var(--foil);border-color:#b48a0c;color:#0a1f44} .btn-primary:hover{filter:brightness(.93);color:#0a1f44}
.btn-navy{background:var(--navy-btn);border-color:var(--navy-btn);color:#fff} .btn-navy:hover{filter:brightness(.9);color:#fff}
.btn-danger{background:var(--surface);border-color:var(--red-line);color:var(--red)} .btn-danger:hover{background:var(--red-l);color:var(--red)}
.btn-green{background:var(--green);border-color:var(--green);color:#fff} .btn-green:hover{filter:brightness(.9);color:#fff}
.btn-sm{padding:4px 9px;min-height:30px;font-size:13px}
.btn-block{width:100%}
.btns{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
form.inline{display:inline}
.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}
.badge-grey{background:var(--neutral);color:var(--neutral-ink)} .badge-amber{background:var(--amber-l);color:var(--amber)} .badge-blue{background:var(--blue-l);color:var(--blue)}
.badge-violet{background:var(--violet-l);color:var(--violet)} .badge-green{background:var(--green-l);color:var(--green)} .badge-red{background:var(--red-l);color:var(--red)} .badge-gold{background:var(--gold-l);color:var(--gold-ink)}
.flash{padding:10px 14px;border-radius:6px;margin-bottom:12px;border:1px solid}
.flash-ok{background:var(--green-l);border-color:var(--green-line);color:var(--green-ink)}
.flash-err{background:var(--red-l);border-color:var(--red-line);color:var(--red-ink)}
.flash-warn{background:var(--amber-l);border-color:var(--amber-line);color:var(--amber-ink)}
.muted{color:var(--muted)} .small{font-size:12px}
.kv{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;margin:0}
.kv dt{color:var(--muted)} .kv dd{margin:0;font-weight:600}
.tabs{display:flex;gap:4px;border-bottom:2px solid var(--line);margin-bottom:16px;flex-wrap:wrap}
.tabs a{padding:9px 14px;text-decoration:none;color:var(--ink2);border-radius:6px 6px 0 0;font-weight:600;margin-bottom:-2px;border-bottom:2px solid transparent}
.tabs a:hover{background:var(--btn-hover)}
.tabs a.active{color:var(--gold);border-bottom-color:var(--gold);background:var(--surface)}
.lothead{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.lothead .num{font-size:26px;font-weight:800;letter-spacing:.5px}
.ed td{padding:3px 4px} .ed input{min-height:32px;padding:4px 6px;font-variant-numeric:tabular-nums}
.ed input.num{text-align:right}
.ed .del{border:0;background:none;color:var(--red);cursor:pointer;font-size:18px;padding:0 6px}
.ed td.calc{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;padding-right:8px;color:var(--ink2)}
.ed tr.warn td{background:var(--warn-row)}
.docbox{border:1px solid var(--line);border-radius:var(--r);padding:14px;background:var(--docbox)}
.docbox h3{display:flex;gap:8px;align-items:center}
.lockline{display:flex;gap:6px;align-items:center;color:var(--green);font-weight:600}
.hash{font-family:ui-monospace,Consolas,monospace;font-size:12px;word-break:break-all;color:var(--ink2)}
.alert-list{margin:0;padding-left:18px} .alert-list li{margin:3px 0}
.pill-steps{display:flex;gap:6px;flex-wrap:wrap}
.pill-steps span{padding:3px 10px;border-radius:999px;background:var(--neutral);color:var(--neutral-ink);font-size:12px;font-weight:600}
.pill-steps span.done{background:var(--green-l);color:var(--green)}
.auth{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;background:radial-gradient(circle at 30% 20%,#1d4489,#0a1f44 60%)}
.login-card{background:var(--card);color:var(--ink);border-top:4px solid #d5aa15;border-radius:12px;padding:28px;width:100%;max-width:380px;box-shadow:0 10px 40px rgba(0,0,0,.35)}
.login-brand{display:flex;gap:12px;align-items:center;margin-bottom:18px}
.login-brand{flex-direction:column;text-align:center} .login-brand img{width:230px;max-width:100%} .login-brand strong{display:block;font-size:15px} .login-brand span{color:var(--muted);font-size:12px}
.auth .flash{max-width:380px;width:100%}
.verify{max-width:640px;margin:30px auto;padding:0 16px}
.vres{border-radius:12px;padding:22px;border:2px solid}
.vres.ok{background:var(--green-l);border-color:var(--green)} .vres.ko{background:var(--red-l);border-color:var(--red)} .vres.warn{background:var(--amber-l);border-color:var(--amber)}
.logsheet td input{min-height:30px;padding:3px 5px}
.logsheet tr.head td{background:var(--th);font-weight:700}
@media (max-width:1100px){.grid4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:860px){
  .shell{flex-direction:column} .side{width:100%;height:auto;position:static}
  .side nav{flex-direction:row;overflow-x:auto;padding:6px} .side nav a span{white-space:nowrap}
  .userbox{flex-direction:row;align-items:center;justify-content:space-between}
  .main{padding:16px}
  .grid2,.grid3,.grid4{grid-template-columns:1fr}
}
@media print{.side,.topbar,.btns,.tabs,.flash{display:none!important}.main{padding:0}}
.tablewrap table.t td{white-space:nowrap} .tablewrap table.t td.wrap{white-space:normal}
.kpi.amber{border-top:3px solid var(--amber)}
.sigthumb{max-height:44px;max-width:170px;object-fit:contain;display:block;background:#fff;border-radius:4px;padding:2px 6px}
.sigcell{width:180px}
.t.steps td{vertical-align:middle}
.sigpad{display:flex;flex-direction:column;gap:6px;margin:8px 0}
.sigpad canvas{width:100%;max-width:600px;aspect-ratio:3/1;background:#fff;border:1px dashed var(--input-line);border-radius:6px;touch-action:none;cursor:crosshair}
.sigpreview{background:#fff;border:1px solid var(--line);border-radius:6px;padding:10px;display:inline-flex;min-height:70px;align-items:center}
.sigpreview img{max-height:90px;max-width:320px}
.t tr.warnrow td{background:var(--warn-row)}
