:root{--bg:#e9edef;--surface:#f8fafa;--sunk:#dfe5e8;--ink:#16212a;--muted:#5a6a74;--line:#c6d0d5;--accent:#1c6a87;--accent-ink:#ffffff;--mark:#c2542a;--ok:#2f7d4f;--warn:#b07a12;--f-ui:"Barlow Semi Condensed","Arial Narrow",system-ui,sans-serif;--f-data:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;--r:4px;color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg:#0f1519;--surface:#161f25;--sunk:#0c1114;--ink:#e1e8eb;--muted:#8a99a1;--line:#29353c;--accent:#5aaecb;--accent-ink:#06171e;--mark:#ec7b4b;--ok:#5fbf86;--warn:#e0b04a;color-scheme:dark}}[hidden]{display:none!important}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--f-ui);font-size:15px;line-height:1.35}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--accent)}.mono{font-family:var(--f-data)}.hint{font-size:13px;color:var(--muted)}.hint b{color:var(--ink);font-weight:600}h1,h2,h3{margin:0}.btn{border:1px solid var(--line);background:var(--surface);border-radius:var(--r);padding:6px 10px;cursor:pointer;font-weight:500;display:inline-flex;align-items:center;gap:6px;text-decoration:none;color:var(--ink);white-space:nowrap}.btn:hover:not(:disabled){border-color:var(--accent)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.pri{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.danger{color:var(--mark)}.btn.danger.fill{background:var(--mark);color:#fff;border-color:var(--mark)}.btn.sm{padding:3px 8px;font-size:13px}.btn[aria-pressed=true]{background:var(--ink);color:var(--surface);border-color:var(--ink)}.lnk{border:0;background:none;color:var(--accent);cursor:pointer;padding:0;font:inherit;text-decoration:underline}.btn:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,.lnk:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:1px}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.tn-field{display:flex;flex-direction:column;gap:3px;font-size:13px;color:var(--muted);min-width:0}.tn-field input,.tn-field select,.tn-field textarea,.tn-inp{color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:5px 7px;font-family:var(--f-data);font-size:13px;width:100%;min-width:0}.tn-inp{width:auto}.tn-field textarea{resize:vertical;min-height:70px}.tn-field .tn-hint{font-size:12px}.tn-check{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;cursor:pointer}.tn-form{display:flex;flex-direction:column;gap:10px}.tn-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.tn-tablewrap{overflow:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}.tn-table{border-collapse:collapse;width:100%;font-size:13px;font-variant-numeric:tabular-nums}.tn-table th{position:sticky;top:0;background:var(--sunk);text-align:left;font-weight:600;color:var(--muted);padding:6px 8px;white-space:nowrap;z-index:1}.tn-table td{padding:5px 8px;border-top:1px solid var(--line);vertical-align:middle}.tn-table tr.clickable{cursor:pointer}.tn-table tr.clickable:hover td{background:var(--sunk)}.tn-table tr.sel td{background:color-mix(in srgb,var(--accent) 12%,transparent)}.tn-table td.num,.tn-table th.num{text-align:right;font-family:var(--f-data)}.tn-table td.mono{font-family:var(--f-data);font-size:12px}.tn-table tr.tn-expanded>td{background:var(--sunk);padding:10px 12px}.tn-empty{padding:18px;text-align:center;color:var(--muted)}.tn-badge{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.03em;padding:1px 7px;border-radius:999px;border:1px solid currentColor;white-space:nowrap}.tn-badge.neutral{color:var(--muted)}.tn-badge.ok{color:var(--ok)}.tn-badge.warn{color:var(--warn)}.tn-badge.danger{color:var(--mark)}.tn-badge.info{color:var(--accent)}.tn-badge.solid{color:#fff;border-color:transparent}.tn-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a121880;display:grid;place-items:center;z-index:100;padding:16px}.tn-dialog{background:var(--surface);border:1px solid var(--line);border-radius:6px;width:min(480px,100%);max-height:90vh;overflow:auto;padding:16px 18px;display:flex;flex-direction:column;gap:12px;box-shadow:0 12px 40px #00000059}.tn-dialog h2{font-size:18px}.tn-dialog-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.tn-toasts{position:fixed;right:14px;bottom:14px;display:flex;flex-direction:column;gap:8px;z-index:200;max-width:min(420px,calc(100vw - 28px))}.tn-toast{background:var(--ink);color:var(--surface);padding:9px 12px;border-radius:var(--r);font-size:14px;display:flex;gap:10px;align-items:flex-start;box-shadow:0 6px 22px #0000004d}.tn-toast.error{background:var(--mark);color:#fff}.tn-toast.ok{background:var(--ok);color:#fff}.tn-toast span{flex:1}.tn-toast button{background:none;border:0;color:inherit;cursor:pointer;font-size:16px;line-height:1}.tn-pager{display:flex;gap:8px;align-items:center;justify-content:flex-end;font-size:13px;color:var(--muted);margin-top:8px}.tn-page{padding:16px 20px 32px;display:flex;flex-direction:column;gap:14px;min-width:0}.tn-page-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.tn-page-head h1{font-size:22px;font-weight:700}.tn-bar{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:flex-end}.tn-tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);flex-wrap:wrap}.tn-tabs a{padding:8px 12px;color:var(--muted);font-weight:600;text-decoration:none;border-bottom:2px solid transparent;margin-bottom:-1px}.tn-tabs a.active{color:var(--ink);border-bottom-color:var(--accent)}.tn-error{color:var(--mark);font-size:14px}.tn-card{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);padding:12px 14px}@media (max-width:1000px){.tn-page{padding:12px}}.au-wrap{min-height:100%;display:grid;grid-template-columns:minmax(340px,460px) 1fr;background:var(--surface)}.au-side{display:flex;align-items:center;justify-content:center;padding:48px 44px;border-right:1px solid var(--line)}.au-form{width:100%;max-width:340px;display:flex;flex-direction:column;gap:18px}.au-brand{margin-bottom:18px}.au-brand h1{font-size:52px;line-height:.95;font-weight:600;letter-spacing:-.015em;margin:0}.au-brand p{margin:10px 0 0;font-size:19px;color:var(--muted);font-weight:500}.au-field{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:14px}.au-field input{height:42px;padding:0 12px;border:1px solid var(--line);border-radius:var(--r);background:var(--bg);font-size:16px;font-weight:400;transition:border-color .15s}.au-field input:hover{border-color:var(--muted)}.au-field input:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.au-field input[aria-invalid=true]{border-color:var(--mark)}.au-err{margin:0;padding:10px 12px;border-left:3px solid var(--mark);background:color-mix(in srgb,var(--mark) 10%,transparent);color:var(--ink);font-size:14.5px;line-height:1.4}.au-submit{height:44px;margin-top:4px;border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink);border-radius:var(--r);font-size:16px;font-weight:600;cursor:pointer;letter-spacing:.01em}.au-submit:hover:not(:disabled){filter:brightness(1.08)}.au-submit:disabled{opacity:.65;cursor:progress}.au-submit:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.au-note{margin:6px 0 0;font-size:13px;color:var(--muted);line-height:1.45}.au-hero{position:relative;margin:0;min-height:100%;overflow:hidden;background:#cfdbe2}.au-hero img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:50% 70%;display:block}.au-hero figcaption{position:absolute;left:28px;bottom:22px;font-size:13.5px;color:#2c3a44;max-width:36ch}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .au-hero{background:#1d3340}:root:not([data-theme=light]) .au-hero figcaption{color:#c6d0d5}}@media (max-width:820px){.au-wrap{grid-template-columns:1fr;grid-template-rows:minmax(200px,34vh) auto}.au-hero{grid-row:1;min-height:0}.au-hero img{object-position:50% 38%}.au-hero figcaption{display:none}.au-side{grid-row:2;border-right:0;border-top:1px solid var(--line);padding:28px 16px 40px;align-items:flex-start}.au-brand{margin-bottom:6px}.au-brand h1{font-size:40px}}.sh-app{display:flex;flex-direction:column;height:100%;min-height:0}.sh-banner{flex:none;background:#e8821a;color:#fff;text-align:center;font-weight:700;letter-spacing:.06em;padding:5px 10px;font-size:14px;z-index:50}.sh-main{flex:1;min-height:0;display:grid;grid-template-columns:224px minmax(0,1fr)}.sh-rail{border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0;background:var(--surface)}.sh-test .sh-rail{border-right-color:#e8821a}.sh-brand{padding:14px 16px 10px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:8px}.sh-home{color:inherit;text-decoration:none;border-radius:var(--r)}.sh-brand b{display:block;font-weight:700;font-size:17px;letter-spacing:.01em}.sh-brand span{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.sh-burger{display:none}.sh-acc{flex:1;overflow:auto;display:flex;flex-direction:column}.sh-sec{border-bottom:1px solid var(--line)}.sh-sec>summary{cursor:pointer;padding:10px 14px 7px;-webkit-user-select:none;user-select:none;font-weight:700;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);list-style:none}.sh-sec>summary::-webkit-details-marker{display:none}.sh-sec>summary:hover{color:var(--ink)}.sh-sec>summary:before{content:"▸";display:inline-block;width:1.1em}.sh-sec[open]>summary:before{content:"▾"}.sh-nav{display:flex;flex-direction:column;padding:0 8px 10px}.sh-nav a{text-decoration:none;color:var(--ink);padding:6px 10px;border-radius:var(--r);font-size:14.5px;border-left:3px solid transparent;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sh-nav a:hover{background:var(--sunk)}.sh-nav a.active{border-left-color:var(--accent);background:color-mix(in srgb,var(--accent) 13%,transparent);font-weight:600;color:var(--ink)}.sh-nav a:focus-visible,.sh-add:focus-visible,.sh-home:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.sh-nav a.sh-sub{font-size:13px;color:var(--muted)}.sh-nav a.sh-sub.active{color:var(--ink)}.sh-hint{font-size:12.5px;color:var(--muted);padding:4px 10px}.sh-hint-err{color:var(--mark)}.sh-add{border:1px dashed var(--line);background:none;color:var(--accent);font-weight:600;text-align:left;padding:5px 10px;margin:4px 0 6px;border-radius:var(--r);cursor:pointer;font-size:14px}.sh-add:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 7%,transparent)}.sh-new{display:flex;flex-direction:column;gap:6px;padding:6px 0 8px}.sh-new input{height:32px;padding:0 8px;border:1px solid var(--accent);border-radius:var(--r);background:var(--bg);min-width:0}.sh-new input:focus-visible{outline:2px solid var(--accent);outline-offset:0}.sh-new-btns{display:flex;gap:6px}.sh-foot{padding:10px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:8px}.sh-status{font-size:13px;color:var(--ink);overflow-wrap:anywhere;line-height:1.4}.sh-status .mono{font-size:11px;color:var(--muted)}.sh-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--ok);margin-right:6px;vertical-align:1px}.sh-dot.test{background:#e8821a}.sh-foot-btns{display:flex;gap:6px;flex-wrap:wrap}.sh-mode{display:inline-flex;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;align-self:flex-start}.sh-mode button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.sh-mode button{border:0;background:none;padding:4px 12px;cursor:pointer;font-weight:600;color:var(--muted)}.sh-mode button+button{border-left:1px solid var(--line)}.sh-mode button[aria-pressed=true]{background:var(--ink);color:var(--surface)}.sh-test .sh-mode button[aria-pressed=true]:last-child{background:#e8821a;color:#fff}.sh-content{min-width:0;min-height:0;overflow:auto;position:relative}@media (max-width:1000px){.sh-app{height:auto;min-height:100%}.sh-banner{position:sticky;top:0}.sh-main{grid-template-columns:1fr;display:block}.sh-rail{border-right:0;border-bottom:1px solid var(--line)}.sh-burger{display:inline-flex}.sh-acc{display:none;max-height:60vh}.sh-acc.open{display:flex}.sh-rail:not(.open) .sh-foot{display:none}.sh-content{overflow:visible}}.gp-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}.gp-kpis .tn-card{border-left-width:4px}.gp-kpis b{display:block;font-size:24px;font-family:var(--f-data);line-height:1.1}.gp-kpis span{font-size:12px;color:var(--muted)}.gp-bar{display:flex;height:14px;border-radius:7px;overflow:hidden;background:var(--sunk)}.gp-bar i{display:block}.gp-legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px}.gp-legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px}.gp-towers{display:flex;flex-direction:column;gap:12px}.gp-tower-head{display:flex;justify-content:space-between;gap:10px;margin-bottom:4px;font-size:14px}.gp-stock-cat{display:flex;flex-direction:column;gap:6px}.gp-stock-cat h2{font-size:14px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}.gp-low td:first-child{box-shadow:inset 3px 0 var(--mark)}.gp-low .qty{color:var(--mark);font-weight:700}.gp-mv{display:flex;gap:4px;align-items:center;flex-wrap:nowrap}.gp-mv input[type=number]{width:70px}.gp-chip{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line);border-radius:999px;padding:1px 8px;font-size:12px;background:var(--surface);margin:1px 2px 1px 0;cursor:default}button.gp-chip{cursor:pointer}button.gp-chip:hover:not(:disabled){border-color:var(--accent)}.gp-chip.done{color:var(--ok);border-color:var(--ok)}.gp-chip.redo{border-color:var(--mark)}.gp-chip small{color:var(--muted)}.gp-flash td{background:color-mix(in srgb,var(--accent) 22%,transparent)!important}.gp-prio td:first-child{box-shadow:inset 3px 0 #e0a526}.gp-scan{flex:1 1 280px}.gp-scan input{font-family:var(--f-data)}.gp-postes{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px}.gp-poste{text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:var(--r);padding:9px 11px;cursor:pointer;display:flex;flex-direction:column;gap:2px}.gp-poste:hover{border-color:var(--accent)}.gp-poste[aria-pressed=true]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}.gp-poste b{font-size:15px}.gp-poste .n{font-family:var(--f-data);font-size:22px}.gp-fronts{display:flex;flex-direction:column;gap:6px;max-width:560px}.gp-front{display:grid;grid-template-columns:1fr 1.4fr auto;gap:8px;align-items:end;padding:8px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}.gp-2col{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}@media (max-width:1000px){.gp-2col{grid-template-columns:1fr}}.gp-soon{max-width:68ch;border:1px solid var(--line);border-left:3px solid var(--accent);background:var(--surface);border-radius:var(--r);padding:14px 18px;line-height:1.5}.gp-soon p{margin:0 0 10px}.gp-soon ul{margin:0 0 12px;padding-left:20px;display:flex;flex-direction:column;gap:6px}.adm-matrix td,.adm-matrix th{text-align:center}.adm-matrix td:first-child,.adm-matrix th:first-child{text-align:left;position:sticky;left:0;background:var(--surface);z-index:1}.adm-matrix th:first-child{background:var(--sunk);z-index:2}.adm-matrix .perm{font-family:var(--f-data);font-size:12px}.adm-diff{width:100%;border-collapse:collapse;font-size:12px;font-family:var(--f-data)}.adm-diff th{text-align:left;color:var(--muted);font-weight:500;padding:3px 8px;background:transparent;position:static}.adm-diff td{padding:3px 8px;border-top:1px solid var(--line);vertical-align:top;white-space:pre-wrap;word-break:break-word;max-width:420px}.adm-diff .bef{background:color-mix(in srgb,var(--mark) 14%,transparent)}.adm-diff .aft{background:color-mix(in srgb,var(--ok) 14%,transparent)}.adm-diff .none{color:var(--muted);font-style:italic}.adm-exp{display:flex;flex-direction:column;gap:10px}.adm-exp-bar{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.adm-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;align-items:end}.adm-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}.adm-kpis .tn-card b{display:block;font-size:20px;font-family:var(--f-data)}.adm-radio{display:flex;flex-direction:column;gap:6px}.adm-bar{height:8px;border-radius:4px;background:var(--sunk);overflow:hidden}.adm-bar i{display:block;height:100%;background:var(--accent)}
