:root{--gold:#aa9664;--gold-dark:#85743f;--gold-soft:#f1ebdc;--cream:#f8f5ee;--paper:#fff;--line:#e4dccb;--ink:#2b2925;--muted:#8a8478;--danger:#b3261e;--danger-soft:#fbeaea;--warn:#9a5b00;--warn-soft:#fff3dc;--radius:8px;--topbar-h:56px;color:var(--ink);background:var(--cream);-webkit-text-size-adjust:100%;font-family:Noto Sans TC,Microsoft JhengHei,system-ui,sans-serif;font-weight:400}*{box-sizing:border-box}body{background:var(--cream);margin:0}button,input,select,textarea{font:inherit;color:inherit}.muted{color:var(--muted)}.small{font-size:.875rem}.error{color:var(--danger)}.btn{border:1px solid var(--gold);border-radius:var(--radius);background:var(--gold);color:#fff;cursor:pointer;white-space:nowrap;min-height:44px;padding:0 18px}.btn:hover:not(:disabled){background:var(--gold-dark);border-color:var(--gold-dark)}.btn:disabled{opacity:.45;cursor:default}.btn-quiet{background:var(--paper);color:var(--ink);border-color:var(--line)}.btn-quiet:hover:not(:disabled){background:var(--gold-soft);border-color:var(--gold);color:var(--ink)}.btn-block{width:100%;margin-top:12px;display:block}.btn-small{min-height:34px;margin-left:12px;padding:0 12px}.btn-text{min-height:44px;color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0 10px}.btn-text:hover{color:var(--ink)}.icon-btn{width:40px;height:40px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:50%;font-size:1.1rem}.icon-btn:hover{background:var(--gold-soft);color:var(--ink)}.center-page{place-items:center;min-height:100vh;padding:24px 16px;display:grid}.center-card{background:var(--paper);border:1px solid var(--line);border-radius:12px;width:100%;max-width:420px;padding:32px 28px;line-height:1.7}.logo{border-bottom:1px solid var(--gold);color:var(--gold);letter-spacing:.08em;margin:0 0 20px;padding-bottom:12px;font-weight:300}.app{min-height:100vh}.topbar{z-index:20;height:var(--topbar-h);background:var(--paper);border-bottom:1px solid var(--line);align-items:center;gap:24px;padding:0 20px;display:flex;position:sticky;top:0}.brand{color:var(--gold);letter-spacing:.08em;white-space:nowrap;font-size:1.25rem;font-weight:300}.nav{gap:4px;display:flex}.nav-item{border-radius:var(--radius);min-height:40px;color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0 14px}.nav-item:hover{color:var(--ink);background:var(--cream)}.nav-item.active{color:var(--gold-dark);background:var(--gold-soft);font-weight:500}.topbar-right{align-items:center;gap:16px;margin-left:auto;font-size:.9rem;display:flex}.save-status{color:var(--muted);white-space:nowrap}.save-status.ok{color:#3d7a4a}.save-status.bad{color:var(--danger);cursor:help}.user{white-space:nowrap}.switch{cursor:pointer;white-space:nowrap;align-items:center;gap:8px;min-height:44px;display:flex}.switch input{opacity:0;pointer-events:none;position:absolute}.switch-track{background:var(--line);border-radius:10px;width:36px;height:20px;transition:background .15s;position:relative}.switch-track:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:2px;left:2px}.switch.on .switch-track{background:var(--gold)}.switch.on .switch-track:after{transform:translate(16px)}.switch input:focus-visible+.switch-track{outline:2px solid var(--gold-dark);outline-offset:2px}.banner{flex-wrap:wrap;align-items:center;gap:4px;padding:10px 20px;font-size:.9rem;display:flex}.banner-warn{background:var(--warn-soft);color:var(--warn)}.banner-info{background:var(--gold-soft);color:var(--gold-dark)}.banner-error{background:var(--danger-soft);color:var(--danger)}.banner-demo{color:#3d5a80;background:#e9eef6}.loading,.coming-soon{text-align:center;padding:48px 20px}.coming-soon h2{color:var(--gold);font-weight:300}.price-page{grid-template-columns:1fr;display:grid}.price-page.has-panel{grid-template-columns:minmax(0,1fr) 400px}.price-main{min-width:0;padding:20px}.filters{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.search{flex:240px;min-width:0}.filters select{flex:0 180px;min-width:0}input,select,textarea{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);width:100%;min-height:44px;padding:8px 12px}textarea{resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-soft);outline:none}input[type=checkbox],input[type=radio]{width:18px;height:18px;min-height:0;accent-color:var(--gold);flex:none;padding:0}.check{white-space:nowrap;cursor:pointer;align-items:center;gap:8px;min-height:44px;display:flex}.check.block{white-space:normal;margin-bottom:12px}.chips{scrollbar-width:thin;gap:8px;margin:14px 0 18px;padding-bottom:4px;display:flex;overflow-x:auto}.chip{border:1px solid var(--line);background:var(--paper);cursor:pointer;white-space:nowrap;border-radius:18px;flex:none;min-height:36px;padding:0 14px}.chip:hover{border-color:var(--gold)}.chip.active{background:var(--gold);border-color:var(--gold);color:#fff}.chip .count{opacity:.7;margin-left:4px;font-size:.8rem}.price-list{flex-direction:column;gap:16px;display:flex}.price-group{background:var(--paper);border:1px solid var(--line);border-radius:10px}.group-head{top:var(--topbar-h);z-index:1;background:var(--gold-soft);color:var(--gold-dark);border-radius:9px 9px 0 0;margin:0;padding:10px 16px;font-size:.95rem;font-weight:500;position:sticky}.group-head .count{opacity:.75;margin-left:6px;font-size:.8rem}.price-row{border:none;border-top:1px solid var(--line);text-align:left;cursor:pointer;background:0 0;grid-template-columns:minmax(0,1fr) 150px 48px;align-items:center;column-gap:16px;width:100%;min-height:44px;padding:8px 16px;display:grid}.price-list.internal .price-row{grid-template-columns:minmax(0,1fr) 150px 110px 130px 48px}.group-head+.price-row{border-top:none}.price-row:last-child{border-radius:0 0 9px 9px}.price-row:hover{background:var(--cream)}.price-row.selected{background:var(--gold-soft);box-shadow:inset 3px 0 0 var(--gold)}.price-row.disabled{opacity:.55}.row-name{line-height:1.5}.row-name .tag{margin-right:6px;font-size:.75rem}.row-name .tag-off{margin:0 0 0 6px}.row-price{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.row-unit{color:var(--muted);font-size:.85rem}.row-cost{text-align:right;color:var(--warn);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.9rem}.row-vendor{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;overflow:hidden}.row-date{color:var(--muted);text-align:right;font-size:.8rem}.row-break{display:none}.price-row.project-row{grid-template-columns:minmax(0,1.4fr) 110px minmax(0,1fr) 190px 48px;grid-template-areas:"name owner address price date"}.price-row.trash-row{cursor:default;grid-template-columns:minmax(0,1.4fr) 110px minmax(0,1fr) 120px 72px}.project-row .row-name{grid-area:name}.row-owner{grid-area:owner;font-size:.9rem}.row-address{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;grid-area:address;font-size:.85rem;overflow:hidden}.project-row .row-price{grid-area:price}.project-row .row-date,.trash-row .btn{grid-area:date;justify-self:end}.trash-row .btn{margin:0}.back{margin-bottom:8px;padding-left:0}.project-head{background:var(--paper);border:1px solid var(--line);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:8px;padding:18px 20px;display:flex}.project-head h1{margin:0 0 4px;font-size:1.4rem;font-weight:500}.project-head p{margin:4px 0}.project-meta{line-height:1.6}.section-head{justify-content:space-between;align-items:center;margin:22px 0 10px;display:flex}.section-head h2{color:var(--gold-dark);margin:0;font-size:1.05rem;font-weight:500}.price-row.quote-row{cursor:default;flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.row-main{text-align:left;cursor:pointer;background:0 0;border:none;flex:320px;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name price""address address";gap:2px 12px;min-width:0;padding:0;display:grid}.row-main .row-name{grid-area:name}.row-main .row-price{grid-area:price}.row-main .row-address{grid-area:address}.row-actions{align-items:center;gap:4px;margin-left:auto;display:flex}.row-actions .btn-small{margin-left:0}.tag-contract{color:#2f6b3c;background:#e6f2e8;margin-left:6px;font-size:.75rem}.trash-block{margin-top:12px}.segmented button:disabled{color:var(--muted);cursor:not-allowed;opacity:.6}.tag-todo{color:#7a5d00;background:#fff3b0}.tag-alert{background:var(--danger-soft);color:var(--danger);margin-left:6px;font-size:.75rem}.price-main{container-type:inline-size}@container (width<=640px){.price-row,.price-list.internal .price-row{flex-wrap:wrap;align-items:baseline;gap:2px 10px;padding:10px 14px;display:flex}.row-name{flex:1 1 0;min-width:0}.row-break{flex-basis:100%;height:0;display:block}.row-cost,.row-vendor,.row-date{text-align:left;font-size:.8rem}.row-date{margin-left:auto}.project-row .row-name{order:1}.project-row .row-price{order:2}.project-row .row-break{order:3}.project-row .row-owner{order:4;font-size:.8rem}.project-row .row-address{flex:1 1 0;order:5;min-width:0;font-size:.8rem}.project-row .row-date,.trash-row .btn{order:6}}.tag{background:var(--gold-soft);color:var(--gold-dark);border-radius:10px;padding:1px 8px;display:inline-block}.tag-off{color:var(--muted);background:#eee}.lump{color:var(--gold-dark)}.empty{text-align:center;padding:48px 16px}.panel{top:var(--topbar-h);height:calc(100vh - var(--topbar-h));background:var(--paper);border-left:1px solid var(--line);flex-direction:column;display:flex;position:sticky}.panel-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 20px 10px;display:flex}.panel-head h2{margin:0;font-size:1.1rem;font-weight:500}.panel-head p{margin:4px 0 0}.panel-body{flex:1;padding:16px 20px;overflow-y:auto}.panel-actions{border-top:1px solid var(--line);align-items:center;gap:10px;padding:12px 20px;display:flex}.field{margin-bottom:14px;display:block}.field-label{color:var(--muted);margin-bottom:4px;font-size:.85rem;display:block}.field-hint,.field-error{color:var(--muted);margin-top:4px;font-size:.8rem;display:block}.field-error{color:var(--danger)}.field.has-error input,.field.has-error select{border-color:var(--danger)}.field-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.hint-box,.warn-box,.error-box{border-radius:var(--radius);margin:0 0 14px;padding:10px 12px;font-size:.85rem;line-height:1.6}.hint-box{background:var(--cream);color:var(--muted)}.hint-box.error,.error-box{background:var(--danger-soft);color:var(--danger)}.warn-box{background:var(--warn-soft);color:var(--warn)}.sheet-backdrop{display:none}.modal-backdrop{z-index:40;background:#2b292559;place-items:center;padding:24px 16px;display:grid;position:fixed;inset:0}.modal{background:var(--paper);border-radius:12px;flex-direction:column;width:100%;max-width:720px;max-height:calc(100vh - 48px);display:flex;box-shadow:0 12px 32px #0000002e}.modal-body{flex:1;padding:16px 20px;overflow-y:auto}.import-summary{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.stat{background:var(--cream);border-radius:16px;padding:6px 12px;font-size:.9rem}.stat.add{color:#2f6b3c;background:#e6f2e8}.stat.change{background:var(--gold-soft);color:var(--gold-dark)}.stat.bad{background:var(--danger-soft);color:var(--danger)}.import-section{margin-bottom:18px}.import-section h3{margin:0 0 8px;font-size:.95rem;font-weight:500}.import-section.bad h3{color:var(--danger)}.import-section ul{border:1px solid var(--line);border-radius:var(--radius);margin:0;padding:0;list-style:none}.import-section li{border-bottom:1px solid var(--line);padding:8px 12px;font-size:.9rem;line-height:1.6}.import-section li:last-child{border-bottom:none}.import-section.bad li{background:#fdf6f6}.reason{color:var(--danger);font-size:.85rem}.reason.warn{color:var(--warn)}.diff{color:var(--muted);font-size:.85rem}.diff s{color:var(--muted)}.diff b{color:var(--ink);font-weight:500}.segmented{border:1px solid var(--line);border-radius:var(--radius);margin-bottom:8px;display:flex;overflow:hidden}.segmented button{border:none;border-right:1px solid var(--line);background:var(--paper);cursor:pointer;flex:1;min-height:40px}.segmented button:last-child{border-right:none}.segmented button.active{background:var(--gold);color:#fff}.percent-row{align-items:center;gap:8px;display:flex}.percent-row input{max-width:200px}.quick{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.import-section li.warn-row{background:var(--warn-soft)}.app-fixed{flex-direction:column;height:100dvh;display:flex;overflow:hidden}.editor{flex-direction:column;flex:1;min-height:0;display:flex}.editor-head{background:var(--paper);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px 16px;padding:8px 16px;display:flex}.editor-head .back{margin:0}.editor-title{flex:1;min-width:0}.editor-title .tag{margin-left:6px;font-size:.75rem}.editor-actions{flex-wrap:wrap;gap:8px;display:flex}.editor-body{flex:1;grid-template-columns:300px minmax(0,1fr) 360px;min-height:0;display:grid;position:relative}.editor-body.no-picker{grid-template-columns:minmax(0,1fr) 360px}.editor-picker,.editor-side{background:var(--paper);flex-direction:column;min-height:0;display:flex}.editor-picker{border-right:1px solid var(--line)}.editor-side{border-left:1px solid var(--line)}.editor-lines{min-height:0;padding:16px;overflow-y:auto;container-type:inline-size}.sheet-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;display:flex}.editor-picker .sheet-head,.sheet-close,.picker-toggle,.editor-backdrop,.side-toggle{display:none}.side-body{flex:1;padding:14px 16px;overflow-y:auto}.tabs{gap:4px;display:flex}.tab{border-radius:var(--radius);min-height:36px;color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0 14px}.tab.active{background:var(--gold-soft);color:var(--gold-dark);font-weight:500}.picker{flex-direction:column;flex:1;min-height:0;display:flex}.picker-filters{border-bottom:1px solid var(--line);flex-direction:column;gap:8px;padding:12px;display:flex}.picker-selects{flex-wrap:wrap;gap:6px;display:flex}.picker-selects select{flex:120px;min-width:0;min-height:38px;padding:6px 8px;font-size:.9rem}.picker-list{flex:1;overflow-y:auto}.picker-row{border:none;border-bottom:1px solid var(--line);text-align:left;cursor:pointer;background:0 0;grid-template-columns:minmax(0,1fr) auto 24px;align-items:center;gap:8px;width:100%;min-height:44px;padding:8px 12px;font-size:.9rem;display:grid}.picker-row:hover{background:var(--cream)}.picker-row:active{background:var(--gold-soft)}.picker-name .tag{font-size:.7rem}.picker-price{font-variant-numeric:tabular-nums;white-space:nowrap}.picker-add{color:var(--gold);text-align:center;font-size:1.1rem}.picker-empty{padding:16px}.quote-lines .group-head{top:-16px}.group-total{float:right;font-weight:400}.price-row.line-row{grid-template-columns:minmax(0,1fr) 200px 100px}.quote-lines.internal .price-row.line-row{grid-template-columns:minmax(0,1fr) 200px 100px 100px}.price-row.line-row.todo{background:#fffbe6}.price-row.line-row.todo.selected{background:var(--gold-soft)}.line-row .line-qty{border:1px solid var(--line);width:4.5em;min-height:0;font:inherit;text-align:right;font-variant-numeric:tabular-nums;background:#fff;border-radius:6px;padding:2px 6px}.line-row .line-qty:focus{border-color:var(--gold);box-shadow:0 0 0 2px var(--gold-soft);outline:none}.line-row .line-qty::placeholder{color:#b08900}.row-amount{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.cat-overview{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.cat-chip{border:1px solid var(--line);background:var(--paper);cursor:pointer;white-space:nowrap;border-radius:16px;min-height:32px;padding:0 10px;font-size:.82rem}.cat-chip.done{color:#2f6b3c;background:#eef7f0;border-color:#b9d8bf}.cat-chip.todo{color:#7a5d00;background:#fff8d6;border-color:#f0dc8a}.cat-chip.skipped{color:var(--muted);text-decoration:line-through}.cat-chip.pending{border-color:var(--danger);background:var(--danger-soft);color:var(--danger);font-weight:500}.cat-chip .count{opacity:.7}.collapse-btn{color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;margin-right:6px;padding:0}.drag-handle{color:var(--muted);cursor:grab;margin-right:8px}.price-row.dragging{opacity:.4}.price-row.drop-before{box-shadow:inset 0 3px 0 var(--gold)}.price-row.drop-after{box-shadow:inset 0 -3px 0 var(--gold)}.group-actions{flex-wrap:wrap;gap:4px 12px;padding:2px 8px 6px;display:flex}.group-actions .btn-text{min-height:36px}.pending-block{margin-top:4px}.pending-title{color:var(--danger);margin:8px 2px;font-size:.9rem;font-weight:500}.pending-group{border-color:#f0c9c6}.pending-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 12px;padding:6px 8px 6px 16px;display:flex}.pending-row .group-actions{padding:0}.skipped-block{flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;display:flex}.skip-chip{border:1px dashed var(--line);color:var(--muted);border-radius:16px;align-items:center;gap:2px;padding-left:10px;font-size:.85rem;display:inline-flex}.skip-chip .btn-text{min-height:30px;color:var(--gold-dark);padding:0 8px}.status-jump{cursor:pointer;border:none;margin-right:8px}.line-actions{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.line-form{border:none;min-width:0;margin:0;padding:0}.computed{font-variant-numeric:tabular-nums;align-items:center;min-height:44px;display:flex}.summary-tab p{margin:4px 0}.editor-status{background:var(--paper);border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex}.status-total strong{font-variant-numeric:tabular-nums;font-size:1.1rem}@media (width<=1199px){.editor-body{grid-template-columns:minmax(0,1fr) 340px}.editor-picker{z-index:26;width:min(360px,90vw);transition:transform .2s;position:absolute;top:0;bottom:0;left:0;transform:translate(-105%);box-shadow:8px 0 24px #0000001f}.sheet-picker .editor-picker{transform:none}.editor-picker .sheet-head,.picker-toggle{align-items:center;display:flex}.sheet-picker .editor-backdrop{z-index:25;background:#2b292540;display:block;position:absolute;inset:0}}@media (width<=767px){.editor-head{padding:8px 12px}.editor-actions .btn{min-height:40px;padding:0 12px}.editor-actions .future,.editor-title .muted{display:none}.editor-body,.editor-body.no-picker{grid-template-columns:1fr;overflow:hidden}.editor-lines{padding:12px}.editor-picker,.editor-side{z-index:26;visibility:hidden;border:none;border-radius:16px 16px 0 0;width:auto;height:85%;transition:transform .2s,visibility .2s;position:absolute;inset:auto 0 0;transform:translateY(105%);box-shadow:0 -8px 24px #00000026}.sheet-picker .editor-picker,.sheet-side .editor-side{visibility:visible;transform:none}.sheet-close,.side-toggle{justify-content:center;align-items:center;display:inline-flex}.sheet-side .editor-backdrop{z-index:25;background:#2b292540;display:block;position:absolute;inset:0}}.confirm-backdrop{z-index:50}.modal.confirm{max-width:420px}.modal.confirm p{margin:4px 0;line-height:1.7}.btn-danger{background:var(--danger);border-color:var(--danger)}.btn-danger:hover:not(:disabled){background:#8f1e18;border-color:#8f1e18}.done-box{border-radius:var(--radius);color:#2f6b3c;background:#e6f2e8;padding:14px}@media (width<=767px){.topbar{flex-wrap:wrap;gap:4px 12px;height:auto;padding:6px 16px}.nav{order:3;width:100%}.nav-item{white-space:nowrap;flex:1;padding:0 6px}.topbar-right{gap:10px}.user,.save-status:not(.bad):not(.ok){display:none}.price-main{padding:16px}.price-page.has-panel{grid-template-columns:1fr}.group-head{position:static}.filters select{flex:140px}.sheet-backdrop{z-index:30;background:#2b292559;display:block;position:fixed;inset:0}.modal-backdrop{place-items:end stretch;padding:0}.modal{border-radius:16px 16px 0 0;max-height:92vh}.panel{z-index:31;border-left:none;border-radius:16px 16px 0 0;height:88vh;position:fixed;inset:auto 0 0;box-shadow:0 -8px 24px #0000001f}}.picker-section{z-index:1;background:var(--gold-soft);color:var(--gold-dark);padding:6px 12px;font-size:.8rem;position:sticky;top:0}.save-to-price{border:1px dashed var(--gold);border-radius:var(--radius);flex-direction:column;align-items:flex-start;gap:4px;margin-bottom:14px;padding:10px 12px;display:flex}.editor-title .sync-tag{white-space:nowrap;margin-left:8px;display:inline}button.sync-tag{cursor:pointer;font:inherit;border:none}.sheet-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;margin:12px 0;display:flex}.sheet-bar>.muted{flex:320px}.sheet-bar-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}a.btn{align-items:center;text-decoration:none;display:inline-flex}.sheet-notice p{margin:0 0 6px}.sheet-notice ul{margin:0 0 8px;padding-left:1.2em}.sheet-notice summary{cursor:pointer}.problem-list .btn-text{padding:0;text-decoration:underline}.check-panel section{margin:0 0 16px}.check-panel h4{margin:0 0 4px;font-size:.9rem}.check-panel ul{margin:4px 0;padding-left:1.1em}.check-panel li{margin:2px 0}.check-row{flex-wrap:wrap;justify-content:space-between;gap:2px 10px;display:flex}.check-actions{gap:10px;display:inline-flex}.check-panel .btn-text{text-align:left;padding:0}.check-panel .remove-noqty{margin-top:6px}.settings-head{padding:16px 20px 0}.settings-head .tabs{scrollbar-width:none;overflow-x:auto}.settings-head .tab{white-space:nowrap;flex:none}.kit-group{margin-bottom:28px}.kit-group-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:8px 16px;margin-bottom:10px;display:flex}.kit-group-head h3{margin:0;font-size:1rem;font-weight:500}.kit-group-head p{margin:4px 0 0}.price-row.kit-row{grid-template-columns:minmax(0,1fr) auto;row-gap:2px}.kit-row:first-child,.rule-row:first-child{border-top:none}.kit-count{color:var(--muted);font-size:.85rem}.kit-skipped{grid-column:1/-1}.chips.wrap{flex-wrap:wrap;margin:6px 0;overflow:visible}.chips.wrap .chip{min-height:30px;padding:0 10px;font-size:.85rem}.kit-items-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.kit-picker{border:1px solid var(--line);border-radius:var(--radius);max-height:340px;margin-bottom:10px;padding:8px;overflow-y:auto}.kit-items h4{color:var(--gold-dark);margin:12px 0 4px;font-size:.85rem}.kit-item{border-top:1px solid var(--line);align-items:center;gap:8px;padding:4px 0;font-size:.9rem;display:flex}.kit-item-name{flex:1;min-width:0}.kit-qty{flex:none;width:72px}.rule-row{border-top:1px solid var(--line);align-items:center;gap:10px;padding:8px 16px;display:flex}.rule-row.selected{background:var(--gold-soft)}.rule-row.disabled .rule-body{opacity:.55}.rule-body{text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;gap:2px;padding:0;display:flex}.picker-kit{padding:8px 12px 0}.picker-kit .btn{width:100%}.kit-check-list{border:1px solid var(--line);border-radius:var(--radius);max-height:260px;padding:6px 10px;font-size:.88rem;overflow-y:auto}.kit-check-list .check{margin:4px 0}.form-section{border-top:1px solid var(--line);color:var(--gold-dark);margin:20px 0 10px;padding-top:14px;font-size:.9rem;font-weight:500}.panel-body>.form-section:first-child{border-top:none;margin-top:0;padding-top:0}.note-list{margin:8px 0 10px;padding-left:1.4em}.note-list li{margin-bottom:8px}.note-list textarea{font-size:.88rem}.note-actions{justify-content:flex-end;gap:2px;display:flex}.bank-card{border:1px solid var(--line);border-radius:var(--radius);margin-bottom:10px;padding:10px 12px 6px}.bank-card .field{margin-bottom:8px}.company-note{margin-top:18px}.kit-skipped .tag{margin-left:6px}.sort-toggle{border:1px solid var(--gold);background:var(--paper);color:var(--gold-dark);cursor:pointer;border-radius:14px;margin-left:10px;padding:2px 10px;font-size:.8rem;font-weight:400;display:none}.sort-toggle.active{background:var(--gold);color:#fff}@media (width<=767px),(pointer:coarse){.sort-toggle{align-items:center;min-height:32px;display:inline-flex}}.sort-row{border-top:1px solid var(--line);align-items:center;gap:8px;min-height:52px;padding:6px 8px 6px 16px;transition:background .3s;display:flex}.sort-row.moved{background:var(--gold-soft);box-shadow:inset 3px 0 0 var(--gold)}.sort-label{flex:1;min-width:0;line-height:1.4}.sort-label .tag{margin-right:6px}.sort-btns{flex:none;gap:6px;display:flex}.sort-btn{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);cursor:pointer;width:44px;height:40px;font-size:1.1rem}.sort-btn:disabled{opacity:.3;cursor:default}@media (width<=767px),(pointer:coarse){input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px!important}}.kit-editor .panel-actions{flex-wrap:wrap}.btn-delete{color:var(--danger)}.panel-actions .panel-trash{margin-left:auto}.summary-settings{border:none;margin:0 0 12px;padding:0}.summary-settings .field{margin-bottom:10px}.summary-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;margin:8px 0 12px}.summary-table td{border-bottom:1px solid var(--line);padding:5px 2px}.summary-table td:last-child{text-align:right;white-space:nowrap}.summary-table .sum-row td{border-top:1px solid var(--gold);font-weight:500}.summary-table .total-row td{color:var(--gold-dark);font-size:1rem;font-weight:600}.summary-table .warn td{color:var(--warn)}.terms-box{border-top:1px solid var(--line);margin-top:14px;padding-top:10px}.terms-box summary{cursor:pointer;margin-bottom:8px;font-weight:500}.profit-tab fieldset,.installment-tab fieldset{border:none;margin:0;padding:0}.profit-cats{margin:4px 0}.profit-cat{border-bottom:1px solid var(--line);padding:6px 0}.profit-cat-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.profit-markup{align-items:center;gap:4px;font-size:.85rem;display:inline-flex}.profit-markup input{width:70px;min-height:34px;padding:4px 8px}.profit-nums{margin-top:2px;line-height:1.5}.target-box{border:1px solid var(--line);border-radius:var(--radius);margin-top:16px;padding:10px 12px}.target-box h4{margin:0 0 8px}.target-option{border-top:1px solid var(--line);grid-template-columns:1fr auto;align-items:center;gap:2px 8px;padding:8px 0;display:grid}.target-option .muted{grid-column:1}.target-option .btn{grid-area:1/2/span 2}.period-head,.period-row{grid-template-columns:minmax(0,1fr) 58px 80px 28px;align-items:end;gap:6px;display:grid}.period-head{margin:6px 0 2px;font-size:.8rem}.period-head span:nth-child(3){text-align:right}.period-name{flex-direction:column;min-width:0;display:flex}.period-no{color:var(--muted);font-size:.75rem}.period-row .period-amount{align-self:center}.period-row{margin-bottom:6px}.period-row input{min-height:38px;padding:4px 8px}.period-amount{text-align:right;font-variant-numeric:tabular-nums}.status-total{align-items:center;gap:12px;display:inline-flex}.status-sum,.status-margin{color:inherit;padding:0}.editor-side .sheet-head .tabs{scrollbar-width:none;flex:1;min-width:0;overflow-x:auto}.editor-side .tab{white-space:nowrap;flex:none;padding:0 10px}.row-margin{color:var(--muted);font-size:.8rem;display:block}.contract-overview{border:1px solid var(--line);background:var(--paper);font-variant-numeric:tabular-nums;border-radius:10px;margin:0 0 14px;padding:12px 16px}.ov-row{justify-content:space-between;gap:12px;padding:3px 0;display:flex}.ov-total{border-top:1px solid var(--gold);color:var(--gold-dark);margin-top:4px;padding-top:6px;font-weight:600}.ov-pending{color:var(--warn)}.tag-done{color:#2f6b3c;background:#e6f2e8}.deduct-head{color:#8f3b2c;background:#f6e9e6}.row-amount.minus{color:#8f3b2c}.status-select{width:auto;min-height:40px}.picker-note{margin:8px 12px 0}.deduct-group h4{color:var(--gold-dark);margin:12px 0 4px;font-size:.85rem}.qty-input{gap:6px;display:flex}.qty-input input{min-width:0}.calc-btn{flex:none;padding:0 10px}.calc-modal{max-width:560px}.calc-rows{margin:12px 0 8px}.calc-row{align-items:center;gap:6px;margin-bottom:6px;display:flex}.calc-row select{flex:0 0 76px}.calc-no{width:18px;color:var(--muted);text-align:right;flex:none;font-size:.8rem}.calc-space{flex:90px;min-width:0}.calc-num{flex:70px;min-width:0}.calc-spaces{flex-wrap:wrap;gap:6px;margin:10px 0;display:flex}.calc-total{align-items:end;margin-top:12px}.calc-result{flex-direction:column;align-items:flex-end;gap:2px;padding-bottom:14px;display:flex}.calc-result strong{color:var(--gold-dark);font-size:1.3rem}.settings-narrow{max-width:560px}.settings-actions{border-top:none;padding:12px 0}.editor-title strong{white-space:nowrap}.space-input{min-width:0;display:flex;position:relative}.space-input input{padding-right:34px}.space-toggle{width:32px;color:var(--muted);cursor:pointer;background:0 0;border:none;position:absolute;top:0;bottom:0;right:0}.space-menu{z-index:60;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);min-width:140px;max-height:220px;margin:0;padding:4px 0;list-style:none;position:absolute;top:calc(100% + 2px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 20px #0000001f}.space-menu button{text-align:left;cursor:pointer;background:0 0;border:none;width:100%;min-height:38px;padding:6px 12px;display:block}.space-menu button:hover,.space-menu button.active{background:var(--gold-soft)}.calc-btn.btn-text{min-height:0;margin-top:4px;padding:2px 0;font-size:.85rem;display:inline-block}.space-input{width:100%}.cat-notes{border-top:1px dashed var(--line);padding:4px 16px 6px;font-size:.85rem}.cat-note,.cat-note-edit{align-items:flex-start;gap:8px;padding:3px 0;display:flex}.cat-note-text{color:#555;white-space:pre-wrap;flex:1;margin:0;line-height:1.5}.cat-note-edit textarea{flex:1;font-size:.88rem}.cat-note-actions{flex:none;gap:10px;display:inline-flex}.cat-note-actions .btn-text,.cat-note-bar .btn-text{padding:0;font-size:.82rem}.cat-note-bar{flex-wrap:wrap;gap:4px 14px;padding-top:2px;display:flex}.equipment-box{border:1px dashed var(--line);border-radius:var(--radius);margin:4px 0 10px;padding:8px 10px}.notes-cat+.notes-cat{border-top:1px solid var(--line)}.notes-cat-head{text-align:left;cursor:pointer;background:0 0;border:none;justify-content:space-between;width:100%;min-height:44px;padding:8px 16px;display:flex}.notes-cat-body{padding:0 16px 12px}.doc-choices{border:none;margin:0 0 12px;padding:0}.doc-choice{cursor:pointer;align-items:flex-start;gap:8px;padding:6px 0;display:flex}.doc-choice input{margin-top:4px}.doc-choice>span{flex-direction:column;display:flex}.doc-choice.disabled{color:var(--muted);cursor:not-allowed}.doc-choices .hint-box .btn{margin-left:6px}.project-head-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.doc-row{align-items:center}.doc-row .row-name{flex-direction:column;gap:2px;display:flex}.doc-merge{border-radius:var(--radius);background:var(--cream);flex-wrap:wrap;gap:0 18px;margin-top:6px;padding:4px 10px;display:flex}.cloud-files{margin:4px 0 0;padding-left:18px}@keyframes picker-flash-a{0%{box-shadow:inset 0 0 0 3px var(--gold)}to{box-shadow:inset 0 0 0 3px #0000}}@keyframes picker-flash-b{0%{box-shadow:inset 0 0 0 3px var(--gold)}to{box-shadow:inset 0 0 0 3px #0000}}.editor-picker.flash-1{animation:1.2s ease-out picker-flash-a}.editor-picker.flash-0{animation:1.2s ease-out picker-flash-b}.price-mode{padding:14px 20px 0}.chip-alert{color:var(--danger);margin-left:4px}.chip.active .chip-alert{color:#fff}.group-head.cab-head{align-items:center;column-gap:16px;display:grid}.cab-col-head{text-align:right;font-size:.8rem;font-weight:400}.price-row.cab-row{column-gap:16px}.cab-num{text-align:right;font-variant-numeric:tabular-nums}.cab-unit{color:var(--muted);font-size:.85rem}.cab-note{display:block}@container (width<=640px){.group-head.cab-head{display:block}.cab-col-head{display:none}.cab-row .row-name{flex-basis:100%}.cab-num{text-align:left;font-size:.85rem}.cab-num:before{content:attr(data-label) " ";color:var(--muted)}}.price-row.cab-quote-row,.price-row.cab-part-row{cursor:default;align-items:center;gap:8px;padding:0 12px 0 0;display:flex}.cab-quote-open,.cab-part-main{min-width:0;min-height:44px;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;flex:1;align-items:center;column-gap:16px;padding:8px 16px;display:grid}.cab-quote-open{grid-template-columns:minmax(0,1.4fr) 110px minmax(0,1fr) 170px 48px;grid-template-areas:"name owner address price date"}.cab-quote-open .row-name{grid-area:name}.cab-quote-open .row-price{text-align:right;grid-area:price}.cab-quote-open .row-date{grid-area:date;justify-self:end}.cab-quote-actions{flex:none;align-items:center;gap:8px;display:flex}.cab-quote-actions select{width:auto;min-height:36px}.cab-part-main{grid-template-columns:minmax(0,1fr) 140px 48px 60px 96px}.cab-part-list.internal .cab-part-main{grid-template-columns:minmax(0,1fr) 140px 48px 60px 96px 104px}.cab-part-row .tag-alert{margin-left:6px}.cab-part-qty{text-align:right}.cab-item-move{flex:none;gap:2px;display:flex}.cab-item-move .icon-btn{width:32px;height:32px}.cab-editor .editor-body{grid-template-columns:250px minmax(0,1fr) 360px}.cab-list-body{flex:1;padding:10px;overflow-y:auto}.cab-item{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);align-items:center;gap:4px;margin-bottom:6px;display:flex}.cab-item.selected{border-color:var(--gold);background:var(--gold-soft)}.cab-item-main{min-width:0;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;gap:2px;padding:8px 10px;display:flex}.cab-item-sum{font-variant-numeric:tabular-nums}.cab-add{width:100%}.cab-parts-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px;display:flex}.cab-name{font-size:1.05rem;font-weight:500}.cab-empty{padding:14px 16px}.cab-add-part{margin-top:12px}.cab-part-form h3{margin:0 0 10px;font-size:1rem}.cab-extras{margin:4px 0 12px}.cab-extras summary{cursor:pointer;color:var(--gold-dark);padding:6px 0}.cab-proc{align-items:center}.cab-proc input{max-width:90px}.cab-calc{border-radius:var(--radius);background:var(--cream);margin:12px 0;padding:10px 12px}.cab-calc p{margin:6px 0 0}.cab-boards{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.85rem}.cab-boards th,.cab-boards td{border-bottom:1px solid var(--line);text-align:right;padding:3px 4px}.cab-boards th:first-child,.cab-boards td:first-child{text-align:left}.cab-total-row td{font-weight:600}.cab-search-results{border:1px solid var(--line);border-radius:var(--radius);max-height:220px;margin:-6px 0 12px;overflow-y:auto}.cab-search-item{border:none;border-bottom:1px solid var(--line);background:var(--paper);width:100%;font:inherit;text-align:left;cursor:pointer;padding:8px 10px;display:block}.cab-search-item.selected,.cab-search-item:hover{background:var(--gold-soft)}@media (width<=1199px){.cab-editor .editor-body{grid-template-columns:minmax(0,1fr) 340px}}@media (width<=767px){.cab-editor .editor-body{grid-template-columns:1fr}}@container (width<=900px){.cab-quote-open{flex-wrap:wrap;align-items:baseline;gap:2px 10px;padding:10px 12px;display:flex}.cab-quote-open .row-name{flex-basis:100%}.cab-quote-open .row-price{margin-left:auto}}@container (width<=640px){.cab-quote-open,.cab-part-main,.cab-part-list.internal .cab-part-main{flex-wrap:wrap;align-items:baseline;gap:2px 10px;padding:10px 12px;display:flex}.cab-quote-open .row-name,.cab-part-main .row-name{flex-basis:100%}.price-row.cab-quote-row{flex-wrap:wrap;padding:0 0 8px}.cab-quote-actions{padding:0 12px}}.cab-proc-item{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);margin:8px 0;padding:8px 10px}.cab-proc-head{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:4px;display:flex}.cab-extras>.field-label{margin-bottom:4px;display:block}.modal.cab-bulk{width:min(640px,94vw)}.cab-bulk .modal-body{max-height:70vh;overflow-y:auto}.cab-bulk-table td .tag{margin-left:6px}.cab-sketch-box{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);margin-bottom:10px}.cab-sketch-box>summary{cursor:pointer;color:var(--muted);padding:6px 10px;font-size:13px}.cab-sketch-box>.cab-sketch{padding:0 10px 8px}.cab-sketch svg{width:100%;max-height:260px;display:block}.cab-sketch .sk-body{fill:var(--cream);stroke:var(--ink);stroke-width:var(--sk)}.cab-sketch .sk-door{fill:var(--paper);stroke:var(--ink);stroke-width:var(--sk)}.cab-sketch .sk-open{fill:none;stroke:none}.cab-sketch .sk-drawer{fill:var(--gold-soft);stroke:var(--ink);stroke-width:var(--sk)}.cab-sketch .sk-inner{fill:none;stroke:var(--gold-dark);stroke-width:var(--sk);stroke-dasharray:calc(var(--sk) * 6) calc(var(--sk) * 4)}.cab-sketch .sk-shelf{stroke:var(--muted);stroke-width:var(--sk);stroke-dasharray:calc(var(--sk) * 5) calc(var(--sk) * 4)}.cab-sketch .sk-handle{stroke:var(--gold-dark);stroke-width:calc(var(--sk) * 2.5);stroke-linecap:round}.cab-sketch .sk-kick,.cab-sketch .sk-top{fill:var(--line);stroke:var(--ink);stroke-width:var(--sk)}.cab-sketch .sk-dim{fill:var(--muted);text-anchor:middle;dominant-baseline:middle}.cab-sketch p{margin:4px 0 0}.cab-sketch .sk-legend{color:var(--muted)}.modal.cab-build{max-width:980px}.cab-build-body{grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:18px;display:grid}.cab-build-cols{border-collapse:collapse;width:100%;margin:6px 0 10px;font-size:13px}.cab-build-cols th{text-align:left;color:var(--muted);padding:2px 4px;font-weight:400}.cab-build-cols td{padding:2px 4px}.cab-build-cols input,.cab-build-cols select{width:100%;min-width:0}.cab-build-cols select{min-width:72px}.cab-build-cols td:first-child{width:28px;color:var(--muted)}.cab-build-preview{align-self:start;position:sticky;top:0}.cab-parts-actions{align-items:baseline;gap:10px;display:flex}@media (width<=760px){.cab-build-body{grid-template-columns:1fr}.cab-build-preview{position:static}}.cab-tpl-list{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;display:grid}.cab-tpl{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);flex-direction:column;display:flex}.cab-tpl-main{text-align:left;cursor:pointer;font:inherit;color:inherit;background:0 0;border:0;flex-direction:column;gap:2px;padding:10px;display:flex}.cab-tpl-main:hover{background:var(--cream)}.cab-tpl>.btn-text{align-self:flex-end;margin:0 8px 6px}.cab-sketch.compact svg{max-height:140px;margin-top:6px}.cab-sketch .sk-glass{fill:#e8f1f4;stroke:var(--ink);stroke-width:var(--sk)}.cab-col{border:1px solid var(--line);border-radius:var(--radius);background:var(--cream);margin-bottom:8px;padding:8px 10px}.cab-col-head{flex-wrap:wrap;align-items:center;gap:4px 12px;font-size:13px;display:flex}.cab-col-head input{width:72px}.cab-zone-actions{white-space:nowrap;width:1%}.modal.cab-tpl-modal{max-width:980px}.cab-tpl-search{width:100%;margin:10px 0 6px}.cab-tpl-modal .chips{align-items:center;margin:4px 0}.cab-sketch .sk-slide{fill:var(--paper);stroke:var(--ink);stroke-width:calc(var(--sk) * 1.6)}.cab-tpl-library-head{justify-content:space-between;align-items:flex-start;gap:12px;margin:8px 0;display:flex}.cab-tpl-actions{flex-wrap:wrap;align-items:center;gap:4px 10px;padding:0 10px 8px;display:flex}.cab-tpl-rename{flex-wrap:wrap;align-items:center;gap:6px;width:100%;display:flex}.cab-tpl-rename input{flex:140px;min-width:0}.cab-tpl-main:disabled{cursor:default}.cab-tpl-main:disabled:hover{background:0 0}.cab-import-list{flex-direction:column;gap:6px;margin-top:10px;display:flex}.cab-import-item{text-align:left;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);cursor:pointer;font:inherit;color:inherit;padding:10px 12px}.cab-import-item:hover{background:var(--cream)}.cab-import-markup{max-width:160px}.cab-import-table td{vertical-align:top}.cab-sketch .sk-frame,.cab-sketch .sk-louver{fill:var(--paper);stroke:var(--ink);stroke-width:var(--sk)}.cab-sketch .sk-frame-in{fill:none;stroke:var(--ink);stroke-width:var(--sk)}.cab-sketch .sk-alu{fill:#d9d6cf;stroke:var(--ink);stroke-width:calc(var(--sk) * 1.4)}.cab-sketch .sk-alu-in{fill:#e8f1f4;stroke:var(--ink);stroke-width:var(--sk)}.cab-sketch .sk-slat{stroke:var(--muted);stroke-width:var(--sk)}.cab-sketch .sk-special{fill:var(--paper);stroke:var(--ink);stroke-width:var(--sk);stroke-dasharray:calc(var(--sk) * 6) calc(var(--sk) * 3)}@container (width<=640px){.price-row.cab-quote-row{flex-wrap:wrap;padding:0 0 8px}.cab-quote-row .cab-quote-open{flex:100%}.cab-quote-actions{flex:100%;justify-content:flex-end;padding:0 12px}}.cab-tpl-list{grid-template-columns:repeat(auto-fill,minmax(min(200px,44%),1fr))}.cab-parts-head{flex-wrap:wrap;row-gap:4px}.cab-parts-head>div{flex:220px;min-width:0}.cab-parts-actions{margin-left:auto}.cab-build-cols th{white-space:nowrap}.cab-build-cols input[type=number]{min-width:64px}.cab-zone-actions .icon-btn{min-width:28px;padding:0 2px}.cab-import-table tr.cab-import-note td{border-top:0;padding-top:0}.cab-import-table td.cab-import-name{min-width:7em}@media (width<=760px){.cab-build-cols td,.cab-build-cols th{padding:2px}.cab-build-cols select{min-width:64px}.cab-build-cols input[type=number]{min-width:56px}.cab-zone-actions .icon-btn{width:24px;min-width:24px}.cab-col{padding:8px 6px}.cab-build-body{overflow-x:hidden}.cab-build-cols td:nth-child(2) input[type=number]{width:60px;min-width:60px}.cab-build-cols td:nth-child(2){width:64px}.cab-build-cols td:nth-child(4){width:76px}.cab-build-cols td:first-child select{min-width:88px}.cab-build-cols td:nth-child(3) select{min-width:64px}}.holiday-restore{border-top:1px solid var(--line);text-align:left;width:100%;padding:8px 16px;display:block}.holiday-add{grid-template-columns:170px minmax(0,1fr) auto;align-items:end;gap:12px;margin-bottom:12px;display:grid}.holiday-add .field{margin-bottom:0}.holiday-row .holiday-date{font-variant-numeric:tabular-nums;flex:none;width:6.5em}.holiday-row .holiday-name{flex:1;min-width:0}@media (width<=760px){.holiday-add{grid-template-columns:1fr 1fr}.holiday-add .btn{grid-column:1/-1}}.gantt{--day:16px;--left:340px}.gantt-scroll{border:1px solid var(--line);background:var(--paper);border-radius:10px;overflow-x:auto}.gantt-grid{grid-template-columns:var(--left) calc(var(--days) * var(--day));width:max-content;min-width:100%;display:grid}.gantt-line{display:contents}.gantt-left{z-index:2;background:var(--paper);border-right:1px solid var(--line);padding:6px 10px;position:sticky;left:0}.gantt-time{position:relative}.gantt-head{border-bottom:1px solid var(--line);background:var(--cream)}.gantt-head.gantt-left{background:var(--cream);flex-direction:column;justify-content:flex-end;gap:2px;font-size:.85rem;display:flex}.gantt-months{height:22px;position:relative}.gantt-month{border-left:1px solid var(--line);height:22px;color:var(--gold-dark);white-space:nowrap;padding:3px 6px;font-size:.8rem;position:absolute;top:0;overflow:hidden}.gantt-daynums{grid-template-columns:repeat(var(--days), var(--day));height:18px;display:grid}.gantt-daynums span{color:var(--muted);text-align:center;font-size:.6rem;line-height:18px}.gantt-daynums span.first{color:var(--gold-dark);font-weight:600}.gantt-daynums span.red{color:var(--danger)}.gantt-toggles{flex-wrap:wrap;align-items:center;gap:6px 16px;margin-bottom:10px;display:flex}.gantt-line.first>div{border-top:1px solid var(--line)}.gantt-trade{align-items:center;gap:6px;min-height:28px;display:flex}.gantt-swatch{border-radius:3px;flex:none;width:12px;height:12px}.gantt-trade-name{flex:1;min-width:0;font-weight:500}.gantt-tag{margin-left:6px;font-size:.7rem;font-weight:400}.gantt-actions{flex:none;gap:2px;display:flex}.gantt-actions .icon-btn{width:26px;min-width:26px;height:26px;font-size:.85rem}.gantt-sub{margin:2px 0 2px 18px;font-size:.8rem;display:block}.gantt-input{margin-left:18px}.gantt-input input{width:100%;padding:4px 8px;font-size:.9rem}.gantt-input input.has-error{border-color:var(--danger)}.gantt-desc{margin-top:2px;font-size:.72rem;display:block}.gantt-track{min-height:40px}.gantt-bar{color:#fff;white-space:nowrap;border-radius:4px;height:18px;margin-top:-9px;padding:0 4px;font-size:.7rem;line-height:18px;position:absolute;top:50%;overflow:hidden;box-shadow:inset 0 0 0 1px #00000014}.gantt-add{flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;display:flex}.gantt-add select{max-width:260px}.gantt-add input{max-width:220px}.gantt-removed{margin-top:8px}@media (width<=760px){.gantt{--left:230px;--day:12px}}.gantt-today{background:var(--danger);opacity:.55;z-index:1;pointer-events:none;width:2px;margin-left:-1px;position:absolute;top:0;bottom:0}.gantt-daynums span.today{background:var(--danger);color:#fff;border-radius:3px;font-weight:600}.gantt-bar{z-index:2}.gantt-left{z-index:3}.gantt-bar.done{opacity:.4}.gantt-status-now{color:#2e7d32;background:#e3f1e5}.gantt-status-done{color:var(--muted);background:#eee}.gantt-status-between{background:var(--cream);color:var(--gold-dark)}.gantt-remind{margin-bottom:10px}.gantt-remind ul{margin:4px 0 0;padding-left:1.2em}.gantt-remind-when{opacity:.8;margin-left:4px}@media (width<=760px){.gantt-scroll{overflow:hidden;container-type:inline-size}.gantt-grid{--day:calc(100cqw / var(--days));grid-template-columns:100%;width:100%;min-width:0}.gantt-left{border-right:none;padding:8px 10px 2px;position:static}.gantt-head.gantt-left,.gantt-daynums{display:none}.gantt-head.gantt-time{border-bottom:1px solid var(--line)}.gantt-month{padding:3px;font-size:.7rem}.gantt-line.first>.gantt-time{border-top:none}.gantt-track{min-height:18px;margin-bottom:6px}.gantt-bar{height:10px;margin-top:-5px;padding:0;font-size:0}}.gov{--left:170px}.gov-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.gov-left{padding:3px 10px}.gov-name{text-align:left;color:var(--gold-dark);padding:0;font-weight:600;display:block}.gov-progress{font-size:.75rem;display:block}.gov-progress.done{opacity:.7}.gov-track{min-height:24px}.gov .gantt-bar{height:12px;margin-top:-6px;font-size:.65rem;line-height:12px}.gov-label{white-space:nowrap;z-index:2;pointer-events:none;font-size:.72rem;position:absolute;top:50%;transform:translateY(-50%)}.gov-link{padding:0;font-weight:600}@media (width<=760px){.gov{--left:112px}.gov .gantt-scroll{overflow-x:auto;container-type:normal}.gov .gantt-grid{grid-template-columns:var(--left) calc(var(--days) * var(--day));width:max-content;min-width:100%}.gov .gantt-left{border-right:1px solid var(--line);padding:3px 8px;position:sticky;left:0}.gov .gantt-head.gantt-left{display:flex}.gov .gantt-daynums{display:grid}.gov .gantt-track{min-height:24px;margin-bottom:0}.gov .gantt-bar{height:12px;margin-top:-6px;font-size:.65rem}}.gantt-progress-tag{color:#2e7d32;background:#e3f1e5}.gantt-export{margin-left:auto}
