:root{--accent: #111112;--accent-ink: #FFFFFF;--accent-soft: #F4F4F2;--accent-hover: #2A2A2C;--bg: #FFFFFF;--bg-elev: #FFFFFF;--bg-muted: #F7F7F5;--bg-hover: #F2F2F0;--border: #E8E8E4;--border-strong: #D0D0CC;--border-soft: #EFEFEC;--ink-1: #111112;--ink-2: #3A3A3C;--ink-3: #6B6B70;--ink-4: #9A9A9F;--ink-5: #BFBFC2;--pos: #16A34A;--neg: #DC2626;--warn: #D97706;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono: "JetBrains Mono", "SF Mono", ui-monospace, Menlo, monospace;--radius-sm: 4px;--radius: 6px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:var(--font-sans);-webkit-font-smoothing:antialiased;color:var(--ink-1);background:var(--bg);font-size:13px;line-height:1.45}#root{height:100%}button{font-family:inherit;cursor:pointer}input,textarea,select{font-family:inherit}.app{display:grid;grid-template-columns:216px 1fr;height:100vh;overflow:hidden}.sidebar{display:flex;flex-direction:column;border-right:1px solid var(--border);height:100vh;overflow-y:auto;background:var(--bg)}.logo-block{display:flex;align-items:center;gap:10px;padding:16px 14px 14px;flex-shrink:0}.logo-mark{width:30px;height:30px;border-radius:7px;background:var(--accent);display:grid;place-items:center;color:#fff;font-family:var(--font-mono);font-weight:700;font-size:12px;letter-spacing:-.02em;flex-shrink:0}.logo-wordmark{font-weight:600;font-size:13.5px;letter-spacing:-.015em;color:var(--ink-1)}.logo-sub{font-size:10px;color:var(--ink-4);letter-spacing:.05em;text-transform:uppercase;font-weight:500;margin-top:1px}.nav-sep{height:1px;background:var(--border-soft);margin:2px 12px}.nav-section{padding:4px 8px}.nav-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:5px;color:var(--ink-2);font-size:12.5px;font-weight:450;cursor:pointer;position:relative;height:30px;border:none;background:transparent;width:100%;text-align:left;transition:background .1s}.nav-item:hover{background:var(--bg-hover);color:var(--ink-1)}.nav-icon{width:15px;height:15px;color:var(--ink-4);flex-shrink:0}.nav-item.active{background:var(--accent-soft);color:var(--ink-1);font-weight:500}.nav-item.active .nav-icon{color:var(--ink-1)}.nav-item.active:before{content:"";position:absolute;left:-8px;top:5px;bottom:5px;width:2px;background:var(--accent);border-radius:0 2px 2px 0}.sidebar-footer{padding:10px 12px;border-top:1px solid var(--border-soft);margin-top:auto}.user-row{display:flex;align-items:center;gap:8px}.user-avatar{width:26px;height:26px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:10px;font-weight:600;flex-shrink:0}.user-name{font-size:12px;font-weight:500;color:var(--ink-1)}.user-email{font-size:10.5px;color:var(--ink-4)}main{display:flex;flex-direction:column;overflow:hidden;height:100vh}.topbar{height:48px;display:flex;align-items:center;gap:10px;padding:0 20px;border-bottom:1px solid var(--border);background:var(--bg-elev);flex-shrink:0}.crumb{font-size:12.5px;color:var(--ink-3)}.crumb.cur{color:var(--ink-1);font-weight:500}.crumb-sep{color:var(--ink-5);font-size:12.5px;margin:0 2px}.grow{flex:1}.sep-v{width:1px;height:16px;background:var(--border);flex-shrink:0}.search-box{display:flex;align-items:center;gap:6px;height:30px;padding:0 10px;background:var(--bg-muted);border:1px solid transparent;border-radius:5px;font-size:12.5px;color:var(--ink-3);width:240px;transition:all .15s}.search-box:focus-within{background:var(--bg-elev);border-color:var(--accent);box-shadow:0 0 0 3px #11111217}.search-box input{all:unset;flex:1;font-size:12.5px;color:var(--ink-1)}.sub-bar{padding:10px 20px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--bg-elev)}.page-title{font-size:18px;font-weight:600;letter-spacing:-.018em;color:var(--ink-1)}.page-sub{font-size:12px;color:var(--ink-3);margin-top:1px}.content{flex:1;overflow-y:auto;background:var(--bg-muted);padding:20px}.content.flat{background:var(--bg);padding:0}.btn{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border-radius:5px;font-size:12.5px;font-weight:500;color:var(--ink-2);background:var(--bg-elev);border:1px solid var(--border);cursor:pointer;white-space:nowrap;transition:all .1s}.btn:hover{background:var(--bg-hover);border-color:var(--border-strong)}.btn.primary{background:var(--accent);color:#fff;border-color:transparent}.btn.primary:hover{background:var(--accent-hover)}.btn.ghost{background:transparent;border-color:transparent;color:var(--ink-2)}.btn.ghost:hover{background:var(--bg-hover)}.btn.sm{height:26px;padding:0 9px;font-size:11.5px}.btn.danger{color:var(--neg)}.btn.danger:hover{background:#fef2f2;border-color:#fecaca}.btn:disabled{opacity:.45;pointer-events:none}.segmented{display:inline-flex;padding:2px;background:var(--bg-muted);border-radius:6px;border:1px solid var(--border);gap:1px}.segmented button{all:unset;padding:0 10px;height:22px;font-size:11.5px;font-weight:500;color:var(--ink-3);border-radius:4px;cursor:pointer;white-space:nowrap}.segmented button:hover{color:var(--ink-1)}.segmented button.active{background:var(--bg-elev);color:var(--ink-1);box-shadow:0 1px 2px #0000000f,0 0 0 1px var(--border)}.chip{display:inline-flex;align-items:center;gap:5px;padding:1px 7px;border-radius:4px;font-size:11px;font-weight:500;border:1px solid var(--border);height:20px;white-space:nowrap}.chip .dot{width:5px;height:5px;border-radius:50%;background:var(--ink-4)}.chip.draft{color:var(--ink-3);border-color:var(--border);background:var(--bg-muted)}.chip.draft .dot{background:var(--ink-4)}.chip.sent{color:#1d4ed8;border-color:#bfdbfe;background:#eff6ff}.chip.sent .dot{background:#3b82f6}.chip.viewed{color:#6d28d9;border-color:#ddd6fe;background:#f5f3ff}.chip.viewed .dot{background:#7c3aed}.chip.accepted{color:#15803d;border-color:#bbf7d0;background:#f0fdf4}.chip.accepted .dot{background:var(--pos)}.chip.expired{color:#92400e;border-color:#fde68a;background:#fffbeb}.chip.expired .dot{background:var(--warn)}.chip.paid{color:#15803d;border-color:#bbf7d0;background:#f0fdf4}.chip.paid .dot{background:var(--pos)}.chip.overdue{color:#b91c1c;border-color:#fecaca;background:#fef2f2}.chip.overdue .dot{background:var(--neg)}.chip.partial{color:#92400e;border-color:#fde68a;background:#fffbeb}.chip.partial .dot{background:var(--warn)}.card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius)}.card-head{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--border-soft);height:40px}.card-title{font-size:12.5px;font-weight:600;color:var(--ink-1)}.card-sub{font-size:11.5px;color:var(--ink-4)}.kpi{padding:16px;display:flex;flex-direction:column;gap:4px;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius)}.kpi-label{font-size:11.5px;color:var(--ink-3);font-weight:500}.kpi-value{font-size:26px;font-weight:600;letter-spacing:-.02em;color:var(--ink-1);font-variant-numeric:tabular-nums;line-height:1.1;margin-top:2px}.kpi-unit{font-size:15px;font-weight:500;color:var(--ink-3)}.kpi-delta{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:500;color:var(--ink-3);margin-top:2px}.kpi-delta.up{color:var(--pos)}.kpi-delta.down{color:var(--neg)}.table{width:100%;border-collapse:collapse;font-size:12.5px}.table th{text-align:left;padding:7px 12px;font-weight:500;font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-4);border-bottom:1px solid var(--border);height:32px;background:var(--bg-muted);white-space:nowrap}.table td{padding:0 12px;height:36px;border-bottom:1px solid var(--border-soft);color:var(--ink-2);vertical-align:middle;white-space:nowrap}.table-wrap{overflow-x:auto}.table tbody tr:hover td{background:var(--bg-hover);cursor:pointer}.table .c-mono{font-family:var(--font-mono);font-size:11.5px;font-variant-numeric:tabular-nums}.table .c-strong{color:var(--ink-1);font-weight:500}.table .c-muted{color:var(--ink-4);font-size:11.5px}.field{display:flex;flex-direction:column;gap:4px}.field label{font-size:11.5px;font-weight:500;color:var(--ink-3)}.field input,.field textarea,.field select{height:32px;padding:0 10px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:12.5px;color:var(--ink-1);background:var(--bg);outline:none;transition:border-color .15s,box-shadow .15s}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--accent);box-shadow:0 0 0 2px #1111121a}.field textarea{height:auto;padding:8px 10px;resize:vertical;line-height:1.55}.field-input{height:32px;padding:0 10px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:12.5px;color:var(--ink-1);background:var(--bg);outline:none;width:100%;font-family:var(--font-sans)}.field-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px #1111121a}textarea.field-input{height:auto;padding:8px 10px;resize:vertical;line-height:1.55}.detail-body{flex:1;overflow-y:auto;background:var(--bg-muted)}.detail-inner{max-width:1060px;margin:0 auto;padding:20px 24px 48px}.detail-header{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:flex-start;padding-bottom:16px;border-bottom:1px solid var(--border);margin-bottom:20px}.meta-grid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--border);border-radius:6px;background:var(--bg-elev);overflow:hidden;margin-bottom:20px}.meta-cell{padding:12px 14px}.meta-cell+.meta-cell{border-left:1px solid var(--border-soft)}.meta-cell-label{font-size:10.5px;letter-spacing:.05em;color:var(--ink-4);text-transform:uppercase;font-weight:500;margin-bottom:4px}.meta-cell-value{font-size:13px;font-weight:500;color:var(--ink-1)}.meta-cell-sub{font-size:11.5px;color:var(--ink-4);margin-top:2px}.tab-bar{display:flex;border-bottom:1px solid var(--border);margin-bottom:20px}.tab{padding:10px 14px;font-size:12.5px;font-weight:500;color:var(--ink-3);border-bottom:2px solid transparent;cursor:pointer;margin-bottom:-1px;display:inline-flex;align-items:center;gap:6px;-webkit-user-select:none;user-select:none}.tab:hover{color:var(--ink-1)}.tab.active{color:var(--ink-1);border-bottom-color:var(--ink-1)}.tab-badge{font-size:10px;background:var(--bg-muted);border:1px solid var(--border);border-radius:3px;padding:0 4px;color:var(--ink-4);font-family:var(--font-mono)}.sec{border:1px solid var(--border);border-radius:6px;background:var(--bg-elev);overflow:hidden;margin-bottom:16px}.sec-head{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--border-soft);background:var(--bg-muted)}.sec-title{font-size:12.5px;font-weight:600;color:var(--ink-1)}.sec-hint{font-size:11.5px;color:var(--ink-4)}.sec-body{padding:14px}.pos-row{border:1px solid var(--border);border-radius:6px;background:var(--bg-elev);margin-bottom:8px;overflow:hidden}.pos-main{display:grid;grid-template-columns:36px 1fr 80px 120px 120px 30px}.pos-cell{padding:10px 12px;border-left:1px solid var(--border-soft)}.pos-cell:first-child{border-left:none}.pos-idx{font-family:var(--font-mono);font-size:10.5px;color:var(--ink-4)}.pos-title{font-size:13px;font-weight:600;color:var(--ink-1);margin-bottom:4px}.pos-desc{font-size:12px;color:var(--ink-3);line-height:1.55}.pos-col-label{font-size:10.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-4);font-weight:500;margin-bottom:3px}.pos-col-val{font-family:var(--font-mono);font-size:12.5px;font-variant-numeric:tabular-nums;color:var(--ink-1)}.pos-actions{padding:6px 10px;background:var(--bg-muted);border-top:1px solid var(--border-soft);display:flex;gap:4px;align-items:center}.sum-box{width:320px;border:1px solid var(--border);border-radius:6px;background:var(--bg-elev);overflow:hidden}.sum-row{display:flex;justify-content:space-between;align-items:baseline;padding:9px 14px;border-bottom:1px solid var(--border-soft);font-size:12.5px}.sum-row .sl{color:var(--ink-2)}.sum-row .sv{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:13px;font-weight:500;color:var(--ink-1)}.sum-row.muted .sl,.sum-row.muted .sv{color:var(--ink-3);font-weight:400}.sum-row.strong .sl{font-weight:500}.sum-row.strong .sv{font-weight:600}.sum-total{display:flex;justify-content:space-between;align-items:baseline;padding:13px 14px;background:var(--accent)}.sum-total .sl{font-size:12.5px;color:#ffffffbf;font-weight:500}.sum-total .sv{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:18px;font-weight:600;color:#fff}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:200;display:flex;align-items:center;justify-content:center;padding:20px}.modal{background:#fff;border-radius:10px;max-width:820px;width:100%;max-height:90vh;overflow:auto;box-shadow:0 24px 64px #0000004d}.modal-head{display:flex;align-items:center;gap:10px;padding:14px 20px;border-bottom:1px solid var(--border);position:sticky;top:0;background:#fff;z-index:1}.modal-title{font-size:14px;font-weight:600;color:var(--ink-1)}.pdf-doc{padding:48px 56px;font-family:Georgia,Georgia,serif;color:#1a1a1a;background:#fff}.pdf-company-name{font-size:22px;font-weight:700;color:#111;letter-spacing:-.02em;margin-bottom:2px;font-family:var(--font-sans)}.pdf-company-sub{font-size:11px;color:#888;letter-spacing:.04em;font-family:var(--font-sans)}.pdf-rule{border:none;border-top:1px solid #E0E0E0;margin:20px 0}.pdf-addr-block{font-size:11px;color:#888;font-family:var(--font-sans);margin-bottom:6px}.pdf-addr{font-size:13.5px;line-height:1.7;color:#111;font-family:var(--font-sans)}.pdf-meta-row{display:flex;gap:40px;margin-bottom:28px}.pdf-meta-item label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:#999;margin-bottom:2px;font-family:var(--font-sans)}.pdf-meta-item span{font-size:13px;color:#111;font-family:var(--font-sans);font-weight:500}.pdf-offer-title{font-size:17px;font-weight:700;color:#111;margin-bottom:16px;font-family:var(--font-sans)}.pdf-intro{font-size:13px;color:#333;line-height:1.7;margin-bottom:24px;font-family:var(--font-sans);white-space:pre-wrap}.pdf-table{width:100%;border-collapse:collapse;font-family:var(--font-sans);font-size:12px;margin-bottom:20px}.pdf-table thead th{text-align:left;padding:8px 10px;border-bottom:2px solid #111;font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:#666;font-weight:600}.pdf-table thead th:last-child,.pdf-table thead th:nth-child(3),.pdf-table thead th:nth-child(4){text-align:right}.pdf-table tbody td{padding:10px;border-bottom:1px solid #F0F0F0;vertical-align:top}.pdf-table tbody td:last-child,.pdf-table tbody td:nth-child(3),.pdf-table tbody td:nth-child(4){text-align:right;font-variant-numeric:tabular-nums}.pos-name{font-weight:600;font-size:12.5px;color:#111}.pos-bdesc{font-size:11.5px;color:#555;margin-top:3px;line-height:1.5}.pdf-sum-section{display:flex;justify-content:flex-end;margin-bottom:24px}.pdf-sums{width:280px;font-family:var(--font-sans)}.pdf-sum-row{display:flex;justify-content:space-between;padding:5px 0;font-size:12.5px;border-bottom:1px solid #F0F0F0}.pdf-sum-row.final{border-top:2px solid #111;border-bottom:2px solid #111;margin-top:4px;font-weight:700;font-size:14px;padding:8px 0}.pdf-fuss{font-size:12px;color:#555;line-height:1.7;border-top:1px solid #E0E0E0;padding-top:20px;font-family:var(--font-sans)}.pos-bdesc ul{list-style:disc;padding-left:16px;margin:3px 0}.pos-bdesc ol{list-style:decimal;padding-left:16px;margin:3px 0}.pos-bdesc li{margin:1px 0}.pdf-footer{margin-top:40px;padding-top:16px;border-top:1px solid #E0E0E0;font-size:10.5px;color:#999;font-family:var(--font-sans);display:flex;justify-content:space-between}.avatar{width:30px;height:30px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:11px;font-weight:600;flex-shrink:0}.dash-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:12px}.gc-3{grid-column:span 3}.gc-4{grid-column:span 4}.gc-8{grid-column:span 8}.gc-12{grid-column:span 12}.status-bar-track{height:8px;border-radius:4px;overflow:hidden;background:var(--bg-muted);display:flex;margin-bottom:14px}.status-bar-seg{height:100%}.status-legend-row{display:flex;align-items:center;gap:8px;font-size:12px;padding:4px 0}.status-legend-dot{width:8px;height:8px;border-radius:2px;flex-shrink:0}.row{display:flex;align-items:center}.stack{display:flex;flex-direction:column}.mono{font-family:var(--font-mono)}.tnum{font-variant-numeric:tabular-nums}.muted{color:var(--ink-3)}.muted-2{color:var(--ink-4)}.fw-5{font-weight:500}.fw-6{font-weight:600}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px}@keyframes fadeIn{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .15s ease}@keyframes spin{to{transform:rotate(360deg)}}.rte-wrap{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg)}.rte-toolbar{display:flex;align-items:center;gap:1px;padding:3px 6px;border-bottom:1px solid var(--border-soft);background:var(--bg-muted);border-radius:var(--radius-sm) var(--radius-sm) 0 0}.rte-tool-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:22px;padding:0;border:1px solid transparent;border-radius:3px;background:transparent;cursor:pointer;color:var(--ink-2);font-family:inherit;font-size:11.5px;transition:background .1s}.rte-tool-btn:hover{background:var(--bg-hover);border-color:var(--border)}.rte-sep{width:1px;height:14px;background:var(--border);margin:0 3px;flex-shrink:0}.rte-body{min-height:48px;padding:7px 10px;outline:none;font-size:12px;color:var(--ink-2);line-height:1.65;word-break:break-word;font-family:var(--font-sans)}.rte-body:empty:before{content:attr(data-placeholder);color:var(--ink-5);pointer-events:none}.rte-body ul{list-style:disc;padding-left:18px;margin:4px 0}.rte-body ol{list-style:decimal;padding-left:18px;margin:4px 0}.rte-body li{margin:2px 0}.rte-body b,.rte-body strong{font-weight:600;color:var(--ink-1)}.rte-body i,.rte-body em{font-style:italic}.rte-body blockquote{border-left:2px solid var(--border-strong);padding-left:10px;color:var(--ink-3);margin:4px 0}
