:root{--ink:#151722;--muted:#697386;--line:#e7e9ee;--surface:#fff;--canvas:#f7f8fa;--soft:#f1f3f6;--accent:#f97316;--blue:#2563eb;--green:#159a62;--danger:#dc2626;--shadow:0 14px 34px #12182814}*{box-sizing:border-box}html,body,#root{width:100%;min-width:0;min-height:100%}html,body{overflow-x:hidden}body{background:var(--canvas);color:var(--ink);letter-spacing:0;margin:0;font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.login-page{background:linear-gradient(#ffffffb8,#f7f8faf2),repeating-linear-gradient(90deg,#15172209 0 1px,#0000 1px 80px);width:100%;min-width:0;min-height:100svh;padding:32px;display:block;position:fixed;inset:0;overflow:auto}.login-panel{background:var(--surface);border:1px solid var(--line);width:100%;min-width:0;max-width:920px;box-shadow:var(--shadow);border-radius:8px;padding:34px}.login-page>.login-panel{margin:min(10vh,96px) auto}.login-logo{width:136px;margin-bottom:28px;display:block}.login-panel h1{overflow-wrap:anywhere;margin:0 0 26px;font-size:clamp(28px,4vw,46px);line-height:1}.remote-error-actions{gap:10px;margin-top:20px;display:grid}.login-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.login-card{border:1px solid var(--line);text-align:left;min-height:154px;color:var(--ink);background:#fafafa;border-radius:8px;gap:8px;padding:22px;transition:transform .18s,border-color .18s,box-shadow .18s;display:grid}.login-card:hover{border-color:var(--ink);transform:translateY(-2px);box-shadow:0 12px 26px #1218281a}.login-role,.eyebrow,.sidebar-title{color:#8b94a5;letter-spacing:.32em;text-transform:uppercase;font-size:11px;font-weight:800}.login-card strong{font-size:20px}.login-card small{color:var(--muted);overflow-wrap:anywhere}.app-shell{grid-template-columns:252px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--line);background:var(--surface);flex-direction:column;justify-content:space-between;height:100vh;padding:20px 14px;display:flex;position:sticky;top:0}.brand-box{border:0;place-items:center;width:100%;min-height:38px;margin:0 0 22px;display:grid}.brand-box img{width:72px;display:block}.sidebar-title{margin:0 0 18px}.side-nav{gap:18px;display:grid}.nav-group{gap:6px;display:grid}.nav-group .sidebar-title{margin:0 0 4px}.nav-item{color:#596273;background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;gap:12px;height:44px;padding:0 12px;font-weight:750;display:flex}.nav-item.active{color:var(--ink);border-color:var(--blue);background:#fbfcff}.sidebar-footer{border-top:1px solid var(--line);gap:10px;padding-top:14px;font-size:12px;display:grid}.sidebar-footer strong{text-overflow:ellipsis;overflow:hidden}.role-dot{color:var(--green);text-transform:uppercase;font-weight:800}.main-surface{padding:32px 38px 56px;overflow:hidden}.page-stack{gap:22px;display:grid}.page-header{border-bottom:1px solid var(--line);padding-bottom:22px}.page-header h1{margin:8px 0 6px;font-size:30px;line-height:1.05}.page-header span{color:var(--muted);font-weight:600}.content-grid{gap:18px;display:grid}.content-grid.two-columns{grid-template-columns:minmax(0,1fr) 360px}.panel,.kpi-card{background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:0 1px 2px #1218280a}.form-panel,.side-panel,.backup-panel,.chart-panel,.compact-panel,.cascade-panel,.company-material-panel{padding:22px}.draft-banner{color:#1d4ed8;background:#eff6ff;border:1px solid #dbeafe;border-radius:7px;align-items:center;gap:9px;margin-bottom:16px;padding:11px 13px;font-size:12px;font-weight:850;display:flex}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.field{gap:7px;display:grid}.field span{color:#6f7788;text-transform:uppercase;align-items:center;gap:5px;font-size:12px;font-weight:800;display:inline-flex}.field b{color:var(--danger);margin-left:4px}.field input,.field select,.field textarea,.filters-grid input,.filters-grid select,.audit-filters-grid input,.audit-filters-grid select,.inline-controls input,.cascade-form select,.price-form input,.price-form select{width:100%;min-height:42px;color:var(--ink);background:#fff;border:1px solid #dfe3ea;border-radius:7px;outline:none;padding:0 12px}.field textarea{resize:vertical;padding-top:12px}.field input:focus,.field select:focus,.field textarea:focus,.filters-grid input:focus,.filters-grid select:focus,.audit-filters-grid input:focus,.audit-filters-grid select:focus{border-color:var(--blue);box-shadow:0 0 0 3px #2563eb1f}.field input[readonly],.field select:disabled{background:var(--soft);color:#697386}.span-2{grid-column:span 2}.image-field{background:#fbfcfd;border:1px dashed #d6dbe5;border-radius:8px;gap:12px;padding:14px;display:grid}.image-field-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.image-field-header>span{color:#6f7788;text-transform:uppercase;align-items:center;gap:6px;font-size:12px;font-weight:800;display:inline-flex}.image-field-header small,.muted-cell{color:#98a2b3;font-size:12px;font-weight:850}.image-actions{flex-wrap:wrap;gap:10px;display:flex}.hidden-input{display:none}.image-preview-card,.image-empty-state{border:1px solid var(--line);background:#fff;border-radius:8px;min-height:74px}.image-preview-card{grid-template-columns:82px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px;display:grid}.image-preview-card img{object-fit:cover;border:1px solid var(--line);border-radius:6px;width:82px;height:58px}.image-preview-card strong,.image-preview-card span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.image-preview-card span{color:var(--muted);margin-top:4px;font-size:12px}.image-empty-state{color:#8a94a5;justify-content:center;align-items:center;gap:8px;font-weight:850;display:flex}.image-link-button{border:1px solid var(--line);min-height:32px;color:var(--ink);background:#fff;border-radius:999px;align-items:center;gap:6px;padding:0 10px;font-weight:850;display:inline-flex}.image-modal{max-width:min(980px,96vw)}.image-modal img{object-fit:contain;border:1px solid var(--line);background:#f8fafc;border-radius:8px;width:100%;max-height:72vh;display:block}.image-modal .modal-header span{color:var(--muted);font-weight:700}.actions-row,.inline-controls{align-items:center;gap:10px;display:flex}.actions-row{margin-top:18px}.batch-lines{gap:12px;margin-top:2px;display:grid}.batch-lines-header,.batch-line-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.batch-lines-header{border-bottom:1px solid var(--line);padding-bottom:10px}.batch-lines-header h3{margin:5px 0 0;font-size:18px}.batch-line{background:#fbfcfd;border:1px solid #dfe3ea;border-radius:8px;gap:14px;padding:16px;display:grid}.batch-line-heading strong{font-size:14px}.batch-line-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.batch-line-price{border:1px solid var(--line);background:#fff;border-radius:7px;align-content:center;gap:4px;min-height:68px;padding:10px 12px;display:grid}.batch-line-price span{color:#6f7788;text-transform:uppercase;font-size:11px;font-weight:800}.batch-line-price strong{color:var(--muted);font-size:12px}.batch-line-price b{font-size:16px}.batch-empty{color:#8a94a5;text-align:center;border:1px dashed #d6dbe5;border-radius:8px;place-items:center;min-height:88px;padding:18px;font-weight:800;display:grid}.company-rule-notice{margin-top:0}.primary-button,.ghost-button,.danger-button,.file-button{white-space:nowrap;border:1px solid #0000;border-radius:7px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:0 16px;font-weight:850;display:inline-flex}.text-button{color:#596273;text-align:center;background:0 0;border:0;min-height:34px;font-weight:850}.text-button:hover,.text-button:focus-visible{color:var(--ink);outline:none}.filter-reset-button{min-width:92px}.info-tooltip{color:#7b8493;cursor:help;background:#fff;border:1px solid #d8dde6;border-radius:999px;flex:none;place-items:center;width:19px;height:19px;padding:0;display:inline-grid;position:relative}.info-tooltip:hover,.info-tooltip:focus-visible{color:var(--ink);border-color:var(--ink);outline:none}.tooltip-bubble{z-index:30;color:#475062;text-transform:none;letter-spacing:0;text-align:left;opacity:0;pointer-events:none;visibility:hidden;background:#fff;border:1px solid #d8dde6;border-radius:7px;width:min(280px,100vw - 42px);padding:10px 12px;font-size:12px;font-weight:750;line-height:1.35;display:block;position:absolute;bottom:calc(100% + 9px);left:50%;transform:translate(-50%);box-shadow:0 12px 30px #12182824}.tooltip-bubble:after{content:"";background:#fff;border-bottom:1px solid #d8dde6;border-right:1px solid #d8dde6;width:10px;height:10px;position:absolute;top:100%;left:50%;transform:translate(-50%,-5px)rotate(45deg)}.info-tooltip:hover .tooltip-bubble,.info-tooltip:focus-visible .tooltip-bubble{opacity:1;visibility:visible}.primary-button{background:var(--ink);color:#fff}.primary-button:disabled,.ghost-button:disabled,.danger-button:disabled,.text-button:disabled{cursor:not-allowed;opacity:.58}.ghost-button,.file-button{color:var(--ink);border-color:var(--line);background:#fff}.danger-button{color:#b91c1c;background:#fff1f2;border-color:#fecdd3}.full{width:100%}.icon-button{border:1px solid var(--line);width:38px;height:38px;color:var(--ink);background:#fff;border-radius:7px;flex:none;place-items:center;display:inline-grid}.icon-button.danger{color:var(--danger)}.mini-button{border:1px solid var(--line);color:var(--muted);background:#fff;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:800}.status-message,.notice{border-radius:7px;align-items:center;gap:10px;margin-top:16px;padding:12px 14px;font-weight:750;display:flex}.status-message.success{color:#047857;background:#ecfdf5;border:1px solid #bbf7d0}.status-message.error,.notice.warning{color:#c2410c;background:#fff7ed;border:1px solid #fed7aa}.summary-line{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:14px 0;display:flex}.summary-line span{color:var(--muted);font-weight:700}.summary-line strong{font-size:18px}.quick-add{gap:8px;margin-top:20px;display:grid}.quick-add label{color:var(--muted);text-transform:uppercase;font-size:12px;font-weight:800}.kpi-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.kpi-card{justify-content:space-between;align-items:flex-start;gap:14px;min-height:116px;padding:20px;display:flex}.kpi-card>div:first-child{min-width:0}.kpi-card span{color:#8992a3;text-transform:uppercase;margin-bottom:12px;font-size:12px;font-weight:850;display:block}.kpi-card strong{letter-spacing:0;white-space:nowrap;font-size:clamp(22px,2vw,28px);line-height:1.12}.kpi-icon{background:var(--soft);border-radius:8px;place-items:center;width:38px;height:38px;display:grid}.filters-grid{grid-template-columns:minmax(220px,1.4fr) repeat(5,minmax(118px,1fr)) auto;gap:10px;padding:14px;display:grid}.audit-filter-panel{overflow:hidden}.audit-filters-grid{grid-template-columns:minmax(260px,1.7fr) repeat(5,minmax(126px,1fr)) auto;gap:10px;padding:14px;display:grid}.search-field{position:relative}.search-field svg{color:#9aa3b2;position:absolute;top:12px;left:12px}.search-field input{padding-left:38px}.table-panel{overflow:hidden}.audit-panel{padding:0;overflow:hidden}.audit-list{display:grid}.audit-row{border-bottom:1px solid var(--line)}.audit-row:last-child{border-bottom:0}.audit-row summary{cursor:pointer;grid-template-columns:118px 96px 170px minmax(0,1fr) minmax(120px,180px);align-items:center;gap:12px;min-height:72px;padding:14px 18px;list-style:none;display:grid}.audit-row summary::-webkit-details-marker{display:none}.audit-row summary:hover{background:#fbfcfd}.audit-time,.audit-actor,.audit-details span,.audit-details small{color:#7a8495;font-size:12px;font-weight:800}.audit-badge{border:1px solid var(--line);color:#596273;text-transform:uppercase;background:#fff;border-radius:999px;width:fit-content;padding:5px 9px;font-size:11px;font-weight:900}.audit-action{color:var(--ink);font-size:13px;font-weight:900}.audit-row summary strong{text-overflow:ellipsis;white-space:nowrap;color:#303746;min-width:0;font-size:13px;overflow:hidden}.audit-actor{text-align:right;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.audit-row.success .audit-badge{color:#047857;background:#ecfdf5;border-color:#bbf7d0}.audit-row.warning .audit-badge{color:#c2410c;background:#fff7ed;border-color:#fed7aa}.audit-row.danger .audit-badge{color:#b91c1c;background:#fff1f2;border-color:#fecdd3}.audit-details{grid-template-columns:minmax(160px,.8fr) minmax(150px,.7fr) minmax(0,2fr);gap:16px;padding:0 18px 18px 144px;display:grid}.audit-details>div{border:1px solid var(--line);background:#fbfcfd;border-radius:8px;gap:5px;padding:12px;display:grid}.audit-details strong{color:var(--ink);font-size:13px}.audit-detail-list ul{color:#3f4654;margin:0;padding-left:18px;font-weight:650}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;min-width:1080px}th,td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:13px 14px;font-size:13px}th{color:#7a8495;text-transform:uppercase;background:#fbfcfd;font-size:11px}th button{color:inherit;text-transform:uppercase;background:0 0;border:0;padding:0;font-weight:850}td{color:#3f4654;font-weight:650}.batch-id{border:1px solid var(--line);color:#596273;white-space:nowrap;background:#f8fafc;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:900;display:inline-flex}.row-actions{gap:8px;display:flex}.modal-backdrop{z-index:20;background:#15172252;place-items:center;padding:28px;display:grid;position:fixed;inset:0}.modal-panel{background:var(--surface);border:1px solid var(--line);width:min(760px,100%);box-shadow:var(--shadow);border-radius:8px;padding:24px}.modal-header,.panel-title-row{justify-content:space-between;align-items:center;gap:14px;margin-bottom:16px;display:flex}.modal-header h2,.panel-title-row h3,.chart-panel h3{margin:0}.catalog-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.compact-panel,.cascade-panel,.company-material-panel{min-height:260px}.cascade-panel,.company-material-panel{grid-column:span 3}.panel-title-row>div{min-width:0}.panel-description{color:var(--muted);margin:5px 0 0;font-size:12px;font-weight:650;line-height:1.45}.panel-title-row span{background:var(--soft);width:28px;height:28px;color:var(--muted);border-radius:999px;place-items:center;font-weight:900;display:grid}.chip-list,.rule-list{gap:8px;margin-top:14px;display:grid}.editable-chip,.rule-row,.anomaly-row,.distribution-row{border:1px solid var(--line);background:#fbfcfd;border-radius:7px;justify-content:space-between;align-items:center;gap:10px;min-height:42px;padding:10px 12px;display:flex}.editable-chip span,.rule-row span,.rule-row strong{font-weight:750}.editable-chip.muted{opacity:.56}.cascade-form,.price-form,.company-material-form{grid-template-columns:repeat(4,minmax(0,1fr)) auto;align-items:end;gap:10px;display:grid}.company-material-form{grid-template-columns:repeat(2,minmax(0,1fr)) auto;align-items:end;gap:12px}.company-material-warning{margin:14px 0 0}.company-material-list{gap:8px;margin-top:14px;display:grid}.company-material-row{border:1px solid var(--line);background:#fbfcfd;border-radius:7px;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) auto;align-items:center;gap:12px;min-height:48px;padding:8px 10px 8px 14px;display:grid}.company-material-row span{color:var(--muted);font-weight:750}.rule-row{grid-template-columns:repeat(4,minmax(0,1fr)) auto;display:grid}.price-form{grid-template-columns:1.1fr .8fr .8fr 1.1fr auto;padding:18px}.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.chart-panel{min-height:330px}.chart-panel h3{margin:0;font-size:18px}.chart-title-row{align-items:center;gap:8px;margin-bottom:18px;display:flex}.bar-chart{grid-template-columns:repeat(12,minmax(0,1fr));align-items:end;gap:7px;height:250px;display:grid}.bar-column{grid-template-rows:24px 1fr 32px;align-items:end;gap:7px;min-width:0;height:100%;display:grid}.bar-column span,.bar-column small{color:#8a94a5;text-align:center;text-overflow:ellipsis;font-size:10px;font-weight:800;overflow:hidden}.bar-track{background:#f1f3f6;border-radius:6px;justify-content:center;align-items:end;height:100%;display:flex;overflow:hidden}.bar-track i{border-radius:6px 6px 0 0;width:100%}.bar-track.double{gap:3px;padding:0 4px}.bar-track.double i{width:45%}.horizontal-chart,.distribution-list,.line-like-chart,.anomaly-list{gap:10px;display:grid}.horizontal-row{grid-template-columns:120px 1fr 80px;align-items:center;gap:10px;display:grid}.horizontal-row span,.horizontal-row b,.line-like-chart span,.line-like-chart b{color:#596273;font-size:12px;font-weight:800}.horizontal-row div,.line-like-chart i{background:#f1f3f6;border-radius:999px;height:12px;overflow:hidden}.horizontal-row i{border-radius:999px;height:100%;display:block}.distribution-row{justify-content:start}.distribution-row i{border-radius:99px;width:10px;height:10px}.distribution-row span{flex:1;font-weight:750}.line-like-chart div{grid-template-columns:150px 1fr 78px;align-items:center;gap:10px;display:grid}.line-like-chart i{background:var(--ink);display:block}.price-timeline{gap:12px;display:grid}.price-timeline svg{width:100%;min-height:260px;overflow:visible}.price-timeline line{stroke:#dfe3ea;stroke-width:1.5px}.price-timeline polyline{fill:none;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.price-timeline text{fill:#8a94a5;font-size:11px;font-weight:800}.price-legend{flex-wrap:wrap;gap:8px 14px;display:flex}.price-legend span{color:#596273;align-items:center;gap:7px;font-size:12px;font-weight:850;display:inline-flex}.price-legend i{border-radius:999px;width:10px;height:10px}.empty-state{color:#8d96a6;text-align:center;border:1px dashed #d9dee7;border-radius:8px;place-items:center;min-height:82px;font-weight:850;display:grid}.backup-panel{align-content:start;gap:12px;display:grid}.file-button input{display:none}.user-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.compact-login-panel{width:min(460px,100vw - 64px);min-width:0;max-width:460px}.login-page>.compact-login-panel{margin:0;position:absolute;top:50%;left:clamp(32px,35vw,100vw - 492px);transform:translateY(-50%)}.remote-login-fields,.user-invite-form{gap:14px;display:grid}.login-note{color:var(--muted);margin:0;font-weight:750}.sync-warning{color:#9a3412;background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;align-items:center;gap:8px;padding:10px 12px;font-size:12px;font-weight:850;display:inline-flex}.user-invite-form{grid-template-columns:1.2fr 1.4fr .9fr auto;align-items:end;padding:18px}.user-invite-form .status-message{grid-column:1/-1;margin-top:0}.user-card{gap:10px;min-width:0;padding:22px;display:grid}.user-card span{color:var(--muted);overflow-wrap:anywhere}.user-card b{color:var(--green);text-transform:uppercase;font-size:12px}.status-pill{text-transform:uppercase;background:#ecfdf5;border-radius:999px;width:fit-content;padding:4px 8px;font-size:11px;font-weight:900;color:#047857!important}.status-pill.inactive{background:#f3f4f6;color:#6b7280!important}@media (width<=1180px){.login-page>.compact-login-panel{left:50%;transform:translate(-50%,-50%)}.content-grid.two-columns,.dashboard-grid,.catalog-grid{grid-template-columns:1fr}.cascade-panel,.company-material-panel{grid-column:auto}.kpi-row,.login-grid,.user-grid,.filters-grid,.audit-filters-grid,.cascade-form,.company-material-form,.price-form,.user-invite-form{grid-template-columns:repeat(2,minmax(0,1fr))}.audit-row summary{grid-template-columns:104px 86px minmax(120px,150px) minmax(0,1fr)}.audit-actor{display:none}.audit-details{grid-template-columns:1fr;padding-left:18px}}@media (width<=780px){.login-page{padding:18px;overflow-x:hidden}.login-panel{max-width:100%;padding:24px}.compact-login-panel{width:calc(100vw - 36px);max-width:100%}.login-page>.compact-login-panel{left:50%;transform:translate(-50%,-50%)}.login-panel input,.login-panel button,.login-card{min-width:0}.login-panel h1{font-size:32px}.login-logo{width:118px;margin-bottom:22px}.app-shell{grid-template-columns:1fr}.sidebar{height:auto;position:static}.main-surface{padding:22px 16px 40px}.form-grid,.batch-line-grid,.kpi-row,.login-grid,.user-grid,.filters-grid,.audit-filters-grid,.cascade-form,.company-material-form,.price-form,.user-invite-form{grid-template-columns:1fr}.batch-lines-header{flex-direction:column;align-items:flex-start}.batch-lines-header .ghost-button{width:100%}.company-material-row{grid-template-columns:minmax(0,1fr) auto}.company-material-row span{grid-column:1}.audit-row summary{grid-template-columns:1fr;align-items:start;gap:8px}.audit-row summary strong{white-space:normal}.span-2{grid-column:auto}.bar-chart{overflow-x:auto}}
