@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&display=swap";.gate{background:var(--bg);min-height:100vh;padding:var(--sp-lg);justify-content:center;align-items:center;display:flex}.gate-form{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--sp-2xl) var(--sp-xl);align-items:center;gap:var(--sp-md);width:100%;max-width:320px;animation:scaleIn var(--dur-entrance) var(--ease-out) both;flex-direction:column;display:flex}.gate-title{color:var(--text-primary);margin-bottom:var(--sp-sm);font-size:1rem;font-weight:600}.gate-input{background:var(--surface-tint);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);text-align:center;letter-spacing:.1em;transition:box-shadow var(--dur-med) var(--ease-out), background var(--dur-med) var(--ease-out), transform var(--dur-med) var(--ease-out);border:none;outline:none;padding:12px 16px;font-size:1rem}.gate-input:focus{box-shadow:0 0 0 2px var(--text-primary);background:var(--surface)}.gate-input::placeholder{color:var(--text-tertiary);letter-spacing:normal}.gate-error{color:var(--margin-bad);animation:slideDown var(--dur-med) var(--ease-spring) both;font-size:.8125rem}.gate-btn{background:var(--text-primary);width:100%;color:var(--surface);border-radius:var(--radius-sm);cursor:pointer;transition:transform var(--dur-fast) var(--ease-out), opacity var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);border:none;padding:12px;font-size:.875rem;font-weight:500}.gate-btn:hover{opacity:.9;box-shadow:var(--shadow-md);transform:translateY(-1px)}.gate-btn:active{opacity:1;transform:translateY(0)scale(.97)}.insights{margin-top:var(--sp-lg)}.insights-title{margin-bottom:var(--sp-md);font-size:.875rem;font-weight:600}.insights-section{margin-bottom:var(--sp-lg)}.insights-section-title{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--sp-sm);font-size:.6875rem;font-weight:600}.insights-flags{margin-bottom:var(--sp-lg);flex-direction:column;gap:8px;display:flex}.insights-flag{border-radius:var(--radius-sm);padding:10px 14px;font-size:.8125rem;line-height:1.4}.insights-flag.warning{color:#e65100;background:#fff8e1}.insights-flag.positive{color:#2e7d32;background:#e8f5e9}.crew-margin-table{border-collapse:collapse;width:100%;font-size:.8125rem}.crew-margin-table th{text-align:left;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--surface-tint);padding:6px 8px 6px 0;font-size:.6875rem;font-weight:600}.crew-margin-table th:not(:first-child){text-align:right}.crew-margin-table td{border-bottom:1px solid var(--surface-tint);padding:8px 8px 8px 0}.crew-margin-table td:not(:first-child){text-align:right;font-family:var(--font-mono);font-size:.8125rem}.crew-margin-table .margin-cell{font-weight:500}.insight-row{border-bottom:1px solid var(--surface-tint);justify-content:space-between;align-items:center;padding:8px 0;font-size:.8125rem;display:flex}.insight-row:last-child{border-bottom:none}.insight-row-name{font-weight:500}.insight-row-value{font-family:var(--font-mono);font-weight:500}.benchmark-grid{gap:var(--sp-md);grid-template-columns:1fr 1fr 1fr;display:grid}.benchmark-card{text-align:center}.benchmark-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;font-size:.6875rem}.benchmark-value{font-family:var(--font-mono);font-size:1.125rem;font-weight:500}.benchmark-note{color:var(--text-tertiary);margin-top:var(--sp-sm);text-align:center;font-size:.6875rem}@media (width<=600px){.benchmark-grid{grid-template-columns:1fr}}.dashboard{max-width:960px;padding:var(--sp-md) var(--sp-lg) var(--sp-2xl);width:100%;margin:0 auto}.dash-header{margin-bottom:var(--sp-xl);animation:fadeUp var(--dur-entrance) var(--ease-out) both;justify-content:space-between;align-items:center;display:flex}.dash-header-left{align-items:center;gap:var(--sp-md);display:flex}.dash-logo{width:36px;height:36px}.dash-title{letter-spacing:-.01em;font-size:1.125rem;font-weight:600}.btn-new{align-items:center;gap:var(--sp-sm);padding:var(--sp-sm) var(--sp-md);background:var(--text-primary);color:var(--surface);border-radius:var(--radius-sm);cursor:pointer;transition:transform var(--dur-fast) var(--ease-out), opacity var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);border:none;font-size:.875rem;font-weight:500;display:inline-flex}.btn-new:hover{opacity:.9;box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-new:active{opacity:1;transform:translateY(0)scale(.97)}.metrics-grid{gap:var(--sp-md);margin-bottom:var(--sp-xl);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.metric-card{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--sp-md) var(--sp-lg);border-top:3px solid var(--metric-accent,var(--surface-tint));animation:fadeUp var(--dur-entrance) var(--ease-out) both}.metric-card:first-child{--metric-accent:var(--ps-blue);animation-delay:calc(var(--stagger) * 1)}.metric-card:nth-child(2){--metric-accent:var(--ps-teal);animation-delay:calc(var(--stagger) * 2)}.metric-card:nth-child(3){--metric-accent:var(--ps-green);animation-delay:calc(var(--stagger) * 3)}.metric-card:nth-child(4){--metric-accent:var(--ps-amber);animation-delay:calc(var(--stagger) * 4)}.metric-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:var(--sp-xs);font-size:.75rem;font-weight:500}.metric-value{font-family:var(--font-mono);color:var(--text-primary);font-size:1.5rem;font-weight:500}.metric-value.small{font-size:1rem}.sort-bar{align-items:center;gap:var(--sp-sm);margin-bottom:var(--sp-md);animation:fadeIn var(--dur-slow) var(--ease-out) calc(var(--stagger) * 5) both;display:flex}.sort-bar label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-weight:500}.sort-chip{padding:var(--sp-xs) var(--sp-sm);border-radius:var(--radius-sm);background:var(--surface-tint);color:var(--text-secondary);cursor:pointer;transition:background var(--dur-med) var(--ease-in-out), color var(--dur-med) var(--ease-in-out), transform var(--dur-fast) var(--ease-out);border:none;font-size:.8125rem;font-weight:500}.sort-chip:hover{transform:translateY(-1px)}.sort-chip:active{transform:scale(.96)}.sort-chip.active{background:var(--text-primary);color:var(--surface)}.jobs-list{gap:var(--sp-md);flex-direction:column;display:flex}.job-card{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--sp-lg);cursor:pointer;color:inherit;animation:fadeUp var(--dur-entrance) var(--ease-out) both;transition:box-shadow var(--dur-med) var(--ease-out), transform var(--dur-med) var(--ease-out);text-decoration:none;display:block}.job-card:first-child{animation-delay:calc(var(--stagger) * 5)}.job-card:nth-child(2){animation-delay:calc(var(--stagger) * 6)}.job-card:nth-child(3){animation-delay:calc(var(--stagger) * 7)}.job-card:nth-child(4){animation-delay:calc(var(--stagger) * 8)}.job-card:nth-child(5){animation-delay:calc(var(--stagger) * 9)}.job-card:nth-child(n+6){animation-delay:calc(var(--stagger) * 10)}.job-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.job-card:active{box-shadow:var(--shadow-sm);transition-duration:var(--dur-fast);transform:translateY(0)scale(.995)}.job-card-top{margin-bottom:var(--sp-sm);justify-content:space-between;align-items:flex-start;display:flex}.job-card-id{font-family:var(--font-mono);color:var(--text-tertiary);font-size:.75rem}.job-card-name{margin-top:2px;font-size:1rem;font-weight:600}.job-card-client{color:var(--text-secondary);font-size:.875rem}.status-badge{text-transform:uppercase;letter-spacing:.04em;transition:background var(--dur-med) var(--ease-in-out);border-radius:4px;padding:2px 8px;font-size:.6875rem;font-weight:600;display:inline-block}.status-badge.draft{background:color-mix(in srgb, var(--ps-amber) 10%, white);color:var(--ps-amber)}.status-badge.quoted{background:color-mix(in srgb, var(--ps-teal) 10%, white);color:#2a8a6c}.status-badge.active{background:color-mix(in srgb, var(--ps-blue) 10%, white);color:var(--ps-blue)}.job-card-bottom{align-items:center;gap:var(--sp-lg);margin-top:var(--sp-md);padding-top:var(--sp-md);border-top:1px solid var(--surface-tint);display:flex}.job-card-stat{flex-direction:column;display:flex}.job-card-stat-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.03em;font-size:.6875rem}.job-card-stat-value{font-family:var(--font-mono);font-size:.9375rem;font-weight:500}.margin-good{color:var(--margin-good)}.margin-ok{color:var(--margin-ok)}.margin-bad{color:var(--margin-bad)}.duration-bar{background:var(--surface-tint);border-radius:3px;flex:1;max-width:120px;height:6px;display:flex;overflow:hidden}.duration-bar-build{background:var(--text-tertiary);transform-origin:0;height:100%;animation:growWidth var(--dur-entrance) var(--ease-out) .4s both}.duration-bar-shoot{background:var(--text-primary);transform-origin:0;height:100%;animation:growWidth var(--dur-entrance) var(--ease-out) .5s both}.view-toggle{gap:2px;margin-left:auto;display:flex}.view-btn{border:1px solid var(--surface-tint);cursor:pointer;width:32px;height:32px;color:var(--text-tertiary);background:0 0;justify-content:center;align-items:center;display:flex}.view-btn:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.view-btn:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0}.view-btn.active{background:var(--text-primary);color:var(--surface);border-color:var(--text-primary)}.view-btn:hover:not(.active){background:var(--surface-tint);color:var(--text-secondary)}.jobs-list.list-view{gap:0}.jobs-list.list-view .job-card{box-shadow:none;padding:10px var(--sp-md);border-bottom:1px solid var(--surface-tint);align-items:center;gap:var(--sp-lg);border-radius:0;display:flex}.jobs-list.list-view .job-card:first-child{border-radius:var(--radius-md) var(--radius-md) 0 0}.jobs-list.list-view .job-card:last-child{border-radius:0 0 var(--radius-md) var(--radius-md);border-bottom:none}.jobs-list.list-view .job-card:hover{background:var(--surface-tint);transform:none}.jobs-list.list-view .job-card-top{flex:1;min-width:0;margin-bottom:0}.jobs-list.list-view .job-card-name{margin-top:0;font-size:.875rem}.jobs-list.list-view .job-card-client{font-size:.75rem}.jobs-list.list-view .job-card-id{font-size:.625rem}.jobs-list.list-view .job-card-bottom{gap:var(--sp-md);border-top:none;flex-shrink:0;margin-top:0;padding-top:0}.jobs-list.list-view .job-card-stat-label{display:none}.jobs-list.list-view .job-card-stat-value{font-size:.8125rem}.jobs-list.list-view .duration-bar,.jobs-list.list-view .job-card-stat:nth-child(n+4){display:none}.empty-state{text-align:center;padding:var(--sp-2xl);color:var(--text-secondary);animation:fadeUp var(--dur-entrance) var(--ease-out) both}.empty-state p{margin-bottom:var(--sp-md)}.loading{height:60vh;color:var(--text-tertiary);animation:fadeIn var(--dur-slow) var(--ease-out) both;justify-content:center;align-items:center;font-size:.875rem;display:flex}@media (width<=600px){.dashboard{padding:var(--sp-md)}.metrics-grid{grid-template-columns:1fr 1fr}.job-card-bottom{gap:var(--sp-md);flex-wrap:wrap}}.field{flex-direction:column;gap:4px;display:flex}.field-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;align-items:baseline;gap:8px;font-size:.75rem;font-weight:500;display:flex}.field-hint{color:var(--text-tertiary);text-transform:none;letter-spacing:normal;font-size:.6875rem;font-weight:400}.field-note{color:var(--text-tertiary);margin-top:2px;font-size:.75rem}.text-input{background:var(--surface-tint);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);transition:box-shadow var(--dur-med) var(--ease-out), background var(--dur-med) var(--ease-out);border:none;outline:none;padding:8px 12px;font-size:.9375rem;display:block}.text-input:focus{box-shadow:0 0 0 2px var(--ps-sky);background:var(--surface)}.text-input::placeholder{color:var(--text-tertiary)}textarea.text-input{resize:vertical;min-height:80px;line-height:1.5}.num-input-wrap{background:var(--surface-tint);border-radius:var(--radius-sm);transition:box-shadow var(--dur-med) var(--ease-out);align-items:center;display:inline-flex;overflow:hidden}.num-input-wrap:focus-within{box-shadow:0 0 0 2px var(--ps-sky)}.num-prefix{color:var(--text-tertiary);font-family:var(--font-mono);-webkit-user-select:none;user-select:none;padding:8px 0 8px 12px;font-size:.875rem}.num-input{width:100%;font-family:var(--font-mono);color:var(--text-primary);-moz-appearance:textfield;background:0 0;border:none;outline:none;padding:8px 12px;font-size:.875rem}.num-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.num-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.inline-num{background:var(--surface-tint);font-family:var(--font-mono);color:var(--text-primary);text-align:right;-moz-appearance:textfield;transition:box-shadow var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);border:none;border-radius:4px;outline:none;padding:4px 6px;font-size:.8125rem}.inline-num::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.inline-num::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.inline-num:focus{box-shadow:0 0 0 2px var(--ps-sky);background:var(--surface);transform:scale(1.02)}.toggle-wrap{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;display:inline-flex}.toggle-track{background:var(--text-tertiary);width:40px;height:22px;transition:background var(--dur-med) var(--ease-in-out);border-radius:11px;flex-shrink:0;position:relative}.toggle-track.on{background:var(--text-primary)}.toggle-thumb{background:var(--surface);width:18px;height:18px;transition:transform var(--dur-med) var(--ease-spring);border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #2c2a2526}.toggle-track.on .toggle-thumb{transform:translate(18px)}.toggle-text{flex-direction:column;display:flex}.toggle-label{font-size:.875rem;font-weight:500}.toggle-hint{color:var(--text-tertiary);font-size:.75rem}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{background:var(--surface-tint);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--dur-med) var(--ease-in-out), color var(--dur-med) var(--ease-in-out), transform var(--dur-fast) var(--ease-out);border:none;padding:6px 14px;font-size:.8125rem;font-weight:500}.chip:hover{background:#e8e7e3;transform:translateY(-1px)}.chip:active{transform:scale(.96)}.chip.active{background:var(--text-primary);color:var(--surface)}.section-divider{border-top:1px solid #0000;border-image:linear-gradient(to right, var(--ps-red), var(--ps-amber), var(--ps-green), var(--ps-blue), var(--ps-purple)) 1;margin-top:4px;padding:20px 0 8px}.section-divider-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em;margin-top:8px;font-size:.6875rem;font-weight:600}.select-input{background:var(--surface-tint);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);cursor:pointer;appearance:none;transition:box-shadow var(--dur-med) var(--ease-out), background var(--dur-med) var(--ease-out);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23A09D96' d='M3 5l3 3 3-3'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;border:none;outline:none;padding:8px 32px 8px 12px;font-size:.875rem;display:block}.select-input:focus{box-shadow:0 0 0 2px var(--text-primary)}.btn-primary{transition:transform var(--dur-fast) var(--ease-out), opacity var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out)}.btn-primary:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)scale(.97)}.btn-remove{transition:color var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out)}.btn-remove:hover{transform:scale(1.1)}.assessment-panel{margin-top:var(--sp-md);margin-bottom:var(--sp-md)}.assessment-header{margin-bottom:var(--sp-md);justify-content:space-between;align-items:center;display:flex}.assessment-title{font-size:.875rem;font-weight:600}.assessment-actions{gap:8px;display:flex}.assessment-error{color:var(--margin-bad);border-radius:var(--radius-sm);margin-bottom:var(--sp-md);background:#fff3f3;padding:12px 16px;font-size:.8125rem}.assessment-content{background:var(--surface-tint);border-radius:var(--radius-sm);max-height:600px;padding:16px 20px;overflow-y:auto}.assessment-text{color:var(--text-primary);white-space:pre-wrap;word-wrap:break-word;font-size:.8125rem;line-height:1.7;font-family:var(--font-sans)}.assessment-cursor{color:var(--text-tertiary);margin-left:2px;animation:.8s infinite blink;display:inline-block}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.budget-config-bar{border-bottom:1px solid var(--surface-tint);align-items:center;gap:16px;margin-bottom:4px;padding:8px 0 12px;display:flex}.budget-config-item{align-items:center;gap:6px;display:flex}.budget-config-item label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-weight:500}.budget-config-pills{gap:2px;display:flex}.config-pill{border:1px solid var(--surface-tint);background:var(--surface-bg);cursor:pointer;width:28px;height:28px;color:var(--text-secondary);border-radius:6px;justify-content:center;align-items:center;font-size:.75rem;font-weight:600;transition:all .15s;display:flex}.config-pill.active{background:var(--text-primary);color:#fff;border-color:var(--text-primary)}.budget-config-note{color:var(--text-secondary);margin-left:auto;font-size:.7rem;font-style:italic}.bsec-header{cursor:pointer;-webkit-user-select:none;user-select:none;padding:4px 0}.bsec-grid{grid-template-columns:1fr 36px 48px 36px 68px 68px 72px 72px 24px;align-items:center;gap:4px;display:grid}.bsec-grid .bsec-left{grid-column:1/7}.bsec-grid-simple{grid-template-columns:1fr 36px 48px 36px 68px 68px 72px 72px 24px;align-items:center;gap:4px;display:grid}.bsec-grid-simple .bsec-left{grid-column:1/7}.bsec-grid-simple .bsec-total{grid-column:7}.bsec-left{align-items:center;gap:8px;display:flex}.bsec-code{font-family:var(--font-mono);color:var(--text-tertiary);width:28px;font-size:.6875rem}.bsec-label{font-size:.875rem;font-weight:600}.bsec-left:before{content:"›";color:var(--text-tertiary);transition:transform var(--dur-med) var(--ease-out);text-align:center;width:12px;font-size:1rem;display:inline-block;transform:rotate(90deg)}.bsec-header.collapsed .bsec-left:before{transform:rotate(0)}.bsec-total{font-family:var(--font-mono);text-align:right;font-size:.875rem;font-weight:500}.bsec-margin{font-family:var(--font-mono);color:var(--margin-good);text-align:right;font-size:.8125rem}.bsec-margin.empty{visibility:hidden}.bsec-body{transition:max-height var(--dur-slow) var(--ease-out), opacity var(--dur-med) var(--ease-out);opacity:1;max-height:2000px;overflow:hidden}.bsec-body.closed{opacity:0;max-height:0}.budget-grid-header{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;grid-template-columns:1fr 36px 48px 36px 68px 68px 72px 72px 24px;gap:4px;padding:8px 0 4px;font-size:.6875rem;font-weight:600;display:grid}.budget-grid-header span{text-align:right}.budget-grid-header span:first-child{text-align:left}.budget-line{grid-template-columns:1fr 36px 48px 36px 68px 68px 72px 72px 24px;align-items:center;gap:4px;padding:4px 0;font-size:.8125rem;display:grid}.budget-line.has-override{background:#2c2a2505;border-radius:4px;margin:0 -8px;padding:4px 8px}.bl-name{text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem;font-weight:500;overflow:hidden}.bl-name-short{display:none}.bl-qty,.bl-days,.bl-rate,.bl-cost,.bl-ot{text-align:right}.bl-total{text-align:right;font-family:var(--font-mono);font-size:.8125rem}.bl-margin{text-align:right;font-family:var(--font-mono);color:var(--text-tertiary);font-size:.8125rem}.bl-margin.positive{color:var(--margin-good)}.bl-clear{width:24px;height:24px;color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;font-size:.875rem;display:flex}.bl-clear:hover{color:var(--margin-bad);background:var(--surface-tint)}.std-line{grid-template-columns:1fr 36px 48px 36px 68px 68px 72px 72px 24px;align-items:center;gap:4px;padding:6px 0;font-size:.8125rem;display:grid}.std-line-left{grid-column:1/7;align-items:center;gap:12px;display:flex}.std-line-amount{text-align:right;grid-column:7}.std-line-name{font-weight:500}.std-line-dt{color:var(--text-tertiary);font-size:.75rem}.std-line-amount{text-align:right}.budget-sub{border-top:1px solid var(--surface-tint);grid-template-columns:1fr 36px 48px 36px 68px 68px 72px 72px 24px;gap:4px;padding:12px 0 8px;font-size:.875rem;font-weight:600;display:grid}.budget-sub span:first-child{grid-column:1/7}.budget-sub span:last-child{text-align:right;grid-column:7}.fee-header{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;grid-template-columns:1fr 36px 48px 36px 68px 68px 72px 72px 24px;gap:4px;padding:8px 0 4px;font-size:.6875rem;font-weight:600;display:grid}.fee-header span:first-child{grid-column:1/7}.fee-header span:nth-child(2){grid-column:7}.fee-line{grid-template-columns:1fr 36px 48px 36px 68px 68px 72px 72px 24px;align-items:center;gap:4px;padding:4px 0;font-size:.8125rem;display:grid}.fee-line.off{opacity:.4}.fl-name{grid-column:1/7;align-items:center;gap:6px;font-weight:500;display:flex}.fl-label{white-space:nowrap}.fl-pct{align-items:center;gap:2px;display:flex}.fl-pct-sign,.fl-pct-print{color:var(--text-tertiary);font-size:.75rem}.fl-amount{text-align:right;font-family:var(--font-mono);grid-column:7}.fl-toggle{cursor:pointer;width:28px;height:28px;color:var(--text-primary);background:0 0;border:none;grid-column:8;justify-content:center;align-items:center;font-size:1rem;display:flex}.fl-toggle.off{color:var(--text-tertiary)}.budget-grand{border-top:2px solid var(--text-primary);grid-template-columns:1fr 36px 48px 36px 68px 68px 72px 72px 24px;gap:4px;padding:16px 0 4px;display:grid}.budget-grand span:first-child{grid-column:1/7;font-size:1rem;font-weight:700}.budget-vat-note{color:var(--text-secondary);margin-left:4px;font-size:.75rem;font-weight:400}.budget-grand-value{font-family:var(--font-mono);text-align:right;grid-column:7;font-size:1.25rem;font-weight:700}.budget-gross{color:var(--text-secondary);grid-template-columns:1fr 36px 48px 36px 68px 68px 72px 72px 24px;gap:4px;padding:2px 0;font-size:.8125rem;display:grid}.budget-gross span:first-child{grid-column:1/7}.budget-gross span:last-child{text-align:right;font-family:var(--font-mono);grid-column:7}.budget-margin,.budget-profit{color:var(--text-secondary);grid-template-columns:1fr 36px 48px 36px 68px 68px 72px 72px 24px;gap:4px;padding:6px 0;font-size:.8125rem;display:grid}.budget-margin span:first-child,.budget-profit span:first-child{grid-column:1/7}.budget-margin-value,.budget-profit-value{text-align:right;grid-column:7}.budget-margin-value{font-family:var(--font-mono);color:var(--margin-good);font-weight:500}.budget-profit-value{font-family:var(--font-mono);color:var(--margin-good);font-weight:600}.crew-line{animation:slideIn var(--dur-med) var(--ease-out) both}@keyframes slideIn{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.crew-line.hiding{animation:slideOut var(--dur-med) var(--ease-out) forwards}@keyframes slideOut{0%{opacity:1;max-height:50px;transform:translate(0)}to{opacity:0;max-height:0;margin:0;padding:0;overflow:hidden;transform:translate(16px)}}.bl-actions{align-items:center;gap:2px;display:flex}.bl-hide{width:24px;height:24px;color:var(--text-tertiary);cursor:pointer;opacity:0;transition:opacity var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;display:flex}.budget-line:hover .bl-hide{opacity:1}.bl-hide:hover{color:var(--margin-bad);background:var(--surface-tint)}.hidden-crew{animation:fadeUp var(--dur-med) var(--ease-out) both;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 0;display:flex}.hidden-crew-label{color:var(--text-tertiary);font-size:.75rem}.hidden-crew-btn{border:1px dashed var(--surface-tint);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);background:0 0;padding:4px 10px;font-size:.75rem}.hidden-crew-btn:hover{background:var(--surface-tint);border-color:var(--text-tertiary)}.crew-mode-toggle{gap:4px;padding:4px 0 8px;display:flex}.crew-mode-btn{border:1px solid var(--surface-tint);background:var(--surface-bg);cursor:pointer;color:var(--text-secondary);border-radius:12px;padding:4px 12px;font-size:.75rem;font-weight:500;transition:all .15s}.crew-mode-btn.active{background:var(--text-primary);color:#fff;border-color:var(--text-primary)}.crew-mode-btn:hover:not(.active){border-color:var(--text-secondary)}.crew-section-footer{border-top:1px solid var(--surface-tint);margin-top:4px;padding:8px 0 4px}.add-crew-btn{padding:4px 8px!important;font-size:.75rem!important}.crew-search{animation:fadeUp var(--dur-med) var(--ease-out) both}.crew-search-input{border:1px solid var(--surface-tint);border-radius:var(--radius-sm);width:100%;font-size:.8125rem;font-family:var(--font-sans);background:var(--bg);color:var(--text-primary);outline:none;padding:8px 10px}.crew-search-input:focus{border-color:var(--text-tertiary)}.crew-search-list{border:1px solid var(--surface-tint);border-radius:0 0 var(--radius-sm) var(--radius-sm);background:var(--surface);border-top:none;max-height:200px;overflow-y:auto}.crew-search-item{cursor:pointer;text-align:left;width:100%;color:var(--text-primary);transition:background var(--dur-fast) var(--ease-out);background:0 0;border:none;align-items:center;gap:8px;padding:8px 10px;font-size:.8125rem;display:flex}.crew-search-item:hover{background:var(--surface-tint)}.crew-search-item.restore{color:var(--text-secondary)}.crew-search-item.custom{color:var(--text-secondary);border-top:1px solid var(--surface-tint);font-style:italic}.crew-search-name{flex:1;font-weight:500}.crew-search-rate{color:var(--text-tertiary);font-size:.75rem}.crew-search-tag{background:var(--surface-tint);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;border-radius:3px;padding:1px 5px;font-size:.625rem}.crew-search-empty{color:var(--text-tertiary);text-align:center;padding:12px 10px;font-size:.75rem}.version-bar-empty{align-items:center;gap:8px;margin-bottom:8px;padding:8px 0;display:flex}.version-hint{color:var(--text-tertiary);font-size:.75rem}.version-bar{margin-bottom:12px;position:relative}.version-cards{-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:8px;padding:2px 0;display:flex;overflow-x:auto}.version-cards::-webkit-scrollbar{display:none}.version-card{background:var(--surface);border:1px solid var(--surface-tint);border-left:3px solid color-mix(in srgb, var(--v-color,var(--text-tertiary)) 30%, transparent);border-radius:var(--radius-sm);cursor:pointer;min-width:120px;transition:border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out);flex-shrink:0;padding:10px 12px;position:relative}.version-card:hover{border-left-color:var(--v-color,var(--text-tertiary))}.version-card.active{border-left:3px solid var(--v-color,var(--text-primary));background:color-mix(in srgb, var(--v-color) 5%, white);box-shadow:var(--shadow-sm)}.version-card-top{justify-content:space-between;align-items:center;gap:4px;margin-bottom:4px;display:flex}.version-name{text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem;font-weight:600;overflow:hidden}.version-name-input{border:none;border-bottom:1px solid var(--text-primary);width:80px;font-size:.8125rem;font-weight:600;font-family:var(--font-sans);background:0 0;outline:none;padding:0}.version-total{font-size:.875rem;font-weight:500}.version-menu-btn{cursor:pointer;width:24px;height:20px;color:var(--text-tertiary);background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;font-size:.875rem;display:flex}.version-menu-btn:hover{background:var(--surface-tint);color:var(--text-primary)}.version-menu{z-index:20;background:var(--surface);border:1px solid var(--surface-tint);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);min-width:100px;padding:4px;position:absolute}.version-menu button{text-align:left;cursor:pointer;width:100%;color:var(--text-primary);background:0 0;border:none;border-radius:3px;padding:6px 10px;font-size:.8125rem;display:block}.version-menu button:hover{background:var(--surface-tint)}.version-menu button.danger{color:var(--margin-bad)}.version-actions{gap:8px;margin-top:8px;display:flex}.version-actions .btn-text.active{color:var(--text-primary);font-weight:600}.compare-table{width:100%}.compare-row{grid-template-columns:1fr repeat(var(--ver-count), minmax(80px, 120px));align-items:center;gap:4px;padding:6px 0;display:grid}.compare-header{border-bottom:1px solid var(--surface-tint);padding-bottom:8px}.compare-version-name{font-size:.8125rem;font-weight:600}.compare-label{font-size:.8125rem;font-weight:500}.compare-cell{text-align:right;font-size:.8125rem}.compare-fees{border-top:1px solid var(--surface-tint);padding-top:10px}.compare-total{border-top:2px solid var(--text-primary);padding-top:10px}.compare-total .compare-label{font-size:.9375rem;font-weight:700}.compare-total .compare-cell{font-size:1rem;font-weight:700}.print-version{color:var(--text-secondary);font-size:.8125rem;font-weight:500}.print-header,.print-footer,.print-only{display:none}@media (width<=600px){.bl-margin,.bl-clear,.bl-actions,.bl-hide,.budget-grid-header span:nth-child(6),.budget-grid-header span:nth-child(7){display:none!important}.budget-grid-header,.budget-line{grid-template-columns:1fr 32px 54px 54px 62px;align-items:center;font-size:.75rem}.bl-name-full{display:none}.bl-name-short{display:inline!important}.bl-name{font-size:.75rem}.bl-qty,.bl-ot,.budget-grid-header span:nth-child(2),.budget-grid-header span:nth-child(4){display:none!important}.bsec-grid,.bsec-grid-simple,.std-line,.budget-sub,.budget-grand,.budget-gross,.budget-margin,.budget-profit,.budget-grid-header,.budget-line,.fee-header,.fee-line{grid-template-columns:1fr 32px 54px 54px 62px!important}.fl-toggle,.bsec-margin{display:none!important}.bsec-grid>span:last-child{display:none}.bsec-header{padding:2px 0}.bsec-label{font-size:.8125rem}.version-card{min-width:100px;padding:8px 10px}.version-name{font-size:.75rem}.version-total{font-size:.8125rem}.compare-row{grid-template-columns:1fr repeat(var(--ver-count), minmax(60px, 1fr));gap:2px}.compare-label,.compare-cell{font-size:.75rem}.compare-total .compare-label,.compare-total .compare-cell{font-size:.8125rem}}@media print{@page{size:A4;margin:20mm 15mm}.print-header,.print-footer,.print-only{display:block!important}.screen-only,.job-header,.job-header,.job-topbar,.job-subheader,.job-tabs,.job-tabs-bar,.tabs-back,.actions-bar,.dash-header,.gate,.version-bar,.side-rail,.mobile-menu,.mobile-menu-overlay{display:none!important}.compare-row{padding:4px 0}.compare-total{border-top:2px solid #2c2a25}.bl-cost,.bl-margin,.bl-clear,.bl-actions,.bl-hide,.hidden-crew,.budget-margin,.budget-profit,.bsec-margin,.fee-line.off,.fl-toggle{display:none!important}.budget-grid-header,.budget-line{grid-template-columns:1fr 32px 48px 68px 72px!important}.bsec-grid,.bsec-grid-simple,.std-line,.budget-sub,.budget-grand,.budget-gross,.budget-margin,.budget-profit{grid-template-columns:1fr auto!important}.bsec-left,.std-line-left,.budget-sub span:first-child,.budget-grand span:first-child,.budget-gross span:first-child,.budget-margin span:first-child,.budget-profit span:first-child{grid-column:1!important}.bsec-total,.std-line-amount,.budget-sub span:last-child,.budget-grand-value,.budget-gross span:last-child,.budget-margin-value,.budget-profit-value{text-align:right;grid-column:2!important}.fee-header,.fee-line{grid-template-columns:1fr auto!important}.budget-line input,.std-line input,.fee-line input{-webkit-appearance:none;-moz-appearance:textfield;text-align:right;box-shadow:none!important;background:0 0!important;border:none!important;padding:0!important}body{background:#fff!important}.surface{box-shadow:none!important;background:0 0!important;border-radius:0!important;margin-bottom:0!important;padding:0!important}.job-editor{max-width:100%!important;padding:0!important}.job-editor .surface{border:none!important;margin-bottom:0!important}.budget-line{padding:2px 0!important}.std-line{padding:3px 0!important}.bsec-body{padding-bottom:4px}.budget-line.has-override{background:0 0!important}.bsec-left:before,.bsec-body.closed{display:none!important}.bsec-header{border-bottom:1px solid #e0dfd9;margin:0;cursor:default!important;-webkit-user-select:auto!important;user-select:auto!important;padding:8px 0 6px!important}.bsec-label{font-size:.8125rem!important;font-weight:600!important}.bsec-total{font-size:.8125rem!important}.bsec-code{width:24px!important;font-size:.625rem!important}.budget-grid-header{padding-top:4px!important}.surface{page-break-inside:avoid}.budget-sub{margin-top:20px;border-top:2px solid var(--text-primary)!important;padding-top:16px!important}.fee-header{padding-top:4px!important}.budget-grand{padding-top:16px!important}.budget-grand-value{font-size:1rem!important}.print-header{border-bottom:2px solid var(--text-primary);margin-bottom:24px;padding-bottom:16px}.print-header-top{align-items:flex-start;gap:16px;display:flex}.print-job-details{flex-direction:column;display:flex}.print-job-number{color:var(--text-tertiary);font-size:.75rem}.print-job-name{margin:2px 0;font-size:1.5rem;font-weight:700}.print-client{color:var(--text-secondary);font-size:.875rem}.print-deliverables{margin-top:16px}.print-deliverables h3{text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary);margin-bottom:6px;font-size:.6875rem;font-weight:600}.print-del-row{grid-template-columns:20px 48px 1fr auto;align-items:baseline;gap:8px;padding:3px 0;font-size:.8125rem;display:grid}.print-footer{border-top:1px solid var(--text-tertiary);color:var(--text-tertiary);text-align:center;margin-top:32px;padding-top:16px;font-size:.75rem}}.treat-layout{gap:var(--sp-lg);align-items:flex-start;display:flex}.treat-editor{flex:1;min-width:0}.treat-preview{flex-shrink:0;width:380px;max-height:calc(100vh - 80px);position:sticky;top:60px;overflow:hidden auto}.treat-toolbar{margin-bottom:var(--sp-md);justify-content:space-between;align-items:center;display:flex}.treat-toolbar-left{align-items:center;gap:8px;display:flex}.treat-preview-toggle{border:1px solid var(--surface-tint);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;background:0 0;padding:6px 14px;font-size:.8125rem;font-weight:500}.treat-preview-toggle:hover{background:var(--surface-tint)}.treat-preview-toggle.active{background:var(--text-primary);color:var(--surface);border-color:var(--text-primary)}.treat-section{background:var(--surface);border:1px solid var(--surface-tint);border-radius:var(--radius-sm);margin-bottom:8px;overflow:hidden}.treat-section-header{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.treat-section-header:hover{background:#00000003}.treat-section-left{align-items:center;gap:8px;display:flex}.treat-chevron{color:var(--text-tertiary);transition:transform var(--dur-med) var(--ease-out);text-align:center;width:12px;font-size:1rem;display:inline-block;transform:rotate(90deg)}.treat-chevron.collapsed{transform:rotate(0)}.treat-section-num{font-family:var(--font-mono);color:var(--text-tertiary);font-size:.6875rem}.treat-section-title{font-size:.875rem;font-weight:600}.treat-section-actions{gap:2px;display:flex}.treat-move{cursor:pointer;width:24px;height:24px;color:var(--text-tertiary);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;font-size:.875rem;display:flex}.treat-move:hover{background:var(--surface-tint);color:var(--text-secondary)}.treat-section-body{padding:0 14px 14px}.treat-brief-ref{background:var(--surface-tint);border-radius:var(--radius-sm);color:var(--text-secondary);margin-bottom:8px;padding:8px 10px;font-size:.75rem;line-height:1.5}.treat-brief-ref-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;cursor:pointer;align-items:center;gap:4px;font-size:.625rem;font-weight:600;list-style:none;display:flex}.treat-brief-ref-label:before{content:"▸";font-size:.5rem;transition:transform .15s}.treat-brief-ref[open] .treat-brief-ref-label:before{transform:rotate(90deg)}.treat-brief-ref-label::-webkit-details-marker{display:none}.treat-brief-ref-text{margin-top:6px;display:block}.treat-textarea{border:1px solid var(--surface-tint);border-radius:var(--radius-sm);width:100%;font-size:.8125rem;font-family:var(--font-sans);color:var(--text-primary);background:var(--bg);resize:vertical;outline:none;min-height:80px;padding:10px 12px;line-height:1.6}.treat-textarea:focus{border-color:var(--text-tertiary)}.treat-textarea::placeholder{color:var(--text-tertiary)}.treat-section-toolbar{gap:6px;margin-top:8px;display:flex}.treat-ai-btn{border:1px solid var(--surface-tint);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;background:0 0;padding:5px 12px;font-size:.75rem;font-weight:500}.treat-ai-btn:hover:not(:disabled){background:var(--surface-tint);color:var(--text-primary)}.treat-ai-btn:disabled{opacity:.5}.treat-stop-btn{border:1px solid var(--surface-tint);border-radius:var(--radius-sm);color:var(--text-tertiary);cursor:pointer;background:0 0;padding:5px 12px;font-size:.75rem}.treat-ai-result{border:1px solid var(--surface-tint);border-radius:var(--radius-sm);background:var(--bg);margin-top:10px;padding:12px}.treat-ai-text{color:var(--text-primary);white-space:pre-wrap;max-height:200px;font-size:.8125rem;line-height:1.6;overflow-y:auto}.treat-ai-full{max-height:400px}.treat-cursor{color:var(--text-tertiary);animation:.8s infinite blink}.treat-ai-actions{align-items:center;gap:6px;margin-top:10px;display:flex}.treat-use-btn{padding:6px 14px!important;font-size:.75rem!important}.treat-error{color:var(--margin-bad);border-radius:var(--radius-sm);background:#fff3f0;margin-top:8px;padding:6px 10px;font-size:.75rem}.treat-preview-doc{border:1px solid var(--surface-tint);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);color:var(--text-primary);background:#fff;padding:32px 28px;font-size:.8125rem;line-height:1.7}.treat-preview-header{border-bottom:2px solid var(--text-primary);align-items:flex-start;gap:14px;margin-bottom:20px;padding-bottom:20px;display:flex}.treat-preview-job{font-size:1.25rem;font-weight:700}.treat-preview-client{color:var(--text-secondary);font-size:.875rem}.treat-preview-meta{font-family:var(--font-mono);color:var(--text-tertiary);margin-top:2px;font-size:.6875rem}.treat-preview-section{margin-bottom:20px}.treat-preview-section h2{text-transform:uppercase;letter-spacing:.04em;color:var(--text-primary);margin-bottom:8px;font-size:.875rem;font-weight:700}.treat-preview-content p{margin-bottom:10px}.treat-preview-content p:last-child{margin-bottom:0}.treat-preview-empty{text-align:center;color:var(--text-tertiary);padding:40px 20px}.treat-preview-footer{border-top:1px solid var(--text-tertiary);color:var(--text-tertiary);text-align:center;margin-top:24px;padding-top:12px;font-size:.6875rem}@media (width<=767px){.treat-layout{flex-direction:column}.treat-preview{width:100%;display:none;position:static}.treat-preview.visible-mobile{display:block}.treat-editor.hidden-mobile{display:none}}@media (width>=768px){.treat-preview,.treat-editor{display:block!important}.treat-preview-toggle{display:none}}.export-mode-toggle{gap:4px;display:flex}.export-mode-btn{border:1px solid var(--surface-tint);background:var(--surface-bg);cursor:pointer;color:var(--text-secondary);border-radius:12px;padding:4px 12px;font-size:.75rem;font-weight:500;transition:all .15s}.export-mode-btn.active{background:var(--text-primary);color:#fff;border-color:var(--text-primary)}.actions-bar{align-items:center;gap:12px;display:flex}.visual-page{aspect-ratio:16/10;border:1px solid var(--surface-tint);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);background:#fff;flex-direction:column;justify-content:space-between;margin-bottom:16px;padding:56px 72px 40px;display:flex;position:relative;overflow:hidden}.visual-title-page{text-align:left;justify-content:center;padding:72px 80px 40px}.visual-title-page .visual-title-content{flex-direction:column;flex:1;justify-content:center;align-items:flex-start;gap:4px;display:flex}.visual-logo-row{align-items:center;gap:24px;display:flex}.visual-client-logo{object-fit:contain;max-width:200px;max-height:64px}.visual-agency-logo{object-fit:contain;opacity:.7;max-width:160px;max-height:48px}.visual-client-name{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em;font-size:1rem;font-weight:500}.visual-accent-line{background:#c8145c;border-radius:2px;width:48px;height:3px;margin-top:24px}.visual-title{letter-spacing:-.03em;margin:24px 0 0;font-size:2.5rem;font-weight:800;line-height:1.1}.visual-meta{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.12em;margin-top:12px;font-size:.6875rem;font-weight:500}.visual-title-footer{text-align:left}.visual-footer-left{align-items:center;gap:6px;display:flex}.visual-section-layout{flex:1;grid-template-columns:200px 1fr;align-content:center;gap:48px;display:grid}.visual-section-left{padding-top:4px}.visual-section-number{color:#e8e0d8;letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-bottom:12px;font-size:2.5rem;font-weight:200;line-height:1}.visual-section-title{letter-spacing:-.02em;margin:0;font-size:1.5rem;font-weight:800;line-height:1.2}.visual-section-body{color:#3a3a3a;flex-direction:column;justify-content:center;max-width:560px;font-size:.875rem;line-height:1.85;display:flex}.visual-section-body p{margin:0 0 14px}.visual-section-body p:last-child{margin-bottom:0}.visual-section-body strong{color:var(--text-primary);font-weight:700}.visual-page-footer{color:#bbb;text-transform:uppercase;letter-spacing:.1em;border-top:1px solid #eee;justify-content:space-between;padding-top:12px;font-size:.5625rem;font-weight:500;display:flex}.visual-mode{box-shadow:none!important;background:0 0!important;border:none!important;padding:0!important}.treat-preview .visual-mode .visual-page{aspect-ratio:auto;transform-origin:0 0;width:960px;height:600px;transform:scale(var(--preview-scale,.385));margin-bottom:calc(-600px * (1 - var(--preview-scale,.385)) + 12px)}.wwp-mode .treat-preview-section h2{font-size:.75rem}.wwp-mode .treat-preview-content p{font-size:.75rem;line-height:1.6}@media print{.treat-editor,.treat-toolbar,.treat-section-toolbar,.treat-ai-result,.treat-section-actions,.treat-preview-toggle,.actions-bar{display:none!important}.treat-layout{display:block}.treat-preview{width:100%!important;display:block!important;position:static!important}.treat-preview-doc{box-shadow:none;border:none;padding:0}.visual-mode{background:0 0!important}.visual-page{page-break-after:always;page-break-inside:avoid;box-shadow:none;aspect-ratio:auto;box-sizing:border-box;border:none;border-radius:0;margin:0;padding:56px 72px 40px;flex-direction:column!important;justify-content:space-between!important;width:100%!important;height:100vh!important;min-height:100vh!important;margin-bottom:0!important;display:flex!important;transform:none!important}.treat-preview{max-height:none!important;overflow:visible!important}.visual-page:last-child{page-break-after:auto}.visual-page-footer{border-top-color:#ddd}.wwp-mode .treat-preview-section{page-break-inside:avoid}.visual-mode{size:landscape}}@page{margin:0}.visual-mode~.visual-mode-landscape{display:none}.treat-module-toggle{align-items:center;gap:2px;margin:0 auto;display:flex}.treat-module-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;margin-right:var(--sp-xs);font-size:.6875rem}.treat-module-btn{padding:2px var(--sp-sm);background:var(--surface-tint);color:var(--text-tertiary);cursor:pointer;transition:all var(--dur-fast) var(--ease-out);border:none;font-size:.6875rem;font-weight:500}.treat-module-btn:first-of-type{border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.treat-module-btn:last-of-type{border-radius:0 var(--radius-sm) var(--radius-sm) 0}.treat-module-btn.active{background:var(--text-primary);color:var(--surface)}.treat-module-btn:hover:not(.active){background:var(--bg);color:var(--text-secondary)}.treat-title-fields{gap:var(--sp-xs);flex-direction:column;display:flex}.treat-field-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;flex-direction:column;gap:2px;font-size:.6875rem;display:flex}.treat-field-input{padding:var(--sp-xs) var(--sp-sm);border:1px solid var(--surface-tint);background:var(--surface-tint);color:var(--text-primary);border-radius:6px;outline:none;width:120px;font-size:.8125rem}.treat-field-input:focus{box-shadow:var(--shadow-sm);background:var(--surface)}.treat-shots-list{margin-top:var(--sp-sm)}.treat-shots-header,.treat-shot-row{gap:var(--sp-xs);padding:var(--sp-xs) 0;grid-template-columns:32px 1fr 100px 60px 28px;align-items:start;display:grid}.treat-shots-header{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--surface-tint);padding-bottom:var(--sp-xs);font-size:.6875rem}.treat-shot-num{color:var(--text-tertiary);padding-top:4px;font-size:.75rem}.treat-shot-desc-input{padding:var(--sp-xs) var(--sp-sm);border:1px solid var(--surface-tint);background:var(--surface-tint);font-size:.8125rem;font-family:var(--font-sans);resize:vertical;border-radius:6px;outline:none;min-height:36px}.treat-shot-desc-input:focus{box-shadow:var(--shadow-sm);background:var(--surface)}.treat-shot-method-select{padding:var(--sp-xs) var(--sp-xs);border:1px solid var(--surface-tint);background:var(--surface-tint);color:var(--text-primary);border-radius:6px;outline:none;font-size:.75rem}.treat-shot-dur-input{padding:var(--sp-xs) var(--sp-xs);border:1px solid var(--surface-tint);background:var(--surface-tint);font-size:.75rem;font-family:var(--font-mono);text-align:center;border-radius:6px;outline:none;width:100%}.treat-shot-remove{color:var(--text-tertiary);cursor:pointer;transition:color var(--dur-fast) var(--ease-out);background:0 0;border:none;padding:2px;font-size:1rem;line-height:1}.treat-shot-remove:hover{color:var(--margin-bad)}.treat-schedule-header,.treat-schedule-row{gap:var(--sp-xs);padding:var(--sp-xs) 0;grid-template-columns:80px 1fr 1fr 28px;align-items:center;display:grid}.treat-schedule-header{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--surface-tint);font-size:.6875rem}.treat-sched-day-input,.treat-sched-input{padding:var(--sp-xs) var(--sp-sm);border:1px solid var(--surface-tint);background:var(--surface-tint);border-radius:6px;outline:none;font-size:.8125rem}.treat-sched-day-input{font-family:var(--font-mono);font-size:.75rem}.treat-sched-input:focus,.treat-sched-day-input:focus{box-shadow:var(--shadow-sm);background:var(--surface)}.treat-deliverables-table{margin-top:var(--sp-xs)}.treat-del-header,.treat-del-row{gap:var(--sp-xs);padding:var(--sp-xs) 0;grid-template-columns:32px 60px 1fr 80px 120px;align-items:center;display:grid}.treat-del-header{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--surface-tint);font-size:.6875rem}.treat-del-row{border-bottom:1px solid #f1f0ec80;font-size:.8125rem}.treat-del-formats{color:var(--text-secondary);margin-top:var(--sp-sm);font-size:.8125rem}.treat-readonly-note{color:var(--text-tertiary);font-size:.8125rem}.treat-variants-table{margin-top:var(--sp-xs)}.treat-variants-header{gap:var(--sp-xs);padding-bottom:var(--sp-xs);border-bottom:1px solid var(--surface-tint);display:flex}.treat-variant-col-header{flex:1;align-items:center;gap:2px;display:flex}.treat-variant-col-input{padding:2px var(--sp-sm);text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);background:0 0;border:none;outline:none;flex:1;font-size:.6875rem;font-weight:600}.treat-variants-row{gap:var(--sp-xs);padding:var(--sp-xs) 0;border-bottom:1px solid #f1f0ec80;display:flex}.treat-variant-cell{padding:var(--sp-xs) var(--sp-sm);border:1px solid var(--surface-tint);background:var(--surface-tint);border-radius:6px;outline:none;flex:1;font-size:.8125rem}.treat-variant-cell:focus{box-shadow:var(--shadow-sm);background:var(--surface)}.treat-images{margin-top:var(--sp-md);border-top:1px solid var(--surface-tint);padding-top:var(--sp-sm)}.treat-image-grid{gap:var(--sp-sm);margin-bottom:var(--sp-sm);grid-template-columns:repeat(auto-fill,minmax(120px,1fr));display:grid}.treat-image-item{position:relative}.treat-image-thumb{aspect-ratio:16/10;object-fit:cover;background:var(--surface-tint);border-radius:6px;width:100%}.treat-image-caption{width:100%;padding:2px var(--sp-xs);color:var(--text-secondary);text-align:center;background:0 0;border:none;outline:none;font-size:.6875rem}.treat-image-remove{color:#fff;cursor:pointer;opacity:0;width:20px;height:20px;transition:opacity var(--dur-fast) var(--ease-out);background:#00000080;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:.75rem;display:flex;position:absolute;top:4px;right:4px}.treat-image-item:hover .treat-image-remove{opacity:1}.treat-image-upload{border:2px dashed var(--surface-tint);border-radius:var(--radius-sm);padding:var(--sp-md);text-align:center;cursor:pointer;transition:all var(--dur-fast) var(--ease-out)}.treat-image-upload:hover,.treat-image-upload.drag-over{border-color:var(--text-tertiary);background:#f1f0ec4d}.visual-table{border-collapse:collapse;width:100%;margin:var(--sp-sm) 0;font-size:.8125rem}.visual-table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);padding:var(--sp-xs) var(--sp-sm);border-bottom:2px solid var(--surface-tint);font-size:.6875rem;font-weight:600}.visual-table td{padding:var(--sp-xs) var(--sp-sm);border-bottom:1px solid var(--surface-tint);vertical-align:top}.visual-table tbody tr:last-child td{border-bottom:none}.wwp-table{font-size:.6875rem}.wwp-table th,.wwp-table td{padding:2px var(--sp-xs)}.visual-images{gap:var(--sp-sm);margin-top:var(--sp-md);flex-wrap:wrap;display:flex}.visual-image-fig{max-width:200px}.visual-image-fig img{border-radius:4px;width:100%}.visual-image-fig figcaption{color:var(--text-tertiary);text-align:center;margin-top:2px;font-size:.625rem}.schedule-tab{max-width:100%;padding:var(--sp-lg);animation:fadeUp var(--dur-entrance) var(--ease-out) both}.schedule-empty{justify-content:center;align-items:center;gap:var(--sp-lg);padding:var(--sp-2xl) var(--sp-lg);text-align:center;flex-direction:column;display:flex}.schedule-empty h2{color:var(--text-primary);font-size:1.25rem;font-weight:600}.schedule-empty p{color:var(--text-secondary);max-width:360px}.schedule-generate-btn{align-items:center;gap:var(--sp-sm);padding:var(--sp-sm) var(--sp-lg);background:var(--text-primary);color:var(--surface);border-radius:var(--radius-sm);cursor:pointer;transition:opacity var(--dur-fast) var(--ease-out);border:none;font-weight:500;display:inline-flex}.schedule-generate-btn:hover{opacity:.85}.schedule-toolbar{align-items:center;gap:var(--sp-md);padding:var(--sp-sm) 0;margin-bottom:var(--sp-md);flex-wrap:wrap;display:flex}.schedule-toolbar label{align-items:center;gap:var(--sp-xs);color:var(--text-secondary);font-size:.8125rem;display:flex}.schedule-toolbar input[type=date]{padding:var(--sp-xs) var(--sp-sm);border:1px solid var(--surface-tint);border-radius:var(--radius-sm);background:var(--surface);font-family:var(--font-mono);color:var(--text-primary);transition:box-shadow var(--dur-fast) var(--ease-out);outline:none;font-size:.8125rem}.schedule-toolbar input[type=date]:focus{box-shadow:var(--shadow-md)}.zoom-group{gap:2px;margin-left:auto;display:flex}.zoom-btn{padding:var(--sp-xs) var(--sp-sm);background:var(--surface-tint);color:var(--text-secondary);cursor:pointer;transition:all var(--dur-fast) var(--ease-out);border:none;font-size:.75rem;font-weight:500}.zoom-btn:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.zoom-btn:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0}.zoom-btn.active{background:var(--text-primary);color:var(--surface)}.zoom-btn:hover:not(.active){background:var(--bg)}.schedule-reset-btn{padding:var(--sp-xs) var(--sp-sm);background:var(--surface-tint);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--dur-fast) var(--ease-out);border:none;font-size:.75rem;font-weight:500}.schedule-reset-btn:hover{background:var(--bg);color:var(--text-primary)}.gantt-wrapper{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden}.gantt-scroll{max-height:calc(100vh - 220px);position:relative;overflow:auto}.gantt-grid{min-width:max-content;display:grid;position:relative}.gantt-month-row{z-index:3;background:var(--surface);display:flex;position:sticky;top:0}.gantt-month-cell{text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);padding:var(--sp-xs) var(--sp-sm);border-bottom:1px solid var(--surface-tint);white-space:nowrap;font-size:.6875rem;font-weight:600}.gantt-month-cell:first-child{min-width:var(--label-width);max-width:var(--label-width);z-index:4;background:var(--surface);position:sticky;left:0}.gantt-day-row{z-index:3;background:var(--surface);display:flex;position:sticky;top:26px}.gantt-day-cell{width:var(--day-width);min-width:var(--day-width);font-family:var(--font-mono);text-align:center;padding:2px 0 var(--sp-xs);color:var(--text-tertiary);border-bottom:1px solid var(--surface-tint);-webkit-user-select:none;user-select:none;font-size:.625rem}.gantt-day-cell.weekend{background:var(--surface-tint);color:var(--text-tertiary);opacity:.6}.gantt-day-cell.today{color:var(--ps-red);font-weight:600}.gantt-day-label{min-width:var(--label-width);max-width:var(--label-width);border-bottom:1px solid var(--surface-tint);z-index:4;background:var(--surface);position:sticky;left:0}.gantt-phase-header{background:var(--surface-tint);align-items:center;height:32px;display:flex}.gantt-phase-label{min-width:var(--label-width);max-width:var(--label-width);padding:0 var(--sp-md);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:var(--sp-sm);z-index:2;background:var(--surface-tint);font-size:.6875rem;font-weight:600;display:flex;position:sticky;left:0}.gantt-phase-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.gantt-phase-fill{flex:1;height:100%}.gantt-row{align-items:center;height:40px;display:flex;position:relative}.gantt-row:hover{background:#f1f0ec4d}.gantt-row-label{min-width:var(--label-width);max-width:var(--label-width);padding:0 var(--sp-md);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:var(--sp-sm);border-right:1px solid var(--surface-tint);cursor:default;z-index:2;background:var(--surface);height:100%;font-size:.8125rem;display:flex;position:sticky;left:0;overflow:hidden}.gantt-row-grid{flex:1;height:100%;display:flex;position:relative}.gantt-row-grid-cell{width:var(--day-width);min-width:var(--day-width);border-right:1px solid #f1f0ec80;height:100%}.gantt-row-grid-cell.weekend{background:var(--surface-tint);opacity:.4}.gantt-bar-container{z-index:2;height:28px;transition:transform var(--dur-fast) var(--ease-out);position:absolute;top:6px}.gantt-bar-container:not(.dragging){transition:left var(--dur-fast) var(--ease-out), width var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out)}.gantt-bar{cursor:grab;width:100%;height:100%;padding:0 var(--sp-sm);color:#fff;white-space:nowrap;text-overflow:ellipsis;-webkit-user-select:none;user-select:none;transition:box-shadow var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);text-shadow:0 1px 2px #0003;border-radius:6px;align-items:center;font-size:.6875rem;font-weight:500;display:flex;overflow:hidden}.gantt-bar:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.gantt-bar-container.dragging .gantt-bar{cursor:grabbing;box-shadow:var(--shadow-lg);opacity:.92}.gantt-bar-resize{cursor:ew-resize;z-index:3;border-radius:0 6px 6px 0;width:8px;height:100%;position:absolute;top:0;right:0}.gantt-bar-resize:hover{background:#fff3}.gantt-milestone-container{z-index:2;cursor:grab;align-items:center;display:flex;position:absolute;top:8px}.gantt-milestone-container:not(.dragging){transition:left var(--dur-fast) var(--ease-out)}.gantt-milestone{width:16px;height:16px;transition:box-shadow var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);border-radius:2px;flex-shrink:0;transform:rotate(45deg)}.gantt-milestone:hover{box-shadow:var(--shadow-md);transform:rotate(45deg)scale(1.15)}.gantt-milestone-container.dragging .gantt-milestone{cursor:grabbing;box-shadow:var(--shadow-lg)}.gantt-milestone-label{color:var(--text-tertiary);margin-left:var(--sp-sm);white-space:nowrap;font-size:.625rem;font-style:italic}.gantt-today-line{background:var(--ps-red);opacity:.5;z-index:1;pointer-events:none;width:2px;position:absolute;top:0;bottom:0}.gantt-today-line:before{content:"Today";color:var(--ps-red);text-transform:uppercase;letter-spacing:.04em;font-size:.5625rem;font-weight:600;position:absolute;top:-18px;left:50%;transform:translate(-50%)}.gantt-add-task{align-items:center;height:32px;display:flex}.gantt-add-task-btn{min-width:var(--label-width);max-width:var(--label-width);padding:0 var(--sp-md);background:var(--surface);color:var(--text-tertiary);cursor:pointer;align-items:center;gap:var(--sp-xs);transition:color var(--dur-fast) var(--ease-out);z-index:1;border:none;font-size:.75rem;display:flex;position:sticky;left:0}.gantt-add-task-btn:hover{color:var(--text-secondary)}.task-editor-overlay{z-index:99;position:fixed;inset:0}.task-editor{z-index:100;background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:var(--sp-md);width:260px;animation:scaleIn var(--dur-med) var(--ease-out) both;position:fixed}.task-editor-field{margin-bottom:var(--sp-sm);flex-direction:column;gap:2px;display:flex}.task-editor-field label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;font-size:.6875rem}.task-editor-field input{padding:var(--sp-xs) var(--sp-sm);border:1px solid var(--surface-tint);background:var(--surface-tint);transition:box-shadow var(--dur-fast) var(--ease-out);border-radius:6px;outline:none;font-size:.8125rem}.task-editor-field input:focus{box-shadow:var(--shadow-sm);background:var(--surface)}.task-editor-colors{gap:var(--sp-xs);margin-bottom:var(--sp-sm);display:flex}.task-editor-swatch{cursor:pointer;width:20px;height:20px;transition:transform var(--dur-fast) var(--ease-out);border:2px solid #0000;border-radius:50%}.task-editor-swatch:hover{transform:scale(1.2)}.task-editor-swatch.active{border-color:var(--text-primary)}.task-editor-actions{padding-top:var(--sp-sm);border-top:1px solid var(--surface-tint);justify-content:space-between;align-items:center;display:flex}.task-editor-delete{color:var(--margin-bad);cursor:pointer;padding:var(--sp-xs) var(--sp-sm);transition:background var(--dur-fast) var(--ease-out);background:0 0;border:none;border-radius:6px;font-size:.75rem}.task-editor-delete:hover{background:#c6282814}.task-editor-done{background:var(--text-primary);color:var(--surface);cursor:pointer;padding:var(--sp-xs) var(--sp-md);transition:opacity var(--dur-fast) var(--ease-out);border:none;border-radius:6px;font-size:.75rem;font-weight:500}.task-editor-done:hover{opacity:.85}.schedule-banner{align-items:center;gap:var(--sp-sm);padding:var(--sp-sm) var(--sp-md);border-radius:var(--radius-sm);color:var(--text-secondary);margin-bottom:var(--sp-md);background:#f7931e14;font-size:.8125rem;display:flex}.schedule-banner button{background:var(--ps-amber);color:#fff;padding:2px var(--sp-sm);cursor:pointer;border:none;border-radius:4px;flex-shrink:0;margin-left:auto;font-size:.75rem;font-weight:500}.schedule-summary{align-items:center;gap:var(--sp-lg);padding:var(--sp-sm) var(--sp-md);color:var(--text-secondary);margin-top:var(--sp-sm);font-size:.8125rem;display:flex}.schedule-summary strong{color:var(--text-primary);font-family:var(--font-mono)}.gantt-add-inline{align-items:center;gap:var(--sp-xs);height:36px;padding:0 var(--sp-sm);min-width:var(--label-width);animation:fadeIn var(--dur-fast) var(--ease-out);display:flex}.gantt-add-inline input{padding:2px var(--sp-sm);border:1px solid var(--surface-tint);border-radius:6px;outline:none;width:100px;font-size:.75rem}.gantt-add-inline input:focus{box-shadow:var(--shadow-sm)}.gantt-add-inline button{background:var(--text-primary);color:var(--surface);padding:2px var(--sp-sm);cursor:pointer;border:none;border-radius:4px;font-size:.6875rem}@media print{.schedule-tab{display:none}}.job-shell{min-height:100vh;display:flex}.job-main{flex-direction:column;flex:1;min-width:0;display:flex}.job-header{z-index:10;background:var(--surface);border-bottom:1px solid var(--surface-tint);position:sticky;top:0}.job-header-inner{max-width:960px;padding:10px var(--sp-lg);justify-content:space-between;align-items:center;gap:12px;margin:0 auto;display:flex}.job-header-left{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.job-header-info{flex:1;align-items:center;gap:6px;min-width:0;display:flex;overflow:hidden}.job-header-num{color:var(--text-tertiary);flex-shrink:0;font-size:.6875rem}.job-header-dot{color:var(--text-tertiary);flex-shrink:0;font-size:.75rem}.job-header-name{color:var(--text-primary);font-size:.9375rem;font-weight:600;font-family:var(--font-sans);background:0 0;border:none;outline:none;flex:1;min-width:60px}.job-header-name::placeholder{color:var(--text-tertiary)}.job-header-client{color:var(--text-secondary);font-size:.8125rem;font-family:var(--font-sans);background:0 0;border:none;outline:none;min-width:50px;max-width:140px}.job-header-client::placeholder{color:var(--text-tertiary)}.hamburger{cursor:pointer;width:32px;height:32px;color:var(--text-secondary);border-radius:var(--radius-sm);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;font-size:1.125rem;display:none}.hamburger:hover{background:var(--surface-tint)}.undo-redo{flex-shrink:0;gap:2px;display:flex}.undo-btn{cursor:pointer;width:28px;height:28px;color:var(--text-tertiary);border-radius:var(--radius-sm);transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.undo-btn:hover:not(:disabled){background:var(--surface-tint);color:var(--text-secondary)}.undo-btn:disabled{opacity:.2;cursor:default}.job-total-block{text-align:right;flex-shrink:0}.job-total-label{letter-spacing:.1em;text-transform:uppercase;color:var(--text-tertiary);font-size:.625rem;font-weight:600;display:block}.job-total-value{font-family:var(--font-mono);font-size:1.25rem;font-weight:600}.job-editor{max-width:960px;padding:var(--sp-md) var(--sp-lg) var(--sp-2xl);width:100%;margin:0 auto}.tab-content{animation:fadeUp var(--dur-slow) var(--ease-out) both}.tab-content>.surface:first-child{animation:fadeUp var(--dur-entrance) var(--ease-out) calc(var(--stagger) * 0) both}.tab-content>.surface:nth-child(2){animation:fadeUp var(--dur-entrance) var(--ease-out) calc(var(--stagger) * 1) both}.tab-content>.surface:nth-child(3){animation:fadeUp var(--dur-entrance) var(--ease-out) calc(var(--stagger) * 2) both}.tab-content>.surface:nth-child(4){animation:fadeUp var(--dur-entrance) var(--ease-out) calc(var(--stagger) * 3) both}.tab-content>.surface:nth-child(5){animation:fadeUp var(--dur-entrance) var(--ease-out) calc(var(--stagger) * 4) both}.tab-content>.surface:nth-child(n+6){animation:fadeUp var(--dur-entrance) var(--ease-out) calc(var(--stagger) * 5) both}.status-badge{letter-spacing:.08em;text-transform:uppercase;background:var(--surface-tint);color:var(--text-tertiary);border-radius:3px;flex-shrink:0;padding:2px 6px;font-size:.5625rem;font-weight:600}.status-badge.active{color:#2e7d32;background:#e8f5e9}.status-badge.quoted{color:#f57f17;background:#fff8e1}.status-badge.archived{background:var(--surface-tint);color:var(--text-tertiary)}.grid-2{gap:var(--sp-md);margin-bottom:var(--sp-md);grid-template-columns:1fr 1fr;display:grid}.grid-3{gap:var(--sp-md);margin-bottom:var(--sp-md);grid-template-columns:1fr 1fr 1fr;display:grid}.grid-2.tight,.grid-3.tight{gap:var(--sp-sm);margin-bottom:var(--sp-sm)}.indent{margin-top:8px;margin-bottom:8px;margin-left:50px}.job-editor .surface{margin-bottom:10px}.job-editor .surface>.field:not(:last-child),.job-editor .surface>.toggle-wrap:not(:last-child){margin-bottom:var(--sp-md)}.logo-upload-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}.logo-upload-field{flex-direction:column;gap:6px;display:flex}.logo-upload-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;font-size:.6875rem;font-weight:600}.logo-upload-zone{border:2px dashed var(--surface-tint);border-radius:var(--radius-sm);cursor:pointer;background:var(--surface-bg);justify-content:center;align-items:center;min-height:72px;padding:16px;transition:all .15s;display:flex}.logo-upload-zone:hover{border-color:var(--text-tertiary)}.logo-upload-zone.drag-over{background:#c8145c0a;border-color:#c8145c}.logo-upload-zone.has-logo{border-style:solid;border-color:var(--surface-tint);padding:12px}.logo-upload-placeholder{color:var(--text-tertiary);font-size:.75rem}.logo-upload-preview{justify-content:center;align-items:center;width:100%;display:flex;position:relative}.logo-upload-preview img{object-fit:contain;max-width:100%;max-height:48px}.logo-upload-clear{background:var(--text-primary);color:#fff;cursor:pointer;opacity:0;border:none;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:.75rem;transition:opacity .15s;display:flex;position:absolute;top:-4px;right:-4px}.logo-upload-zone:hover .logo-upload-clear{opacity:1}.contacts-list{flex-direction:column;gap:4px;display:flex}.contacts-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;font-size:.6875rem;font-weight:600}.contacts-empty{color:var(--text-tertiary);padding:4px 0;font-size:.8125rem}.contact-chip{border-radius:var(--radius-sm);transition:background var(--dur-fast) var(--ease-out);animation:fadeUp var(--dur-med) var(--ease-out) both;align-items:center;gap:6px;padding:6px 8px;display:flex}.contact-chip:hover{background:var(--surface-tint)}.contact-chip-label{cursor:pointer;text-align:left;background:0 0;border:none;flex:1;align-items:center;gap:6px;min-width:0;padding:0;display:flex}.contact-chip-name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem;font-weight:500;overflow:hidden}.contact-chip-company{color:var(--text-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;overflow:hidden}.contact-chip-actions{flex-shrink:0;align-items:center;gap:2px;display:flex}.contact-action{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--text-tertiary);cursor:pointer;transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);background:0 0;border:none;justify-content:center;align-items:center;text-decoration:none;display:flex}.contact-action:hover{background:var(--surface-tint);color:var(--text-primary)}.contact-remove{opacity:0;transition:opacity var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out)}.contact-chip:hover .contact-remove{opacity:1}.contact-remove:hover{color:var(--margin-bad)!important}.contact-form{border:1px solid var(--surface-tint);border-radius:var(--radius-sm);animation:fadeUp var(--dur-med) var(--ease-out) both;padding:10px 12px}.contact-form-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.contact-form-title{color:var(--text-primary);font-size:.8125rem;font-weight:600}.contact-form-close{cursor:pointer;width:24px;height:24px;color:var(--text-tertiary);border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.contact-form-close:hover{background:var(--surface-tint);color:var(--text-primary)}.contact-form-grid{grid-template-columns:1fr 1fr;gap:8px 12px;display:grid}.contact-form-field{flex-direction:column;gap:3px;display:flex}.contact-form-field:first-child{grid-column:1/-1}.contact-form-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;font-size:.6875rem;font-weight:600}.contact-field{align-items:center;gap:4px;display:flex}.contact-field .text-input{flex:1}.contact-form-autocomplete{position:relative}.contact-suggestions{z-index:20;background:var(--surface);border:1px solid var(--surface-tint);border-radius:0 0 var(--radius-sm) var(--radius-sm);box-shadow:var(--shadow-md);max-height:180px;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.contact-suggestion{cursor:pointer;text-align:left;width:100%;color:var(--text-primary);transition:background var(--dur-fast) var(--ease-out);background:0 0;border:none;align-items:center;gap:8px;padding:8px 10px;font-size:.8125rem;display:flex}.contact-suggestion:hover{background:var(--surface-tint)}.contact-suggestion-name{font-weight:500}.contact-suggestion-role{color:var(--text-tertiary);font-size:.75rem}.contact-suggestion-company{color:var(--text-tertiary);margin-left:auto;font-size:.75rem}@media (width<=600px){.contact-form-grid{grid-template-columns:1fr}.contact-form-field:first-child{grid-column:1}.contact-chip-company{display:none}.contact-remove{opacity:1}}.pp-row{align-items:center;gap:8px;margin-bottom:8px;display:flex}.pp-desc{flex:1}.pp-est{width:120px}.del-row{border-bottom:1px solid var(--surface-tint);margin-bottom:12px;padding-bottom:12px}.del-row:last-of-type{border-bottom:none}.del-top{align-items:center;gap:8px;margin-bottom:6px;display:flex}.del-num{font-family:var(--font-mono);color:var(--text-tertiary);text-align:center;flex-shrink:0;width:20px;font-size:.75rem}.del-dur{flex-shrink:0;width:64px}.del-qty{flex-shrink:0;align-items:center;gap:2px;width:52px;display:flex}.del-qty-label{color:var(--text-tertiary);font-size:.75rem}.del-label{flex:1}.del-type{flex-shrink:0;width:100px}.del-chips{margin-left:28px}.btn-remove{width:24px;height:24px;color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;font-size:1.125rem;display:flex}.btn-remove:hover{background:var(--surface-tint);color:var(--margin-bad)}.actions-bar{align-items:center;gap:var(--sp-md);margin-top:var(--sp-lg);flex-wrap:wrap;display:flex}.btn-lock{border:1px solid var(--surface-tint);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);background:0 0;align-items:center;gap:6px;padding:8px 14px;font-size:.8125rem;font-weight:500;display:inline-flex}.btn-lock:hover{background:var(--surface-tint);border-color:var(--text-tertiary)}.btn-lock.locked{background:var(--surface-tint);color:var(--text-primary);font-weight:600}.btn-primary{background:var(--text-primary);color:var(--surface);border-radius:var(--radius-sm);cursor:pointer;border:none;align-items:center;gap:6px;padding:10px 20px;font-size:.875rem;font-weight:500;transition:opacity .15s;display:inline-flex}.btn-primary:hover{opacity:.85}.btn-text{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:8px 12px;font-size:.8125rem;font-weight:500}.btn-text:hover{color:var(--text-primary)}.btn-danger{color:var(--margin-bad)}.btn-danger:hover{color:#b71c1c}@media (width<=767px){.hamburger{display:flex}.job-header-num,.job-header-dot,.job-header-client,.status-badge{display:none}.job-header-inner{padding:8px var(--sp-md)}.job-total-value{font-size:1rem}.job-editor{padding:var(--sp-md)}.grid-2,.grid-3{grid-template-columns:1fr}.del-top{flex-wrap:wrap}.del-dur{width:56px}}@media print{.job-shell{display:block}.job-header,.hamburger,.actions-bar{display:none!important}.job-editor{max-width:100%!important;padding:0!important}}.chat-panel{width:400px;height:100vh;transition:width var(--dur-slow) var(--ease-out), margin-right var(--dur-slow) var(--ease-out), opacity var(--dur-med) var(--ease-out);background:#faf9f7;border-left:1px solid #eeece8;flex-direction:column;flex-shrink:0;display:flex;position:sticky;top:0}.chat-panel.closed{opacity:0;pointer-events:none;border-left:none;width:0;overflow:hidden}.chat-panel.open{opacity:1}.chat-header{background:#faf9f7;border-bottom:1px solid #eeece8;flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.chat-title-row{align-items:center;gap:8px;display:flex}.chat-claude-icon{color:#fff;background:#d97757;border-radius:6px;justify-content:center;align-items:center;width:24px;height:24px;display:flex}.chat-title{color:#2d2b28;font-size:.875rem;font-weight:600}.chat-header-actions{align-items:center;gap:2px;display:flex}.chat-new-btn,.chat-speak-btn,.chat-close-btn{cursor:pointer;color:#a39e96;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;transition:all .12s ease-out;display:flex}.chat-new-btn:hover,.chat-speak-btn:hover,.chat-close-btn:hover{color:#6b6560;background:#eeece8}.chat-speak-btn.active{color:#d97757;background:#f5ede8}.chat-messages{background:#faf9f7;flex-direction:column;flex:1;gap:20px;padding:20px 18px;display:flex;overflow-y:auto}.chat-messages::-webkit-scrollbar{width:4px}.chat-messages::-webkit-scrollbar-track{background:0 0}.chat-messages::-webkit-scrollbar-thumb{background:#ddd9d3;border-radius:4px}.chat-empty{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;padding:32px;display:flex}.chat-empty-icon{color:#fff;background:#d97757;border-radius:12px;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.chat-empty p{color:#a39e96;max-width:260px;font-size:.8125rem;line-height:1.6}.chat-msg{align-items:flex-start;gap:10px;display:flex}.chat-msg.user{justify-content:flex-end}.chat-msg.assistant{justify-content:flex-start}.chat-avatar{color:#fff;background:#d97757;border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;margin-top:2px;display:flex}.chat-msg-bubble{white-space:pre-wrap;word-break:break-word;max-width:82%;font-size:.8125rem;line-height:1.6}.chat-msg.user .chat-msg-bubble{color:#faf9f7;background:#2d2b28;border-radius:18px 18px 4px;padding:10px 16px}.chat-msg.assistant .chat-msg-bubble{color:#2d2b28;background:0 0;padding:4px 0}.chat-cursor{color:#d97757;font-weight:600;animation:.8s infinite blink;display:inline}.chat-error{color:#c44;background:#fff3f0;border:1px solid #ffe0d9;border-radius:10px;padding:10px 14px;font-size:.75rem}.chat-input-area{background:#faf9f7;border-top:1px solid #eeece8;flex-shrink:0;padding:14px 18px}.chat-stop-btn{color:#6b6560;cursor:pointer;background:0 0;border:1px solid #eeece8;border-radius:10px;width:100%;margin-bottom:10px;padding:7px;font-size:.75rem;font-weight:500;transition:all .12s ease-out;display:block}.chat-stop-btn:hover{background:#eeece8}.chat-input-row{align-items:flex-end;gap:8px;display:flex}.chat-input{font-size:.8125rem;font-family:var(--font-sans);color:#2d2b28;resize:none;background:#fff;border:1px solid #ddd9d3;border-radius:20px;outline:none;flex:1;min-height:40px;max-height:160px;padding:10px 16px;transition:border-color .12s ease-out,box-shadow .12s ease-out;overflow-y:auto}.chat-input:focus{border-color:#d97757;box-shadow:0 0 0 3px #d977571a}.chat-input::placeholder{color:#b8b3ac}.chat-mic-btn,.chat-send-btn{cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;transition:all .12s ease-out;display:flex}.chat-mic-btn{color:#a39e96;background:0 0}.chat-mic-btn:hover{color:#6b6560;background:#eeece8}.chat-mic-btn.active{color:#fff;background:#c44;animation:1.5s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.chat-send-btn{color:#fff;background:#2d2b28}.chat-send-btn:hover:not(:disabled){background:#3d3b38}.chat-send-btn:disabled{color:#b8b3ac;cursor:default;background:#ddd9d3}.chat-fab{color:#fff;cursor:pointer;z-index:40;background:#d97757;border:none;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;transition:transform .12s ease-out,box-shadow .12s ease-out;display:flex;position:fixed;bottom:24px;right:24px;box-shadow:0 4px 16px #d9775759}.chat-fab:hover{transform:scale(1.08);box-shadow:0 6px 24px #d9775773}.chat-fab:active{transform:scale(.95)}@media (width<=767px){.chat-panel{z-index:50;width:100%;transition:transform var(--dur-slow) var(--ease-out), opacity var(--dur-med) var(--ease-out);border-left:none;height:100%;position:fixed;top:0;bottom:0;right:0;transform:translate(0)}.chat-panel.closed{opacity:0;pointer-events:none;width:100%;overflow:hidden;transform:translate(100%)}.chat-fab{width:48px;height:48px;bottom:16px;right:16px}}@media print{.chat-panel,.chat-fab{display:none!important}}.side-rail{background:var(--surface);border-right:1px solid var(--surface-tint);height:100vh;transition:width var(--dur-slow) var(--ease-out);flex-direction:column;flex-shrink:0;display:flex;position:sticky;top:0;overflow:hidden auto}.side-rail.expanded{width:200px}.side-rail.collapsed{width:56px}.rail-top{justify-content:space-between;align-items:center;gap:4px;padding:10px 8px;display:flex}.rail-logo{cursor:pointer;border-radius:var(--radius-sm);transition:background var(--dur-fast) var(--ease-out);background:0 0;border:none;align-items:center;gap:8px;min-width:0;padding:6px;display:flex;overflow:hidden}.rail-logo:hover{background:var(--surface-tint)}.rail-logo-text{color:var(--text-primary);white-space:nowrap;font-size:.8125rem;font-weight:600}.side-rail.collapsed .rail-logo-text{display:none}.rail-toggle{cursor:pointer;border-radius:var(--radius-sm);width:28px;height:28px;color:var(--text-tertiary);transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.rail-toggle:hover{background:var(--surface-tint);color:var(--text-secondary)}.rail-toggle-icon{transition:transform var(--dur-med) var(--ease-out);justify-content:center;align-items:center;display:flex}.rail-toggle-icon.rotated{transform:rotate(180deg)}.rail-items{flex-direction:column;flex:1;gap:2px;padding:0 8px;display:flex}.rail-item{cursor:pointer;border-radius:var(--radius-sm);height:38px;transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);color:var(--text-secondary);text-align:left;white-space:nowrap;background:0 0;border:none;align-items:center;gap:10px;padding:0 10px;display:flex;overflow:hidden}.side-rail.collapsed .rail-item{justify-content:center;padding:0}.rail-item:hover:not(.disabled){background:var(--surface-tint);color:var(--text-primary)}.rail-item.active{background:var(--text-primary);color:var(--surface);box-shadow:inset 3px 0 0 var(--ps-magenta)}.rail-item.disabled{opacity:.25;cursor:default}.rail-icon{flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;display:flex}.rail-label{text-overflow:ellipsis;font-size:.8125rem;font-weight:500;overflow:hidden}.side-rail.collapsed .rail-label{display:none}.rail-bottom{border-top:1px solid var(--surface-tint);padding:8px}.rail-divider{background:var(--surface-tint);height:1px;margin:6px 2px}.rail-item-dashboard{color:var(--text-tertiary);font-size:.75rem}.rail-item-dashboard:hover{color:var(--text-primary)}@media (width<=767px){.side-rail{display:none}}.mobile-menu-overlay{z-index:90;opacity:0;transition:opacity var(--dur-med) var(--ease-out);background:#0000004d;display:none;position:fixed;inset:0}.mobile-menu-overlay.open{opacity:1;display:block}.mobile-menu{background:var(--surface);z-index:100;width:260px;transition:transform var(--dur-slow) var(--ease-out);box-shadow:var(--shadow-lg);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.mobile-menu.open{transform:translate(0)}.mobile-menu-header{border-bottom:1px solid var(--surface-tint);align-items:center;gap:10px;padding:12px 16px;display:flex}.mobile-menu-title{flex:1;font-size:.875rem;font-weight:600}.mobile-menu-close{cursor:pointer;width:32px;height:32px;color:var(--text-secondary);border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.mobile-menu-close:hover{background:var(--surface-tint)}.mobile-menu-item{cursor:pointer;color:var(--text-secondary);text-align:left;width:100%;transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);background:0 0;border:none;align-items:center;gap:12px;padding:12px 16px;font-size:.875rem;font-weight:500;display:flex}.mobile-menu-item:hover:not(.disabled){background:var(--surface-tint);color:var(--text-primary)}.mobile-menu-item.active{background:var(--text-primary);color:var(--surface)}.mobile-menu-item.disabled{opacity:.25;cursor:default}.mobile-menu-divider{background:var(--surface-tint);height:1px;margin:4px 16px}@media print{.side-rail,.mobile-menu,.mobile-menu-overlay{display:none!important}}.settings-page{max-width:960px;padding:var(--sp-md) var(--sp-lg) var(--sp-2xl);width:100%;margin:0 auto}.settings-header{margin-bottom:24px}.settings-header h1{margin:0 0 4px;font-size:1.25rem;font-weight:700}.settings-subtitle{color:var(--text-secondary);margin:0;font-size:.8125rem}.settings-page .surface{margin-bottom:16px}.settings-section-title{margin:0 0 12px;font-size:.875rem;font-weight:600}.settings-table-header{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--surface-tint);grid-template-columns:1fr 80px 80px;gap:8px;padding:0 0 6px;font-size:.6875rem;font-weight:600;display:grid}.settings-table-row{border-bottom:1px solid #0000000a;grid-template-columns:1fr 80px 80px;align-items:center;gap:8px;padding:6px 0;font-size:.8125rem;display:grid}.settings-table-row:last-child{border-bottom:none}.settings-table-row-2col,.settings-table-row-2col+.settings-table-header,.settings-table-row-2col~.settings-table-header{grid-template-columns:1fr 80px}.settings-table-row-4col{grid-template-columns:1fr 80px 80px 64px}.settings-table:has(.settings-table-row-2col) .settings-table-header{grid-template-columns:1fr 80px}.settings-table:has(.settings-table-row-4col) .settings-table-header{grid-template-columns:1fr 80px 80px 64px}.settings-role{font-weight:500}.settings-rate-input{border:1px solid var(--surface-tint);border-radius:var(--radius-sm);width:64px;font-size:.8125rem;font-family:var(--font-mono);text-align:right;background:var(--bg);color:var(--text-primary);transition:border-color var(--dur-fast) var(--ease-out);outline:none;padding:4px 6px}.settings-rate-input:focus{border-color:var(--text-tertiary)}.settings-rate-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.settings-rate-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.settings-rate-input{-moz-appearance:textfield}.settings-pct{color:var(--text-tertiary);margin-left:2px;font-size:.75rem}.settings-actions{align-items:center;gap:16px;margin-top:24px;display:flex}@media (width<=600px){.settings-page{padding:16px 12px 48px}.settings-rate-input{width:56px;padding:3px 4px;font-size:.75rem}.settings-table-row,.settings-table-header{font-size:.75rem}}:root{--brand:#cc0061;--text-primary:#2c2a25;--text-secondary:#6b6862;--text-tertiary:#a09d96;--bg:#f1f0ec;--surface:#fff;--surface-tint:#f7f6f3;--margin-good:#2e7d32;--margin-ok:#e65100;--margin-bad:#c62828;--ps-red:#ed1c24;--ps-orange:#ff6b24;--ps-amber:#f7931e;--ps-yellow:#fcda00;--ps-lime:#c4da30;--ps-green:#8cc63f;--ps-teal:#5bb991;--ps-blue:#0071bc;--ps-sky:#29abe2;--ps-purple:#662d91;--ps-magenta:#cc0085;--ps-pink:#991779;--ps-v1:var(--ps-red);--ps-v2:var(--ps-blue);--ps-v3:var(--ps-teal);--ps-v4:var(--ps-amber);--ps-v5:var(--ps-purple);--ps-v6:var(--ps-green);--ps-v7:var(--ps-orange);--ps-v8:var(--ps-sky);--shadow-sm:0 1px 3px #2c2a250f, 0 1px 2px #2c2a250a;--shadow-md:0 4px 12px #2c2a2514, 0 2px 4px #2c2a250a;--shadow-lg:0 8px 24px #2c2a251a, 0 4px 8px #2c2a250a;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--sp-xs:4px;--sp-sm:8px;--sp-md:16px;--sp-lg:24px;--sp-xl:32px;--sp-2xl:48px;--font-sans:"DM Sans", system-ui, -apple-system, sans-serif;--font-mono:"DM Mono", ui-monospace, monospace;--dur-fast:.12s;--dur-med:.2s;--dur-slow:.35s;--dur-entrance:.5s;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.55, 0, 1, .45);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--stagger:50ms}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-sans);color:var(--text-primary);background:var(--bg);line-height:1.5}input,textarea,select,button{font-family:inherit;font-size:inherit;color:inherit}.mono{font-family:var(--font-mono)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.surface{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--sp-lg);transition:box-shadow var(--dur-med) var(--ease-out), transform var(--dur-med) var(--ease-out)}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes growWidth{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
