.case-list {display:grid;gap:12px;margin:24px 0}.case-card{display:grid;text-align:left;gap:8px;width:100%;font-size:16px}.case-card span{color:var(--muted,#586865)}
.quote-form{display:grid;gap:20px;max-width:820px}.quote-form label{display:grid;gap:8px;font-size:16px}.quote-form input,.quote-form select,.quote-form textarea{width:100%;min-height:48px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--card,#fff);color:inherit;font:inherit;box-sizing:border-box}.quote-form textarea{min-height:110px}.quote-line{border:1px solid var(--line);border-radius: var(--radius-lg);padding:16px;display:grid;gap:14px;margin:0;min-width:0}.quote-line-numbers{display:grid;grid-template-columns:1fr 1fr 2fr;gap:10px}.quote-price,.quote-total{font-size:24px!important;font-weight:700}.quote-actions{display:flex;flex-wrap:wrap;gap:12px;margin:24px 0}.quote-actions .button{flex:1;min-height:48px}.quote-factors{border:0;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:10px}.quote-factors legend{margin-bottom:8px}.quote-factors [aria-pressed=true]{background:var(--brand-strong);color:white}.quote-form [role=alert],#caseWorkspace [role=alert]{color:var(--danger);white-space:pre-wrap}.quote-table{width:100%;border-collapse:collapse;font-size:16px}.quote-table th,.quote-table td{text-align:left;padding:12px 8px;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.quote-table-wrap{overflow:auto}.quote-notes{white-space:pre-wrap;overflow-wrap:anywhere}.quote-print{max-width:900px;background:var(--card,#fff);padding:20px;border-radius: var(--radius-lg)}.quote-form button:disabled{opacity:.55}.quote-form [name=unit_price_twd]{min-width:0}
@media(max-width:540px){.quote-print{padding:12px}.quote-table th,.quote-table td{padding:10px 4px}.quote-line{padding:12px}.quote-actions{position:sticky;bottom:76px;background:var(--card,#fff);padding:8px 0}.quote-form{padding-bottom:20px}}
[data-route=cases][hidden]{display:none!important}.bottom-nav.has-cases{grid-template-columns:repeat(5,1fr)}
@media print{body.quotation-printing{page:quotation;background:#fff}body.quotation-printing .app-shell{background:#fff}body.quotation-printing *{visibility:hidden!important}body.quotation-printing .quote-print,body.quotation-printing .quote-print *{visibility:visible!important}body.quotation-printing .quote-print{position:absolute;left:0;top:0;width:100%;max-width:none;padding:0;color:#000;background:#fff;page:quotation}body.quotation-printing .quote-print table{width:100%}body.quotation-printing .quote-print th,body.quotation-printing .quote-print td{break-inside:avoid}body.quotation-printing .quote-no-print{display:none!important}@page quotation{size:A4;margin:16mm}}
.ledger-panel{margin-top:32px;border-top:1px solid var(--line);padding-top:20px}.ledger-totals{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.ledger-totals strong{display:block;font-size:20px}.ledger-entries{display:grid;gap:12px;margin-top:24px;overflow-wrap:anywhere}.ledger-panel form{margin-top:24px}.ledger-panel [role=alert]{color:var(--danger)}

[data-template-items] { border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 12px; }
[data-template-items] summary { cursor: pointer; font-weight: 700; }
.template-item-options { max-height: 320px; overflow: auto; margin: 12px 0; }
.template-item-options label { display: flex; gap: 10px; align-items: start; padding: 10px 0; }
.template-item-options label[hidden] { display: none; }
.template-item-options input { flex: 0 0 20px; width: 20px; height: 20px; }

/* 第三輪：案件明細與實際帳務摘要 */
.case-progress{display:flex;list-style:none;gap:0;padding:12px 0 24px;margin:0;overflow-x:auto}.case-progress li{display:flex;align-items:center;gap:8px;color:var(--muted);white-space:nowrap;font-size:13px;flex:1}.case-progress li:not(:last-child)::after{content:'';height:1px;background:var(--line);flex:1;margin:0 12px}.case-progress li>span{display:grid;place-items:center;width:26px;height:26px;border:1px solid var(--line-strong);border-radius:50%;flex-shrink:0}.case-progress .complete>span{background:var(--ink,#272727);color:#fff}.case-progress .current{color:var(--ink,#272727);font-weight:700}.case-progress .current>span{border:2px solid var(--brand-strong)}
.case-core-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:24px;align-items:start}.case-core-main{min-width:0;display:grid;gap:20px}.case-summary-slot{background:var(--card,#fff);border:1px solid var(--line);border-radius:8px;padding:20px;position:sticky;top:24px;min-width:0}.case-summary-slot h2{font-size:18px;margin:0 0 20px}.case-summary-slot .ledger-totals{display:block}.ledger-unreceived>strong{font-size:36px;line-height:1.4;white-space:nowrap;font-variant-numeric:tabular-nums}.ledger-unreceived p{color:var(--muted);font-size:13px}.ledger-ratio{display:flex;align-items:center;gap:10px;font-size:12px;margin:12px 0 20px}.ledger-ratio progress{width:100%;min-width:0;height:6px;accent-color:var(--brand-strong)}.ledger-ratio span{white-space:nowrap}.case-summary-slot .ledger-totals>p{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);padding:10px 0;margin:0;font-size:13px}.case-summary-slot .ledger-totals>p strong{font-size:15px;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.ledger-summary-actions{display:grid;gap:8px;margin-top:18px}.ledger-summary-actions button{min-height:44px}
.case-quotation{max-width:none;border:1px solid var(--line);border-radius:8px;padding:20px}.case-quotation header{display:flex;justify-content:space-between;gap:12px;align-items:center}.case-quotation h2{font-size:19px;margin:0}.case-quotation h2 small{font-size:13px;color:var(--muted);font-weight:400;margin-left:8px}.case-state{display:inline-block;font-size:12px;padding:5px 8px;background:var(--surface-2,#f4f2ec);border:1px solid var(--line);border-radius:4px;white-space:nowrap}.case-quote-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;color:var(--muted);font-size:12px}.case-quote-meta strong{display:block;color:var(--ink,#272727);font-size:14px;margin-top:6px}.case-pending{background:var(--surface-2,#f4f2ec);padding:12px;font-size:13px}.case-quotation .quote-table{font-size:13px;min-width:490px}.case-quotation .quote-table th:not(:first-child),.case-quotation .quote-table td:not(:first-child){white-space:nowrap;text-align:right;overflow-wrap:normal;font-variant-numeric:tabular-nums}.case-quotation .quote-table th:first-child{width:52%}.case-quote-total{text-align:right;font-size:13px;margin-top:20px}.case-quotation .quote-total{font-size:23px!important}.case-quotation .quote-actions{position:static;margin:18px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.case-quotation .quote-actions .button{flex:0 1 auto;min-height:44px;font-size:13px;padding:10px 12px;white-space:nowrap}
.case-information,.case-empty{padding:20px;border:1px solid var(--line);border-radius:8px;background:var(--card,#fff)}.case-information h2,.case-empty h2{font-size:18px;margin:0 0 16px}.case-information dl{margin:0}.case-information dl>div{display:grid;grid-template-columns:110px minmax(0,1fr);gap:14px;padding:10px 0;border-bottom:1px solid var(--line);font-size:13px}.case-information dt{color:var(--muted)}.case-information dd{margin:0;overflow-wrap:anywhere}.case-core-main .ledger-panel{margin-top:0;padding:20px;border:1px solid var(--line);border-radius:8px;background:var(--card,#fff)}.case-core-main .ledger-panel h2{font-size:18px;margin:0 0 12px}.case-core-main .ledger-entries .card{border-radius:0;border:0;border-top:1px solid var(--line);box-shadow:none;margin:0;padding:14px 0}.case-core-main .ledger-entries{gap:0}
@media(max-width:1100px){.case-core-layout{grid-template-columns:minmax(0,1fr) 290px;gap:16px}.case-summary-slot{padding:16px}.ledger-unreceived>strong{font-size:29px}}
@media(max-width:800px){.case-core-layout{display:flex;flex-direction:column}.case-core-main{width:100%}.case-summary-slot{position:static;order:-1;width:100%;box-sizing:border-box}.case-progress{gap:12px}.case-progress li{flex:0 0 auto}.case-progress li:not(:last-child)::after{width:12px;flex:none;margin:0}.case-quotation{padding:14px}.case-quotation .quote-table{min-width:430px}.case-quotation .quote-actions .button{flex:1 1 40%}.case-core-layout{padding-bottom:30px}.case-information dl>div{grid-template-columns:80px minmax(0,1fr)}}
.quote-print-only{display:none}@media print{body.quotation-printing .quote-print-only{display:block}body.quotation-printing .case-quotation .quote-table{min-width:0}}
.case-core-main{grid-template-columns:minmax(0,1fr)}.case-core-main>*{min-width:0}.case-quotation .quote-table-wrap{max-width:100%}
.quote-editor{max-width:none;grid-template-columns:minmax(0,1fr) 310px;align-items:start;gap:24px}.quote-editor>[data-form-errors]{grid-column:1/-1}.quote-editor>[data-form-errors]:empty{display:none}.quote-editor-main{display:grid;gap:22px;min-width:0}.quote-editor-section,.quote-editor-summary{background:var(--card,#fff);border:1px solid var(--line);border-radius:var(--radius-lg);padding:24px;display:grid;gap:18px;min-width:0}.quote-editor-section h2,.quote-editor-summary h2{margin:0;font-size:20px}.quote-editor-summary{position:sticky;top:90px}.quote-editor-summary dl{margin:0}.quote-editor-summary dl>div{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--line)}.quote-editor-summary dd{margin:0;text-align:right;overflow-wrap:anywhere}.quote-editor-summary dt{color:var(--muted);flex-shrink:0}.quote-editor-total{display:grid;gap:8px;margin:18px 0 0}.quote-editor-total strong{font-size:30px}.quote-editor-summary .quote-actions{margin:0;display:grid}.quote-tax-toggle{display:flex;gap:8px}.quote-tax-toggle [aria-pressed=true]{background:var(--brand-strong);color:#fff}.quote-line-total{text-align:right;margin:0}.quote-line-total output{font-weight:700}.quote-editor .field-error{color:var(--danger)}.quote-editor [aria-invalid=true]{border-color:var(--danger)}
@media(max-width:900px){.quote-editor{grid-template-columns:minmax(0,1fr)}.quote-editor-summary{position:static}.quote-editor-section{padding:18px}.quote-editor-summary .quote-actions{position:sticky;bottom:130px;z-index:5;background:var(--card,#fff);grid-template-columns:1fr 1fr;padding:10px 0}.quote-editor-total strong{font-size:26px}}

.quote-editor .quote-details{grid-template-columns:1fr 1fr}.quote-mobile-total{display:none}
@media(max-width:900px){.quote-editor .quote-details{grid-template-columns:1fr}.quote-editor{padding-bottom:240px}.quote-editor-summary .quote-actions{position:fixed;left:16px;right:16px;bottom:128px;z-index:8;border:1px solid var(--line);border-top:0;padding:10px;border-radius:0 0 10px 10px;gap:8px}.quote-mobile-total{display:block;position:fixed;left:16px;right:16px;bottom:196px;margin:0;padding:12px;background:var(--card,#fff);border:1px solid var(--line);border-bottom:0;border-radius:10px 10px 0 0;z-index:8;font-size:20px;font-weight:700}}

[data-selected-customer]:not([hidden]){display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px;background:var(--bg,#f8f7f3);border:1px solid var(--line);border-radius:8px}

[data-case-tab][aria-selected="true"] { background: #293c34; color: #fff; border-color: #293c34; }
[data-case-attachments][hidden], .case-quotation[hidden] { display: none !important; }
