@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=IBM+Plex+Sans:wght@400;500;600;700&display=swap');

:root { --ink:#24313f; --muted:#657689; --canvas:#e9eef4; --panel:#f8fafc; --panel-strong:#fff; --chrome:#536575; --chrome-deep:#3d4d5b; --blue:#2f7fbd; --blue-deep:#1f5f93; --blue-soft:#cfe5f7; --blue-pale:#eaf4fc; --line:#c6d2dd; --line-soft:#dce4eb; --success:#2f7656; --warning:#9c6923; --danger:#944b47; --focus:#f1bd43; }
* { box-sizing:border-box; }
[hidden] { display:none !important; }
html { background:var(--canvas); }
body { min-width:320px; margin:0; color:var(--ink); background:var(--canvas); font:13px/1.45 "IBM Plex Sans",Arial,sans-serif; }
body::selection { color:#10283a; background:#b8daf4; }
::-webkit-scrollbar { width:12px; height:12px; } ::-webkit-scrollbar-track { background:#d9e2ea; } ::-webkit-scrollbar-thumb { background:#9eafbe; border:3px solid #d9e2ea; border-radius:10px; }
.skip-link { position:fixed; z-index:10; top:-48px; left:12px; padding:8px 11px; color:#fff; background:var(--blue-deep); border-radius:5px; }.skip-link:focus { top:12px; }
.sidebar { position:fixed; inset:0 auto 0 0; z-index:2; display:flex; flex-direction:column; width:238px; color:#f5f8fb; background:var(--chrome-deep); border-right:1px solid #34424f; }
.brand { display:flex; align-items:center; gap:10px; min-height:85px; padding:21px 19px; color:inherit; background:#465968; border-bottom:1px solid #687988; font-size:16px; line-height:1.03; letter-spacing:-.02em; text-decoration:none; }.brand strong { color:#a8d2ef; }.brand-mark { display:grid; width:39px; height:39px; place-items:center; color:#eaf5fd; background:#31556e; border:1px solid #93bbd6; font:500 12px "DM Mono",monospace; }
.sidebar nav { display:grid; gap:1px; padding:12px 9px; }.nav-item { display:grid; grid-template-columns:22px minmax(0,1fr) auto; gap:9px; align-items:center; min-height:40px; padding:0 10px; color:#d6e0e8; border:1px solid transparent; border-radius:4px; font-weight:600; text-decoration:none; }.nav-item:hover { color:#fff; background:#4b6172; }.nav-item.active { color:#173b56; background:var(--blue-soft); border-color:#a2cbe7; }.nav-icon { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }.nav-count { min-width:20px; padding:1px 5px; background:rgba(255,255,255,.14); border-radius:9px; color:inherit; font:500 10px "DM Mono",monospace; text-align:center; }.nav-item.active .nav-count { background:#b5d8f0; }
.sidebar-foot { margin-top:auto; padding:15px 19px 18px; color:#cbd7df; border-top:1px solid #5e6e7b; font-size:11px; line-height:1.65; }.sidebar-foot small { display:block; overflow:hidden; color:#aebfcb; text-overflow:ellipsis; white-space:nowrap; }.connection-dot { display:inline-block; width:7px; height:7px; margin-right:5px; background:#72bf92; border-radius:50%; box-shadow:0 0 0 2px rgba(114,191,146,.15); }.logout-button { margin-top:9px; padding:0; color:#d8e7f1; background:transparent; border:0; border-bottom:1px solid #8ca8ba; font:600 11px "IBM Plex Sans",sans-serif; cursor:pointer; }.logout-button:hover { color:#fff; }
.main-content { min-height:100vh; margin-left:238px; padding:22px clamp(22px,4vw,54px) 55px; }.topbar { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; min-height:74px; margin-bottom:18px; padding:0 0 15px; border-bottom:1px solid #b7c5d0; }.date-label { margin:0 0 4px; color:var(--muted); font-size:11px; }.topbar h1 { margin:0; color:#243c51; font-size:25px; font-weight:700; letter-spacing:-.035em; line-height:1.1; }.workspace-meta { display:flex; align-items:center; gap:17px; color:#687b8d; font:500 11px "DM Mono",monospace; }.operator { display:flex; align-items:center; gap:8px; min-width:135px; font:12px/1.25 "IBM Plex Sans",sans-serif; }.operator small { display:block; margin-top:2px; color:var(--muted); }.avatar { display:grid; flex:none; width:32px; height:32px; place-items:center; color:#1d5d8f; background:#d8eafa; border:1px solid #a7cce8; border-radius:50%; font-weight:700; }
.dispatch-strip { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:15px; padding:18px 20px; color:#eef7fd; background:var(--chrome); border:1px solid #3c5265; box-shadow:0 5px 13px rgba(49,67,83,.14); }.dispatch-strip p { margin:0 0 5px; color:#b9d9ef; font-size:11px; }.dispatch-strip h2 { max-width:690px; margin:0 0 4px; font-size:17px; letter-spacing:-.025em; }.dispatch-strip span { color:#cbd9e4; font-size:12px; }.dispatch-actions { display:flex; flex:0 0 auto; align-items:center; gap:13px; }.action-button,.primary-button { display:inline-flex; align-items:center; justify-content:center; min-height:34px; padding:7px 12px; color:#fff; background:var(--blue); border:1px solid #1d679e; border-radius:4px; box-shadow:0 2px 4px rgba(25,70,105,.2); font:600 12px "IBM Plex Sans",sans-serif; text-decoration:none; cursor:pointer; }.action-button { white-space:nowrap; }.action-button:hover,.primary-button:hover { background:var(--blue-deep); }.action-button b,.dispatch-continue b { margin-left:7px; }.dispatch-continue { display:inline-flex; align-items:center; min-height:34px; color:#d9eaf6; border-bottom:1px solid #8fb6d1; font-size:12px; font-weight:700; text-decoration:none; white-space:nowrap; }.dispatch-continue:hover { color:#fff; border-color:#fff; }
.metrics { display:grid; grid-template-columns:repeat(3,1fr); margin-bottom:18px; background:var(--panel); border:1px solid var(--line); }.metrics article { min-height:93px; padding:14px 17px; border-right:1px solid var(--line-soft); }.metrics article:last-child { border-right:0; }.metrics span,.metrics small { display:block; color:var(--muted); font-size:11px; }.metrics strong { display:block; margin:4px 0; color:#245f90; font:500 27px "DM Mono",monospace; letter-spacing:-.08em; }
.daily-metrics { grid-template-columns:repeat(5,minmax(0,1fr)); margin-bottom:17px; }.daily-metrics article { min-height:84px; }.daily-metrics article:nth-child(5) { border-right:0; }.warehouse-metrics { margin-top:17px; }
.dashboard-grid { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(280px,.8fr); gap:17px; }.ledger-panel,.event-panel { overflow:hidden; background:var(--panel-strong); border:1px solid var(--line); box-shadow:0 4px 10px rgba(51,71,87,.08); }.section-head,.grid-caption { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:42px; padding:9px 13px; color:#385a73; background:#edf3f8; border-bottom:1px solid var(--line); }.section-head h2 { margin:0; font-size:13px; letter-spacing:-.01em; }.section-head a { color:#245f90; font-size:12px; font-weight:700; text-decoration:none; }.grid-caption { font-size:12px; font-weight:700; }.grid-caption small { color:#708294; font-size:10px; font-weight:500; }.live { color:#346e91; font-size:10px; font-weight:600; }.live::before { display:inline-block; width:6px; height:6px; margin-right:5px; background:#61a97e; border-radius:50%; content:""; }
.schedule-layout { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(285px,.7fr); gap:17px; }.calendar-week { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); }.calendar-day { min-height:130px; padding:10px; border-right:1px solid var(--line-soft); }.calendar-day:last-child { border-right:0; }.calendar-day.today { background:#eaf4fc; }.calendar-date { display:flex; align-items:baseline; justify-content:space-between; gap:6px; color:#315e80; }.calendar-date strong { font-size:11px; }.calendar-date span { color:#708294; font:500 10px "DM Mono",monospace; }.calendar-load { display:grid; gap:3px; margin:10px 0; }.calendar-load span { color:#456981; font-size:10px; }.calendar-day small { display:block; color:#6a7f90; font-size:10px; line-height:1.4; }.day-plan { padding-bottom:0; }.today-plan { min-height:76px; }.today-item { display:grid; gap:2px; padding:9px 13px; color:inherit; border-bottom:1px solid var(--line-soft); text-decoration:none; }.today-item:hover { background:var(--blue-pale); }.today-item span { color:#456a84; font-size:10px; font-weight:700; text-transform:uppercase; }.today-item strong { font-size:12px; }.today-item small { color:var(--muted); font-size:10px; }.today-item.purchase span { color:#916321; }.today-item.cutting span { color:#2c6c94; }.plan-entry { border-top:1px solid var(--line); }.plan-entry summary { padding:10px 13px; color:#245f90; font-size:11px; font-weight:700; cursor:pointer; }.plan-entry form { display:grid; gap:8px; padding:0 13px 13px; }.plan-entry label { display:grid; gap:3px; color:#405d73; font-size:10px; font-weight:700; }.plan-entry input,.plan-entry select { padding:6px 7px; font-size:12px; }.plan-entry .primary-button { justify-self:start; }
table { width:100%; border-collapse:collapse; }.ledger-panel { overflow-x:auto; } th { padding:7px 12px; color:#36566f; background:#e5eef6; border-right:1px solid #cbd8e2; border-bottom:1px solid #b8c8d4; font-size:10px; font-weight:700; line-height:1.25; text-align:left; white-space:nowrap; } th:last-child { border-right:0; } td { padding:8px 12px; border-right:1px solid #e2e9ee; border-bottom:1px solid #dce5ec; vertical-align:middle; } td:last-child { border-right:0; } tbody tr:last-child td { border-bottom:0; } tbody tr:hover td { background:var(--blue-pale); }.data-grid tbody tr:first-child td { background:#f7fbfe; }.data-grid tbody tr:first-child:hover td { background:var(--blue-pale); }.code { color:#245f90; font:500 11px "DM Mono",monospace; }.status { display:inline-flex; align-items:center; padding:3px 6px; color:#526b2f; background:#f5f8e8; border:1px solid currentColor; border-radius:3px; font-size:10px; font-weight:600; line-height:1.1; white-space:nowrap; }.status.available,.status.done { color:#357154; background:#eef8f0; }.status.ready,.status.ready_for_giblab { color:#526b2f; background:#f5f8e8; }.status.draft { color:#687887; background:#eef2f5; }.status.in_production,.status.offered { color:#94601c; background:#fff6df; }.status.reserved { color:#88433e; background:#fff0ee; }.status.consumed,.status.archived { color:#687887; background:#eef2f5; }
.event-panel { padding-bottom:8px; }.event-intro { margin:11px 13px; color:var(--muted); font-size:12px; line-height:1.5; }.event { display:flex; gap:10px; padding:9px 13px; border-top:1px solid var(--line-soft); }.event-type { min-width:48px; padding-top:2px; color:#285f8b; font:500 10px "DM Mono",monospace; }.event small { display:block; margin-top:2px; color:var(--muted); font-size:11px; }.empty-state { padding:14px; color:var(--muted); font-size:12px; line-height:1.5; }
.page-intro { display:flex; align-items:center; justify-content:space-between; gap:18px; margin:0 0 13px; }.page-intro p { margin:0; color:#5f7386; font-size:12px; }.intro-actions,.legend { display:flex; align-items:center; gap:7px; flex-wrap:wrap; }.team-layout { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr); gap:17px; align-items:start; }
.orders-overview { display:flex; align-items:center; justify-content:space-between; gap:22px; margin:0 0 17px; }.orders-overview p { margin:0 0 3px; color:#385a73; font-size:13px; font-weight:600; }.orders-overview small { color:#6b7e8f; font-size:11px; }.orders-grid .numeric { text-align:right; font-variant-numeric:tabular-nums; }.orders-grid .order-number { width:17%; }.orders-grid .order-customer { width:28%; }.orders-grid .order-status { width:18%; }.orders-grid .order-money { width:11%; }.orders-grid .order-action { width:78px; }.table-action { display:inline-flex; min-height:27px; align-items:center; padding:4px 8px; color:#245f90; border:1px solid #9ec6e3; border-radius:3px; background:#f7fbfe; font-size:11px; font-weight:700; text-decoration:none; }.table-action:hover { color:#fff; background:#2f7fbd; border-color:#1d679e; }.orders-panel tbody tr { transition:background-color 150ms ease-out; }
.entry-form { max-width:1000px; background:var(--panel-strong); border:1px solid var(--line); box-shadow:0 4px 10px rgba(51,71,87,.08); }.entry-form.compact { padding:0 17px 17px; }.form-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; padding:15px 17px 13px; background:#edf3f8; border-bottom:1px solid var(--line); }.form-hint { margin:0 0 5px; color:#406b89; font-size:10px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }.form-heading h2 { margin:0 0 4px; color:#294b63; font-size:17px; letter-spacing:-.02em; }.form-heading p:not(.form-hint) { max-width:590px; margin:0; color:var(--muted); font-size:12px; }.quiet-link { color:#245f90; font-size:12px; font-weight:700; text-decoration:none; white-space:nowrap; }.form-grid { display:grid; gap:13px 15px; padding:17px; }.form-grid.two { grid-template-columns:repeat(2,minmax(0,1fr)); }.form-grid label { display:grid; gap:5px; color:#405d73; font-size:11px; font-weight:700; }.form-grid .wide { grid-column:1 / -1; } input,select,textarea { width:100%; padding:7px 8px; color:var(--ink); background:#fff; border:1px solid #aebfcd; border-radius:3px; font:500 13px "IBM Plex Sans",sans-serif; } textarea { resize:vertical; line-height:1.45; } input::placeholder,textarea::placeholder { color:#8496a5; } input:focus,select:focus,textarea:focus { outline:3px solid rgba(74,151,211,.25); border-color:var(--blue); }.check-field { display:flex !important; grid-template-columns:18px 1fr; align-items:start; min-height:47px; padding:9px; background:#f0f6fb; border:1px solid #c9dbe9; border-radius:3px; }.check-field input { width:15px; height:15px; margin:1px 0 0; accent-color:var(--blue); }.check-field span { display:grid; gap:2px; }.check-field small { color:var(--muted); font-size:10px; font-weight:500; line-height:1.35; } fieldset { min-width:0; margin:0; padding:0; border:0; } fieldset + fieldset { border-top:1px solid var(--line-soft); } legend { padding:14px 17px 0; color:#31566f; font-size:13px; font-weight:700; } legend span { color:var(--muted); font-size:11px; font-weight:500; }.form-actions { display:flex; align-items:center; gap:13px; padding:13px 17px 17px; border-top:1px solid var(--line-soft); }.form-actions span { color:var(--muted); font-size:11px; }.password-field { position:relative; display:block; }.password-field input { padding-right:110px; }.password-toggle { position:absolute; top:50%; right:3px; padding:5px 7px; color:#245f90; background:transparent; border:0; border-radius:3px; font:700 10px "IBM Plex Sans",sans-serif; cursor:pointer; transform:translateY(-50%); }.password-toggle:hover { background:#e4f0f9; }
.calculation-note { display:grid; align-content:center; gap:3px; min-height:48px; padding:8px 10px; color:#536f85; background:#f1f6fa; border:1px solid #c7d8e5; border-radius:3px; font-size:11px; }.calculation-note strong { color:#31566f; font-size:11px; }.calculation-note span { color:#6b7f90; }
.operation-rate-grid { grid-template-columns:minmax(280px,2fr) minmax(170px,1fr) minmax(150px,.75fr); align-items:end; }
.parts-review-wrap { margin:12px 17px 0; overflow-x:auto; border:1px solid var(--line); }.parts-review { min-width:1030px; }.parts-review th { padding:6px 7px; text-align:center; }.parts-review td { padding:4px; background:#fafdff; }.parts-review tbody tr:hover td { background:#e6f2fb; }.parts-review input,.parts-review select { min-width:62px; padding:5px 6px; border-color:#bac9d5; font-size:11px; }.parts-review td:nth-child(6) input { min-width:120px; }.parts-review td:nth-child(7) select { min-width:165px; }.parts-review td:nth-child(9) input { min-width:110px; }.row-number { width:32px; color:#315e80; background:#e7f0f7 !important; font:500 11px "DM Mono",monospace; text-align:center; }.cell-check { width:45px; text-align:center; }.cell-check input { width:15px; height:15px; min-width:0; accent-color:var(--blue); }.part-notes { padding:13px 17px 17px; }.part-notes label { display:grid; gap:5px; color:#405d73; font-size:11px; font-weight:700; }
.position-table-wrap { padding:12px 17px 10px; }.position-table { border:1px solid var(--line); }.position-table th { text-align:left; }.position-table td { padding:5px; background:#fafdff; }.position-table input,.position-table select { min-width:0; padding:5px 6px; font-size:11px; }.position-table td:nth-child(1) { width:36%; }.position-table td:nth-child(2) { width:64%; }
.position-workspace { max-width:1000px; margin:0 0 14px; background:var(--panel-strong); border:1px solid var(--line); box-shadow:0 3px 8px rgba(51,71,87,.06); }.position-workspace-head { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:12px 16px; background:#edf3f8; border-bottom:1px solid var(--line); }.position-workspace-head h2 { margin:0; color:#294b63; font-size:15px; letter-spacing:-.02em; }.position-workspace-head p:not(.form-hint) { margin:3px 0 0; color:var(--muted); font-size:11px; }.position-tabs,.part-tabs { display:flex; gap:5px; overflow-x:auto; padding:9px 12px; background:#f8fbfd; border-bottom:1px solid var(--line-soft); scrollbar-color:#9eafbe #d9e2ea; }.position-tab,.part-tab { display:grid; flex:0 0 auto; min-width:160px; gap:2px; padding:7px 9px; color:#385a73; background:#eef4f8; border:1px solid #b8cad8; border-radius:3px 3px 0 0; font-size:11px; font-weight:700; line-height:1.2; text-decoration:none; }.position-tab:hover,.part-tab:hover { color:#1e5d8e; background:#e1f0fb; }.position-tab.active,.part-tab.active { color:#1b577f; background:var(--blue-soft); border-color:#79afd3; box-shadow:inset 0 2px 0 var(--blue); }.position-tab small { color:#61788a; font-size:10px; font-weight:500; }.tab-index,.part-tab > span { display:inline-grid; width:16px; height:16px; place-items:center; color:#eaf5fd; background:#54768f; border-radius:2px; font:500 10px "DM Mono",monospace; }.position-tab.active .tab-index,.part-tab.active > span { background:#2f7fbd; }.empty-tab-note { padding:5px 2px; color:var(--muted); font-size:11px; }.new-position-form { display:grid; grid-template-columns:minmax(160px,.9fr) minmax(230px,1.25fr) minmax(235px,1.3fr) auto; gap:9px; align-items:end; padding:12px; background:#f4f9fd; border-top:1px solid #c7dce9; }.new-position-form label { display:grid; gap:4px; color:#405d73; font-size:10px; font-weight:700; }.new-position-form input,.new-position-form select { padding:5px 6px; font-size:11px; }.new-position-edges { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; min-width:0; margin:0; padding:0; border:0; }.new-position-edges legend { grid-column:1/-1; padding:0; color:#405d73; font-size:10px; font-weight:700; }.new-position-edges legend small { color:#718394; font-size:10px; font-weight:500; }.new-position-edges select { min-width:0; }.new-position-actions { display:flex; align-items:center; gap:7px; }.quiet-button { min-height:31px; padding:6px 9px; color:#315e80; background:#f8fbfd; border:1px solid #a5c3d8; border-radius:3px; font:700 11px "IBM Plex Sans",sans-serif; cursor:pointer; }.quiet-button:hover { color:#fff; background:#54768f; }.part-tabs { margin:0 17px; padding-right:17px; padding-left:17px; background:#fff; border:1px solid var(--line); border-bottom:0; }.part-tab { display:flex; align-items:center; min-width:0; padding:5px 8px; border-radius:3px; white-space:nowrap; }.part-tab.add-part { color:#245f90; background:#f7fbfe; border-style:dashed; }.no-position-callout { margin:14px 17px; padding:10px 12px; color:#6b571f; background:#fff9e8; border:1px solid #e5cf90; font-size:12px; }.operation-table-wrap { padding:12px 17px 16px; }.operation-table { border:1px solid var(--line); }.operation-table th { text-align:left; }.operation-table td { padding:6px 8px; background:#fafdff; font-size:11px; }.operation-table td:first-child { width:42px; color:#315e80; font-family:"DM Mono",monospace; text-align:center; }.operation-code { display:inline-grid; min-width:27px; place-items:center; padding:2px 4px; color:#245f90; background:#e2f0fa; border:1px solid #a9cce4; border-radius:2px; font:500 10px "DM Mono",monospace; }.add-edge-form { display:flex; align-items:end; gap:8px; margin-top:9px; }.add-edge-form label { display:grid; min-width:290px; gap:4px; color:#405d73; font-size:10px; font-weight:700; }.add-edge-form select { padding:5px 6px; font-size:11px; }
.work-table-wrap { padding:12px 17px 16px; }.work-table { overflow:hidden; border:1px solid var(--line); }.work-table th { text-align:left; }.work-table td { padding:5px; background:#fafdff; }.work-table input,.work-table select { min-width:0; padding:5px 6px; font-size:11px; }.work-table td:nth-child(1) { min-width:210px; }.work-table td:nth-child(2) { min-width:180px; }.work-table td:nth-child(3) { min-width:90px; }.add-work { margin-top:9px; }.inline-note { margin:9px 0 0; color:var(--muted); font-size:11px; }.inline-note a { color:#245f90; font-weight:700; }.cost-summary { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); margin:12px 17px 17px; border:1px solid var(--line); }.cost-summary > div { display:grid; gap:3px; min-height:91px; padding:11px; background:#fbfdff; border-right:1px solid var(--line-soft); }.cost-summary > div:last-child { border-right:0; }.cost-summary span,.cost-summary label { color:#5c7284; font-size:10px; font-weight:700; }.cost-summary strong { color:#285f8b; font:500 19px "DM Mono",monospace; letter-spacing:-.06em; }.cost-summary small { color:#748594; font-size:10px; line-height:1.35; }.cost-summary label { display:grid; gap:4px; }.cost-summary input { padding:4px 5px; font-size:11px; }.cost-summary .suggested-price { background:#edf6fd; }
.login-page { display:grid; min-height:100vh; padding:25px; background:#526575; place-items:center; }.login-shell { display:grid; grid-template-columns:1fr 1fr; width:min(930px,100%); min-height:500px; background:#f8fafc; border:1px solid #8da0b0; box-shadow:0 12px 35px rgba(25,42,56,.25); }.login-intro { display:flex; flex-direction:column; padding:37px; color:#eaf3f9; background:#3f5668; }.login-intro .brand { min-height:auto; margin:-37px -37px auto; background:#455f72; }.login-intro h1 { margin:63px 0 14px; font-size:clamp(35px,5vw,55px); letter-spacing:-.04em; line-height:1; }.login-intro p { max-width:340px; color:#cadde8; line-height:1.55; }.login-intro small { margin-top:auto; color:#a9c1d1; line-height:1.5; }.login-card { align-self:center; padding:clamp(32px,6vw,62px); }.login-card h2 { margin:4px 0 6px; color:#294b63; font-size:28px; letter-spacing:-.04em; }.login-card > p:not(.form-hint) { margin:0 0 24px; color:var(--muted); }.login-card form { display:grid; gap:15px; }.login-card label { display:grid; gap:6px; color:#405d73; font-size:11px; font-weight:700; }.login-card .primary-button { min-height:42px; margin-top:3px; }.form-error { margin-bottom:16px; padding:10px 11px; color:#813b36; background:#fff0ee; border:1px solid #e5bbb7; font-size:12px; font-weight:700; }
button:focus-visible,a:focus-visible { outline:3px solid var(--focus); outline-offset:3px; }
@media (max-width:900px) { .sidebar { width:64px; }.brand { justify-content:center; padding:18px 0; }.brand > span:last-child,.nav-label,.nav-count,.sidebar-foot { display:none; }.sidebar nav { padding:12px 8px; }.nav-item { display:grid; grid-template-columns:1fr; justify-items:center; padding:0; }.nav-icon { width:19px; height:19px; }.main-content { margin-left:64px; }.dashboard-grid,.team-layout { grid-template-columns:1fr; }.login-shell { grid-template-columns:1fr; }.login-intro { min-height:280px; }.login-intro h1 { margin:33px 0 10px; } }
@media (max-width:1080px) { .daily-metrics { grid-template-columns:repeat(3,minmax(0,1fr)); }.daily-metrics article:nth-child(3) { border-right:0; }.daily-metrics article:nth-child(-n+3) { border-bottom:1px solid var(--line-soft); }.schedule-layout { grid-template-columns:1fr; } }
@media (max-width:640px) { .main-content { margin:0; padding:16px 12px 35px; }.sidebar { position:static; width:100%; height:auto; }.brand { justify-content:flex-start; min-height:58px; padding:9px 13px; }.brand > span:last-child { display:block; }.brand-mark { width:31px; height:31px; }.sidebar nav { grid-template-columns:repeat(5,minmax(0,1fr)); padding:6px; }.nav-item { min-height:35px; }.topbar { align-items:flex-start; min-height:60px; margin-bottom:14px; }.topbar h1 { font-size:22px; }.workspace-meta { display:none; }.dispatch-strip { display:block; padding:15px; }.dispatch-actions { align-items:flex-start; flex-direction:column; gap:8px; margin-top:12px; }.action-button { margin-top:0; }.metrics { grid-template-columns:1fr; }.metrics article { min-height:0; padding:11px 13px; border-right:0; border-bottom:1px solid var(--line-soft); }.metrics article:last-child { border-bottom:0; }.page-intro { align-items:flex-start; flex-direction:column; }.grid-caption { align-items:flex-start; flex-direction:column; gap:2px; }.data-grid th,.data-grid td { padding-right:10px; padding-left:10px; white-space:nowrap; }.form-heading,.form-actions { align-items:flex-start; flex-direction:column; }.form-grid.two,.operation-rate-grid { grid-template-columns:1fr; }.form-grid .wide { grid-column:auto; }.login-page { padding:0; }.login-shell { min-height:100vh; border:0; }.login-intro { min-height:250px; padding:28px; }.login-intro .brand { margin:-28px -28px auto; }.login-card { padding:32px 28px; } }
@media (max-width:760px) { .calendar-week { grid-template-columns:repeat(2,minmax(0,1fr)); }.calendar-day { min-height:0; border-bottom:1px solid var(--line-soft); }.calendar-day:nth-child(2n) { border-right:0; }.calendar-day:last-child { border-bottom:0; } }
@media (max-width:980px) { .cost-summary { grid-template-columns:repeat(3,minmax(0,1fr)); }.cost-summary > div:nth-child(3n) { border-right:0; }.cost-summary > div:nth-child(-n+3) { border-bottom:1px solid var(--line-soft); } }
@media (max-width:760px) { .cost-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }.cost-summary > div { border-right:1px solid var(--line-soft); }.cost-summary > div:nth-child(2n) { border-right:0; }.cost-summary > div:nth-child(-n+4) { border-bottom:1px solid var(--line-soft); } }
@media (max-width:760px) { .position-workspace-head { align-items:flex-start; flex-direction:column; }.position-workspace-head .table-action { width:100%; }.operation-grid { min-width:680px; }.new-position-form { grid-template-columns:1fr; }.new-position-actions { grid-column:auto; }.add-edge-form { align-items:stretch; flex-direction:column; }.add-edge-form label { min-width:0; } }
@media (max-width:640px) { .orders-overview { align-items:flex-start; flex-direction:column; gap:10px; }.orders-overview .primary-button { width:100%; }.orders-grid .numeric { text-align:left; } }

/* Edytor zlecenia: pozycja jest centrum pracy. */
.order-editor { max-width:1180px; overflow:hidden; }
.order-details { border-bottom:1px solid var(--line); background:#f8fbfd; }
.order-details summary { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:11px 17px; color:#31566f; cursor:pointer; list-style:none; }
.order-details summary::-webkit-details-marker { display:none; }
.order-details summary > span:first-child { display:grid; gap:1px; }.order-details summary strong { font-size:12px; }.order-details summary small { color:#718392; font:500 10px "DM Mono",monospace; }
.details-toggle { color:#245f90; font-size:11px; font-weight:700; }.order-details[open] .details-toggle { color:#6d7e8d; }
.order-details .form-grid { padding-top:7px; }.order-details:not([open]) .form-grid { display:none; }.order-details-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }.new-order-details-grid { grid-template-columns:minmax(280px,1.35fr) minmax(180px,.85fr) minmax(240px,1.15fr); align-items:start; }.new-order-info { min-height:0; align-content:start; }.new-order-info span { max-width:34ch; line-height:1.35; }.order-notes { grid-column:1/-1; color:#405d73; font-size:11px; font-weight:700; }.order-notes summary { padding:0; color:#315e80; cursor:pointer; list-style:none; }.order-notes summary::-webkit-details-marker { display:none; }.order-notes summary::after { content:'Pokaż'; margin-left:7px; color:#728393; font-size:10px; font-weight:500; }.order-notes[open] summary { margin-bottom:6px; }.order-notes[open] summary::after { content:'Ukryj'; }
.order-editor .position-workspace { max-width:none; margin:0; border:0; border-bottom:1px solid var(--line); box-shadow:none; }
.order-editor .position-workspace-head { padding:13px 17px 10px; background:#fff; }.order-editor .position-workspace-head h2 { font-size:16px; }
.operation-grid-wrap { overflow-x:auto; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }.operation-grid { width:100%; min-width:760px; border-collapse:collapse; background:#fff; font-size:11px; }.operation-grid th { padding:7px 10px; color:#526f84; background:#edf3f8; border-bottom:1px solid var(--line); font:700 10px "IBM Plex Sans",sans-serif; letter-spacing:.02em; text-align:left; text-transform:uppercase; }.operation-grid th:first-child,.operation-grid td:first-child { width:42px; text-align:center; }.operation-grid th:nth-child(2),.operation-grid td:nth-child(2) { width:48px; text-align:center; }.operation-grid td { padding:8px 10px; color:#496277; border-bottom:1px solid var(--line-soft); vertical-align:middle; }.operation-grid tbody tr:last-child td { border-bottom:0; }.operation-grid tbody tr:hover td { background:#f2f8fc; }.operation-grid tbody tr.active td { color:#173f5c; background:var(--blue-soft); }.operation-grid tbody tr.active td:first-child { box-shadow:inset 3px 0 0 var(--blue); }.operation-grid td a { display:block; margin:-8px -10px; padding:8px 10px; color:#1d5c89; font-weight:700; text-decoration:none; }.operation-grid td a:hover { color:#123f62; text-decoration:underline; }.operation-grid-empty td { padding:13px 10px; color:var(--muted); text-align:left !important; }.operation-grid .operation-code { min-width:29px; }.new-position-form[hidden] { display:none; }
.position-board { background:#fff; }.position-board > .position-panel + .position-panel { border-top:1px solid var(--line-soft); }.collapsible-panel > summary { display:flex; align-items:stretch; cursor:pointer; list-style:none; }.collapsible-panel > summary::-webkit-details-marker { display:none; }.collapsible-panel > summary:focus-visible { outline:3px solid var(--focus); outline-offset:-3px; }.collapsible-panel .panel-heading { flex:1; }.disclosure-mark { position:relative; flex:none; width:18px; height:18px; margin:16px 17px 0 0; border:1px solid #7fa9c7; border-radius:3px; background:#f7fbfe; }.disclosure-mark::before,.disclosure-mark::after { position:absolute; top:50%; left:50%; width:8px; height:1px; background:#245f90; content:""; transform:translate(-50%,-50%); }.disclosure-mark::after { transform:translate(-50%,-50%) rotate(90deg); }.collapsible-panel[open] .disclosure-mark::after { display:none; }
.locked-material { min-width:165px; color:#526f84; background:#edf4f8 !important; font-size:10px; line-height:1.3; }.locked-material span { display:block; min-width:150px; }
.position-panel { min-height:0; padding:0 0 20px; }.panel-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; padding:15px 17px 10px; }.panel-heading h3 { margin:0; color:#31566f; font-size:14px; letter-spacing:-.01em; }.panel-heading p { max-width:690px; margin:3px 0 0; color:var(--muted); font-size:11px; }.panel-state { padding:3px 6px; color:#36714f; background:#edf8f0; border:1px solid #a9cfb4; border-radius:3px; font-size:10px; font-weight:700; }.position-panel .position-table-wrap { padding-top:4px; }.materials-table-wrap { padding:0 17px; }.position-panel .operation-table { margin-top:11px; }.position-panel .add-edge-form { margin-top:10px; }.edge-remove { color:#7b413d; border-color:#d8aaa5; background:#fff7f6; }.edge-remove:hover { color:#fff; background:#944b47; border-color:#813b36; }
.material-apply-actions { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:10px; padding:10px; color:#587184; background:#f4f9fd; border:1px solid #c7dce9; font-size:11px; }.material-apply-actions .primary-button { flex:none; }
.source-upload-grid { display:grid; grid-template-columns:minmax(240px,1.2fr) auto minmax(210px,.9fr); gap:10px; align-items:stretch; padding:0 17px 12px; }.upload-dropzone { display:grid; gap:4px; min-height:76px; padding:12px; color:#31566f; background:#f7fbfe; border:1px dashed #86b5d7; border-radius:3px; cursor:pointer; }.upload-dropzone:hover { background:#eaf5fc; border-color:#2f7fbd; }.upload-dropzone input { position:absolute; width:1px; height:1px; padding:0; border:0; clip:rect(0 0 0 0); overflow:hidden; white-space:nowrap; }.upload-dropzone strong { font-size:12px; }.upload-dropzone span,.ai-placeholder span { color:#728393; font-size:10px; line-height:1.35; }.source-upload-grid .primary-button { align-self:center; }.ai-placeholder { display:grid; align-content:center; gap:3px; padding:10px 12px; color:#70613d; background:#fff9e9; border:1px solid #e7d59d; border-radius:3px; }.ai-placeholder strong { font-size:11px; }.attachment-list { display:grid; gap:6px; padding:0 17px; }.attachment-list a { display:flex; align-items:center; gap:9px; padding:8px 10px; color:#31566f; background:#fbfdff; border:1px solid var(--line-soft); text-decoration:none; }.attachment-list a:hover { background:var(--blue-pale); border-color:#a9cce4; }.attachment-list a > span:last-child { display:grid; gap:1px; min-width:0; }.attachment-list strong { overflow:hidden; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }.attachment-list small { color:#708292; font:500 10px "DM Mono",monospace; }.attachment-icon { display:grid; flex:none; width:31px; height:25px; place-items:center; color:#245f90; background:#e4f1fa; border:1px solid #aacde4; font:500 8px "DM Mono",monospace; }.empty-panel-note { margin:0 17px; padding:11px; color:#6f8090; background:#f7fafc; border:1px dashed #c4d2dc; font-size:11px; }
.order-save-bar { position:sticky; bottom:0; z-index:1; padding:11px 17px; background:#f7fafc; box-shadow:0 -5px 12px rgba(50,70,85,.08); }.order-save-bar .primary-button { min-width:155px; }
@media (max-width:760px) { .source-upload-grid { grid-template-columns:1fr; }.source-upload-grid .primary-button { width:100%; }.order-details summary { align-items:flex-start; flex-direction:column; }.details-toggle { align-self:flex-end; }.order-details-grid { grid-template-columns:1fr; } }
@media (max-width:640px) { .material-apply-actions { align-items:stretch; flex-direction:column; }.material-apply-actions .primary-button { width:100%; } }

/* D41: dodatkowa okleina pozostaje częścią jednej tabeli materiałów pozycji. */
.position-materials-table .add-edge-row td { background:#f3f9fd; }
.position-materials-table .add-edge-row select { width:100%; min-width:180px; padding:5px 6px; font-size:11px; }
.position-materials-table .add-edge-row td:nth-child(3) { color:#607888; font-size:10px; }

/* D42: katalog jest płaską bazą danych, a nie drugim formularzem GibLab. */
.material-catalog-grid { grid-template-columns:minmax(190px,1.8fr) minmax(145px,1.2fr) 82px repeat(4,minmax(110px,1fr)) minmax(100px,.9fr); align-items:end; }
.material-actions { display:flex; flex-wrap:wrap; gap:5px; min-width:150px; }.material-actions form { margin:0; }.material-actions .table-action { min-height:25px; padding:3px 6px; }.table-locked { display:inline-flex; align-items:center; min-height:25px; padding:3px 6px; color:#6f7e8f; background:#eef2f5; border:1px solid #c7d2da; border-radius:3px; font-size:10px; font-weight:700; }.shelf-form { margin-bottom:16px; }.shelf-rule-grid { grid-template-columns:120px minmax(180px,1.2fr) minmax(150px,1fr) minmax(170px,1fr); }.unit-settings-list { display:grid; gap:0; border-top:1px solid var(--line); }.unit-setting-row { display:grid; grid-template-columns:130px minmax(200px,1fr) minmax(110px,.45fr); gap:10px; align-items:end; padding:11px 17px; border-bottom:1px solid var(--line-soft); }.unit-setting-row strong { padding-bottom:7px; color:#31566f; font:500 11px "DM Mono",monospace; }.unit-setting-row label { display:grid; gap:4px; color:#405d73; font-size:10px; font-weight:700; }.unit-setting-row input { min-width:0; padding:6px 7px; font-size:12px; }.material-label { display:grid; grid-template-columns:1.4fr .8fr; max-width:640px; border:1px solid var(--line); background:#fff; }.material-label > div { display:grid; gap:4px; min-height:132px; padding:20px; border-right:1px solid var(--line); }.material-label > div:last-child { border-right:0; background:#edf6fd; }.material-label span,.material-label small { color:#5c7284; font-size:11px; }.material-label h2 { margin:0; color:#294b63; font-size:23px; }.material-label strong { color:#245f90; font:500 24px "DM Mono",monospace; }
.material-purchase-section { margin:0 17px 17px; padding:13px 14px; background:#f4f9fd; border:1px solid #c7dce9; }.material-purchase-section h3 { margin:0; color:#31566f; font-size:13px; }.material-purchase-section > div:first-child p { max-width:680px; margin:3px 0 11px; color:#587184; font-size:11px; line-height:1.4; }.material-specification { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; margin:0 0 11px; }.material-specification[hidden] { display:none; }.material-specification label { display:grid; gap:4px; color:#405d73; font-size:10px; font-weight:700; }.material-specification input { min-width:0; padding:6px 7px; font-size:12px; }.material-specification .field-hint { align-self:end; margin:0 0 7px; color:#587184; font-size:11px; line-height:1.4; }.unit-suffix { color:#587184; font-size:.82em; font-weight:400; }.material-purchase-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; }.material-purchase-grid label { display:grid; gap:4px; color:#405d73; font-size:10px; font-weight:700; }.material-purchase-grid input,.material-purchase-grid select { min-width:0; padding:6px 7px; font-size:12px; }.purchase-preview { margin:10px 0 0; padding:8px 10px; color:#31566f; background:#fff; border:1px dashed #9cbcd2; font-size:11px; line-height:1.45; }
.material-cost-breakdown { margin:0 17px 17px; border:1px solid var(--line); }.material-cost-breakdown h4 { margin:0; padding:9px 11px; color:#31566f; background:#edf3f8; border-bottom:1px solid var(--line); font-size:11px; }.material-cost-breakdown th,.material-cost-breakdown td { font-size:10px; }.material-cost-breakdown th:nth-child(2),.material-cost-breakdown th:nth-child(3),.material-cost-breakdown td:nth-child(2),.material-cost-breakdown td:nth-child(3) { text-align:right; white-space:nowrap; }.material-cost-breakdown p { margin:0; padding:8px 11px; color:#687e8f; background:#f8fbfd; border-top:1px solid var(--line-soft); font-size:10px; }
@media (max-width:760px) { .material-purchase-grid,.material-specification { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:480px) { .material-purchase-grid,.material-specification { grid-template-columns:1fr; }.material-purchase-section { margin-right:12px; margin-left:12px; } }
@media (max-width:760px) { .shelf-rule-grid,.unit-setting-row,.material-label { grid-template-columns:1fr; }.unit-setting-row strong { padding-bottom:0; }.material-label > div { min-height:0; border-right:0; border-bottom:1px solid var(--line); }.material-label > div:last-child { border-bottom:0; } }
.material-catalog-grid input,.material-catalog-grid select { min-width:0; }
.material-catalog-grid .material-texture { grid-column:1/-1; padding:6px 8px; }
.catalog-filters { display:grid; grid-template-columns:minmax(190px,1.5fr) repeat(3,minmax(135px,1fr)) auto auto; gap:8px; align-items:end; margin:0 0 12px; padding:10px 12px; background:#f7fbfe; border:1px solid var(--line); }
.catalog-filters label { display:grid; gap:4px; color:#405d73; font-size:10px; font-weight:700; }
.catalog-filters input,.catalog-filters select { min-width:0; padding:5px 6px; font-size:11px; }
.catalog-filters .quiet-link { padding:6px 0; white-space:nowrap; }
.technical-code { display:block; margin-top:2px; color:#7a8b99; font:500 10px "DM Mono",monospace; }
.customer-order-field > label { display:grid; gap:5px; color:#405d73; font-size:11px; font-weight:700; }.quick-customer-entry { margin-top:7px; }.quick-customer-entry summary { color:#245f90; font-size:10px; font-weight:700; cursor:pointer; }.quick-customer-entry > div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; margin-top:8px; padding:9px; background:#f4f9fd; border:1px solid #c7dce9; }.quick-customer-entry label { display:grid; gap:3px; color:#405d73; font-size:10px; font-weight:700; }.quick-customer-entry .wide { grid-column:1/-1; }.quick-customer-entry input { min-width:0; padding:6px 7px; font-size:12px; }.quick-customer-entry .table-action { justify-self:start; }
.quick-position-material-entry,.quick-position-name-entry { margin-top:7px; }.quick-position-material-entry summary,.quick-position-name-entry summary { color:#245f90; font-size:10px; font-weight:700; cursor:pointer; }.quick-position-material-entry > div,.quick-position-name-entry > div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; margin-top:8px; padding:9px; background:#f4f9fd; border:1px solid #c7dce9; }.quick-position-material-entry label,.quick-position-name-entry label { display:grid; gap:3px; color:#405d73; font-size:10px; font-weight:700; }.quick-position-material-entry .quick-material-name,.quick-position-name-entry .quick-position-name { grid-column:1/-1; }.quick-position-material-entry input,.quick-position-name-entry input { min-width:0; padding:6px 7px; font-size:12px; }.quick-position-material-entry .table-action,.quick-position-name-entry .table-action { justify-self:start; }
.quick-inline-entry { margin-top:10px; }.quick-inline-entry summary { color:#245f90; font-size:11px; font-weight:700; cursor:pointer; }.quick-inline-entry > div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; margin-top:8px; padding:10px; background:#f4f9fd; border:1px solid #c7dce9; }.quick-inline-entry label { display:grid; gap:3px; color:#405d73; font-size:10px; font-weight:700; }.quick-inline-entry input,.quick-inline-entry select { min-width:0; padding:6px 7px; font-size:12px; }.quick-inline-entry .quick-inline-wide { grid-column:1/-1; }.quick-inline-entry .table-action { justify-self:start; }
@media (max-width:640px) { .quick-customer-entry > div { grid-template-columns:1fr; }.quick-customer-entry .wide { grid-column:auto; } }
@media (max-width:640px) { .quick-inline-entry > div { grid-template-columns:1fr; }.quick-inline-entry .quick-inline-wide { grid-column:auto; } }
@media (max-width:1080px) { .material-catalog-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }.catalog-filters { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:640px) { .material-catalog-grid,.catalog-filters { grid-template-columns:1fr; } }
@media (max-width:640px) { .parts-review-wrap { margin:9px 12px 0; overflow:visible; border:0; }.parts-review { display:block; min-width:0; }.parts-review thead { display:none; }.parts-review tbody,.parts-review tr { display:block; }.parts-review tr { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 7px; padding:8px; background:#fafdff; border:1px solid var(--line); border-radius:3px; }.parts-review td { display:grid; gap:3px; min-width:0; padding:4px; background:transparent !important; border:0; }.parts-review td::before { color:#587185; font-size:9px; font-weight:700; text-transform:uppercase; }.parts-review td:nth-child(1)::before { content:'Nr'; }.parts-review td:nth-child(2)::before { content:'Długość [mm]'; }.parts-review td:nth-child(3)::before { content:'Szerokość [mm]'; }.parts-review td:nth-child(4)::before { content:'Ilość'; }.parts-review td:nth-child(5)::before { content:'Tekstura'; }.parts-review td:nth-child(6)::before { content:'Nazwa'; }.parts-review td:nth-child(7)::before { content:'Materiał pozycji'; }.parts-review td:nth-child(8)::before { content:'Grubość [mm]'; }.parts-review td:nth-child(9)::before { content:'Okleina górna'; }.parts-review td:nth-child(10)::before { content:'Okleina dolna'; }.parts-review td:nth-child(11)::before { content:'Okleina lewa'; }.parts-review td:nth-child(12)::before { content:'Okleina prawa'; }.parts-review td:nth-child(13)::before { content:'Zatwierdzona'; }.parts-review td:nth-child(6),.parts-review td:nth-child(7) { grid-column:1/-1; }.parts-review input,.parts-review select,.parts-review td:nth-child(6) input { width:100%; min-width:0; }.parts-review .locked-material span { min-width:0; }.parts-review .row-number { width:auto; text-align:left; }.parts-review .cell-check { width:auto; text-align:left; justify-items:start; }.part-notes { padding:12px; } }

/* Czytelność edytora: stół operacji prowadzi do jednego, jasno oznaczonego panelu niżej. */
.order-details summary small { font-size:11px; line-height:1.4; }.order-editor .position-workspace-head { padding:15px 17px 12px; }.order-editor .position-workspace-head h2 { font-size:17px; }.position-workspace-head p:not(.form-hint) { font-size:12px; line-height:1.4; }
.operation-grid { font-size:12px; }.operation-grid th { padding:8px 10px; font-size:11px; }.operation-grid td { padding:9px 10px; line-height:1.35; }.operation-grid tbody tr.active td { color:#173f5c; background:#d9ebf8; box-shadow:inset 0 1px 0 #8fbee0,inset 0 -1px 0 #8fbee0; }.operation-grid tbody tr.active td:first-child { box-shadow:inset 0 1px 0 #8fbee0,inset 0 -1px 0 #8fbee0; font-weight:700; }.operation-grid td a { margin:-9px -10px; padding:9px 10px; }.operation-grid .operation-code { font-size:11px; }
.active-operation-context { display:flex; flex-wrap:wrap; align-items:center; gap:6px 12px; padding:10px 17px; color:#355a74; background:#f1f8fd; border-bottom:1px solid #b8d6ea; font-size:12px; }.active-operation-context strong { color:#1d5c89; font:500 11px "DM Mono",monospace; }.active-operation-context span + span { padding-left:12px; border-left:1px solid #bdd2e1; }.position-panel[open] > summary { background:#f7fbfe; }.panel-heading { padding:17px 17px 11px; }.panel-heading h3 { font-size:15px; }.panel-heading p { font-size:12px; line-height:1.45; }.disclosure-mark { width:20px; height:20px; margin-top:17px; }.position-panel .parts-review th { font-size:11px; }.position-panel .parts-review input,.position-panel .parts-review select { min-height:29px; padding:5px 6px; font-size:12px; }.locked-material { font-size:11px; }
.workflow-steps { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); background:#f7fafc; border-bottom:1px solid var(--line); }.workflow-step { display:grid; gap:3px; min-width:0; padding:10px 12px; color:#47677f; border-right:1px solid var(--line-soft); text-decoration:none; transition:background-color .16s ease,color .16s ease; }.workflow-step:last-child { border-right:0; }.workflow-step:hover { color:#1d5c89; background:#edf6fc; }.workflow-step span { overflow:hidden; font-size:12px; font-weight:700; text-overflow:ellipsis; white-space:nowrap; }.workflow-step small { overflow:hidden; color:#708494; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }.workflow-step.active { color:#174f77; background:#dceefa; box-shadow:inset 0 3px 0 #2f7fbd; }.workflow-step.active small { color:#28668f; }.workflow-step:focus-visible { position:relative; z-index:1; outline:3px solid var(--focus); outline-offset:-3px; }.workflow-panel { min-height:230px; }.workflow-panel .material-apply-actions { margin:0 17px; }
.workflow-summary-heading { margin:20px 17px 0; padding-top:15px; border-top:1px solid var(--line-soft); }.workflow-summary-heading h4 { margin:0; color:#31566f; font-size:13px; }.workflow-summary-heading p { margin:3px 0 0; color:var(--muted); font-size:11px; }

/* Tabela kontroli jest arkuszem roboczym: komórki ułatwiają seryjną korektę formatek. */
.parts-grid-help { margin:0 17px; padding:9px 10px; color:#536f85; background:#f1f7fb; border:1px solid #c7dce9; border-bottom:0; font-size:11px; }
.parts-review-wrap { background:#fff; box-shadow:inset 0 1px 0 #fff; }
.parts-review thead th { position:sticky; top:0; z-index:1; color:#294e6b; background:#dcecf8; border-color:#a8c4d7; font-size:10px; letter-spacing:.02em; text-align:center; }
.parts-review tbody tr:nth-child(even) td { background:#f7fbfe; }
.parts-review tbody tr:focus-within td { background:#eef7fd; }
.parts-review td { position:relative; padding:0; background:#fff; transition:background-color .12s ease-out; }
.parts-review td:focus-within { z-index:1; background:#fff; box-shadow:inset 0 0 0 2px var(--blue); }
.parts-review input:not([type="checkbox"]),.parts-review select { min-height:34px; border-color:transparent; border-radius:0; background:transparent; box-shadow:none; }
.parts-review input:not([type="checkbox"]):focus,.parts-review select:focus { outline:0; border-color:transparent; }
.parts-review .row-number { position:relative; background:#e3eff8 !important; border-color:#b7cede; color:#245f90; font-weight:700; }
.parts-review tr:focus-within .row-number { background:#cce4f5 !important; }
.parts-review .locked-material { padding:7px 8px; background:#edf3f7 !important; color:#4d697f; }
.parts-review .cell-check { padding:0; }
.parts-review .cell-check input { width:100%; height:34px; margin:0; cursor:pointer; }

/* Tabela operacji zachowuje porządek GibLab, ale ma wyraźne komórki i stan wybranego zakresu. */
.operation-grid-wrap { background:#fff; }
.operation-grid thead th { color:#294e6b; background:#dcecf8; border-top:1px solid #a8c4d7; border-right:1px solid #b9cede; border-bottom:1px solid #9ebbd0; font-size:10px; letter-spacing:.035em; }
.operation-grid thead th:last-child { border-right:0; }
.operation-grid td,.operation-grid .operation-row-number { border-right:1px solid #d7e2ea; }
.operation-grid td:last-child { border-right:0; }
.operation-grid .operation-row-number { width:42px; color:#315e80; background:#e8f1f8; font:500 11px "DM Mono",monospace; text-align:center; }
.operation-grid tbody tr { transition:background-color .12s ease-out; }
.operation-grid tbody tr.selected-position td { background:#f4f9fd; }
.operation-grid tbody tr.selected-position .operation-row-number { background:#dcecf7; }
.operation-grid tbody tr.active td { color:#173f5c; background:#d9ebf8; box-shadow:inset 0 1px 0 #8fbee0,inset 0 -1px 0 #8fbee0; }
.operation-grid tbody tr.active .operation-row-number { color:#174f77; background:#c8e2f4; box-shadow:inset 3px 0 0 var(--blue),inset 0 1px 0 #8fbee0,inset 0 -1px 0 #8fbee0; font-weight:700; }
.operation-grid tbody tr.active td:last-child { box-shadow:inset -1px 0 0 #8fbee0,inset 0 1px 0 #8fbee0,inset 0 -1px 0 #8fbee0; }
.operation-grid tbody tr:hover td,.operation-grid tbody tr:hover .operation-row-number { background:#eaf5fc; }
.operation-grid tbody tr.active:hover td { background:#d9ebf8; }
.operation-grid tbody tr.active:hover .operation-row-number { background:#c8e2f4; }
.operation-grid td a { color:#1e5f90; }
@media (max-width:640px) { .order-details summary { gap:8px; padding:12px 14px; }.order-details summary small { font-size:10px; }.order-editor .position-workspace-head { padding:15px 14px 12px; }.operation-grid { min-width:0; font-size:12px; }.operation-grid th:nth-child(4),.operation-grid td:nth-child(4),.operation-grid th:nth-child(5),.operation-grid td:nth-child(5) { display:none; }.operation-grid th:first-child,.operation-grid td:first-child { width:32px; }.operation-grid th:nth-child(2),.operation-grid td:nth-child(2) { width:46px; }.operation-grid td { padding-right:8px; padding-left:8px; }.operation-grid td a { margin-right:-8px; margin-left:-8px; padding-right:8px; padding-left:8px; }.active-operation-context { align-items:flex-start; flex-direction:column; gap:3px; padding:10px 14px; }.active-operation-context span + span { padding-left:0; border-left:0; }.panel-heading { padding:15px 14px 10px; }.panel-heading p { max-width:31ch; }.disclosure-mark { margin-right:14px; }.parts-review-wrap { margin-right:14px; margin-left:14px; }.part-notes { padding-right:14px; padding-left:14px; } }
@media (max-width:640px) { .workflow-steps { grid-template-columns:repeat(2,minmax(0,1fr)); }.workflow-step:nth-child(2n) { border-right:0; }.workflow-step:nth-child(-n+4) { border-bottom:1px solid var(--line-soft); }.workflow-panel { min-height:0; }.workflow-panel .material-apply-actions { margin-right:14px; margin-left:14px; } }
