:root{--ink:#203731;--muted:#697a73;--green:#245b4d;--line:#dbe3dc;--paper:#f4f6f1;--white:#fff;--gold:#b18b4c;--danger:#963b2d}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--paper);font-family:Inter,"Noto Sans TC","Microsoft JhengHei",system-ui,sans-serif;font-size:14px;line-height:1.55}button,input,select,textarea{font:inherit}button,.btn{background:var(--green);color:white;border:1px solid var(--green);border-radius:6px;padding:9px 15px;cursor:pointer;font-weight:600;white-space:nowrap;text-decoration:none}button:hover,.btn:hover{filter:brightness(.94)}button:disabled{opacity:.42;cursor:not-allowed}button.secondary,.file-button{background:white;color:var(--green);border:1px solid #c3d1c8}button.quiet{background:transparent;border-color:#6a9387}button.active{background:#e6efe8;border-color:var(--green);color:var(--green)}.site-header{background:#1b4237;color:white;padding:21px max(28px,calc((100vw - 1400px)/2));display:flex;align-items:center;justify-content:space-between;gap:20px}.site-header>div:first-child{display:flex;gap:14px;align-items:center}.brand-mark{width:42px;height:42px;display:grid;place-items:center;border:1px solid #87a394;font-size:26px;font-family:Georgia,serif}.site-header h1{font-size:21px;margin:1px 0;font-weight:600;letter-spacing:.8px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;margin:0;color:var(--gold)}.site-header .eyebrow{color:#b9ccbd}.header-right{display:flex;align-items:center;gap:15px;font-size:12px}.tabs{padding:0 max(28px,calc((100vw - 1400px)/2));background:white;display:flex;gap:25px;align-items:center;border-bottom:1px solid var(--line)}.tabs .tab{padding:16px 0;border:0;border-bottom:3px solid transparent;background:white;border-radius:0;color:var(--muted)}.tabs .tab.active{border-color:var(--green);color:var(--green)}.tabs>span{margin-left:auto;font-size:12px;color:var(--muted)}main{max-width:1456px;padding:29px 28px 45px;margin:auto}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:23px}.page-heading h2{font-size:27px;margin:6px 0;font-weight:600}.page-heading p{margin:0;color:var(--muted)}.actions{display:flex;gap:8px;flex-wrap:wrap}.workspace-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:20px;align-items:start}.card{background:white;border:1px solid var(--line);border-radius:10px;padding:23px;margin-bottom:20px}.card-heading{display:flex;align-items:center;gap:12px;margin-bottom:17px}.card-heading h3{font-size:17px;margin:0}.card-heading>button{margin-left:auto}.step{font-size:11px;color:var(--gold);border:1px solid #e3d8c5;padding:3px 6px;border-radius:4px}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 17px}label{display:block;color:#4c6258;font-size:12px}input,select,textarea{display:block;width:100%;margin-top:5px;border:1px solid #cdd8cf;border-radius:5px;padding:9px 10px;background:#fff;color:var(--ink);min-width:0;outline:none}input:focus,textarea:focus,select:focus{border-color:var(--green);box-shadow:0 0 0 2px #e6efea}input[readonly]{background:#f2f4f1}.hint{font-size:12px;color:var(--muted);line-height:1.6;margin:12px 0 0}.advanced{border-top:1px solid var(--line);padding:12px 0 0;margin-top:18px}.advanced summary{cursor:pointer;font-weight:600;font-size:13px;margin-bottom:12px}.diagram-switch{display:flex;gap:8px;align-items:center}.diagram-switch select{width:auto;margin:0;margin-left:auto;font-size:12px}.diagram{min-height:265px;background:#f8faf7;border:1px solid #e7ece6;border-radius:6px;margin-top:15px}.diagram svg{width:100%;height:280px;display:block}.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:13px}.facts div{background:#f3f6f1;padding:9px;border-radius:4px}.facts span{display:block;font-size:11px;color:var(--muted)}.facts strong{font-size:16px;font-weight:600}.notice{background:#eaf2ea;border:1px solid #cddfcd;border-radius:6px;padding:13px 17px;margin-bottom:19px}.notice.warning{background:#f9f3e5;border-color:#e5d8b9;color:#79613b}.notice.error,.error{color:var(--danger)}#message{padding:12px 15px;border-radius:6px;background:#e8f0e8;margin-bottom:17px}#message.error{background:#fae9e4}.summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:20px}.summary-card{padding:20px;background:white;border:1px solid var(--line);border-radius:8px}.summary-card.highlight{background:#245b4d;color:white;border-color:var(--green)}.summary-card small{font-size:11px;color:var(--muted)}.summary-card.highlight small{color:#d5e4d9}.summary-card strong{display:block;font-size:27px;font-weight:600;margin-top:7px;line-height:1.2;font-variant-numeric:tabular-nums}.summary-card strong span{font-size:13px;font-weight:400}.summary-card p{font-size:11px;margin:9px 0 0;opacity:.8}.thickness-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}.thickness-item{border:1px solid var(--line);padding:10px;border-radius:6px}.thickness-item>span{font-size:12px;font-weight:600}.thickness-item label{margin-top:5px}.thickness-item input{padding:6px;font-size:12px}.custom-row{display:grid;grid-template-columns:1.3fr 2fr .7fr 1fr 1fr 1fr auto;gap:8px;align-items:end;margin-top:12px}.fee-row{display:grid;grid-template-columns:2fr 1fr auto;gap:10px;align-items:end;margin-top:12px}.check-line{margin-top:18px;padding:12px;background:#f5f7f2;border-radius:5px;display:flex;align-items:flex-start;gap:9px}.check-line input{width:auto;margin:3px 0;flex-shrink:0}.section-heading{display:flex;justify-content:space-between;align-items:center;margin:25px 0 17px;gap:16px}.section-heading h3{margin:0}.group{padding:0;overflow:hidden}.group summary{padding:18px 23px;cursor:pointer;display:flex;align-items:center;gap:13px;font-weight:600}.group summary::before{content:'−';color:var(--muted)}.group:not([open]) summary::before{content:'+'}.group summary .group-number{font-size:11px;color:var(--gold)}.group summary strong{margin-left:auto;font-size:16px}.group-body{padding:0 23px 20px}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:12px}th{background:#f5f7f2;color:var(--muted);font-weight:500;text-align:left;padding:10px}td{padding:11px 10px;border-bottom:1px solid #edf0ea;vertical-align:top}td small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}tfoot td{font-weight:700;background:#f5f7f2}.tag{display:inline-block;font-size:10px;border-radius:3px;padding:2px 7px;background:#edf1e9;color:var(--green)}.tag.cancelled{color:var(--danger);background:#fae9e4}.quote-meta textarea{resize:vertical}.quote-meta .field-grid>label:last-child{grid-column:1/-1}.file-button{display:inline-flex;padding:9px 15px;border-radius:6px;font-size:14px;cursor:pointer;font-weight:600}.file-button input{display:none}.search-field{max-width:450px;margin:0 0 20px}footer{border-top:1px solid var(--line);padding:20px 28px;color:var(--muted);display:flex;justify-content:space-between;font-size:11px}dialog{border:1px solid var(--line);border-radius:12px;padding:30px;max-width:880px;width:90vw;color:var(--ink);max-height:85vh;overflow:auto}dialog::backdrop{background:#20373199}#login-dialog{max-width:420px}#login-dialog label{margin-bottom:15px}#login-dialog button{width:100%;margin-bottom:15px}#login-dialog a{font-size:12px;color:var(--green)}.setup-card{max-width:480px;background:white;border:1px solid var(--line);border-radius:12px;margin:55px auto;padding:30px}.setup-card label{margin-bottom:15px}.setup-card button{width:100%}.history-item{border-bottom:1px solid var(--line);padding:13px 0;display:flex;align-items:center;gap:15px}.history-item button{margin-left:auto}#print-sheet{display:none}.readonly .input-card input,.readonly .input-card select,.readonly #thickness-editor input,.readonly .custom-row input,.readonly .custom-row select,.readonly .fee-row input,.readonly .quote-meta input,.readonly .quote-meta textarea{background:#f2f4f1}.readonly #save-draft,.readonly #issue-quote,.readonly #add-material,.readonly #add-fee{display:none}[hidden]{display:none!important}
@media(max-width:1050px){.page-heading{align-items:flex-start;flex-direction:column}.summary-grid{grid-template-columns:repeat(2,1fr)}.thickness-grid{grid-template-columns:repeat(4,1fr)}.custom-row{grid-template-columns:repeat(3,1fr)}.card-heading{flex-wrap:wrap}}
@media(max-width:750px){main{padding:20px 14px}.site-header{padding:18px 14px}.site-header h1{font-size:17px}.header-right{font-size:11px;gap:5px}.brand-mark{display:none}.tabs{padding:0 14px;gap:20px}.tabs>span{display:none}.workspace-grid{grid-template-columns:1fr}.card{padding:17px}.thickness-grid{grid-template-columns:repeat(2,1fr)}.summary-card{padding:15px}.summary-card strong{font-size:22px}.section-heading{flex-direction:column;align-items:flex-start}.facts{grid-template-columns:repeat(2,1fr)}footer{display:block}footer span{display:block}.group summary{padding:15px}.group-body{padding:0 12px 15px}.custom-row{grid-template-columns:repeat(2,1fr)}}
@media print{@page{size:A4;margin:14mm}body{background:white;font-size:11px}body>header,body>nav,footer,#message,.tab-panel>*,dialog{display:none!important}main{padding:0;max-width:none}.tab-panel#calculator{display:block!important}#print-sheet{display:block!important}#print-sheet h1{font-size:22px;margin:0}#print-sheet h2{font-size:15px;margin-top:22px}#print-sheet .print-top{display:flex;justify-content:space-between;border-bottom:2px solid var(--green);padding-bottom:14px}#print-sheet .print-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:16px 0}#print-sheet table{font-size:9px}#print-sheet td,#print-sheet th{padding:7px}#print-sheet .print-summary{border:1px solid #a9bbb0;padding:13px;margin:15px 0}#print-sheet .print-summary strong{font-size:18px}#print-sheet .print-note{white-space:pre-wrap;margin-top:15px}#print-sheet section{break-inside:avoid}#print-sheet .watermark{font-size:20px;color:var(--danger);border-bottom:2px solid var(--danger);display:inline-block}#print-sheet svg{max-height:250px;width:100%}#print-sheet .warning{border:1px solid #b5955c;padding:8px}#print-sheet tr{break-inside:avoid}#print-sheet thead{display:table-header-group}.cost-hidden{display:none!important}}

.diagram-switch{flex-wrap:wrap}.diagram svg{width:100%;height:auto;max-height:none}.ratio-row,.column-buttons{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}.ratio-row label{max-width:130px}.thickness-item{grid-template-columns:1fr 1fr;gap:8px}.thickness-item>span{grid-column:1/-1}.column-buttons button{font-size:11px}.diagram-card{align-self:start}#settings-summary label{min-width:0}

@media(max-width:750px){.thickness-grid{grid-template-columns:1fr}.diagram-switch button{padding:7px 9px;font-size:12px}.ratio-row label{max-width:calc(50% - 10px)}.column-buttons{max-height:240px;overflow:auto}}

.quote-meta{margin-bottom:20px}.summary-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.summary-card{grid-column:span 2}.summary-card:nth-child(n+4){grid-column:span 3}.field-grid label select[data-section-for],.field-grid label select[data-setting-section-for]{margin-bottom:6px;font-size:12px}#model-source{padding:10px;background:#edf3e8;border-radius:5px}.input-card details summary{font-size:15px}@media(max-width:750px){.summary-card,.summary-card:nth-child(n+4){grid-column:span 6}}

.site-header .brand-mark{flex:0 0 42px;width:42px;height:42px;background:#fff;overflow:hidden;border:0;border-radius:3px}.site-header .brand-mark img.company-logo{display:block!important;width:42px!important;height:24px!important;max-width:42px!important;max-height:24px!important;object-fit:contain!important;object-position:center!important;margin:0!important}.auto-value{display:block;color:#607c68;font-size:11px;margin-top:5px;line-height:1.5}.auto-value:empty{display:none}#session-countdown{display:block;font-size:10px;margin-top:4px;color:#d3e3d6}#session-countdown.urgent{color:#ffd596}#draft-recovery button{margin:5px}.diagram svg{height:auto;min-height:280px}

/* v1.4 */
.site-header .brand-mark{background:#1b4237;flex-basis:76px;width:76px;height:42px;overflow:hidden}.site-header .brand-mark img.company-logo{width:68px!important;height:35px!important;max-width:68px!important;max-height:35px!important}.quote-meta .field-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.quote-meta textarea{height:40px;min-height:40px;resize:vertical}.quote-meta .field-grid input{padding:7px 9px}.header-right select{width:120px;padding:6px;background:#1b4237;color:white;border-color:#87a394}.field-help{padding:2px 7px;margin-left:5px;font-size:11px}.summary-card strong{font-size:23px}.summary-card p{margin:8px 0 3px}.bilingual-en{display:block;font-size:.8em;color:var(--muted);font-weight:400;letter-spacing:0;white-space:normal}.site-header .bilingual-en{color:#c4d9cf}.summary-card.highlight .bilingual-en{color:#d5e4d9}button .bilingual-en{color:inherit;font-size:10px}.field-grid label{min-width:0}.diagram-switch{flex-wrap:wrap}.tabs{gap:20px}.tabs .tab{white-space:normal}.help-notes{padding:10px 15px;line-height:1.8}.help-notes ol{padding-left:20px}.diagram svg text{font-family:"Microsoft JhengHei",system-ui,sans-serif}
@media(max-width:900px){.quote-meta .field-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tabs{flex-wrap:wrap;gap:15px}.site-header{flex-wrap:wrap}.site-header h1{font-size:18px}}@media(max-width:500px){.quote-meta .field-grid{grid-template-columns:1fr}.header-right{flex-wrap:wrap}.actions button{white-space:normal}}
@media print{.bilingual-en{font-size:9px}.weight-comparison{break-inside:avoid}.print-grid .bilingual-en{display:inline}}
