@import"https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@400;500;600;700&display=swap";:root{font-family:Noto Sans TC,Arial,sans-serif;color:#20211f;background:#f4f3ef;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #20211f;--muted: #70726c;--line: #deded7;--surface: #fff;--canvas: #f4f3ef;--accent: #d9ff5a;--accent-strong: #bce82a;--green: #287b59;--blue: #3368ce;--red: #c24d42;--shadow: 0 10px 28px rgba(32, 33, 31, .07)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select,textarea{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(51,104,206,.25);outline-offset:1px}.app-shell{min-height:100vh}.topbar{position:sticky;z-index:40;top:0;height:72px;padding:0 28px;display:flex;align-items:center;justify-content:space-between;color:#fff;background:var(--ink);box-shadow:0 1px #ffffff1a}.brand{display:inline-flex;align-items:center;gap:11px;color:inherit;text-decoration:none}.brand-mark{width:38px;height:38px;display:inline-grid;place-items:center;flex:0 0 auto;color:var(--ink);background:var(--accent);border-radius:6px;font-size:22px;font-weight:800}.brand-copy,.user-copy{display:flex;flex-direction:column}.brand-copy strong{font-size:15px;letter-spacing:0}.brand-copy small,.user-copy small{color:#aeb0a9;font-size:11px}.topbar-meta{display:flex;align-items:center;gap:12px}.draft-status{display:inline-flex;align-items:center;gap:6px;color:#c8cac4;font-size:12px}.icon-button{width:38px;height:38px;display:grid;place-items:center;border:1px solid #4a4c47;border-radius:5px;color:#dcddd9;background:transparent;cursor:pointer}.icon-button:hover{background:#343632}.user-chip{display:flex;align-items:center;gap:9px;padding-left:12px;border-left:1px solid #484a45}.user-chip>span:first-child{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;color:var(--ink);background:#e7e4db;font-size:13px;font-weight:700}.user-copy strong{font-size:12px}.workspace{min-height:calc(100vh - 72px);display:grid;grid-template-columns:240px minmax(520px,1fr) 320px;max-width:1580px;margin:0 auto}.step-sidebar{padding:32px 20px;border-right:1px solid var(--line);background:#ecebe6}.sidebar-heading{padding:0 10px 22px;display:flex;flex-direction:column;gap:4px}.sidebar-heading small{color:var(--muted);font-size:12px}.sidebar-heading strong{font-size:13px}.step-sidebar nav{display:grid;gap:6px}.step{width:100%;min-height:64px;display:grid;grid-template-columns:30px 1fr 16px;align-items:center;gap:10px;padding:10px;border:0;border-radius:6px;color:#676962;background:transparent;text-align:left;cursor:pointer}.step:hover{background:#ffffff80}.step.active{color:var(--ink);background:#fff;box-shadow:0 4px 18px #20211f0f}.step-number{width:28px;height:28px;display:grid;place-items:center;border:1px solid #c8c9c2;border-radius:50%;font-size:12px;font-weight:700}.step.active .step-number{border-color:var(--ink);color:var(--ink);background:var(--accent)}.step>span:nth-child(2){min-width:0;display:flex;flex-direction:column}.step strong{font-size:13px}.step small{overflow:hidden;color:#969890;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.sidebar-note{margin-top:28px;padding:14px;display:flex;align-items:flex-start;gap:9px;border:1px solid #d5d6cd;border-radius:6px;background:#ffffff73}.sidebar-note svg{flex:0 0 auto;color:#667523}.sidebar-note strong{font-size:12px}.sidebar-note p{margin:4px 0 0;color:var(--muted);font-size:10px;line-height:1.6}.main-panel{min-width:0;padding:36px clamp(28px,4vw,62px) 56px;background:var(--canvas)}.view-content{max-width:850px;margin:0 auto}.page-heading{margin-bottom:26px;display:flex;align-items:flex-start;justify-content:space-between;gap:24px}.eyebrow{color:#627020;font-size:11px;font-weight:700}.page-heading h1{margin:6px 0 7px;font-size:clamp(24px,2.5vw,32px);line-height:1.3;letter-spacing:0}.page-heading p{margin:0;color:var(--muted);font-size:13px}.time-badge,.source-badge{min-height:32px;padding:7px 10px;display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;border:1px solid var(--line);border-radius:5px;color:var(--muted);background:#fff;font-size:11px}.source-badge{color:#4d5b15;background:#f1f8cf;border-color:#d7e69a;font-weight:600}.form-section{margin-bottom:18px;padding:22px;border:1px solid var(--line);border-radius:7px;background:var(--surface)}.section-title{margin-bottom:20px;display:flex;align-items:flex-start;gap:10px}.section-title>svg,.section-title-main>svg{margin-top:2px;color:#59631e}.section-title h2{margin:0;font-size:15px}.section-title p{margin:3px 0 0;color:var(--muted);font-size:11px}.section-title.split{justify-content:space-between}.section-title-main{display:flex;align-items:flex-start;gap:10px}.form-grid{display:grid;gap:16px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.field{min-width:0;display:flex;flex-direction:column;gap:7px}.field-label{color:#51534e;font-size:11px;font-weight:600}.field-hint{color:var(--muted);font-size:10px}.field input,.field select,.field textarea,.input-prefix,.input-suffix{width:100%;border:1px solid #d6d7d0;border-radius:5px;background:#fff}.field input,.field select{height:42px;padding:0 12px}.field textarea{min-height:92px;padding:11px 12px;resize:vertical}.field input::placeholder,.field textarea::placeholder{color:#afb0aa}.input-prefix,.input-suffix{height:42px;display:flex;align-items:center}.input-prefix span,.input-suffix span{padding:0 10px;color:#73756e;font-size:11px}.input-prefix input,.input-suffix input{min-width:0;height:40px;flex:1;border:0;outline:0}.segmented-wrap{display:flex;flex-wrap:wrap;gap:8px}.segment{min-height:38px;padding:8px 13px;display:inline-flex;align-items:center;gap:5px;border:1px solid #d8d8d1;border-radius:5px;color:#656760;background:#fff;cursor:pointer}.segment.active{border-color:var(--ink);color:var(--ink);background:#f0f8cf;font-weight:600}.style-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.style-card{position:relative;overflow:hidden;padding:0;border:2px solid transparent;border-radius:6px;background:#f3f2ed;text-align:left;cursor:pointer}.style-card img{width:100%;aspect-ratio:4 / 3;display:block;object-fit:cover}.style-card.active{border-color:var(--ink)}.style-selected{position:absolute;top:8px;right:8px;width:26px;height:26px;display:none;place-items:center;border-radius:50%;color:var(--ink);background:var(--accent)}.style-card.active .style-selected{display:grid}.style-info{padding:9px;display:flex;align-items:center;justify-content:space-between}.style-info strong{font-size:11px}.swatches{display:flex}.swatches i{width:11px;height:11px;margin-left:-2px;border:1px solid rgba(255,255,255,.8);border-radius:50%}.notes-field{margin-top:16px}.package-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.package-card{min-height:88px;padding:14px;display:grid;grid-template-columns:19px 1fr auto;align-items:center;gap:10px;border:1px solid #d8d9d2;border-radius:6px;background:#fff;text-align:left;cursor:pointer}.package-card.active{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);background:#fbfdf3}.radio-mark{width:18px;height:18px;display:grid;place-items:center;border:1px solid #a9aaa4;border-radius:50%}.radio-mark span{width:10px;height:10px;border-radius:50%;background:var(--ink)}.package-card>span:nth-child(2){display:flex;flex-direction:column}.package-card strong{font-size:13px}.package-card small{margin-top:3px;color:var(--muted);font-size:10px}.package-card b{font-size:15px}.included-strip{margin-top:12px;padding:10px 12px;display:flex;flex-wrap:wrap;gap:8px 16px;border-radius:5px;background:#f2f2ed;font-size:10px}.included-strip span{color:var(--muted)}.included-strip strong:before{content:"•";margin-right:5px;color:#7c8d2b}.rate-legend{display:flex;gap:12px;color:var(--muted);font-size:10px}.rate-legend span{display:flex;align-items:center;gap:5px}.dot{width:7px;height:7px;border-radius:50%}.dot.add{background:var(--blue)}.dot.deduct{background:var(--green)}.scope-list{border-top:1px solid #e8e8e2}.scope-row{min-height:89px;display:grid;grid-template-columns:minmax(180px,1fr) 164px 112px;align-items:center;gap:18px;border-bottom:1px solid #e8e8e2}.scope-copy{min-width:0;display:flex;flex-direction:column}.scope-copy strong{font-size:13px}.scope-copy small{margin-top:3px;overflow:hidden;color:var(--muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.scope-copy span{margin-top:7px;display:flex;align-items:center;color:#777a71;font-size:9px}.quantity-control{height:38px;display:grid;grid-template-columns:38px 1fr 38px;border:1px solid #d7d8d1;border-radius:5px}.quantity-control button{display:grid;place-items:center;border:0;background:#f4f4ef;cursor:pointer}.quantity-control button:first-child{border-right:1px solid #d7d8d1;border-radius:4px 0 0 4px}.quantity-control button:last-child{border-left:1px solid #d7d8d1;border-radius:0 4px 4px 0}.quantity-control label{min-width:0;display:flex;align-items:center}.quantity-control input{width:100%;min-width:0;border:0;background:transparent;text-align:right;font-size:13px;font-weight:700;outline:0;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.quantity-control input::-webkit-inner-spin-button{display:none}.quantity-control span{padding:0 8px 0 5px;color:var(--muted);font-size:10px}.scope-price{display:flex;flex-direction:column;text-align:right}.scope-price small{color:var(--muted);font-size:9px}.scope-price strong{margin-top:3px;color:var(--blue);font-size:12px}.scope-price strong.deduction{color:var(--green)}.addon-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.addon-row{min-height:64px;padding:10px;display:grid;grid-template-columns:22px 1fr auto;align-items:center;gap:9px;border:1px solid #ddddD6;border-radius:5px;cursor:pointer}.addon-row.selected{border-color:#667322;background:#f8faed}.addon-row input{position:absolute;opacity:0;pointer-events:none}.check-box{width:21px;height:21px;display:grid;place-items:center;border:1px solid #b9bbb3;border-radius:4px;color:transparent}.addon-row.selected .check-box{border-color:var(--ink);color:var(--ink);background:var(--accent)}.addon-copy{min-width:0;display:flex;flex-direction:column}.addon-copy strong,.addon-row b{font-size:11px}.addon-copy small{overflow:hidden;margin-top:2px;color:var(--muted);font-size:9px;text-overflow:ellipsis;white-space:nowrap}.discount-row{display:flex;align-items:center;gap:12px}.discount-row .input-prefix{max-width:260px}.approval-warning{padding:6px 8px;border-radius:4px;color:#824038;background:#f8ded9;font-size:10px;font-weight:600}.panel-actions{max-width:850px;margin:24px auto 0;display:flex;justify-content:space-between}.button{min-height:42px;padding:9px 16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:5px;font-weight:600;cursor:pointer}.button:disabled{opacity:.4;cursor:not-allowed}.button.primary{color:#fff;background:var(--ink)}.button.primary:hover{background:#393b37}.button.secondary{border-color:#d1d2ca;background:#fff}.button.danger{color:#fff;background:var(--red)}.summary-panel{padding:32px 22px;border-left:1px solid var(--line);background:#ecebe6}.summary-card{position:sticky;top:104px;overflow:hidden;border-radius:7px;background:#fff;box-shadow:var(--shadow)}.summary-heading{padding:18px;display:flex;align-items:flex-start;justify-content:space-between;border-bottom:1px solid #e7e7e1}.summary-heading small{color:var(--muted);font-size:9px}.summary-heading h2{margin:2px 0 0;font-size:17px}.live-dot{padding:4px 7px;border-radius:4px;color:#376543;background:#e0f2df;font-size:8px;font-weight:700}.live-dot:before{content:"";width:5px;height:5px;margin-right:5px;display:inline-block;border-radius:50%;background:#3d9a55}.summary-plan{padding:16px 18px;display:grid;grid-template-columns:36px 1fr auto;align-items:center;gap:9px;background:#f7f8ef}.summary-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:5px;background:var(--accent)}.summary-plan>div{min-width:0;display:flex;flex-direction:column}.summary-plan strong,.summary-plan b{font-size:11px}.summary-plan small{color:var(--muted);font-size:9px}.summary-breakdown{padding:14px 18px;display:grid;gap:10px}.summary-breakdown span,.quote-totals span{display:flex;justify-content:space-between}.summary-breakdown small,.quote-totals small{color:var(--muted);font-size:10px}.summary-breakdown b,.quote-totals b{font-size:11px}.summary-total{margin:0 18px;padding:16px 0;display:flex;flex-direction:column;border-top:1px solid #dedfd7}.summary-total small{color:var(--muted);font-size:10px}.summary-total strong{margin:2px 0;font-size:26px}.summary-total span{color:#777a72;font-size:9px}.budget-meter{margin:0 18px 16px;padding:11px;border-radius:5px;background:#edf5ec}.budget-meter.over{background:#f8ebe8}.budget-meter>div:first-child{display:flex;justify-content:space-between;font-size:9px}.budget-meter b{font-size:10px}.meter-track{height:5px;margin:8px 0 5px;overflow:hidden;border-radius:3px;background:#20211f1f}.meter-track span{height:100%;display:block;border-radius:3px;background:var(--green)}.budget-meter.over .meter-track span{background:var(--red)}.budget-meter>small{color:var(--muted);font-size:8px}.summary-footnote{padding:13px 18px;display:flex;align-items:flex-start;gap:9px;color:#666861;background:#eeeeea;font-size:9px}.summary-footnote>span{display:flex;flex-direction:column}.summary-footnote small{margin-top:2px}.mobile-steps,.mobile-total{display:none}.preview-content{max-width:900px}.quote-document{padding:34px;border:1px solid #dbdcd4;border-radius:7px;background:#fff;box-shadow:var(--shadow)}.quote-header{padding-bottom:24px;display:flex;justify-content:space-between;gap:24px;border-bottom:2px solid var(--ink)}.quote-brand{display:flex;align-items:center;gap:11px}.quote-brand>div{display:flex;flex-direction:column}.quote-brand strong{font-size:16px}.quote-brand small,.quote-meta span{color:var(--muted);font-size:9px}.quote-meta{display:flex;flex-direction:column;text-align:right}.quote-meta strong{margin-bottom:4px;font-size:11px}.customer-band{padding:16px 0;display:grid;grid-template-columns:repeat(4,1fr);gap:12px;border-bottom:1px solid #deded7}.customer-band>div{display:flex;flex-direction:column}.customer-band small{color:var(--muted);font-size:8px}.customer-band strong{margin-top:3px;font-size:11px}.quote-section{padding-top:22px}.quote-section-heading{margin-bottom:10px;display:flex;align-items:center;gap:8px}.quote-section-heading span{width:25px;height:25px;display:grid;place-items:center;border-radius:50%;color:var(--ink);background:var(--accent);font-size:8px;font-weight:700}.quote-section-heading h2{margin:0;font-size:13px}.quote-line{padding:11px 12px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e6e6e0}.quote-line.emphasized{border:0;border-radius:5px;background:#f2f4e8}.quote-line>div{display:flex;flex-direction:column}.quote-line strong,.quote-line b{font-size:11px}.quote-line small{margin-top:2px;color:var(--muted);font-size:8px}.quote-table{border:1px solid #e0e1da;border-radius:5px}.quote-table-head,.quote-table-row{display:grid;grid-template-columns:1.8fr .7fr .7fr .8fr;align-items:center;gap:10px}.quote-table-head{padding:8px 10px;color:var(--muted);background:#f1f1ed;font-size:8px}.quote-table-head span:last-child,.quote-table-row>b{text-align:right}.quote-table-row{min-height:51px;padding:8px 10px;border-top:1px solid #ebebe5;font-size:9px}.quote-table-row>span:first-child{display:flex;flex-direction:column}.quote-table-row strong,.quote-table-row b{font-size:9px}.quote-table-row small{color:var(--muted);font-size:7px}.quote-final{margin-top:28px;padding-top:18px;display:grid;grid-template-columns:1fr 250px;gap:28px;border-top:2px solid var(--ink)}.quote-notes h3{margin:0 0 7px;font-size:10px}.quote-notes p{margin:3px 0;color:var(--muted);font-size:8px;line-height:1.5}.quote-totals{display:grid;gap:7px}.quote-totals .grand-total{margin-top:4px;padding-top:10px;align-items:flex-end;border-top:1px solid #d7d8d0}.quote-totals .grand-total b{font-size:19px}.quote-footer{margin-top:34px;padding-top:16px;display:flex;justify-content:space-between;border-top:1px solid #deded7;color:var(--muted);font-size:8px}.modal-backdrop{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;padding:20px;display:grid;place-items:center;background:#1617158c}.dialog{width:min(380px,100%);padding:24px;border-radius:7px;background:#fff;box-shadow:0 25px 70px #00000040}.dialog-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:6px;color:#87473f;background:#f7e5e2}.dialog h2{margin:16px 0 5px;font-size:18px}.dialog p{margin:0;color:var(--muted);font-size:12px}.dialog-actions{margin-top:22px;display:flex;justify-content:flex-end;gap:8px}@media(max-width:1180px){.workspace{grid-template-columns:210px minmax(500px,1fr)}.summary-panel{display:none}.main-panel{padding-bottom:110px}.mobile-total{position:fixed;z-index:50;right:22px;bottom:20px;width:min(430px,calc(100vw - 44px));min-height:66px;padding:10px 11px 10px 16px;display:flex;align-items:center;justify-content:space-between;border:1px solid #363834;border-radius:7px;color:#fff;background:var(--ink);box-shadow:0 14px 40px #00000038}.mobile-total>div{display:flex;flex-direction:column}.mobile-total small{color:#aeb0aa;font-size:9px}.mobile-total strong{font-size:18px}.mobile-total .button{color:var(--ink);background:var(--accent)}}@media(max-width:820px){.topbar{height:62px;padding:0 16px}.brand-copy small,.draft-status,.user-copy{display:none}.user-chip{padding-left:4px;border-left:0}.workspace{min-height:calc(100vh - 62px);display:block}.step-sidebar{display:none}.main-panel{padding:18px 16px 104px}.mobile-steps{margin-bottom:24px;display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--line)}.mobile-steps button{height:44px;display:flex;align-items:center;justify-content:center;gap:5px;border:0;border-bottom:2px solid transparent;color:var(--muted);background:transparent;font-size:11px}.mobile-steps button.active{border-bottom-color:var(--ink);color:var(--ink);font-weight:700}.mobile-steps span{width:20px;height:20px;display:grid;place-items:center;border-radius:50%;background:#e4e4de;font-size:9px}.mobile-steps button.active span{background:var(--accent)}.page-heading{margin-bottom:18px}.page-heading h1{font-size:23px}.time-badge,.source-badge{display:none}.form-grid.three,.style-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.scope-row{padding:14px 0;grid-template-columns:1fr 158px;gap:10px 14px}.scope-price{grid-column:2}.scope-copy{grid-row:span 2}.addon-list{grid-template-columns:1fr}.panel-actions{display:none}}@media(max-width:520px){.topbar-meta{gap:7px}.icon-button{width:36px;height:36px}.user-chip>span:first-child{width:32px;height:32px}.main-panel{padding-inline:12px}.page-heading h1{font-size:21px}.page-heading p{font-size:11px;line-height:1.6}.form-section{padding:17px 14px}.form-grid.two,.form-grid.three,.package-grid{grid-template-columns:1fr}.field input,.field select,.input-prefix,.input-suffix{height:46px}.input-prefix input,.input-suffix input{height:44px}.segment{min-height:42px}.style-card img{aspect-ratio:1.5 / 1}.package-card{min-height:76px}.scope-row{grid-template-columns:1fr}.scope-copy,.scope-price{grid-column:1;grid-row:auto}.scope-copy small{white-space:normal;line-height:1.5}.quantity-control{width:100%;height:42px}.scope-price{flex-direction:row;justify-content:space-between;text-align:left}.discount-row{align-items:flex-start;flex-direction:column}.discount-row .input-prefix{max-width:none}.mobile-total{right:10px;bottom:10px;width:calc(100vw - 20px)}.quote-document{padding:20px 14px}.quote-header,.quote-final{grid-template-columns:1fr;flex-direction:column}.quote-meta{text-align:left}.customer-band{grid-template-columns:repeat(2,1fr)}.quote-table{overflow-x:auto}.quote-table-head,.quote-table-row{min-width:560px}.quote-final{display:grid}}@media print{@page{size:A4;margin:12mm}body{background:#fff}.no-print,.topbar,.step-sidebar,.summary-panel,.mobile-steps{display:none!important}.workspace,.main-panel,.view-content,.preview-content{width:100%;max-width:none;min-height:0;display:block;padding:0;margin:0;background:#fff}.quote-document{padding:0;border:0;box-shadow:none}.quote-section,.quote-final{break-inside:avoid}}
