*{margin:0;padding:0;box-sizing:border-box}html{font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;background:linear-gradient(135deg,var(--bg) 0%,var(--bg-secondary) 100%)}.login-card{width:100%;max-width:420px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:2.5rem;box-shadow:var(--shadow-md)}.login-card h1{margin:0 0 .25rem;font-size:1.5rem;font-weight:700;color:var(--text);letter-spacing:-.02em}.subtitle{margin:0 0 1.75rem;color:var(--text-muted);font-size:.9375rem}.btn-block{width:100%;margin-top:.5rem;padding:.625rem 1rem}.error{background:var(--danger-light);color:var(--danger);padding:.75rem;border-radius:var(--radius-sm);margin-bottom:1rem;font-size:.875rem}.hint{margin:1.25rem 0 0;font-size:.8125rem;color:var(--text-muted)}.theme-toggle-floating{position:fixed;top:1rem;right:1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:44px;height:44px;font-size:1.2rem;cursor:pointer;box-shadow:var(--shadow);z-index:100;transition:all .15s}.theme-toggle-floating:hover{background:var(--surface-hover);box-shadow:var(--shadow-md)}.b24-layout{min-height:100vh;display:flex;flex-direction:column}.b24-topbar{height:56px;background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 1.5rem;position:sticky;top:0;z-index:50;box-shadow:var(--shadow-sm)}.b24-topbar-left{display:flex;align-items:center}.b24-logo{font-size:1.25rem;font-weight:700;color:var(--accent);letter-spacing:-.02em}.b24-topbar-right{display:flex;align-items:center;gap:.75rem}.b24-theme-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:1rem;cursor:pointer;transition:all .15s}.b24-theme-btn:hover{background:var(--surface-hover)}.b24-logout-btn{padding:.4rem .9rem;font-size:.8125rem;font-weight:500;background:var(--surface-hover);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);cursor:pointer;transition:all .15s}.b24-logout-btn:hover{background:var(--border)}.b24-body{display:flex;flex:1}.b24-sidebar{width:240px;background:var(--surface);border-right:1px solid var(--border);padding:1rem 0}.b24-nav{display:flex;flex-direction:column;gap:2px}.b24-nav-item{display:flex;align-items:center;gap:.75rem;padding:.625rem 1.25rem;color:var(--text-secondary);font-size:.9375rem;transition:all .15s;border-left:3px solid transparent}.b24-nav-item:hover{background:var(--surface-hover);color:var(--text)}.b24-nav-item.active{background:var(--nav-active-bg);color:var(--accent);font-weight:500;border-left-color:var(--accent)}.b24-nav-icon{font-size:1.1rem;opacity:.9}.b24-main{flex:1;overflow-y:auto;background:var(--bg)}.companies-list{margin-top:.5rem}.company-card{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;padding:1.25rem 1.5rem;transition:all .15s}.company-card:hover{border-color:var(--border)}.company-info h3{margin:0 0 .25rem;font-size:1.0625rem;font-weight:600;color:var(--text)}.company-info p{margin:0;font-size:.875rem;color:var(--text-muted)}.company-info .muted{color:var(--text-muted)}.badge{display:inline-block;margin-top:.5rem;padding:.25rem .5rem;background:var(--accent-light);color:var(--accent);border-radius:var(--radius-sm);font-size:.75rem;font-weight:500}.company-actions{display:flex;gap:.5rem;flex-wrap:wrap}.company-form .card h3{margin:0 0 1rem;font-size:1rem;font-weight:600}.section-toggle{background:none;border:none;color:var(--accent);cursor:pointer;font-size:.9375rem;padding:.5rem 0;display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem;font-weight:500}.section-toggle:hover{color:var(--accent-hover)}.requisites-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 1.5rem;margin-top:.5rem}.requisites-grid .form-group.wide{grid-column:1 / -1}.proposals-header{margin-bottom:1rem}.filter-bar{margin-bottom:1rem;color:var(--text-muted);font-size:.875rem}.proposals-list{margin-top:.5rem}.proposal-card{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;padding:1.25rem 1.5rem}.proposal-info h3{margin:0 0 .25rem;font-size:1.0625rem;font-weight:600;color:var(--text)}.proposal-info .muted{margin:0;font-size:.875rem;color:var(--text-muted)}.proposal-meta{margin-top:.5rem;display:flex;gap:.75rem;align-items:center}.amount{font-weight:600;color:var(--success);font-size:.9375rem}.status{font-size:.75rem;padding:.25rem .5rem;border-radius:var(--radius-sm);font-weight:500}.status-draft{background:var(--surface-hover);color:var(--text-muted)}.status-sent{background:var(--accent-light);color:var(--accent)}.status-accepted{background:var(--success-light);color:var(--success)}.proposal-actions{display:flex;gap:.5rem;flex-wrap:wrap}.empty-state{text-align:center;padding:3rem 2rem!important}.empty-state .empty{font-size:1.125rem;font-weight:600;color:var(--text);margin:0 0 .5rem}.empty-desc{color:var(--text-muted);font-size:.9375rem;margin:0 0 1.5rem}.proposal-form .card{margin-bottom:1.5rem}.proposal-form select{width:100%;padding:.6rem .8rem;background:var(--bg);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:.95rem}.items-block h3{margin:0 0 1rem;font-size:1rem}.items-header{margin-bottom:1rem;flex-wrap:wrap;gap:.5rem}.items-actions{display:flex;gap:.5rem;flex-wrap:wrap}.import-error{background:var(--danger-light);color:var(--danger);padding:.75rem;border-radius:var(--radius-sm);margin-bottom:1rem;font-size:.875rem}.import-hint{margin:-.5rem 0 1rem;font-size:.8125rem;color:var(--text-muted)}.markup-control{display:inline-flex;align-items:center;gap:.35rem}.markup-input{width:56px;padding:.35rem .5rem;font-size:.875rem;text-align:center}.estimate-table-wrap{overflow-x:auto}.estimate-table{width:100%;border-collapse:collapse;font-size:.9rem}.estimate-table th,.estimate-table td{padding:.5rem .6rem;border:1px solid var(--border);vertical-align:middle}.estimate-table th{background:var(--surface-hover);color:var(--text-muted);font-weight:500;text-align:left}.check-col{width:40px;padding:.5rem!important;text-align:center}.check-col input[type=checkbox]{cursor:pointer}.drag-col{width:36px;padding:.5rem!important}.drag-handle{cursor:grab;color:var(--text-muted);font-size:.9rem;-webkit-user-select:none;user-select:none;padding:.5rem!important}.drag-handle:active{cursor:grabbing}.estimate-table tr.dragging{opacity:.5;background:var(--accent-light)}.estimate-table tr.drag-over{border-top:2px solid var(--accent)}.estimate-table .role-col{min-width:70px}.estimate-table .sum-col{min-width:100px}.estimate-table input{width:100%;min-width:50px;padding:.4rem .5rem;background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:.9rem}.estimate-table input:focus{outline:none;border-color:var(--accent)}.rates-row td input{font-weight:500;color:var(--accent)}.row-sum{font-weight:500;color:var(--success);white-space:nowrap}.totals-row td{background:var(--surface-hover);font-weight:500}.totals-row.amounts td{color:var(--text-muted);font-size:.85rem}.grand-total{font-size:1.1rem!important;color:var(--success)!important;text-align:right}.btn-sm{padding:.35rem .6rem;font-size:.85rem}.proposal-form .color-row{display:flex;gap:2rem;margin-top:.5rem}.proposal-form .color-input{display:flex;gap:.5rem;align-items:center}.proposal-form .color-input input[type=color]{width:48px;height:36px;padding:2px;border:1px solid var(--border);border-radius:6px;cursor:pointer;background:var(--bg)}.proposal-form .color-input input[type=text]{width:100px;padding:.5rem;background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text)}.proposal-view .proposal-header{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:1rem}.proposal-view h1{margin:0 0 .25rem;font-size:1.5rem}.proposal-view .company{margin:0;color:var(--text-muted);font-size:.95rem}.status-badge{display:inline-block;margin-top:.5rem;padding:.3rem .6rem;border-radius:6px;font-size:.85rem}.status-badge.status-draft{background:var(--surface-hover);color:var(--text-muted)}.status-badge.status-sent{background:var(--accent-light);color:var(--accent)}.status-badge.status-accepted{background:var(--success-light);color:var(--success)}.share-section{display:flex;flex-direction:column;gap:.5rem}.share-input{padding:.5rem;background:var(--bg);border:1px solid var(--border);border-radius:8px;color:var(--text-muted);font-size:.85rem;width:100%;min-width:280px}.proposal-view .card h3{margin:0 0 1rem;font-size:1rem}.proposal-view .view-table{margin-top:.5rem}.proposal-view .proposal-table{width:100%;border-collapse:collapse;font-size:.9rem}.proposal-view .proposal-table th,.proposal-view .proposal-table td{padding:.6rem;text-align:left;border-bottom:1px solid var(--border)}.proposal-view .proposal-table th{color:var(--text-muted);font-weight:500}.proposal-view .proposal-table .rates-row td{color:var(--text-muted);font-size:.85rem}.proposal-view .proposal-table .row-sum{font-weight:500;color:var(--success)}.proposal-view .proposal-table .totals-row td{background:var(--surface-hover);font-weight:500}.proposal-view .proposal-table .grand-total{color:var(--success);font-size:1.1rem}.items-table{width:100%;border-collapse:collapse}.items-table th,.items-table td{padding:.6rem;text-align:left;border-bottom:1px solid var(--border)}.items-table th{color:var(--text-muted);font-weight:500;font-size:.9rem}.total{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border);display:flex;justify-content:space-between;font-size:1.1rem}.total span{color:var(--success)}.history-block h3{margin-bottom:.75rem}.history-list{list-style:none;margin:0;padding:0}.history-list li{padding:.4rem 0;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;font-size:.9rem}.history-list .action{color:var(--text-muted)}.history-list .date{color:var(--text-muted);font-size:.85rem}.public-page{min-height:100vh;padding:2rem;display:flex;align-items:flex-start;justify-content:center;transition:background-color .3s}.public-page.loading{align-items:center;color:var(--text-muted)}.public-page.error-state{align-items:center}.public-card{max-width:900px;width:100%;background:#fff;border-radius:12px;padding:2.5rem;box-shadow:0 4px 24px #00000014;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.cp-header{display:flex;align-items:center;gap:2rem;padding-bottom:1.5rem;margin-bottom:1.5rem;border-bottom:2px solid var(--cp-accent, #2fc6f6)}.cp-logo{max-height:56px;max-width:180px;object-fit:contain}.cp-logo-placeholder{padding:.75rem 1.25rem;border-radius:8px;color:#fff;font-weight:700;font-size:1.25rem}.cp-title-main{margin:0;font-size:1.5rem;font-weight:600;color:#333}.cp-two-col{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-bottom:2rem}.requisites-block{background:#f8f9fb;border-radius:8px;padding:1rem 1.25rem;border-left:4px solid var(--cp-accent, #2fc6f6)}.requisites-block h4{margin:0 0 .5rem;font-size:.9rem;color:#6c757d;font-weight:600}.requisites-content p{margin:.2rem 0;font-size:.9rem;color:#333;line-height:1.4}.cp-client-name{margin-bottom:1.5rem;font-size:1rem;color:#555}.cp-doc-title{margin-bottom:1rem}.cp-doc-title h2{margin:0;font-size:1.35rem;font-weight:600;color:#222}.cp-desc{margin-bottom:1.5rem;color:#555;font-size:.95rem;line-height:1.5}.cp-table-wrap{margin-bottom:1.5rem;overflow-x:auto}.cp-table-wrap .proposal-table{width:100%;border-collapse:collapse;font-size:.9rem}.cp-table-wrap .proposal-table th,.cp-table-wrap .proposal-table td{padding:.7rem;text-align:left;border:1px solid #e9ecef}.cp-table-wrap .proposal-table th{background:#f8f9fb;color:#495057;font-weight:600}.cp-table-wrap .proposal-table .rates-row td{background:#fff;color:#6c757d;font-size:.85rem}.cp-table-wrap .proposal-table .row-sum{font-weight:600;color:var(--cp-accent, #2fc6f6)}.cp-table-wrap .proposal-table .totals-row td{background:#f8f9fb;font-weight:600}.cp-table-wrap .proposal-table .grand-total{color:#198754;font-weight:700}.cp-total-block{padding:1rem 1.5rem;background:#f8f9fb;border-radius:8px;border-left:4px solid;display:flex;justify-content:space-between;align-items:center;font-size:1.2rem;margin-bottom:2rem}.cp-total-block span{color:#198754;font-weight:700}.cp-footer{padding-top:1.5rem;border-top:1px solid #e9ecef}.cp-contacts{margin-bottom:1rem;font-size:.9rem;color:#6c757d}.cp-contacts p{margin:.2rem 0}.cp-brand{margin:0;font-size:.85rem;color:#adb5bd}@media (max-width: 768px){.cp-two-col{grid-template-columns:1fr}.cp-header{flex-direction:column;align-items:flex-start}}.settings-form .card{margin-bottom:1.5rem}.settings-form .card h3{margin:0 0 .5rem;font-size:1rem;font-weight:600}.settings-form .hint{margin:0 0 1rem;font-size:.875rem;color:var(--text-muted)}.settings-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 1.5rem}.settings-grid .form-group.wide{grid-column:1 / -1}.color-row{display:flex;gap:2rem;margin-top:1rem}.color-input{display:flex;gap:.5rem;align-items:center}.color-input input[type=color]{width:48px;height:36px;padding:2px;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;background:var(--bg)}.color-input input[type=text]{width:100px;padding:.5rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text)}*{box-sizing:border-box}:root,[data-theme=light]{--bg: #eef2f6;--bg-secondary: #f8fafc;--surface: #ffffff;--surface-hover: #f1f5f9;--border: #e2e8f0;--border-light: #f1f5f9;--text: #1e293b;--text-secondary: #475569;--text-muted: #64748b;--accent: #0089c7;--accent-light: #e0f4fc;--nav-active-bg: #e0f4fc;--focus-ring: rgba(0, 137, 199, .25);--accent-hover: #0095d6;--success: #0d9488;--success-light: #ccfbf1;--danger: #dc2626;--danger-light: #fee2e2;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow: 0 1px 3px rgba(0, 0, 0, .08);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .08), 0 2px 4px -2px rgba(0, 0, 0, .04);--radius: 8px;--radius-sm: 6px}[data-theme=dark]{--bg: #0f172a;--bg-secondary: #1e293b;--surface: #1e293b;--surface-hover: #334155;--border: #334155;--border-light: #475569;--text: #f8fafc;--text-secondary: #cbd5e1;--text-muted: #94a3b8;--accent: #38bdf8;--accent-light: #0c4a6e;--nav-active-bg: rgba(56, 189, 248, .12);--focus-ring: rgba(56, 189, 248, .3);--accent-hover: #7dd3fc;--success: #2dd4bf;--success-light: #134e4a;--danger: #f87171;--danger-light: #7f1d1d;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .2);--shadow: 0 1px 3px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .3), 0 2px 4px -2px rgba(0, 0, 0, .2)}body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;font-size:14px;line-height:1.5;transition:background-color .2s,color .2s}.loading{display:flex;align-items:center;justify-content:center;min-height:100vh;font-size:1rem;color:var(--text-muted)}a{color:var(--accent);text-decoration:none;transition:color .15s}a:hover{color:var(--accent-hover)}button{font-family:inherit;cursor:pointer}.page{padding:1.5rem 2rem 2rem;max-width:1280px;margin:0 auto}.page h1{margin:0 0 1.5rem;font-size:1.5rem;font-weight:600;color:var(--text);letter-spacing:-.02em}.btn{padding:.5rem 1rem;border:none;border-radius:var(--radius-sm);font-size:.875rem;font-weight:500;transition:all .15s ease}.btn-primary{background:var(--accent);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover{background:var(--accent-hover);box-shadow:var(--shadow)}.btn-secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{background:var(--surface-hover);border-color:var(--text-muted)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{opacity:.92}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;margin-bottom:1rem;box-shadow:var(--shadow);transition:box-shadow .2s,border-color .2s}.card:hover{box-shadow:var(--shadow-md)}.form-group{margin-bottom:1.25rem}.form-group label{display:block;margin-bottom:.375rem;font-size:.8125rem;font-weight:500;color:var(--text-secondary)}.form-group input,.form-group textarea,.form-group select{width:100%;padding:.5rem .75rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:.9375rem;transition:border-color .15s,box-shadow .15s}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--focus-ring)}.form-group textarea{min-height:100px;resize:vertical}.flex{display:flex;gap:.75rem;align-items:center}.flex-between{display:flex;justify-content:space-between;align-items:center}.gap-1{gap:.5rem}.gap-2{gap:1rem}
