:root{color:#0f2b46;background:#f5f9fe;font-family:Segoe UI,Arial,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;--brand-blue: #005098;--brand-blue-deep: #003d75;--brand-blue-soft: #205090;--brand-sky: #50a0d0;--brand-ice: #c8d8f0;--brand-ice-soft: #e8f0f8;--bg: #f5f9fe;--surface: #ffffff;--surface-subtle: #e8f0f8;--surface-hover: #dbe9f7;--text: #0f2b46;--text-muted: #526b82;--text-soft: #7c8ea2;--border: #b7cbe6;--border-subtle: #d7e4f3;--accent: var(--brand-blue);--accent-hover: var(--brand-blue-deep);--accent-soft: #e1f1fb;--success: #138a63;--warning: #a76d00;--warning-bg: #fff8d6;--danger: #c8333d;--danger-bg: #fff1f1;--focus-ring: #78a9ff;--shadow-sm: 0 2px 8px rgba(15, 43, 70, .07);--shadow-md: 0 10px 28px rgba(15, 43, 70, .12)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;min-width:320px;text-rendering:optimizeLegibility}button,input,select{font:inherit}button{cursor:pointer;transition:background-color .14s ease,border-color .14s ease,color .14s ease,box-shadow .14s ease,transform 80ms ease}button:disabled{cursor:not-allowed;opacity:.65}button:not(:disabled):active{transform:translateY(1px)}button:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}svg{flex:0 0 auto;pointer-events:none}h1,h2,p{margin:0}.login-shell{align-items:center;display:flex;min-height:100dvh;padding:20px}.login-panel{background:var(--surface);border:1px solid var(--border);border-top:8px solid var(--brand-blue);border-radius:8px;box-shadow:var(--shadow-md);margin:0 auto;max-width:440px;padding:24px;width:100%}.login-panel h1{color:var(--brand-blue);font-size:30px;font-weight:600;line-height:1.18;margin-top:0}.login-panel .product-scope{margin-top:6px}.login-form{display:grid;gap:16px;margin-top:24px}.login-form label,.form-grid label{color:var(--text-muted);display:grid;font-size:12px;gap:6px;line-height:16px}.field-hint{margin:14px 0 0;color:var(--text-muted);font-size:.9rem}.login-form input,.form-grid input,.form-grid select{background:var(--surface-subtle);border:0;border-bottom:2px solid var(--border);color:var(--text);min-height:44px;padding:0 12px;width:100%}.login-form input:focus,.form-grid input:focus,.form-grid select:focus{border-bottom-color:var(--accent);box-shadow:inset 0 -1px 0 var(--accent)}.demo-users{background:var(--surface-subtle);color:var(--text-muted);font-size:13px;line-height:18px;margin-top:16px;padding:12px}.platform-shell{margin:0 auto;max-width:1584px;min-height:100dvh;padding:16px max(24px,env(safe-area-inset-right)) max(32px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left));width:100%}.platform-header{align-items:center;background:var(--brand-blue);border-bottom:4px solid var(--brand-sky);border-radius:8px 8px 0 0;color:#fff;display:flex;justify-content:space-between;min-height:72px;padding:16px;box-shadow:var(--shadow-sm)}.brand-block{display:grid;gap:4px}.product-scope{color:var(--text-soft);font-size:13px;line-height:18px}.platform-header .product-scope{color:#d8e8f7}.brand-block h1{font-size:28px;font-weight:400;line-height:34px}.topbar-actions{align-items:center;display:flex;gap:8px}.user-chip{border-right:1px solid rgba(255,255,255,.28);display:grid;gap:2px;min-width:220px;padding-right:16px}.user-chip strong{color:#fff;font-size:14px;font-weight:600;line-height:18px}.user-chip span{color:#d8e8f7;font-size:12px;line-height:16px}.module-tabs{background:var(--surface);border-bottom:1px solid var(--border);border-left:1px solid var(--border);border-right:1px solid var(--border);display:flex;gap:0;overflow-x:auto;overscroll-behavior-x:contain;position:sticky;scrollbar-color:var(--brand-ice) transparent;scrollbar-width:thin;scroll-snap-type:x proximity;top:0;z-index:40}.module-tab{align-items:center;background:transparent;border:0;border-bottom:3px solid transparent;color:var(--text-muted);display:flex;flex:0 0 auto;gap:8px;min-height:48px;padding:0 16px;scroll-snap-align:start;white-space:nowrap}.module-tab:hover{background:var(--surface-hover);color:var(--brand-blue)}.module-tab[aria-selected=true]{background:var(--accent-soft);border-bottom-color:var(--accent);color:var(--brand-blue);font-weight:600}.tab-surface{padding-top:16px}.message{background:#fff4ce;border-left:4px solid #f1c21b;color:var(--text);font-size:14px;line-height:20px;margin-top:16px;padding:12px 16px}.platform-footer{color:var(--text-soft);font-size:11px;line-height:16px;padding:20px 4px 0;text-align:right}.platform-footer a{color:var(--text-muted);text-underline-offset:3px}.platform-footer a:hover{color:var(--brand-blue)}.risk-grid{display:grid;gap:1px;grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:16px}.risk-card{align-items:center;background:var(--surface);border:1px solid var(--border-subtle);display:grid;gap:8px;grid-template-columns:24px 1fr auto;min-height:72px;padding:16px}.risk-card span{color:var(--text-muted);font-size:13px;line-height:18px}.risk-card strong{font-size:28px;font-weight:400;line-height:32px}.risk-card.ok svg,.status-pill.ok{color:var(--success)}.risk-card.warn svg,.status-pill.warn{color:var(--warning)}.risk-card.bad svg,.status-pill.bad{color:var(--danger)}.workspace-grid{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}.panel-wide{grid-column:1 / -1}.panel{background:var(--surface);border:1px solid var(--border-subtle);border-radius:8px;min-width:0;padding:16px;scroll-margin-top:64px;box-shadow:var(--shadow-sm)}.panel-title{align-items:center;border-bottom:1px solid var(--border-subtle);color:var(--brand-blue);display:flex;gap:8px;margin-bottom:12px;padding-bottom:12px}.panel-title h2{font-size:16px;font-weight:600;line-height:22px}.summary-strip{background:var(--surface);border:1px solid var(--border-subtle);border-radius:8px;display:grid;gap:1px;grid-template-columns:repeat(4,minmax(0,1fr));padding:0}.summary-metric{background:var(--brand-ice-soft);display:grid;gap:6px;min-height:88px;padding:16px}.summary-metric span{color:var(--text-muted);font-size:13px;line-height:18px}.summary-metric strong{color:var(--brand-blue);font-size:32px;font-weight:400;line-height:36px}.settings-note{background:var(--brand-ice-soft);border-left:4px solid var(--accent);display:grid;gap:8px;padding:16px}.settings-note strong{color:var(--brand-blue);font-size:15px}.settings-note span{color:var(--text-muted);line-height:1.5}.actions-row{display:flex;flex-wrap:wrap;gap:8px}.section-tabs{background:var(--surface-subtle);border:1px solid var(--border-subtle);display:flex;flex-wrap:wrap;gap:0;width:100%}.section-tab{align-items:center;background:transparent;border:0;border-bottom:3px solid transparent;color:var(--text-muted);display:inline-flex;gap:8px;min-height:44px;padding:0 14px}.section-tab:hover{background:var(--surface-hover);color:var(--brand-blue)}.section-tab[aria-selected=true]{background:var(--surface);border-bottom-color:var(--accent);color:var(--brand-blue);font-weight:600}.report-actions{margin-top:2px}.form-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.form-grid button{align-self:end;min-width:160px}.topology-code-field{grid-column:span 2}.topology-code-field input{font-family:Consolas,Courier New,monospace;font-size:12px}.topology-generator-summary{align-self:stretch;background:var(--surface-subtle);border-left:3px solid var(--accent);color:var(--text-muted);display:grid;font-size:12px;gap:4px;grid-column:span 2;line-height:18px;padding:8px 12px}.topology-generator-summary strong{color:var(--text)}.primary-button,.secondary-button,.ghost-button{align-items:center;border:1px solid transparent;display:inline-flex;gap:8px;justify-content:center;min-height:44px;padding:0 14px}.primary-button{background:var(--accent);color:#fff}.primary-button:hover{background:var(--accent-hover);box-shadow:0 4px 12px #003d7538}.secondary-button{background:var(--brand-blue-soft);color:#fff}.secondary-button:hover{background:#183f73;box-shadow:0 4px 12px #003d752e}.compact-action-button{align-items:center;background:var(--surface);border:1px solid var(--brand-blue);color:var(--brand-blue-deep);display:inline-flex;font-size:12px;gap:5px;justify-content:center;min-height:34px;padding:5px 8px}.compact-action-button:hover:not(:disabled){background:var(--surface-hover)}.compact-action-button:disabled{border-color:var(--border);color:var(--text-muted);cursor:default}.ghost-button{background:transparent;color:#fff}.ghost-button:hover{background:#ffffff29}.table-wrap{overflow-x:auto;width:100%}table{border-collapse:collapse;min-width:100%;width:100%}th,td{border-bottom:1px solid var(--border-subtle);font-size:13px;line-height:18px;overflow-wrap:anywhere;padding:9px 8px;text-align:left;vertical-align:top;transition:background-color .14s ease,box-shadow .14s ease}th{background:var(--surface-subtle);color:var(--brand-blue-soft);font-weight:600;position:sticky;top:0}td{color:var(--text)}tbody tr:hover td{background:#f4f9fe}.clickable-row{cursor:pointer}.clickable-row td:first-child{box-shadow:inset 3px 0 transparent}.clickable-row:hover td,.clickable-row:focus-visible td{background:var(--accent-soft)}.clickable-row:hover td:first-child,.clickable-row:focus-visible td:first-child{box-shadow:inset 3px 0 var(--accent)}.clickable-row:focus-visible{outline:3px solid var(--focus-ring);outline-offset:-2px}.entity-link{background:transparent;border:0;color:var(--brand-blue);font-weight:600;min-height:32px;padding:5px 2px;text-align:left;text-decoration:underline;text-decoration-color:#00509847;text-underline-offset:3px}.entity-link:hover{color:var(--brand-blue-deep);text-decoration-color:currentColor}.combobox{position:relative}.combobox>input{width:100%}.combobox-options{background:var(--surface);border:1px solid var(--border);box-shadow:0 12px 28px #003d7529;left:0;list-style:none;margin:4px 0 0;max-height:260px;overflow-y:auto;padding:4px;position:absolute;right:0;top:100%;z-index:30}.combobox-options li{display:flex;flex-direction:column;gap:2px;min-height:44px;padding:8px 10px}.combobox-options li.active,.combobox-options li:hover{background:var(--surface-hover)}.combobox-options strong{color:var(--text);font-size:13px}.combobox-options span{color:var(--text-muted);font-size:11px}.entity-drawer-backdrop{background:#0f2b4657;top:0;right:0;bottom:0;left:0;position:fixed;z-index:100}.entity-drawer{background:var(--surface);border-left:1px solid var(--border);bottom:0;box-shadow:-14px 0 34px #003d7533;display:flex;flex-direction:column;max-width:min(680px,94vw);overflow:hidden;position:absolute;right:0;top:0;width:680px}.entity-drawer-header{align-items:center;background:var(--brand-blue-deep);color:#fff;display:flex;justify-content:space-between;min-height:48px;padding:8px 14px}.entity-drawer-header button{align-items:center;background:transparent;border:0;color:inherit;display:inline-flex;height:44px;justify-content:center;width:44px}.entity-drawer-navigation{align-items:center;display:flex;font-size:13px;font-weight:600;gap:6px}.entity-drawer-title{align-items:flex-start;border-bottom:1px solid var(--border-subtle);display:flex;gap:16px;justify-content:space-between;padding:18px 20px}.entity-drawer-title p{color:var(--text-muted);font-size:12px;margin-bottom:4px}.entity-drawer-title h2{color:var(--brand-blue-deep);font-size:21px;line-height:28px;overflow-wrap:anywhere}.drawer-title-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;margin-left:auto}.drawer-title-actions .secondary-button,.drawer-title-actions .ghost-button{min-height:44px;padding:7px 10px}.entity-drawer-content,.drawer-edit-form{overflow-y:auto;padding:18px 20px 32px}.history-list{display:grid;gap:12px}.history-entry,.timeline-card{background:#fff;border:1px solid var(--border-subtle);border-radius:12px;box-shadow:0 3px 12px #0f2b460f;padding:14px}.history-entry-head{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.history-entry-head>div{display:grid;gap:3px}.history-entry-head span,.history-entry-head small,.timeline-meta{color:var(--text-muted);font-size:12px}.history-entry>p{color:var(--text-muted);font-size:13px;margin:10px 0 0}.history-changes{display:grid;gap:7px;margin-top:12px}.history-changes>div{background:var(--surface-soft);border-radius:8px;display:grid;font-size:12px;gap:4px;grid-template-columns:minmax(90px,.7fr) minmax(100px,1fr) minmax(100px,1fr);padding:8px 10px}.history-changes>div span:last-child:before{color:var(--text-muted);content:"→ "}.document-timeline{display:grid;gap:0;padding-left:8px}.document-timeline-entry{display:grid;gap:12px;grid-template-columns:14px 1fr;padding-bottom:14px;position:relative}.document-timeline-entry:not(:last-child):before{background:var(--border);bottom:-1px;content:"";left:6px;position:absolute;top:15px;width:2px}.timeline-marker{background:var(--brand-blue-soft);border:3px solid #ffffff;border-radius:50%;box-shadow:0 0 0 1px var(--brand-blue-soft);height:12px;margin-top:14px;position:relative;width:12px;z-index:1}.timeline-card{min-width:0}.timeline-card-button{color:inherit;cursor:pointer;display:block;font:inherit;text-align:left;transition:background .14s ease,border-color .14s ease,box-shadow .14s ease,transform .14s ease;width:100%}.timeline-card-button:hover{background:var(--accent-soft);border-color:var(--brand-blue);box-shadow:0 6px 18px #003d7521;transform:translateY(-1px)}.timeline-card-button:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.timeline-card-button:disabled{cursor:default;opacity:1}.timeline-open-hint{color:var(--brand-blue);display:block;font-size:12px;font-weight:600;margin-top:10px}.timeline-meta{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:10px}.entity-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0}.entity-detail-grid>div{border-bottom:1px solid var(--border-subtle);min-width:0;padding:10px 12px 10px 0}.entity-detail-grid dt{color:var(--text-muted);font-size:11px;margin-bottom:4px;text-transform:uppercase}.entity-detail-grid dd{color:var(--text);font-size:14px;margin:0;overflow-wrap:anywhere}.entity-relations{margin-top:22px}.entity-relations h3{align-items:center;color:var(--brand-blue-deep);display:flex;font-size:14px;gap:7px;margin:0 0 8px}.entity-relation-list{border:1px solid var(--border-subtle)}.entity-relation-list .entity-link{align-items:flex-start;border-bottom:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:3px;padding:10px 12px;text-decoration:none;width:100%}.entity-relation-list .entity-link:last-child{border-bottom:0}.entity-relation-list .entity-link:hover{background:var(--surface-subtle)}.entity-relation-list small{color:var(--text-muted);font-weight:400}.location-balance-view{display:grid;gap:16px}.location-balance-heading{display:grid;gap:4px}.location-balance-heading strong{color:var(--brand-blue-deep);font-size:18px}.location-balance-heading span{font-family:Cascadia Mono,Roboto Mono,monospace;overflow-wrap:anywhere}.location-balance-heading small,.location-balance-meta{color:var(--text-muted)}.location-balance-list{border:1px solid var(--border-subtle)}.location-balance-card{border-bottom:1px solid var(--border-subtle);display:grid;gap:10px;padding:12px}.location-balance-card:last-child{border-bottom:0}.location-balance-card-head{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.location-balance-card-head strong{color:var(--brand-blue-deep);white-space:nowrap}.location-balance-meta{display:grid;font-size:12px;gap:5px 14px;grid-template-columns:repeat(2,minmax(0,1fr))}.package-balance-note{background:var(--surface-subtle);border:1px solid var(--border-subtle);padding:12px}.package-balance-note strong{color:var(--brand-blue-deep)}.package-balance-note p{color:var(--text-muted);font-size:13px;margin-top:5px}.entity-empty,.accounting-note{color:var(--text-muted);font-size:13px;padding:10px 0}.accounting-note{background:var(--surface-subtle);border-left:3px solid var(--brand-sky);margin-top:16px;padding:10px 12px}.drawer-edit-form{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.drawer-edit-form label{color:var(--text-muted);display:flex;flex-direction:column;font-size:12px;gap:5px;min-width:0}.drawer-edit-form input,.drawer-edit-form select{background:var(--surface);border:1px solid var(--border);color:var(--text);min-height:44px;padding:7px 9px;width:100%}.drawer-barcode-field>span{display:grid;gap:8px;grid-template-columns:minmax(0,1fr) auto}.drawer-barcode-field small{color:var(--text-muted)}.topology-barcode-cell{align-items:flex-start;display:flex;flex-direction:column;gap:6px;min-width:132px}.topology-barcode-cell>span{font-family:Cascadia Mono,Roboto Mono,monospace;overflow-wrap:anywhere}.drawer-actions{border-top:1px solid var(--border-subtle);display:flex;flex-wrap:wrap;gap:8px;grid-column:1 / -1;margin-top:8px;padding-top:14px}.table-empty{align-items:center;background:var(--surface-subtle);border:1px dashed var(--border);color:var(--text-muted);display:flex;font-size:14px;min-height:92px;padding:16px}.status-pill{background:var(--accent-soft);display:inline-flex;font-size:12px;line-height:16px;max-width:100%;padding:3px 8px;white-space:nowrap}.status-pill.ok{background:#defbe6}.status-pill.warn{background:var(--warning-bg)}.status-pill.bad{background:var(--danger-bg)}@media(max-width:1180px){.risk-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.workspace-grid{grid-template-columns:1fr}}@media(max-width:760px){.platform-shell{padding:8px max(8px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))}.platform-header{align-items:stretch;flex-direction:column}.topbar-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.user-chip{border-right:0;border-top:1px solid rgba(255,255,255,.28);grid-column:1 / -1;min-width:0;padding-right:0;padding-top:12px}.module-tab{min-height:48px;padding:0 12px}.risk-grid,.summary-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid{grid-template-columns:1fr}.topology-code-field,.topology-generator-summary{grid-column:auto}.risk-card{min-height:60px}.panel{padding:12px}.entity-drawer{max-width:100vw;width:100vw}.entity-detail-grid,.drawer-edit-form{grid-template-columns:1fr}}@media(max-width:672px){.table-wrap{overflow:visible}.table-wrap table,.table-wrap tbody,.table-wrap tr,.table-wrap td{display:block;width:100%}.table-wrap thead{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.table-wrap tbody{display:grid;gap:12px}.table-wrap tbody tr{background:var(--surface);border:1px solid var(--border-subtle);border-radius:8px;box-shadow:var(--shadow-sm);overflow:hidden}.table-wrap tbody td{border-bottom:1px solid var(--border-subtle);display:grid;gap:12px;grid-template-columns:minmax(108px,.42fr) minmax(0,1fr);min-height:44px;padding:11px 12px}.table-wrap tbody td:before{color:var(--text-muted);content:attr(data-label);font-size:11px;font-weight:600;letter-spacing:.02em;text-transform:uppercase}.table-wrap tbody td:last-child{border-bottom:0}.clickable-row:after{background:var(--accent-soft);color:var(--brand-blue);content:"Открыть карточку →";display:block;font-size:12px;font-weight:600;padding:10px 12px}.clickable-row:hover td:first-child,.clickable-row:focus-visible td:first-child{box-shadow:inset 3px 0 var(--accent)}.actions-row>button,.drawer-actions>button,.report-actions>button{flex:1 1 180px}}@media(max-width:520px){.risk-grid,.summary-strip{grid-template-columns:1fr}.brand-block h1{font-size:24px;line-height:30px}.panel{border-radius:6px}.entity-drawer-title,.entity-drawer-content,.drawer-edit-form{padding-left:14px;padding-right:14px}.entity-drawer-title{flex-direction:column}.drawer-title-actions{align-items:stretch;flex-direction:row;margin-left:0;width:100%}.drawer-title-actions>button{flex:1 1 0}.drawer-barcode-field>span,.location-balance-meta{grid-template-columns:1fr}.drawer-barcode-field .compact-action-button{min-height:44px;width:100%}.location-balance-card-head{flex-direction:column}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
