:root{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5;font-weight:400;--color-primary: #1e293b;--color-primary-light: #334155;--color-primary-dark: #0f172a;--color-secondary: #3b82f6;--color-accent: #8b5cf6;--color-success: #10b981;--color-warning: #f59e0b;--color-error: #ef4444;--color-bg: #f0f2f5;--color-bg-light: #ffffff;--color-bg-dark: #f1f5f9;--color-text: #1e293b;--color-text-light: #64748b;--color-text-muted: #94a3b8;--color-border: #e2e8f0;--color-border-light: #f1f5f9;--color-blue-600: #2563eb;--color-blue-50: #eff6ff;--color-green-600: #059669;--color-green-50: #ecfdf5;--color-amber-600: #d97706;--color-amber-50: #fffbeb;--color-red-600: #dc2626;--color-red-50: #fef2f2;--font-num: "JetBrains Mono", "SF Mono", Consolas, monospace;--shadow-sm: 0 1px 2px rgba(0,0,0,.05);--shadow-md: 0 4px 12px rgba(0,0,0,.08);--shadow-lg: 0 8px 25px rgba(0,0,0,.12);--shadow-card: 0 1px 2px rgba(15, 23, 42, .05), 0 4px 16px -8px rgba(15, 23, 42, .08);--radius-lg: 14px;--radius: 12px;--radius-sm: 8px;--transition: .2s cubic-bezier(.4, 0, .2, 1);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;padding:0;background-color:var(--color-bg);color:var(--color-text);font-size:14px;line-height:1.6}#root{min-height:100vh;width:100%}h1,h2,h3,h4,h5,h6{margin:0 0 .5em;font-weight:700;color:var(--color-text);line-height:1.3}h1{font-size:1.75rem}h2{font-size:1.5rem}h3{font-size:1.2rem}h4{font-size:1.1rem}h5{font-size:1rem}h6{font-size:.9rem}p{margin:0 0 1em}button{border-radius:var(--radius-sm);border:1px solid var(--color-border);padding:7px 14px;font-size:13px;font-weight:600;font-family:inherit;background-color:var(--color-bg-light);color:var(--color-text-light);cursor:pointer;transition:all var(--transition);display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap}button:hover:not(:disabled){background-color:var(--color-bg-dark);color:var(--color-text);border-color:#cbd5e1;transform:translateY(-1px)}button:active:not(:disabled){transform:translateY(0)}button:disabled{opacity:.5;cursor:not-allowed}button.btn-primary{background:var(--color-blue-600);color:#fff;border-color:var(--color-blue-600);box-shadow:0 2px 8px #2563eb33}button.btn-primary:hover:not(:disabled){background:#1d4ed8;border-color:#1d4ed8;box-shadow:0 4px 12px #2563eb4d}button.btn-secondary,a.btn-secondary{background:var(--color-secondary);color:#fff;border-color:var(--color-secondary)}button.btn-secondary:hover:not(:disabled),a.btn-secondary:hover{background:#2563eb;border-color:#2563eb;box-shadow:0 2px 8px #3b82f640}input[type=text],input[type=number],input[type=date],select,textarea{width:100%;padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:13px;font-family:inherit;background-color:var(--color-bg-light);color:var(--color-text);transition:border-color var(--transition),box-shadow var(--transition)}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield;appearance:textfield}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-secondary);box-shadow:0 0 0 3px #3b82f61f}input:disabled,select:disabled,textarea:disabled{background-color:var(--color-bg-dark);color:var(--color-text-light);cursor:not-allowed}::placeholder{color:var(--color-text-muted)}.text-muted{color:var(--color-text-light)}.text-small{font-size:12px}.text-center{text-align:center}.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:1.5rem}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}@keyframes premium-skeleton{0%,to{opacity:.5}50%{opacity:1}}.app-container{min-height:100vh;background-color:var(--color-bg);padding:16px;max-width:1440px;margin:0 auto}.app-container.app-container--sp-compact{max-width:100%;margin:0;padding:10px 10px 20px;min-height:auto}.app-header{background:#fff;color:var(--color-text);padding:14px 20px;border-radius:var(--radius);margin-bottom:14px;box-shadow:var(--shadow-card);border:1px solid var(--color-border)}.app-header h2{margin:0;color:var(--color-text);font-size:1.1rem;font-weight:700}.app-tabs{display:flex;gap:4px;margin-bottom:12px;padding:4px;background:#eef1f5;border-radius:var(--radius);border:1px solid var(--color-border)}.app-tab{padding:8px 16px;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--color-text-light);font-weight:600;cursor:pointer;transition:all var(--transition);font-size:13px}.app-tab:hover:not(.app-tab-active){color:var(--color-text);background:#ffffffb3}.app-tab-active{color:var(--color-blue-600);background:#fff;border-color:var(--color-border);box-shadow:0 1px 3px #0f172a14}.app-tab:disabled{opacity:1;cursor:pointer}.app-status{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius);padding:10px 16px;margin-bottom:14px;font-size:12px;color:var(--color-text-light);display:flex;flex-wrap:wrap;gap:8px 20px;box-shadow:var(--shadow-sm)}.app-status-item{display:flex;align-items:center;gap:6px;min-width:0;overflow-wrap:anywhere;word-break:break-word}.app-status-item strong{color:var(--color-text);font-weight:700}.app-content{background-color:transparent;border:none;border-radius:0;padding:0;box-shadow:none}.app-content h3{margin-top:0;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--color-border);color:var(--color-text);font-size:1rem;font-weight:700}.app-warning{margin-top:16px;padding:14px 18px;background:#fffbeb;border:1px solid #fde68a;border-radius:var(--radius-sm);color:#92400e;font-size:13px;font-weight:500}.data-form-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;flex-wrap:wrap;gap:10px;padding:14px 18px;background:#fff;border-radius:var(--radius);border:1px solid var(--color-border);box-shadow:var(--shadow-sm)}.role-badge{display:inline-flex;align-items:center;padding:5px 14px;background:var(--color-blue-50);color:var(--color-blue-600);border:1px solid #bfdbfe;border-radius:20px;font-size:12px;font-weight:600;letter-spacing:.02em}.stage-switcher{display:flex;gap:6px}.stage-btn{padding:5px 12px;border:1px solid var(--color-border);background:#fff;color:var(--color-text-light);border-radius:var(--radius-sm);font-size:12px;font-weight:600;cursor:pointer;transition:all var(--transition)}.stage-btn:hover{background:var(--color-bg-dark);color:var(--color-text)}.stage-btn-active{background:var(--color-secondary);color:#fff;border-color:transparent;box-shadow:0 2px 6px #3b82f633}.field-group{border:1px solid var(--color-border-light);border-radius:var(--radius-sm);padding:10px 12px;margin-bottom:10px;background:#fff;transition:all var(--transition)}.field-group:hover{border-color:#cbd5e1;box-shadow:0 2px 8px #0000000a}.field-group-readonly{background:var(--color-bg-dark)}.field-group--wide{grid-column:1 / -1}.field-input.changed,.field-group.changed .field-input,.field-group.changed textarea{border-color:var(--color-warning)!important;background-color:#fffbeb!important;box-shadow:0 0 0 2px #f59e0b1a!important}.field-group.changed .field-label{color:var(--color-warning);font-weight:700}.field-grid{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:10px}@media(max-width:1200px){.field-grid{grid-template-columns:repeat(3,minmax(160px,1fr))}}@media(max-width:900px){.field-grid{grid-template-columns:repeat(2,minmax(160px,1fr))}}@media(max-width:768px){.field-grid{grid-template-columns:1fr}}.field-label{display:block;margin-bottom:5px;font-weight:600;color:var(--color-text);font-size:12px;letter-spacing:.01em}.field-hint{font-size:11px;color:var(--color-text-muted);margin-left:6px;font-weight:400}.field-note{font-size:12px;color:var(--color-text-light);margin-bottom:8px;padding:8px 10px;background:var(--color-bg-dark);border-left:3px solid var(--color-secondary);border-radius:4px;font-style:normal}.field-input{width:100%;padding:8px 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:13px;font-family:inherit;background:#fff;color:var(--color-text);transition:border-color var(--transition),box-shadow var(--transition)}.field-input:focus{outline:none;border-color:var(--color-secondary);box-shadow:0 0 0 3px #3b82f61f}.field-input:disabled{background:var(--color-bg-dark);color:var(--color-text-light);cursor:not-allowed}.field-input--error{border-color:#d32f2f!important;background-color:#fff5f5!important;box-shadow:0 0 0 2px #d32f2f1f!important}.field-readonly{padding:8px 10px;background:var(--color-bg-dark);border-radius:var(--radius-sm);color:var(--color-text-light);font-size:13px;border:1px solid var(--color-border-light)}.empty-state{padding:60px 24px;text-align:center;color:var(--color-text-muted)}.empty-state-icon{font-size:48px;margin-bottom:16px;opacity:.4}.loading-state{padding:16px;text-align:center;color:var(--color-text-muted);font-size:13px}.product-table{border:1px solid #e2e8f0;border-radius:var(--radius-lg);background:#fff;box-shadow:var(--shadow-card);margin-bottom:16px;position:relative;overflow:hidden;transition:box-shadow .2s ease}.product-table:hover{box-shadow:0 2px 4px #0f172a0f,0 8px 24px -8px #0f172a1f}.product-table-header{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;border-bottom:1px solid #e2e8f0;background:#fff;flex-wrap:wrap;gap:10px}.product-table--selected{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f,var(--shadow-card)}.product-table-tag{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;padding:3px 10px;border-radius:20px;white-space:nowrap}.product-table-tag--brand{background:#fef3c7;color:#92400e}.product-table-tag--sp{background:#dbeafe;color:#1e40af}.product-table-tag--kp{background:var(--color-blue-50);color:var(--color-blue-600);border:1px solid #bfdbfe}.product-table-tag--done{background:var(--color-green-50);color:var(--color-green-600);border:1px solid #a7f3d0;max-width:260px;overflow:hidden;text-overflow:ellipsis}.table-title-input{font-family:inherit;font-size:14px;font-weight:700;letter-spacing:-.01em;color:var(--color-text);border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;padding:5px 8px;min-width:120px;max-width:280px;transition:border-color .12s ease,background .12s ease}.table-title-input:hover:not(:disabled){border-color:var(--color-border);background:#fff}.table-title-input:focus{outline:none;border-color:#3b82f6;background:#fff;box-shadow:0 0 0 3px #3b82f61f}.table-title-input:disabled{color:var(--color-text);cursor:default}.table-menu-backdrop{position:fixed;inset:0;z-index:2500}.table-menu{position:fixed;z-index:2600;width:240px;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:6px;display:flex;flex-direction:column;gap:2px}.table-menu button{justify-content:flex-start;text-align:left;border:none;background:transparent;border-radius:var(--radius-sm);padding:8px 10px;font-size:13px;font-weight:500;color:var(--color-text);box-shadow:none}.table-menu button:hover:not(:disabled){background:var(--color-bg-dark);transform:none}.table-menu button.table-menu__danger{color:var(--color-red-600)}.table-menu button.table-menu__danger:hover:not(:disabled){background:var(--color-red-50)}.product-table-toolbar{display:flex;align-items:center;gap:8px;padding:10px 20px;background:#f8fafc;border-bottom:1px solid #f1f5f9;flex-wrap:wrap}.product-table-scroll{overflow-x:auto;overflow-y:visible;width:100%;scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent;background:#fff}.product-table-scroll-inner{display:inline-block;min-width:100%}.product-table-scroll::-webkit-scrollbar{height:6px}.product-table-scroll::-webkit-scrollbar-track{background:transparent}.product-table-scroll::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.product-table-scroll::-webkit-scrollbar-thumb:hover{background:#94a3b8}.product-table-columns{display:grid;gap:0;padding:0;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-light);background:#f8fafc;border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:2;white-space:nowrap;min-width:max-content;-webkit-user-select:none;user-select:none}.product-table-columns>div{position:relative;padding:10px;display:flex;align-items:center;border-right:1px solid var(--color-border-light);overflow:visible;min-width:0}.product-table-columns>div:last-child{border-right:none}.product-table-columns .ptc-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}.product-table-columns .col-sticky-num,.product-table-columns .col-sticky-name-client,.product-table-columns .col-sticky-name-proc{position:sticky;z-index:4;background:#f8fafc}.product-table-columns .col-resize-handle{position:absolute;right:0;top:0;bottom:0;width:6px;cursor:col-resize;z-index:3}.product-table-columns .col-resize-handle:after{content:"";position:absolute;right:2px;top:20%;bottom:20%;width:2px;background:#cbd5e1;border-radius:1px;transition:background .15s,width .15s}.product-table-columns .col-resize-handle:hover:after,.product-table-columns .col-resize-handle:active:after{background:var(--color-secondary);width:3px}.product-table-row{display:grid;gap:0;align-items:stretch;min-width:max-content;border-bottom:1px solid #f1f5f9;transition:background .15s ease;padding:0}.product-table-row>*{padding:4px 6px;display:flex;align-items:center;min-height:42px;border-right:1px solid #f1f5f9}.product-table-row>*:last-child{border-right:none}.product-table-row .col-sticky-num,.product-table-row .col-sticky-name-client,.product-table-row .col-sticky-name-proc{position:sticky;z-index:3;background:#fff}.product-table-row .sticky-input-wrap{width:100%;height:100%;display:flex;align-items:stretch}.product-table-row .sticky-input-wrap .field-input{width:100%;min-width:0}.product-table-row:nth-child(2n){background:#fafbfd}.product-table-row:hover{background:#f0f5ff}.product-table-row:last-child{border-bottom:none}.product-table-row>div:first-child,.product-table-row>.ptr-row-num{font-size:12px;font-weight:700;color:#94a3b8;justify-content:center;background:#f8fafc;border-right:1px solid #e2e8f0}.product-table-row--new{background:#ecfdf5!important;border-left:3px solid #10b981}.product-table-row .ptr-row-actions{opacity:0;transition:opacity .15s ease;justify-content:center}.product-table-row:hover .ptr-row-actions{opacity:1}.product-table-row .field-input{border:1px solid transparent;border-radius:6px;background:transparent;padding:5px 7px;font-size:13px;transition:all .15s ease}.product-table-row .field-input.col-sticky-name-client,.product-table-row .field-input.col-sticky-name-proc{background:#fff}.product-table-row .field-input:hover:not(:focus):not(:disabled){background:#00000005;border-color:#e2e8f0}.product-table-row .field-input:focus{border-color:#3b82f6;background:#fff;box-shadow:0 0 0 3px #3b82f61a}.product-table-row .field-input:disabled{background:transparent;color:#475569;cursor:default}.product-table-row .field-input::placeholder{color:#cbd5e1;font-size:12px}.product-table-row .field-input[type=number],.product-table-row input.ptr-num{text-align:right;font-family:var(--font-num);font-size:12.5px;font-variant-numeric:tabular-nums;font-weight:500}.product-table-row .field-input[type=date]{font-size:12.5px}.ptr-cell-sum{font-family:var(--font-num);font-size:12.5px;font-weight:600;font-variant-numeric:tabular-nums;text-align:right;padding:0 7px;width:100%;display:block}.ptr-cell-sum--plan{color:#2563eb}.ptr-cell-sum--fact{color:#059669}.product-table-row .field-input.changed{border-color:#f59e0b!important;background:#fffbeb!important;box-shadow:0 0 0 2px #f59e0b1a!important}.product-table-footer{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;border-top:1px solid #e2e8f0;background:#f8fafc;flex-wrap:wrap;gap:12px}.ptr-footer-totals{display:flex;gap:20px;font-size:13px}.ptr-footer-total{display:flex;align-items:center;gap:6px;white-space:nowrap}.ptr-footer-total--qty{gap:2px;align-items:baseline}.ptr-footer-total__label{color:#94a3b8;font-weight:500;display:inline-block;line-height:1.2}.ptr-footer-total__value{font-family:var(--font-num);font-weight:600;font-size:14px;font-variant-numeric:tabular-nums;display:inline-block;line-height:1.2}.ptr-footer-total__value--plan{color:#2563eb}.ptr-footer-total__value--fact{color:#059669}.product-table-hint{margin-bottom:6px;font-size:12px;color:var(--color-text-light)}.table-chips{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 14px;background:#f8fafc;border:1px solid var(--color-border);border-radius:var(--radius);margin-bottom:12px}.table-chip{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:#334155;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:7px 12px;cursor:pointer;transition:all .12s ease}.table-chip:hover{border-color:#94a3b8;transform:none}.table-chip.current{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f;color:#1e293b}.table-chip .dot-calc{width:14px;height:14px;border-radius:50%;border:2px solid #cbd5e1;flex:none}.table-chip .dot-calc.on{border-color:var(--color-green-600);background:var(--color-green-600);box-shadow:inset 0 0 0 3px #fff}.table-chip .kp-mark{font-size:10.5px;font-weight:700;color:var(--color-blue-600);background:var(--color-blue-50);border:1px solid #bfdbfe;border-radius:4px;padding:1px 5px}.table-chip .sum{font-family:var(--font-num);font-size:11.5px;font-weight:500;color:#94a3b8}.chips-legend{font-size:11.5px;color:#94a3b8;margin-left:auto}.chips-legend b{color:#64748b}.cost-subblock{margin-top:12px;border:1px solid var(--color-border);border-radius:var(--radius);background:#fff;overflow:hidden}.cost-subblock__head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;cursor:pointer;background:#f8fafc;transition:background .12s ease;-webkit-user-select:none;user-select:none}.cost-subblock__head:hover{background:#f1f5f9}.cost-subblock--open .cost-subblock__head{border-bottom:1px solid var(--color-border-light)}.cost-subblock__title{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:#334155}.cost-subblock__dot{width:8px;height:8px;border-radius:50%;background:#cbd5e1;flex:none}.cost-subblock__dot--ok{background:var(--color-green-600)}.cost-subblock__dot--warn{background:var(--color-amber-600)}.cost-subblock__meta{display:flex;align-items:center;gap:10px}.cost-subblock__total{font-family:var(--font-num);font-size:12px;font-weight:600;color:#64748b}.cost-subblock__chevron{font-size:11px;color:#94a3b8}.cost-subblock__body{padding:12px 14px 14px}.cost-subblock__body .field-input{background:#fff}.pf-chip{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:2px 8px;border-radius:99px;flex:none}.pf-chip--plan{color:#92400e;background:var(--color-amber-50);border:1px solid #fde68a}.pf-chip--fact{color:#065f46;background:var(--color-green-50);border:1px solid #a7f3d0}.pf-chip--import{color:#1e40af;background:var(--color-blue-50);border:1px solid #bfdbfe}.pf-grid{width:100%;border-collapse:collapse;font-size:13px;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.pf-grid th{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#64748b;background:#f1f5f9;padding:8px 12px;text-align:left;border-bottom:1px solid var(--color-border)}.pf-grid th.plan{box-shadow:inset 0 3px 0 var(--color-amber-600);text-align:right}.pf-grid th.fact{box-shadow:inset 0 3px #10b981;text-align:right}.pf-grid td{border-bottom:1px solid var(--color-border-light);padding:4px 12px;height:40px}.pf-grid tbody tr:last-child td{border-bottom:none}.pf-grid tbody tr:hover td{background:var(--color-blue-50)}.pf-grid .metric{font-weight:500;color:#1e293b}.pf-grid .metric .req{color:var(--color-red-600)}.pf-grid .metric .u{color:#94a3b8;font-size:11.5px;font-weight:400}.pf-grid td.in{width:170px}.pf-grid td.in input{width:100%;font-family:var(--font-num);font-size:12.5px;text-align:right;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;padding:6px 10px;transition:all .12s ease}.pf-grid tbody tr:hover td.in input{border-color:var(--color-border);background:#fff}.pf-grid td.in input:focus{outline:none;border-color:#3b82f6;background:#fff;box-shadow:0 0 0 3px #3b82f61f}.pf-grid td.in input:disabled,.pf-grid td.in input:read-only{color:#94a3b8;cursor:not-allowed;background:transparent}.pf-grid td.in input.changed{border-color:var(--color-warning);background:#fffbeb}.pf-grid td.in--info{font-family:var(--font-num);font-size:12.5px;text-align:right;color:#64748b}.pf-grid tfoot td{background:#f8fafc;border-top:2px solid var(--color-border);font-weight:700}.pf-grid tfoot .tot{font-family:var(--font-num);text-align:right}.pf-grid tfoot .tot.plan{color:var(--color-amber-600)}.pf-grid tfoot .tot.fact{color:var(--color-green-600)}.owner-chip{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:2px 8px;border-radius:99px;flex:none}.owner-chip--proc{color:#9a3412;background:#fff7ed;border:1px solid #fed7aa}.owner-chip--log{color:#1e40af;background:var(--color-blue-50);border:1px solid #bfdbfe}.switch{position:relative;display:inline-block;width:38px;height:22px;flex:none}.switch input{opacity:0;width:0;height:0;position:absolute}.switch .track{position:absolute;inset:0;background:#cbd5e1;border-radius:99px;transition:background .15s ease;cursor:pointer}.switch .track:before{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;background:#fff;border-radius:50%;transition:transform .15s ease;box-shadow:0 1px 2px #0f172a33}.switch input:checked+.track{background:var(--color-blue-600)}.switch input:checked+.track:before{transform:translate(16px)}.switch input:disabled+.track{opacity:.5;cursor:not-allowed}.tender-panel{grid-column:1 / -1;border:1px solid #bfdbfe;background:var(--color-blue-50);border-radius:var(--radius);padding:14px}.tender-panel .field-input{background:#fff}.tender-panel__title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--color-blue-600);margin-bottom:10px}.field-subgroup-title{grid-column:1 / -1;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:#94a3b8;margin-top:8px;display:flex;align-items:center;gap:10px}.field-subgroup-title:after{content:"";flex:1;height:1px;background:var(--color-border-light)}.section-completeness{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600;white-space:nowrap}.section-completeness--warn{background:var(--color-amber-50);color:var(--color-amber-600);border:1px solid #fde68a}.section-completeness--ok{background:var(--color-green-50);color:var(--color-green-600);border:1px solid #a7f3d0}.col-settings-popover{position:fixed;z-index:2600;width:280px;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden}.col-settings-popover__head{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-bottom:1px solid var(--color-border-light);font-size:12px;font-weight:700;color:var(--color-text);background:#f8fafc}.col-settings-popover__reset{border:none;background:transparent;padding:2px 6px;font-size:11px;font-weight:600;color:var(--color-blue-600);cursor:pointer}.col-settings-popover__reset:hover:not(:disabled){background:var(--color-blue-50);transform:none}.col-settings-popover__list{overflow-y:auto;padding:6px 4px}.col-settings-popover__item{display:flex;align-items:center;gap:8px;padding:6px 10px;font-size:12.5px;border-radius:6px;cursor:pointer;-webkit-user-select:none;user-select:none}.col-settings-popover__item:hover{background:var(--color-bg-dark)}.col-settings-popover__item--locked{opacity:.6;cursor:default}.col-settings-popover__item input[type=checkbox]{width:auto;margin:0;flex:0 0 auto}.col-settings-popover__item span{flex:1;min-width:0}.col-settings-popover__lock{flex:0 0 auto!important;font-size:10px}.col-settings-popover__hint{padding:8px 12px;border-top:1px solid var(--color-border-light);font-size:11px;color:var(--color-text-muted);background:#f8fafc}.collapsible-section{border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:0;background:#fff;margin-bottom:14px;box-shadow:var(--shadow-card);overflow:hidden}.collapsible-section>div:first-child{-webkit-user-select:none;user-select:none;transition:background var(--transition);background:#fff;padding:12px 16px;border-bottom:1px solid var(--color-border-light)}.collapsible-section>div:first-child:hover{background:var(--color-bg-dark)}.collapsible-section h3{color:var(--color-text);font-weight:700;font-size:15px;letter-spacing:-.01em;margin:0}.collapsible-section>div:not(:first-child){padding:14px 16px}.calc-tab{padding:4px 0}.calc-tab h3{font-size:1rem;font-weight:700;color:var(--color-text);margin:0 0 12px}.xl-section{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow:hidden;margin-bottom:16px}.xl-section-head{display:flex;align-items:center;gap:14px;padding:14px 18px;border-bottom:1px solid var(--color-border-light);flex-wrap:wrap}.xl-section-head h4{font-size:15px;font-weight:700;margin:0}.xl-section-head .spacer{flex:1}.xl-fx-bar{display:flex;align-items:center;gap:10px;padding:9px 14px;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-sm);margin:12px 18px;font-family:var(--font-num);font-size:12.5px}.xl-fx-bar .fx{font-weight:800;font-style:italic;color:var(--color-green-600);font-size:14px}.xl-fx-bar .addr{background:var(--color-blue-50);color:var(--color-blue-600);font-weight:700;padding:2px 8px;border-radius:4px;font-size:12px}.xl-fx-bar .expr{color:#64748b;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.xl-wrap{overflow-x:auto;padding:0 18px 18px}.xl-table{width:100%;border-collapse:collapse;font-size:12.5px;min-width:760px}.xl-table th,.xl-table td{border:1px solid var(--color-border);padding:7px 10px;text-align:left;vertical-align:middle}.xl-table thead th{background:#f1f5f9;color:#64748b;font-size:11px;font-weight:700;text-align:center;text-transform:uppercase;letter-spacing:.04em;padding:5px 8px}.xl-table .xl-rownum{background:#f1f5f9;color:#94a3b8;font-family:var(--font-num);font-size:11px;text-align:center;width:36px;font-weight:500}.xl-table .xl-name{font-weight:500;min-width:220px;color:#1e293b}.xl-table .xl-formula{font-family:var(--font-num);font-size:11.5px;color:#64748b;background:#f8fafc;min-width:260px}.xl-table .xl-formula:before{content:"= ";color:#3b82f6;font-weight:700}.xl-table .xl-val{font-family:var(--font-num);font-size:12.5px;text-align:right;white-space:nowrap;width:140px}.xl-table .xl-group td{background:#0f172a;color:#fff;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;border-color:#0f172a}.xl-table .xl-result td{background:var(--color-blue-50);font-weight:700}.xl-table .xl-result .xl-val{color:var(--color-blue-600);font-size:13.5px}.xl-table .xl-final td{background:var(--color-green-50);font-weight:700}.xl-table .xl-final .xl-val{color:var(--color-green-600);font-size:14px}.xl-table .xl-sub .xl-name{padding-left:26px;color:#64748b;font-weight:400}.xl-table tbody tr:hover td{background:#eff6ff}.xl-table .xl-group:hover td{background:#0f172a}.xl-table .xl-result:hover td{background:#dbeafe}.xl-table .xl-final:hover td{background:#d1fae5}.calc-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px 20px;margin-bottom:16px}.calc-toolbar-group{display:flex;flex-direction:column;gap:6px;min-width:0}.calc-toolbar-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.calc-view-switcher,.calc-stage-switcher{display:flex;gap:0;flex-wrap:nowrap}.calc-view-switcher--segmented,.calc-stage-switcher--segmented{border-radius:var(--radius-sm);border:1px solid var(--color-border);overflow:hidden;background:var(--color-bg-dark)}.calc-view-switcher--segmented .stage-btn,.calc-stage-switcher--segmented .stage-btn{border-radius:0;border:none;border-right:1px solid var(--color-border);margin:0}.calc-view-switcher--segmented .stage-btn:last-child,.calc-stage-switcher--segmented .stage-btn:last-child{border-right:none}.calc-view-switcher--segmented .stage-btn:disabled,.calc-stage-switcher--segmented .stage-btn:disabled{opacity:.45}.calc-summary{display:flex;flex-direction:column;gap:14px}.calc-summary-meta-row{display:flex;flex-wrap:wrap;gap:8px}.calc-summary-meta-chip{display:inline-flex;align-items:baseline;gap:8px;padding:8px 12px;background:#fff;border:1px solid var(--color-border-light);border-radius:var(--radius-sm);font-size:12px;box-shadow:var(--shadow-sm)}.calc-summary-meta-chip-label{font-weight:700;color:var(--color-text-muted);text-transform:uppercase;font-size:10px;letter-spacing:.04em}.calc-summary-meta-chip-value{font-weight:600;color:var(--color-text);font-variant-numeric:tabular-nums}.calc-summary-cards{display:flex;flex-direction:column;gap:12px}.calc-summary-card{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}.calc-summary-card-title{margin:0;padding:12px 16px;font-size:13px;font-weight:700;color:var(--color-text);background:#f8fafc;border-bottom:1px solid var(--color-border);letter-spacing:.02em}.calc-summary-card-body{padding:14px 16px 16px;font-size:13px;line-height:1.55;color:var(--color-text);font-variant-numeric:tabular-nums}.calc-summary-card--single .calc-summary-card-body{padding-top:16px}.calc-summary-spacer{height:8px}.calc-summary-subheading{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin:12px 0 6px}.calc-summary-card-body>.calc-summary-subheading:first-child{margin-top:0}.calc-summary-product-list{margin:0 0 10px;padding-left:18px;color:var(--color-text)}.calc-summary-product{margin-bottom:4px;padding-left:2px}.calc-summary-section-title{margin:14px 0 8px;font-size:12px;font-weight:700;color:var(--color-secondary);line-height:1.35}.calc-summary-card-body>.calc-summary-section-title:first-child{margin-top:0}.calc-summary-kv{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 16px;align-items:baseline;padding:5px 0;border-bottom:1px solid #f1f5f9}.calc-summary-kv:last-of-type{border-bottom:none}.calc-summary-kv-label{color:var(--color-text-light);font-size:12px;min-width:0}.calc-summary-kv-value{font-weight:600;text-align:right;white-space:nowrap;color:var(--color-text)}.calc-summary-subdetail{margin:4px 0 0 12px;font-size:11px;color:var(--color-text-muted);line-height:1.45}.calc-summary-formula{font-size:12px;font-family:ui-monospace,monospace;background:#f8fafc;border-radius:var(--radius-sm);padding:6px 10px;margin:4px 0;color:#334155;word-break:break-word}.calc-summary-total{font-weight:700;font-size:13px;margin:8px 0 2px;padding:8px 10px;background:linear-gradient(90deg,rgba(59,130,246,.08),transparent);border-radius:var(--radius-sm);color:var(--color-text)}.calc-summary-plain{margin:4px 0;font-size:13px;color:var(--color-text)}.calc-compare-block{overflow-x:auto}.calc-compare-table-wrap{max-height:min(70vh,640px);overflow:auto;border-radius:var(--radius);border:1px solid var(--color-border);box-shadow:var(--shadow-sm)}.calc-compare-table-wrap .calc-compare-table{border-radius:0;border:none;box-shadow:none}.calc-compare-legend{font-size:12px;color:var(--color-text-light);margin-bottom:12px;display:flex;flex-wrap:wrap;gap:16px;align-items:center}.calc-compare-legend-dot{display:inline-block;width:12px;height:12px;border-radius:4px;margin-right:4px;vertical-align:middle}.calc-compare-legend-dot--more{background:#d32f2f4d}.calc-compare-legend-dot--less{background:#2e7d324d}.calc-compare-legend-dot--same{background:#00000014}.calc-compare-table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;background:#fff;border-radius:var(--radius);overflow:hidden;border:1px solid var(--color-border);box-shadow:var(--shadow-sm)}.calc-compare-table thead tr{background:#f8fafc}.calc-compare-table thead th{position:sticky;top:0;z-index:1;box-shadow:0 1px 0 var(--color-border);padding:12px 14px;font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-light);text-align:left;border-bottom:none;background:#f8fafc}.calc-compare-table thead th:nth-child(2),.calc-compare-table thead th:nth-child(3),.calc-compare-table thead th.compare-th-delta{text-align:right}.calc-compare-table thead th.compare-th-verdict{text-align:center}.calc-compare-table tbody td{padding:10px 14px;border-top:1px solid #f1f5f9}.calc-compare-table tbody tr:first-child td{border-top:none}.calc-compare-table tbody tr:hover{background:#f8fafc}.calc-compare-table .compare-td-plan,.calc-compare-table .compare-td-fact{text-align:right;font-variant-numeric:tabular-nums;font-weight:500}.calc-compare-label{max-width:min(22rem,100%);word-break:break-word}.calc-compare-label--nested{padding-left:12px;font-size:12px;color:var(--color-text-light)}.calc-compare-label--strong{font-weight:700;color:var(--color-text)}.compare-td-delta{text-align:right;font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}.compare-td-delta--more{color:#b71c1c}.compare-td-delta--less{color:#1b5e20}.compare-td-delta--same{color:var(--color-text-muted)}.compare-delta-zero{color:var(--color-text-muted);font-weight:500}.compare-td-verdict{text-align:center;vertical-align:middle}.calc-compare-verdict{display:inline-block;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:700;letter-spacing:.02em}.calc-compare-verdict--more{background:#d32f2f1f;color:#b71c1c}.calc-compare-verdict--less{background:#2e7d321f;color:#1b5e20}.calc-compare-verdict--same{background:#0000000d;color:#64748b}.calc-compare-badge{display:inline-block;padding:4px 10px;border-radius:20px;font-size:11px;font-weight:600;white-space:nowrap}.calc-compare-badge--more{background:#d32f2f1f;color:#b71c1c}.calc-compare-badge--less{background:#2e7d321f;color:#1b5e20}.calc-compare-badge--same{background:#0000000d;color:#666}.calc-compare-row--more{background:#d32f2f0a}.calc-compare-row--less{background:#2e7d320a}.calc-compare-row--same{background:#f8fafce6}.kp-section-title{font-size:1rem;font-weight:700;color:var(--color-text);margin:0 0 14px}.kp-warning{margin-top:10px;padding:12px 14px;border-radius:var(--radius-sm);background:#ffc1071a;border:1px solid rgba(255,152,0,.35);font-size:13px}.kp-warning-title{font-weight:700;margin-bottom:4px;color:#92400e}.kp-warning ul{margin:0;padding-left:18px;color:#78350f}.kp-actions-area{margin-top:14px;display:flex;flex-direction:column;gap:12px;background:#f8fafc;border:1px solid var(--color-border-light);border-radius:var(--radius);padding:14px}.kp-actions-group-label{font-size:11px;color:var(--color-text-muted);margin-bottom:4px;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.kp-actions-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.kp-products-header{display:grid;gap:0;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-light);background:#f8fafc;border-bottom:1px solid var(--color-border);border-radius:var(--radius-sm) var(--radius-sm) 0 0;overflow:hidden}.kp-products-header>div{padding:10px 12px;border-right:1px solid var(--color-border-light)}.kp-products-header>div:last-child{border-right:none}.kp-products-row{display:grid;gap:0;align-items:center;border-bottom:1px solid #f1f5f9;transition:background .15s ease;font-size:13px;font-variant-numeric:tabular-nums}.kp-products-row input[type=number]{font-family:var(--font-num);font-size:12.5px;text-align:right}.kp-products-row:nth-child(2n){background:#fafbfd}.kp-products-row:hover{background:#f0f5ff}.kp-products-row>div,.kp-products-row>input{padding:8px 12px;border-right:1px solid #f1f5f9;min-height:40px;display:flex;align-items:center}.kp-products-row>div:last-child,.kp-products-row>input:last-child{border-right:none}.kp-totals-row{display:grid;gap:0;align-items:center;padding:4px 0;font-variant-numeric:tabular-nums}.kp-totals-row--final{border-top:2px solid #e2e8f0;margin-top:4px;padding-top:8px;font-weight:700}.kp-totals-row--final>div:last-child{color:var(--color-blue-600);font-size:15px}.kp-totals-row>div,.kp-totals-row>input{padding:6px 12px}.kp-products-wrapper{border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);background:#fff}.modal-overlay{position:fixed;inset:0;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:9999}.modal-card{width:min(720px,95vw);max-height:80vh;background:#fff;border-radius:var(--radius);box-shadow:0 20px 60px #0003;padding:24px;display:flex;flex-direction:column;gap:14px}.modal-header{display:flex;justify-content:space-between;align-items:center}.modal-header h3{margin:0;font-size:1.1rem;font-weight:700;color:var(--color-text)}.modal-body{font-size:13px;color:var(--color-text-light)}.modal-table-wrap{border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:auto;max-height:55vh}.modal-table{width:100%;border-collapse:separate;border-spacing:0;font-size:12px}.modal-table thead{background:linear-gradient(135deg,#f8fafc,#f1f5f9);position:sticky;top:0;z-index:1}.modal-table thead th{padding:10px 12px;border-bottom:1px solid #e2e8f0;font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-light);text-align:left}.modal-table tbody td{padding:8px 12px;border-top:1px solid #f1f5f9}.modal-table tbody tr:first-child td{border-top:none}.modal-table tbody tr:hover{background:#f8fafc}.modal-footer{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.modal-status-badge{display:inline-flex;align-items:center;gap:4px}.modal-status-badge--success{color:#059669;font-weight:600}.modal-status-badge--draft{color:#6c757d}.modal-status-badge--kp{margin-left:8px;padding:2px 8px;border-radius:20px;background:#dbeafe;color:#1e40af;font-size:11px;font-weight:600}.invoices-subtabs{display:inline-flex;gap:4px;margin-bottom:20px;padding:4px;background:#eef1f5;border:1px solid var(--color-border);border-radius:var(--radius)}.invoices-subtab{padding:7px 20px;border-radius:var(--radius-sm);border:1px solid transparent;background:transparent;color:var(--color-text-light);cursor:pointer;font-weight:600;font-size:13px;transition:all var(--transition)}.invoices-subtab:hover:not(.invoices-subtab--active){background:#ffffffb3;color:var(--color-text)}.invoices-subtab--active{background:#fff;color:var(--color-blue-600);font-weight:700;border-color:var(--color-border);box-shadow:0 1px 3px #0f172a14}.invoice-form{padding:0}.invoice-section-title{font-size:1rem;font-weight:700;color:var(--color-text);margin-bottom:12px}.invoice-section-title--toggle:hover{color:var(--color-primary)}.invoice-totals{margin-top:12px;padding:12px 16px;background:#fafbfd;border-radius:var(--radius);border:1px solid var(--color-border)}.invoice-totals-row{display:flex;justify-content:space-between;align-items:center;padding:4px 0;font-size:13px}.invoice-totals-row--final{border-top:2px solid #e2e8f0;margin-top:6px;padding-top:8px;font-size:14px}.invoice-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:8px}.invoice-send-result{font-size:13px;padding:6px 14px;border-radius:999px;display:inline-flex;align-items:center}.invoice-send-result--success{background:#e8f5e9;color:#1b5e20}.invoice-send-result--error{background:#ffebee;color:#b71c1c}@media(max-width:768px){.app-container{padding:10px}.app-header{padding:14px}.app-header h2{font-size:1.1rem}.app-tabs{flex-direction:column;gap:4px;padding:4px}.app-tab{width:100%;text-align:left}.data-form-header{flex-direction:column;align-items:flex-start;padding:12px 14px}.stage-switcher{width:100%}.stage-btn{flex:1}.calc-toolbar-group,.calc-view-switcher--segmented,.calc-stage-switcher--segmented{width:100%}.calc-view-switcher--segmented .stage-btn,.calc-stage-switcher--segmented .stage-btn{flex:1;min-width:0}}
