:root{--orange:#ef7d00;--orange2:#ff9800;--nav:#0d1721;--nav2:#111f2c;--text:#172033;--muted:#667085;--bg:#f5f7fb;--line:#e5e9f0;--blue:#1469d8;--green:#169645;--red:#df2d2d;--purple:#7d3fc0;--teal:#0d9488}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:"Microsoft JhengHei","Noto Sans TC",Arial,sans-serif;color:var(--text);background:var(--bg)}a{text-decoration:none;color:inherit}.admin-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:276px;background:linear-gradient(180deg,#0b1520,#101c28 62%,#0b1520);color:#fff;padding:18px 10px;display:flex;flex-direction:column;z-index:30;box-shadow:4px 0 20px #07111b22}.side-brand{height:68px;display:flex;align-items:center;padding:0 8px 12px;border-bottom:1px solid #ffffff10;margin-bottom:10px}.side-brand img{width:100%;max-width:245px;height:58px;object-fit:contain;object-position:left center}.side-nav{display:flex;flex-direction:column;gap:4px}.side-nav a{display:flex;align-items:center;gap:14px;padding:13px 14px;border-radius:9px;font-weight:700;font-size:15px;color:#f8fafc;transition:.15s}.side-nav a span{display:inline-flex;width:24px;justify-content:center;font-size:19px}.side-nav a:hover{background:#ffffff0e}.side-nav a.active{background:linear-gradient(90deg,#c96a00,#f18a00);box-shadow:0 4px 12px #0004}.side-footer{margin-top:auto;padding:16px 12px 8px;font-size:12px;line-height:1.7;color:#d4dde6}.page-wrap{margin-left:276px;min-height:100vh}.topbar{height:68px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 26px;position:sticky;top:0;z-index:20}.top-title{font-size:20px;font-weight:800}.menu-btn{border:0;background:transparent;font-size:23px;margin-right:15px;cursor:pointer;color:#364152}.top-meta{display:flex;align-items:center;gap:18px;font-size:14px}.top-meta a{background:#f04438;color:#fff;padding:7px 11px;border-radius:7px}.admin-main{padding:18px 26px 28px;max-width:1700px;margin:auto}.summary-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-bottom:16px}.summary-card{background:#fff;border:1px solid var(--line);border-radius:11px;padding:16px 17px;display:flex;gap:12px;align-items:flex-start;box-shadow:0 2px 5px #10182808;min-height:132px}.summary-card .sum-icon{font-size:21px;margin-top:2px}.summary-card h3{margin:0 0 7px;font-size:15px}.summary-card strong{font-size:28px}.summary-card small{font-size:15px;margin-left:4px}.summary-card p{font-size:12px;color:var(--muted);margin:8px 0 0}.summary-card.red{background:#fff7f7;border-color:#f7c7c7;color:#d52222}.summary-card.amber{background:#fffaf0;border-color:#f7dfb2;color:#df7900}.summary-card.blue{background:#f7fbff;border-color:#cfe3fb;color:#1767cc}.summary-card.green{background:#f6fcf8;border-color:#cfead7;color:#16843d}.summary-card.slate{color:#344054}.panel{background:#fff;border:1px solid var(--line);border-radius:11px;box-shadow:0 2px 6px #10182808}.panel h2{font-size:16px;margin:0}.quick-panel{padding:13px 18px 17px;margin-bottom:16px}.quick-actions{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin-top:12px}.qa{color:#fff;padding:13px 14px;border-radius:7px;text-align:center;font-weight:800;font-size:14px}.green-btn{background:#149c42}.blue-btn{background:#176bd1}.purple-btn{background:#7a43bf}.orange-btn{background:#ea7b00}.teal-btn{background:#0d978c}.panel-head{display:flex;align-items:center;justify-content:space-between;padding:15px 18px 10px}.panel-head h2{margin-bottom:3px}.panel-head p{margin:0;color:var(--muted);font-size:12px}.panel-head>a{font-size:13px;color:#1469d8;font-weight:700}.filters{display:flex;gap:8px;padding:0 18px 12px}.filters input,.filters select,input,select,textarea{font:inherit;border:1px solid #cfd7e2;border-radius:7px;padding:10px 11px;background:#fff}.filters input{flex:1}.filters select{width:170px}.filters button,button,.button{border:0;border-radius:7px;background:#1469d8;color:#fff;padding:10px 16px;font-weight:800;cursor:pointer}.table-wrap{overflow:auto;border-top:1px solid var(--line)}table{border-collapse:collapse;width:100%;min-width:1040px}th,td{padding:11px 13px;border-bottom:1px solid #edf0f4;text-align:left;font-size:13px;white-space:nowrap}th{background:#fbfcfe;font-weight:800;color:#4b5565}.repair-link{color:#e31b1b;font-weight:800}.ops{display:flex;gap:6px}.ops a{padding:5px 8px;border-radius:5px;font-size:12px;font-weight:700}.view-btn{background:#1670d6;color:#fff}.edit-btn{border:1px solid #c8d0da;color:#4c5b6b}.print-btn{background:#eef2f6;color:#344054}.status-badge{padding:4px 8px;border-radius:6px;font-size:12px;font-weight:800}.status-待檢測{background:#ffe7e7;color:#d72b2b}.status-檢測中{background:#fff1d7;color:#c77600}.status-維修中{background:#e6f0ff;color:#1469d8}.status-已完修{background:#e3f6e9;color:#16843d}.status-已取件{background:#e9edf2;color:#475467}.tip-bar{margin:13px 0;background:#f5f9ff;border:1px solid #cfe0fb;color:#165db5;border-radius:8px;padding:11px 14px;font-size:13px}.bottom-grid{display:grid;grid-template-columns:1.45fr 1fr 1.45fr;gap:15px}.notice-box,.system-box,.links-box{padding:16px}.notice-box{background:#fffaf1;border-color:#f5d59e}.notice-box h2{color:#c96700}.notice-box ol{padding-left:22px;font-size:12.5px;line-height:1.8;margin-bottom:0}.system-box{background:#f7fbff;border-color:#cfe1f7}.system-box h2{color:#1767cc}.system-box dl{margin:10px 0 0;background:#fff;border:1px solid #e2e8f0;border-radius:7px;overflow:hidden}.system-box dl div{display:grid;grid-template-columns:92px 1fr;border-bottom:1px solid #edf0f4}.system-box dl div:last-child{border-bottom:0}.system-box dt,.system-box dd{margin:0;padding:9px 10px;font-size:12px}.system-box dt{font-weight:800}.system-box .ok{color:#16843d;font-weight:800}.links-box{background:#f7fcf8;border-color:#cfe8d5}.links-box h2{color:#16843d}.link-row{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;border:1px solid #e1ebe4;border-radius:8px;padding:10px;margin-top:9px}.link-row b{font-size:13px;display:block}.link-row small{font-size:11px;color:var(--muted)}.link-row a{background:#1e9444;color:#fff;border-radius:6px;padding:7px 10px;font-size:11px;font-weight:800}.report-mini{display:flex;justify-content:space-between;margin-top:12px;padding-top:12px;border-top:1px solid #dfe9e2;font-size:13px}.report-mini strong{color:#16843d}.about-note{margin-top:13px;text-align:center;color:#98a2b3;font-size:12px}.empty{padding:28px;color:#98a2b3}.center{text-align:center}.flash{background:#fff4d7;border:1px solid #f6d88f;color:#7d5400;padding:10px 13px;border-radius:8px;margin-bottom:14px}.public-header{height:76px;background:#0d1721;color:#fff;display:flex;align-items:center;justify-content:center;gap:16px;padding:10px}.public-header img{height:56px;max-width:280px;object-fit:contain}.public-header span{font-size:18px;font-weight:800}.public-main{max-width:980px;margin:24px auto;padding:0 16px}.card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 10px #00000010}.narrow{max-width:460px;margin:60px auto}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}label{font-weight:700;font-size:14px}input,select,textarea{width:100%;margin-top:6px}textarea{min-height:86px;resize:vertical}.full{grid-column:1/-1}.secondary{background:#607d8b}.big{font-size:16px;padding:14px}.notice{background:#fff4e8;border-left:4px solid var(--orange);padding:14px;line-height:1.6}.repair-no{font-size:32px;font-weight:800;color:var(--orange);margin:24px}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.detail-item{background:#fff;border-radius:10px;padding:16px}.detail-item b{display:block;color:#66737c;margin-bottom:7px}.terms{margin:8px 0 0;padding-left:22px}.terms li{margin:5px 0}.consent{display:flex;align-items:center;gap:8px;font-weight:700}.consent input{width:auto;margin:0;transform:scale(1.25)}
@media(max-width:1200px){.summary-grid{grid-template-columns:repeat(3,1fr)}.quick-actions{grid-template-columns:repeat(3,1fr)}.bottom-grid{grid-template-columns:1fr 1fr}.links-box{grid-column:1/-1}}
@media(max-width:820px){.sidebar{transform:translateX(-100%);transition:.2s}.sidebar-open .sidebar{transform:none}.page-wrap{margin-left:0}.summary-grid,.quick-actions,.bottom-grid{grid-template-columns:1fr 1fr}.admin-main{padding:14px}.top-meta #clock{display:none}.filters{flex-direction:column}.filters select{width:100%}.grid,.detail-grid{grid-template-columns:1fr}.full{grid-column:auto}}
@media(max-width:540px){.summary-grid,.quick-actions,.bottom-grid{grid-template-columns:1fr}.topbar{padding:0 14px}.top-title{font-size:17px}.admin-main{padding:10px}.side-brand img{max-width:230px}}
@media(max-width:540px){
  .topbar{height:62px;padding:7px 10px;gap:7px}
  .top-title{display:flex;align-items:center;white-space:nowrap;font-size:14px;line-height:1.2}
  .menu-btn{margin-right:5px;padding:5px;font-size:21px}
  .runtime-mode{font-size:10px;padding:3px 6px}
  .top-meta{gap:7px;font-size:11px;line-height:1.2}
  .top-meta #clock{display:none}
  .top-meta>span:not(#clock){max-width:74px}
  .top-meta a{white-space:nowrap;padding:7px 8px}
}

/* v1.6.7 grouped sidebar navigation */
.side-nav{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding-right:4px;scrollbar-width:thin;scrollbar-color:#405164 transparent}.side-nav::-webkit-scrollbar{width:6px}.side-nav::-webkit-scrollbar-thumb{background:#405164;border-radius:99px}.side-nav>.nav-home{margin-bottom:5px}.nav-group{border-top:1px solid #ffffff12;padding-top:5px}.nav-group summary{list-style:none;display:flex;align-items:center;gap:13px;padding:12px 14px;border-radius:9px;color:#f8fafc;cursor:pointer;font-size:15px;user-select:none;transition:.15s}.nav-group summary::-webkit-details-marker{display:none}.nav-group summary:hover,.nav-group[open] summary{background:#ffffff0e}.nav-group summary .nav-icon{display:inline-flex;width:24px;justify-content:center;font-size:18px}.nav-group summary b{font-weight:800}.nav-group summary i{margin-left:auto;font-style:normal;color:#9fb0c1;transition:transform .18s}.nav-group[open] summary i{transform:rotate(180deg)}.nav-group-links{margin:2px 0 6px 25px;padding-left:7px;border-left:1px solid #ffffff18}.side-nav .nav-group-links a{padding:9px 10px;gap:9px;font-size:13.5px}.side-nav .nav-group-links a span{width:20px;font-size:16px}.side-footer{flex:0 0 auto;padding-top:9px;line-height:1.45}

.delete-link{background:#fff0f0;color:#b42318;border:1px solid #f0b7b7}.customer-delete-panel{margin-top:16px;padding:18px;border-color:#efb1b1;background:#fff8f8}.customer-delete-panel h2{color:#b42318}.customer-delete-panel p{line-height:1.7;color:#6b3440}.customer-delete-panel form{display:grid;grid-template-columns:minmax(280px,1fr) auto;align-items:end;gap:12px;margin-top:14px}.customer-delete-panel button{background:#b42318;white-space:nowrap}.customer-delete-panel input{background:#fff}@media(max-width:760px){.customer-delete-panel form{grid-template-columns:1fr}}

.print-select-form{display:flex;gap:10px;margin:16px 0}.print-select-form select{flex:1;padding:11px;border:1px solid #ccd3dc;border-radius:8px}
.store-card{margin-top:14px}.store-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:10px}.store-grid div{padding:10px 12px;border:1px solid #f0d4b5;border-radius:9px;background:#fff8ef}.store-grid b,.store-grid span{display:block}.store-grid span{margin-top:4px}
@media(max-width:900px){.store-grid{grid-template-columns:1fr 1fr}.print-select-form{display:block}.print-select-form button{margin-top:10px}}
.submit-print-qr{display:block;width:220px;height:220px;margin:12px auto;background:#fff}
.terms li.important,.notice-box li.important{color:#c40000;font-weight:900}
.case-toolbar{align-items:flex-start}.complete-btn{background:#16835e}.direct-edit-form{display:grid;gap:16px}.edit-section{padding:18px}.edit-section-title{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.edit-section-title h2{margin:0}.edit-section-title span,.edit-section-title a{font-size:13px;color:#667085}.edit-section-title a{color:#1469d8;font-weight:800}.edit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.edit-grid .span-two{grid-column:span 2}.edit-grid textarea{min-height:105px}.save-dock{position:static;display:flex;align-items:center;gap:14px;margin-top:16px;background:#101c28;color:#fff;border-radius:10px;padding:12px 16px;box-shadow:0 3px 12px #0003}.save-dock button{background:#169645;font-size:16px}.save-dock span{font-size:13px;color:#d7e0e8}.history-panel,.customer-records{margin-top:18px}.history-panel table{min-width:900px}.history-issue{max-width:300px;overflow:hidden;text-overflow:ellipsis}.record-open{display:inline-block;padding:6px 9px;border-radius:5px}.customer-records .panel-head h1{margin:0 0 4px}.customer-search{padding-top:6px}
@media(max-width:900px){.edit-grid{grid-template-columns:1fr}.edit-grid .span-two{grid-column:auto}.case-toolbar{display:block}.case-toolbar>div:last-child{margin-top:12px}.save-dock{position:static;display:block}.save-dock span{display:block;margin-top:8px}}
.line-panel{margin-top:18px;padding:18px}.line-panel .edit-section-title{margin-bottom:16px}.line-panel .edit-section-title p{margin:5px 0 0}.line-bound-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;background:#f6fcf8;border:1px solid #cfead7;border-radius:9px;padding:14px}.line-bound-row p{font-size:13px;color:var(--muted);margin:7px 0 0}.line-state{display:inline-block;border-radius:999px;padding:6px 10px;font-size:13px;font-weight:900}.line-state.ok{background:#dff5e7;color:#147d38}.line-state.off{background:#fff0d6;color:#a65b00}.danger-outline{background:#fff;color:#c62d2d;border:1px solid #e9a8a8}.line-preview{margin-top:14px}.line-preview pre{margin:8px 0 0;padding:14px;border-radius:9px;background:#f7f9fc;border:1px solid #dce3ec;white-space:pre-wrap;font:14px/1.7 "Microsoft JhengHei","Noto Sans TC",sans-serif}.line-warning{margin-top:12px;padding:11px 13px;border-radius:8px;background:#fff4d7;border:1px solid #f6d88f;color:#7d5400}.line-send-form{display:flex;align-items:center;gap:12px;margin-top:14px}.line-send-form span{font-size:13px;color:var(--muted)}.line-send-btn,.line-open-btn{background:#06c755}.line-bind-grid{display:grid;grid-template-columns:180px 1fr;gap:24px;align-items:center;background:#f6fcf8;border:1px solid #cfead7;border-radius:10px;padding:16px}.line-bind-grid img{width:180px;height:180px;background:#fff}.line-bind-grid h3{margin:0}.line-bind-grid li{margin:8px 0}.line-log-list{margin-top:18px}.line-log-list h2,.line-log-list h3{margin:0 0 10px}.line-log-list table{min-width:720px}.line-result{font-weight:900}.line-result.success{color:#16843d}.line-result.failed{color:#d52222}.submitted-card{max-width:900px;margin:30px auto}.submitted-actions{display:grid;grid-template-columns:1fr 1fr;gap:18px;text-align:center}.submitted-actions section{border:1px solid var(--line);border-radius:10px;padding:18px}.submitted-actions h2{margin-top:0}.privacy-card{max-width:850px;margin:30px auto;line-height:1.8}.privacy-card h2{margin-top:25px}.line-settings-page{padding-bottom:18px}.line-settings-page .panel-head h1{margin:0 0 5px}.line-settings-grid{display:grid;grid-template-columns:1fr 2fr 1fr;gap:12px;padding:5px 18px 16px}.line-settings-grid>div{border:1px solid var(--line);border-radius:8px;padding:13px}.line-settings-grid b,.line-settings-grid span,.line-settings-grid code{display:block}.line-settings-grid span,.line-settings-grid code{margin-top:7px;word-break:break-all}.line-setting-actions{display:flex;gap:10px;padding:0 18px 16px}.line-setting-actions input{display:none}.line-setting-actions button:disabled{opacity:.5;cursor:not-allowed}.line-instructions{margin:0 18px 16px;padding:15px 17px;background:#f5f9ff;border:1px solid #cfe0fb;border-radius:9px}.line-instructions h2{margin:0 0 10px}.line-instructions li{margin:7px 0}
@media(max-width:760px){.line-bind-grid,.submitted-actions,.line-settings-grid{grid-template-columns:1fr}.line-bind-grid{text-align:center}.line-bind-grid img{margin:auto}.line-send-form,.line-bound-row,.line-setting-actions{display:block}.line-send-form span{display:block;margin-top:8px}.line-bound-row form{margin-top:12px}}
.intake-notification{position:fixed;right:22px;bottom:22px;z-index:1000;width:min(430px,calc(100vw - 32px));padding:17px;border:3px solid #e87522;border-radius:16px;background:#fff;box-shadow:0 18px 50px rgba(23,42,65,.28)}.intake-notification-head{display:flex;justify-content:space-between;gap:12px;color:#b84d00;font-size:19px}.intake-notification-body{display:grid;gap:5px;margin:12px 0;padding:12px;border-radius:10px;background:#fff7eb}.intake-notification-body strong{font-size:22px;color:#c71919}.intake-notification-body span{font-weight:800}.intake-notification-body small{color:#667085}.intake-notification-actions{display:flex;flex-wrap:wrap;gap:8px}.intake-notification-actions button,.intake-notification-actions a{flex:1;min-width:112px;text-align:center;box-sizing:border-box}.intake-notification-actions a{padding:10px;border-radius:7px;background:#1769d2;color:#fff;font-weight:800;text-decoration:none}.intake-notification-actions .secondary{background:#64748b}@media(max-width:600px){.intake-notification{right:16px;bottom:16px}.intake-notification-actions{display:grid}}

/* v1.14.0 product code assistant */
.code-input-row,.product-code-row{display:flex;gap:8px;align-items:center;margin-top:6px}.code-input-row input,.product-code-row input{margin-top:0;flex:1}.code-input-row button,.product-code-row button{flex:0 0 auto;white-space:nowrap}.code-status{display:block;min-height:20px;margin-top:8px;font-size:12px;color:#667085;font-weight:700}.code-status.ok{color:#147d38}.code-status.error,.error-text{color:#b42318!important}.code-options{display:flex;gap:7px;flex-wrap:wrap;margin-top:7px}.code-options button{padding:6px 10px;border:1px solid #b9c9dc;background:#f2f7fd;color:#145fae}.code-options button:disabled{background:#f2f2f2;color:#98a2b3;border-color:#ddd;cursor:not-allowed;text-decoration:line-through}.product-code-builder{border:1px solid #cfe0fb;background:#f5f9ff;border-radius:9px;padding:13px}.product-code-builder input[readonly]{background:#fff;color:#124f91;font-size:17px;font-weight:900}.code-assistant-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.code-assistant-card h2{margin:0}.code-assistant-card>p{color:#667085}.assistant-form{display:grid;gap:13px}.assistant-search{background:#0d9488}.assistant-save:disabled{opacity:.5;cursor:not-allowed}.code-rule-panel{margin-top:16px}.code-rule-example{display:grid;grid-template-columns:auto auto auto auto auto auto 1fr;gap:9px;align-items:center;padding:5px 18px 18px}.code-rule-example span{color:#667085;font-size:12px}.code-rule-example b{padding:8px 10px;border-radius:7px;background:#eef6ff;color:#145fae}.code-rule-example i{font-style:normal;font-weight:900}.code-rule-example strong{margin-left:12px;color:#147d38}@media(max-width:900px){.code-assistant-grid{grid-template-columns:1fr}.code-rule-example{grid-template-columns:auto auto auto}.code-rule-example strong{grid-column:1/-1;margin:5px 0 0}.product-code-row{align-items:stretch;flex-direction:column}.product-code-row button{width:100%}}@media(max-width:620px){.code-input-row{align-items:stretch;flex-direction:column}.code-input-row button{width:100%}}
.code-rule-example{display:flex;grid-template-columns:none;flex-wrap:wrap}.code-rule-part{display:flex;align-items:center;gap:7px}.code-rule-example .code-rule-part small{color:#667085;font-size:12px}.code-rule-example .code-rule-part b{display:inline-block}.code-rule-example strong{flex:1 1 270px}@media(max-width:900px){.code-rule-example strong{flex-basis:100%;margin:5px 0 0}}
.case-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.case-actions form{margin:0}.case-actions input[type=hidden]{display:none}.trash-btn,.purge-btn{background:#c92c2c}.trash-page .panel-head h1{margin:0 0 5px}.trash-warning{margin:0 18px 15px;padding:11px 13px;background:#fff4d7;border:1px solid #f6d88f;border-radius:8px;color:#7d5400}.trash-page table{min-width:1250px}.trash-page form input[type=hidden]{display:none}.restore-btn{background:#16835e}.purge-form{display:flex;align-items:center;gap:7px}.purge-form input{width:190px;margin:0;padding:7px 8px}.purge-form button{white-space:nowrap;padding:8px 10px}
@media(max-width:900px){.case-actions{justify-content:flex-start;margin-top:12px}}
.product-summary-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.summary-warning{border:1px solid #f0c36b;background:#fff8e8}.summary-warning strong{color:#a15c00}.summary-danger{border:1px solid #ef9a92;background:#fff1f0}.summary-danger strong{color:#b42318}.low-stock-row{background:#fffaf0}.stock-audit-ok{border-left:5px solid #16845b;background:#effaf5}.stock-audit-error{border-left:5px solid #b42318;background:#fff2f0}@media(max-width:1200px){.product-summary-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:820px){.product-summary-grid{grid-template-columns:1fr 1fr}}@media(max-width:540px){.product-summary-grid{grid-template-columns:1fr}}

/* v1.7.0 inventory master-data workspace */
.master-tabs{display:flex;gap:6px;overflow-x:auto;margin:0 0 18px;padding:7px;background:#fff;border:1px solid var(--line);border-radius:11px;box-shadow:0 2px 6px #10182808;scrollbar-width:thin}.master-tabs a{flex:0 0 auto;padding:10px 14px;border-radius:7px;font-size:13px;font-weight:800;color:#536172}.master-tabs a:hover{background:#f0f5fb;color:#1469d8}.master-tabs a.active{background:#1469d8;color:#fff}.master-layout{display:grid;grid-template-columns:minmax(340px,.8fr) minmax(600px,1.6fr);gap:16px;align-items:start}.master-editor h2{margin:0 0 16px}.master-form{display:grid;grid-template-columns:1fr 1fr;gap:13px}.master-form .full{grid-column:1/-1}.master-actions{display:flex;gap:8px}.master-records table{min-width:700px}.master-disabled{opacity:.62;background:#f8fafc}.master-state{display:inline-block;padding:4px 8px;border-radius:999px;font-size:12px;font-weight:900}.master-state.on{background:#e1f6e8;color:#147d38}.master-state.off{background:#edf0f4;color:#667085}.master-row-actions{display:flex;align-items:center;gap:7px}.master-row-actions form{margin:0}.master-row-actions button,.master-row-actions a{padding:7px 10px;font-size:12px}.master-tip a{font-weight:900;text-decoration:underline}.form-card small{display:block;margin-top:6px;color:#667085;font-weight:400;line-height:1.4}@media(max-width:1050px){.master-layout{grid-template-columns:1fr}.master-records table{min-width:650px}}@media(max-width:650px){.master-form{grid-template-columns:1fr}.master-form .full{grid-column:auto}.master-actions{display:block}.master-actions a{display:inline-block;margin-top:8px}}
.warehouse-balance-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;padding:4px 18px 18px}.warehouse-balance{border:1px solid #dce4ed;border-radius:9px;padding:13px;background:#f9fbfd}.warehouse-balance b,.warehouse-balance span{display:block}.warehouse-balance strong{display:inline-block;font-size:27px;color:#1469d8;margin:7px 7px 2px 0}.warehouse-balance span{color:#667085;font-size:12px}.inventory-action-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:16px}.inventory-action{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:18px}.inventory-action h2{margin:0 0 6px}.inventory-action p{margin:0;color:#667085;font-size:13px}.document-status{display:inline-block;padding:5px 10px;border-radius:999px;font-size:12px;font-weight:900}.document-status.draft{background:#fff1cf;color:#955300}.document-status.posted{background:#def5e6;color:#147d38}.document-status.void{background:#edf0f4;color:#667085}.scan-entry{border:2px solid #1677c8;background:#eef8ff;border-radius:10px;padding:15px;margin:16px 0}.scan-entry-row{display:grid;grid-template-columns:minmax(210px,300px) minmax(260px,1fr) auto;gap:10px}.scan-entry input{font-size:19px;font-weight:700}.scan-status{display:block;min-height:22px;margin-top:7px;font-weight:800}.scan-status.ok{color:#126e4b}.scan-status.error{color:#b42318}.document-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:end}.danger-panel{border-color:#efb5b5;background:#fff8f8}.danger-panel button{background:#b42318}.item-table input{margin:0;min-width:90px}.item-table input[type=checkbox]{width:auto;transform:scale(1.3)}.item-table .item-search{min-width:280px}.difference-positive{color:#126e4b;font-weight:900}.difference-negative{color:#b42318;font-weight:900}@media(max-width:850px){.inventory-action-grid{grid-template-columns:1fr}.scan-entry-row{grid-template-columns:1fr}}
.report-filter{display:flex;gap:10px;align-items:end;flex-wrap:wrap;padding:16px}.report-filter label{min-width:170px}.report-export{display:flex;flex-wrap:wrap;gap:8px;padding:0 16px 16px}.report-export a{font-size:12px}.report-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:12px;margin-bottom:16px}.report-kpi{background:#fff;border:1px solid var(--line);border-radius:10px;padding:15px}.report-kpi b,.report-kpi small{display:block}.report-kpi strong{display:block;font-size:25px;margin:7px 0}.report-kpi.profit strong{color:#147d38}.report-kpi.warning strong{color:#b25d00}.report-kpi small{color:#667085}.report-two-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}@media(max-width:1050px){.report-two-columns{grid-template-columns:1fr}}

/* v1.7.5 purchase receiving and non-stock services */
.subsystem-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:16px}.subsystem-card{position:relative;overflow:hidden;min-height:132px;padding:20px 22px;border-radius:13px;color:#fff;box-shadow:0 6px 18px #10182818}.subsystem-card:after{content:"";position:absolute;width:150px;height:150px;border-radius:50%;right:-45px;bottom:-75px;background:#ffffff16}.subsystem-card span,.subsystem-card strong,.subsystem-card small{display:block;position:relative;z-index:1}.subsystem-card span{font-size:22px;font-weight:900}.subsystem-card strong{margin-top:9px;font-size:14px}.subsystem-card small{margin-top:20px;font-weight:800}.repair-system{background:linear-gradient(135deg,#d66b00,#f39a20)}.inventory-system{background:linear-gradient(135deg,#075c9c,#1680d5)}@media(max-width:760px){.subsystem-grid{grid-template-columns:1fr}.subsystem-card{min-height:118px}}

/* v1.16.10: task-oriented product form and visible dashboard filters */
.summary-card{transition:transform .15s,box-shadow .15s,border-color .15s}.summary-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px #10182818}.summary-card.selected{outline:3px solid currentColor;outline-offset:-3px;box-shadow:0 8px 20px #10182820}.product-form{display:grid;gap:16px;max-width:1240px;margin:0 auto}.product-form-section{padding:20px 22px}.product-section-head{display:flex;align-items:flex-start;gap:12px;padding-bottom:15px;margin-bottom:16px;border-bottom:1px solid var(--line)}.product-section-head>span{display:grid;place-items:center;flex:0 0 30px;height:30px;border-radius:50%;background:#1469d8;color:#fff;font-weight:900}.product-section-head h2{font-size:18px;margin:2px 0 4px}.product-section-head p{margin:0;color:#667085;font-size:13px}.product-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px 18px}.product-form-grid .span-2{grid-column:span 2}.product-form-grid .span-3{grid-column:1/-1}.product-form-section small{display:block;margin-top:6px;color:#667085;font-weight:400;line-height:1.4}.product-form-section textarea{min-height:76px}.pricing-pairs{display:grid;grid-template-columns:1fr 1fr;gap:18px}.price-pair{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:17px;border:1px solid #dce3ec;border-radius:10px;background:#fafcff}.price-pair h3{grid-column:1/-1;margin:0;font-size:15px}.cost-pair{border-left:4px solid #607d8b}.sale-pair{border-left:4px solid #ef7d00;background:#fffaf4}.compact-section{padding-top:17px;padding-bottom:17px}.product-form-actions{position:sticky;top:calc(var(--app-top-height,68px) + 6px);bottom:auto;z-index:10;display:flex;justify-content:flex-end;gap:10px;padding:13px 16px;background:#fffffff2;border:1px solid #dce3ec;border-radius:11px;box-shadow:0 -5px 20px #10182812;backdrop-filter:blur(6px)}.product-form-actions a,.product-form-actions button{min-width:150px;text-align:center}.product-form select,.product-form input,.product-form textarea{background:#fff}.product-form label:focus-within{color:#145fae}.product-form label:focus-within input,.product-form label:focus-within select,.product-form label:focus-within textarea{border-color:#4f92e5;box-shadow:0 0 0 3px #dcebff}
@media(max-width:900px){.product-form-grid{grid-template-columns:1fr 1fr}.product-form-grid .span-3{grid-column:1/-1}.product-form-grid .span-2{grid-column:span 1}.pricing-pairs{grid-template-columns:1fr}}
@media(max-width:620px){.product-form-section{padding:16px}.product-form-grid,.price-pair{grid-template-columns:1fr}.product-form-grid .span-2,.product-form-grid .span-3,.price-pair h3{grid-column:auto}.product-form-actions{position:static;flex-direction:column}.product-form-actions a,.product-form-actions button{width:100%}}

/* Code assistant suggestion sources */
.assistant-form label small{display:block;margin-top:6px;color:#667085;font-weight:400;line-height:1.45}.code-options button.code-source-industry{background:#e9f7ef;border-color:#9bd4ae;color:#166534}.code-options button.code-source-abbreviation{background:#eef5ff;border-color:#a9c9f5;color:#145fae}.code-options button.code-source-public{background:#f5efff;border-color:#cbb5ef;color:#6c36a4}.code-options button.code-source-fallback{background:#f5f5f5;border-color:#d0d5dd;color:#475467}.code-options button:disabled{opacity:.65}
.runtime-mode{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:999px;background:#e87522;color:#fff;font-size:11px;vertical-align:middle}

/* v1.16.6 category master synchronized product filter */
.product-filters .category-filter{width:300px;min-width:300px}.product-filters .category-filter optgroup{font-weight:900;color:#344054}.category-name{font-size:13px}.category-code-badge{display:inline-block;margin-left:4px;padding:2px 6px;border:1px solid #b8cbe4;border-radius:999px;background:#eef5ff;color:#24578f;font:800 11px/1.2 Consolas,"Courier New",monospace;vertical-align:1px}@media(max-width:820px){.product-filters .category-filter{width:100%;min-width:0}}
.product-filters{display:grid;grid-template-columns:minmax(250px,.8fr) minmax(420px,1.6fr) auto;align-items:end;padding-top:14px}.product-filters label{min-width:0}.product-filters label span{display:block}.product-filters label small{display:block;color:var(--muted);font-weight:400;margin-top:5px}.product-filters button{height:43px;margin-bottom:23px}@media(max-width:900px){.product-filters{grid-template-columns:1fr}.product-filters button{height:auto;margin-bottom:0}}
.attachment-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.attachment-card{display:flex;flex-direction:column;gap:5px;padding:14px;border:1px solid #d9e1ec;border-radius:10px;background:#f8fbff;color:#162238;text-decoration:none}.attachment-card:hover{border-color:#1677c8;background:#eef8ff}.attachment-card span,.attachment-card small{color:#637083}
.serial-return-options{display:flex;flex-direction:column;gap:5px;min-width:190px}.serial-return-options label{display:flex;align-items:center;gap:7px;margin:0;padding:4px 7px;border:1px solid #d9e1ec;border-radius:6px;background:#f8fbff}.serial-return-options input{width:auto;margin:0}

/* v1.20.4 usability and responsive table cleanup */
table{min-width:100%}th,td{vertical-align:top}th{white-space:nowrap}td{white-space:normal;overflow-wrap:anywhere}.ops,.ops a,.status-badge{white-space:nowrap}
.pager{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;padding:14px 18px;border-top:1px solid var(--line);background:#fbfcfe}.pager span{color:#667085;font-size:13px}.pager a{padding:8px 13px;border:1px solid #cbd5e1;border-radius:7px;background:#fff;color:#145fae;font-weight:800}.pager a:hover{background:#eef5ff}.pager .disabled{opacity:.45;pointer-events:none}
@media(max-width:760px){.toolbar,.section-actions{align-items:stretch;flex-direction:column}.toolbar .ops{flex-wrap:wrap}.card{padding:18px}.pager{justify-content:space-between}}
.login-form{display:grid;gap:15px}.login-form button{margin-top:4px}.staff-layout{display:grid;grid-template-columns:minmax(300px,390px) minmax(0,1fr);gap:16px;align-items:start}.staff-editor h2{margin-top:0}.staff-form{display:grid;grid-template-columns:1fr 1fr;gap:14px}.staff-form label:first-of-type,.staff-form label:nth-of-type(2){grid-column:1/-1}.staff-form small,.staff-table small,.audit-panel td small{display:block;color:var(--muted);margin-top:4px}.role-help{margin-top:18px;background:#f5f9ff;border:1px solid #cfe0fb;border-radius:8px;padding:13px;font-size:13px;line-height:1.65}.role-help p{margin:6px 0 0}.staff-table{min-width:1180px}.role-badge{display:inline-block;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:900}.role-badge.admin{background:#fde8d4;color:#a94f00}.role-badge.engineer{background:#e4f0ff;color:#1767cc}.role-badge.counter{background:#e3f6e9;color:#16843d}.inline-staff-update{display:grid;grid-template-columns:minmax(110px,1fr) 95px auto;gap:6px;align-items:center}.inline-staff-update input,.inline-staff-update select{margin:0;padding:7px 8px}.inline-staff-update button{padding:8px 10px}.inline-reset{display:grid;grid-template-columns:120px 120px auto;gap:6px;align-items:center}.inline-reset input{margin:0;padding:7px 8px}.inline-reset button{padding:8px 10px}.staff-table form{margin:0}.staff-table button:disabled{opacity:.45;cursor:not-allowed}.audit-panel .filters{padding-top:14px}.audit-detail{white-space:normal;min-width:230px}.audit-panel code{font-size:12px}.audit-panel table{min-width:1180px}@media(max-width:1100px){.staff-layout{grid-template-columns:1fr}.staff-editor{max-width:none}}@media(max-width:700px){.staff-form{grid-template-columns:1fr}.staff-form label{grid-column:1/-1}}
.postal-address-row{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:8px;align-items:center;margin-top:6px}.postal-address-row input{min-width:0;margin:0}.postal-fill-button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;border-radius:7px;padding:9px 12px;white-space:nowrap;font-size:13px;font-weight:800;background:#1469d8;color:#fff}.postal-address-status{display:block;margin-top:6px;color:#667085;font-size:12px;font-weight:600}.postal-address-status.ok{color:#147d38}.postal-address-status.warning{color:#a65b00}@media(max-width:720px){.postal-address-row{grid-template-columns:1fr}.postal-fill-button{width:100%}}

/* v1.27.0 Sunday owner operations reminder */
.weekly-report-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin:4px 0 18px}.weekly-report-heading h1{margin:0 0 7px}.weekly-report-heading p{margin:0;color:var(--muted)}.weekly-setting-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:16px;margin-bottom:16px}.weekly-status-card,.weekly-line-card{padding-bottom:18px}.weekly-state{display:inline-block;padding:6px 11px;border-radius:999px;font-size:12px;font-weight:900}.weekly-state.ok{background:#def5e6;color:#147d38}.weekly-state.off{background:#fff0d6;color:#a65b00}.weekly-setting-list{margin:3px 18px 17px;border:1px solid var(--line);border-radius:9px;overflow:hidden}.weekly-setting-list div{display:grid;grid-template-columns:125px 1fr;border-bottom:1px solid var(--line)}.weekly-setting-list div:last-child{border-bottom:0}.weekly-setting-list dt,.weekly-setting-list dd{margin:0;padding:11px 13px}.weekly-setting-list dt{font-weight:900;background:#f8fafc}.weekly-status-card>form,.weekly-line-card>form,.weekly-line-card>.notice,.weekly-line-card>a{margin-left:18px;margin-right:18px}.weekly-line-bound{display:grid;gap:5px;margin:3px 18px 16px;padding:16px;border:1px solid #bfe3ca;border-radius:10px;background:#f3fbf6}.weekly-line-bound span{color:var(--muted);font-size:13px}.weekly-bind-box{display:grid;grid-template-columns:160px 1fr;gap:20px;align-items:center;margin:3px 18px}.weekly-bind-box img{width:160px;height:160px;border:1px solid var(--line);border-radius:8px;background:#fff}.weekly-bind-box ol{margin:8px 0 13px;padding-left:21px;line-height:1.65;font-size:13px}.weekly-test-panel{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px 18px;margin-bottom:16px}.weekly-test-panel h2{margin-bottom:5px}.weekly-test-panel p{margin:0;color:var(--muted);font-size:13px}.weekly-test-panel form{flex:0 0 auto}.weekly-history-table{min-width:900px}.weekly-history-table .money,.weekly-detail-section .money{text-align:right;white-space:nowrap}.delivery-state{font-weight:900}.state-已傳送{color:#16843d}.state-傳送失敗,.state-LINE未設定,.state-LINE未綁定{color:#b54708}.button.small{padding:7px 10px;font-size:12px}.weekly-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}.weekly-summary-grid .summary-card{min-height:112px;display:block}.weekly-summary-grid .summary-card span{display:block;margin-bottom:10px;font-weight:800}.weekly-summary-grid .summary-card strong{font-size:25px}.weekly-summary-grid .summary-card.orange{background:#fffaf0;border-color:#f7dfb2;color:#bd6500}.weekly-summary-grid .weekly-delivery-title{font-size:21px}.weekly-error{margin-bottom:16px}.weekly-detail-section{margin-bottom:16px}.weekly-detail-section table{min-width:1050px}.weekly-detail-section td small{display:block;margin-top:4px;color:var(--muted)}.weekly-detail-section .important{color:#c9252d;font-weight:900}.weekly-detail-section .overdue-row{background:#fff7f7}.heading-actions{display:flex;gap:8px}.danger{background:#c92c2c!important}.public-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:26px;box-shadow:0 3px 14px #10182812}.warning{background:#fff8e8;border-color:#e8a22f;color:#7d5400}
@media(max-width:1000px){.weekly-setting-grid{grid-template-columns:1fr}.weekly-summary-grid{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.weekly-report-heading,.weekly-test-panel{display:block}.weekly-report-heading .button,.weekly-test-panel form{display:block;margin-top:12px}.weekly-test-panel button{width:100%}.weekly-bind-box{grid-template-columns:1fr;text-align:left}.weekly-bind-box img{margin:auto}.weekly-summary-grid{grid-template-columns:1fr}.heading-actions{margin-top:12px;flex-wrap:wrap}}
@media print{.sidebar,.topbar,.weekly-report-heading .heading-actions,.flash{display:none!important}.page-wrap{margin:0}.admin-main{padding:0;max-width:none}.weekly-summary-grid{grid-template-columns:repeat(3,1fr)}.panel{box-shadow:none}.table-wrap{overflow:visible}.weekly-detail-section table{min-width:100%;font-size:10px}.weekly-detail-section th,.weekly-detail-section td{padding:6px}}

/* v1.29.0 weekly and monthly operations reports */
.weekly-test-actions{display:flex;gap:10px;flex-wrap:wrap}.weekly-test-actions form{margin:0}.weekly-history-table{min-width:1280px}.operations-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.weekly-summary-grid .summary-card.green{background:#f0faf4;border-color:#bfe3ca;color:#147d38}.weekly-summary-grid .summary-card.purple{background:#f5f1ff;border-color:#d8c9f5;color:#6840b5}.operations-chart-panel{padding-bottom:18px}.operations-report-chart{display:block;width:min(100%,1280px);height:auto;margin:0 auto;border:1px solid var(--line);border-radius:10px;background:#f4f7fb}@media(max-width:800px){.operations-summary-grid{grid-template-columns:1fr 1fr}.weekly-test-actions{display:grid;width:100%}.weekly-test-actions button{width:100%}}@media(max-width:520px){.operations-summary-grid{grid-template-columns:1fr}}@media print{.operations-chart-panel .button{display:none}.operations-report-chart{max-height:420px;object-fit:contain}}

/* v1.30.0: A4 reports may span pages without clipping rows. */
@media print{.weekly-detail-section{break-inside:auto;page-break-inside:auto}.weekly-detail-section .panel-head{break-inside:avoid;page-break-inside:avoid}.weekly-detail-section table thead{display:table-header-group}.weekly-detail-section table tfoot{display:table-footer-group}.weekly-detail-section table tr,.weekly-detail-section table th,.weekly-detail-section table td{break-inside:avoid;page-break-inside:avoid}}

/* v1.31.0: loss prevention and PC build layout. */
.product-summary-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.below-cost-row{background:#fff0f0!important;border-left:4px solid #c92c2c}
.below-cost-badge{display:inline-block;margin-top:4px;padding:3px 7px;border-radius:999px;background:#ffe0e0;color:#a61919;font-size:11px;font-weight:900;white-space:nowrap}
.below-cost-notice,.below-cost-inline{border:1px solid #e99b9b;background:#fff0f0;color:#8f1d1d;border-radius:8px;padding:12px 14px;font-weight:800}
.below-cost-inline{margin-top:14px}
.schedule-heading p{margin:5px 0 0;color:var(--muted)}.schedule-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:16px}.schedule-summary{display:block;padding:17px 18px;border:1px solid var(--line);border-radius:11px;background:#fff;box-shadow:0 2px 8px #1018280a}.schedule-summary span,.schedule-summary small{display:block}.schedule-summary span{font-weight:900}.schedule-summary strong{display:inline-block;margin:7px 6px 0 0;font-size:29px}.schedule-summary.today{border-left:5px solid #1680d5}.schedule-summary.overdue{border-left:5px solid #c92c2c;background:#fff8f8;color:#a61919}.schedule-summary.next{border-left:5px solid #6b4bc3}.schedule-summary.unscheduled{border-left:5px solid #e78516}.schedule-panel{margin-bottom:16px}.schedule-table{min-width:1450px}.schedule-table th:nth-child(1){width:190px}.schedule-table th:nth-child(5),.schedule-table th:nth-child(6){width:170px}.schedule-table th:nth-child(7){width:250px}.schedule-table input,.schedule-table select,.schedule-table textarea{margin:0;padding:8px;font-size:12px}.schedule-time-input{min-width:170px}.schedule-note{min-width:220px;min-height:62px}.schedule-method{display:inline-block;margin:5px 0 2px;padding:3px 7px;border-radius:999px;background:#edf0f4;color:#536172;font-size:11px;font-weight:900}.schedule-method.field{background:#fff0d6;color:#a65b00}.schedule-method.remote{background:#e8efff;color:#3d5da8}.schedule-overdue{background:#fff4f4}.schedule-open{display:inline-block;margin-top:7px;padding:7px 9px;font-size:11px}@media(max-width:900px){.schedule-summary-grid{grid-template-columns:1fr 1fr}}@media(max-width:520px){.schedule-summary-grid{grid-template-columns:1fr}}
.schedule-calendar-panel{margin-bottom:16px;padding:16px}.schedule-calendar-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.schedule-view-switch,.schedule-date-nav{display:flex;gap:7px;flex-wrap:wrap}.schedule-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(150px,1fr));gap:8px;overflow-x:auto}.schedule-calendar-grid.day-view{grid-template-columns:minmax(320px,680px)}.schedule-calendar-day{min-height:190px;border:1px solid #dce4ee;border-radius:10px;background:#f8fafc;overflow:hidden}.schedule-calendar-day.is-today{border:2px solid #1671d9;background:#f2f7ff}.schedule-calendar-day>header{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:6px;padding:10px;background:#eaf0f7}.schedule-calendar-day.is-today>header{background:#dcecff}.schedule-calendar-day>header small{color:var(--muted)}.schedule-calendar-entries{display:grid;gap:7px;padding:8px}.schedule-calendar-entry{display:grid;gap:3px;padding:9px;border-left:4px solid #1671d9;border-radius:7px;background:white;box-shadow:0 1px 4px #1f293712;color:var(--text)}.schedule-calendar-entry:hover{background:#f0f6ff}.schedule-calendar-entry .calendar-time{font-weight:900;color:#165eaa}.schedule-calendar-entry small{color:var(--muted)}.schedule-calendar-entry em,.schedule-conflict-badge{display:inline-block;width:max-content;border-radius:999px;background:#c62828;color:#fff;font-size:11px;font-style:normal;font-weight:900;padding:3px 7px}.schedule-calendar-entry.has-conflict{border-left-color:#c62828;background:#fff5f5}.calendar-empty{padding:18px 5px;text-align:center;color:#8a95a3}.schedule-duration-label{display:flex;align-items:center;gap:5px;margin-top:7px;font-size:11px;font-weight:800}.schedule-duration-label input{width:76px}.schedule-conflict-row{box-shadow:inset 5px 0 #c62828;background:#fff8f8}.schedule-conflict-badge{margin-top:5px}.schedule-row-actions{display:grid;gap:6px;min-width:150px}.schedule-row-actions .schedule-open{margin:0;text-align:center}.schedule-line-hint{color:#516173;font-size:10px}.line-mini{padding:7px 8px;font-size:11px}.appointment-line-actions{display:grid;gap:8px;margin-top:12px;padding:12px;border:1px solid #a8dcc5;border-radius:9px;background:#f0fff8}.appointment-line-actions>span{font-size:12px;color:#516173}.appointment-line-actions>div{display:flex;gap:8px;flex-wrap:wrap}.appointment-line-actions form{margin:0}@media(max-width:900px){.schedule-calendar-toolbar{align-items:flex-start;flex-direction:column}.schedule-calendar-grid{grid-template-columns:repeat(7,minmax(175px,1fr))}}
.pc-build-table{min-width:1180px;table-layout:fixed}
.pc-build-table .pc-col-template{width:170px}.pc-build-table .pc-col-spec{width:auto}.pc-build-table .pc-col-money{width:145px}.pc-build-table .pc-col-fee{width:165px}.pc-build-table .pc-col-warranty{width:90px}.pc-build-table .pc-col-state{width:90px}.pc-build-table .pc-col-actions{width:310px}
.pc-build-table td{vertical-align:middle}
.pc-spec-cell{white-space:pre-line;line-height:1.55}
.pc-money{white-space:nowrap}.pc-record-open{display:inline-flex;align-items:center;justify-content:center;min-width:72px;min-height:36px}.pc-build-record-table td{vertical-align:middle}
.pc-action-group{display:grid;grid-template-columns:repeat(3,minmax(82px,1fr));gap:7px;min-width:280px}
.pc-action-group a,.pc-action-group button{display:flex;align-items:center;justify-content:center;width:100%;min-height:38px;margin:0;padding:8px 10px;text-align:center;white-space:nowrap}

/* Keep filled link-buttons readable even inside headings that normally use blue links. */
a.button,.ops a.button,.edit-section-title a.button,.case-actions a.button{color:#fff!important}
.payment-state{display:inline-block;padding:4px 9px;border-radius:999px;font-size:12px;font-weight:900;line-height:1.35;white-space:nowrap}.payment-state.paid{background:#e1f6e8;color:#147d38}.payment-state.partial{background:#fff1cf;color:#955300}.payment-state.unpaid{background:#b42318;color:#fff;border:1px solid #86180f;box-shadow:0 1px 2px #7f1d1d33}.payment-state-field.unpaid{background:#b42318!important;color:#fff!important;border-color:#86180f!important;font-weight:900}.button.danger-outline,.ops a.button.danger-outline{color:#c62d2d!important}
.zero-fee-close-form{display:grid;grid-template-columns:minmax(220px,360px) auto 1fr;gap:12px;align-items:end;margin-top:12px}
.zero-fee-close-form label{margin:0}.zero-fee-close-form select{margin-bottom:0}
.zero-fee-btn{background:#16835e;color:#fff!important;white-space:nowrap}
.zero-fee-closed{border-color:#9bd4ae;background:#f1fbf4;color:#166534}
@media(max-width:800px){.zero-fee-close-form{grid-template-columns:1fr}.zero-fee-close-form button{width:100%}}
.pc-action-group form{margin:0}
@media(max-width:850px){.pc-action-group{grid-template-columns:1fr;min-width:150px}}
.nav-section-label{margin:9px 10px 3px;padding:5px 8px 3px;color:#90a4b8;font-size:11px;font-weight:800;letter-spacing:.08em;border-top:1px solid #ffffff0d}.nav-section-label:first-child{margin-top:2px;border-top:0}
.settings-section-title{margin:22px 0 10px;font-size:17px}.settings-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:18px}.settings-card{position:relative;display:grid;grid-template-columns:48px 1fr;gap:13px;align-items:start;min-height:148px;padding:19px;border:1px solid #dce3ec;border-radius:12px;background:#fff;box-shadow:0 2px 8px #1018280a;transition:.16s}.settings-card:hover{transform:translateY(-2px);border-color:#a9c7ec;box-shadow:0 6px 18px #10182814}.settings-card-icon{display:flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:11px;background:#eaf3ff;color:#1469d8;font-size:23px;font-weight:900}.settings-card h2{margin:1px 0 7px;font-size:17px}.settings-card p{margin:0;color:#667085;font-size:13px;line-height:1.65}.settings-card small{display:block;margin-top:8px;color:#667085}.settings-card>b{grid-column:2;color:#1469d8;font-size:13px;align-self:end}.settings-card.accent .settings-card-icon{background:#f2eaff;color:#7d3fc0}.master-settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-help,.settings-about{padding:20px;margin-top:8px}.settings-help-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:14px}.settings-help-grid>div{padding:16px;border-radius:9px;background:#f8fafc;border:1px solid #e7ebf0}.settings-help-grid p{margin:7px 0 0;color:#667085;font-size:13px;line-height:1.6}.settings-about dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:14px 0 0;border:1px solid #e5e9f0;border-radius:9px;overflow:hidden}.settings-about dl div{display:grid;grid-template-columns:110px 1fr;border-bottom:1px solid #edf0f4}.settings-about dt,.settings-about dd{margin:0;padding:11px 12px;font-size:13px}.settings-about dt{background:#f8fafc;font-weight:800}.settings-about dl div:nth-last-child(-n+2){border-bottom:0}
@media(max-width:980px){.settings-grid,.master-settings-grid,.settings-help-grid,.settings-about dl{grid-template-columns:1fr}.settings-about dl div{border-bottom:1px solid #edf0f4!important}}
.status-待檢測{background:#ffe3e6;color:#c82032}.status-前往現場{background:#dff2ff;color:#075c8f}.status-檢測中{background:#fff0bf;color:#995600}.status-等待客戶回覆{background:#efe4ff;color:#6c35ad}.status-取回維修{background:#f1e8ff;color:#6c3fa0}.status-等料{background:#ffe3c2;color:#a34d00}.status-送廠維修{background:#d9f5f2;color:#08756d}.status-維修中{background:#dceaff;color:#125fc3}.status-已完修{background:#dcf4df;color:#137834}.status-已結案{background:#dfe6ee;color:#263b55}.status-已取件{background:#e8e2f1;color:#5d4778}.status-取消維修{background:#4b5563;color:#fff}
.schedule-calendar-grid.day-view{grid-template-columns:minmax(320px,1fr)}
/* v2.5.4 operation-flow workspace */
.workspace-head{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:0 0 18px;padding:22px 24px;border-radius:16px;background:linear-gradient(135deg,#10263f,#173d64);color:#fff;box-shadow:0 10px 28px rgba(15,35,58,.18)}
.workspace-head h1{margin:4px 0 6px;font-size:30px}.workspace-head p{margin:0;color:#d7e6f5}.workspace-kicker{font-size:13px;font-weight:900;letter-spacing:.12em;color:#86c5ff}.workspace-head-actions{display:flex;gap:10px;flex-wrap:wrap}.workspace-head .button{border:1px solid rgba(255,255,255,.35);box-shadow:none}.workspace-head .primary-action{background:#fff;color:#12395f}.workspace-head .accent-action{background:#f58a16;color:#fff}
.today-workflow{margin:16px 0;padding:18px;border:1px solid #d5e0eb;border-radius:14px;background:#fff;box-shadow:0 6px 20px rgba(25,43,65,.07)}
.today-workflow-title{display:flex;justify-content:space-between;align-items:end;gap:16px;margin-bottom:14px}.today-workflow-title span{font-size:12px;font-weight:900;color:#1670d2;letter-spacing:.12em}.today-workflow-title h2{margin:3px 0 0}.today-workflow-title a{font-weight:800}
.today-action-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.today-action{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;padding:14px;border:1px solid #dbe4ee;border-left:5px solid #728197;border-radius:11px;color:#17263a;background:#f9fbfd;transition:.15s ease}.today-action:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(31,58,89,.12)}.today-action>b{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#e8edf3}.today-action span{display:grid;gap:3px}.today-action small{color:#69788a}.today-action i{font-style:normal;font-weight:900;color:#506175}.today-action.urgent{border-left-color:#d92d20}.today-action.warning{border-left-color:#f79009}.today-action.active{border-left-color:#1670d2}.today-action.done{border-left-color:#16843d}
.workflow-tools{padding:0!important;overflow:hidden}.workflow-tools>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;cursor:pointer;list-style:none}.workflow-tools>summary::-webkit-details-marker{display:none}.workflow-tools>summary span{display:grid;gap:3px}.workflow-tools>summary small{color:#69788a}.workflow-tools>summary i{font-style:normal;color:#176dd0;font-weight:900}.workflow-tools[open]>summary{border-bottom:1px solid #e4eaf1}.workflow-tools .quick-actions{padding:16px 18px}
.flow-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;margin:0 0 16px;padding:17px 18px;border:2px solid #b8d5f4;border-radius:14px;background:linear-gradient(135deg,#f5faff,#edf6ff)}.flow-card-main{display:grid;gap:5px}.flow-eyebrow{font-size:12px;font-weight:900;color:#176dd0;letter-spacing:.1em}.flow-card h2{margin:0;font-size:21px}.flow-card p{margin:0;color:#4d6074}.flow-primary{display:flex;align-items:center;justify-content:center;min-height:44px;padding:10px 18px!important;border-radius:9px!important;background:#176dd0!important;color:#fff!important;font-weight:900!important;white-space:nowrap}.flow-primary.success{background:#16843d!important}.flow-primary.warning{background:#d86d00!important}.flow-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.flow-more{position:relative}.flow-more>summary{display:inline-flex;align-items:center;min-height:40px;padding:8px 13px;border:1px solid #b9c7d6;border-radius:8px;background:#fff;color:#30445a;cursor:pointer;font-weight:800;list-style:none}.flow-more>summary::-webkit-details-marker{display:none}.flow-more[open]>summary{background:#edf3f9}.flow-more-menu{position:absolute;right:0;z-index:45;display:grid;gap:8px;min-width:245px;margin-top:7px;padding:12px;border:1px solid #cbd6e2;border-radius:10px;background:#fff;box-shadow:0 12px 30px rgba(22,42,64,.18)}.flow-more-menu .button,.flow-more-menu button{display:block;width:100%;box-sizing:border-box;text-align:center;margin:0!important}.flow-more-menu form{margin:0}.flow-more-menu .danger-action{background:#fff!important;color:#b42318!important;border:1px solid #e8a8a4!important}
.process-steps{display:flex;gap:0;margin:0 0 16px;padding:0;overflow:auto;border:1px solid #dce4ed;border-radius:11px;background:#fff}.process-step{position:relative;flex:1;min-width:112px;padding:10px 12px;text-align:center;color:#7a8796;font-size:13px;font-weight:800;border-right:1px solid #e1e7ee}.process-step:last-child{border-right:0}.process-step.done{background:#edf8f1;color:#187a3d}.process-step.current{background:#eaf4ff;color:#1268c4;box-shadow:inset 0 -3px #1670d2}.process-step.cancelled{background:#fff0ef;color:#b42318}
.build-progress-panel .panel-head p{margin:5px 0 0;color:var(--muted);line-height:1.55}.build-progress-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:16px 0}.build-progress-stat{display:grid;gap:7px;padding:13px 15px;border:1px solid #d8e2ed;border-radius:10px;background:#f8fafc}.build-progress-stat span{color:#5b6b7d;font-size:13px;font-weight:800}.build-progress-stat strong{font-size:22px}.build-progress-stat.done{border-color:#bfe3ca;background:#f1faf4;color:#147d38}.build-progress-stat.pending{border-color:#efc277;background:#fff8e8;color:#a65b00}.build-progress-message{display:grid;gap:4px;margin-bottom:14px;padding:13px 15px;border:1px solid #c8d8e8;border-radius:10px;background:#f3f8fd}.build-progress-message span{color:#536476;font-size:13px}.build-progress-message.pending{border-color:#eab666;background:#fff7e8;color:#8a4f00}.build-progress-message.done{border-color:#bfe3ca;background:#f1faf4;color:#147d38}.build-progress-list{display:grid;gap:13px}.build-progress-group{overflow:hidden;border:1px solid #d8e2ed;border-radius:11px;background:#fff}.build-progress-group-head{padding:12px 14px;background:#f7f9fc;border-bottom:1px solid #dfe6ee}.build-progress-group-head>div{display:grid;gap:3px}.build-progress-group-head small{color:#617184}.build-progress-entry{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 14px;border-bottom:1px solid #e6ebf1}.build-progress-entry:last-child{border-bottom:0}.build-progress-entry>div{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:4px 9px}.build-progress-entry>div small{grid-column:2;color:#647487}.build-progress-entry.pending{background:#fffaf1;box-shadow:inset 4px 0 #e28a16}.build-progress-entry.done{background:#f7fcf8;box-shadow:inset 4px 0 #2f9b57}.build-progress-entry.uncreated{background:#f8fafc;box-shadow:inset 4px 0 #98a2b3}.master-state.pending{background:#fff0d6;color:#a65b00}.build-progress-action{background:#d86d00!important;color:#fff!important;white-space:nowrap}
@media(max-width:800px){.build-progress-summary{grid-template-columns:1fr 1fr}.build-progress-entry{align-items:stretch;flex-direction:column}.build-progress-entry .button{width:100%;box-sizing:border-box;text-align:center}.build-progress-entry>div{grid-template-columns:1fr}.build-progress-entry>div small{grid-column:1}.build-progress-entry .master-state{width:max-content}}
.danger-zone{margin-top:16px}.danger-zone:not([open]){padding:0!important;background:#fff!important;border-color:#ead7d5!important}.danger-zone>summary{padding:15px 17px;cursor:pointer;color:#a33a31;font-weight:900;list-style:none}.danger-zone>summary::-webkit-details-marker{display:none}.danger-zone[open]>summary{border-bottom:1px solid #efdcda}.danger-zone-content{padding:16px}
@media(max-width:1050px){.today-action-grid{grid-template-columns:1fr 1fr}.flow-card{grid-template-columns:1fr}.flow-card .flow-actions{justify-content:flex-start}}
@media(max-width:700px){.workspace-head{align-items:stretch;flex-direction:column;padding:18px}.workspace-head-actions,.workspace-head .button{width:100%;box-sizing:border-box;text-align:center}.today-action-grid{grid-template-columns:1fr}.today-workflow-title{align-items:flex-start;flex-direction:column}.flow-actions,.flow-primary{width:100%;box-sizing:border-box}.flow-more{width:100%}.flow-more>summary{justify-content:center;width:100%;box-sizing:border-box}.flow-more-menu{position:static;min-width:0}.process-step{min-width:95px;font-size:12px}}
.workspace-head .button.primary-action{background:#fff!important;color:#12395f!important}.workspace-head .button.accent-action{background:#f58a16!important;color:#fff!important}.today-action-grid{grid-template-columns:repeat(auto-fit,minmax(290px,1fr))}@media(max-width:700px){.today-action-grid{grid-template-columns:1fr}}

/* v2.7.0 combined onsite, labor-cost and Android/iPhone workspace */
.eyebrow{margin:0 0 4px;color:#176dd0;font-size:12px;font-weight:900;letter-spacing:.1em}.service-mobile-panel{display:grid;gap:16px;margin-bottom:16px;padding:20px}.section-heading{display:flex;align-items:flex-start;gap:12px}.section-heading>span{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:50%;background:#176dd0;color:#fff;font-weight:900}.section-heading h2{margin:1px 0 4px}.section-heading p{margin:0;color:#667085}.service-type-switch{display:grid;grid-template-columns:1fr 1fr;gap:10px}.service-type-switch label{margin:0}.service-type-switch input{position:absolute;opacity:0;pointer-events:none}.service-type-switch span{display:flex;align-items:center;justify-content:center;min-height:50px;padding:10px;border:2px solid #ccd7e4;border-radius:10px;background:#f8fafc;font-weight:900;cursor:pointer}.service-type-switch input:checked+span{border-color:#176dd0;background:#e9f4ff;color:#125da8;box-shadow:0 0 0 3px #b7dafe66}.service-time-grid,.fee-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.live-result,.service-total{display:block;padding:13px 15px;border:1px solid #a9ccee;border-radius:9px;background:#eef7ff;color:#164d83;font-weight:800}.service-total{display:flex;align-items:center;justify-content:space-between;font-size:17px}.service-total strong{font-size:25px;color:#e56a00}.billable-toggle{display:flex!important;align-items:flex-start;gap:12px;padding:14px;border:2px solid #bad2eb;border-radius:10px;background:#f6fbff}.billable-toggle input{width:23px;height:23px;margin:2px 0 0}.billable-toggle span{display:grid;gap:3px}.billable-toggle small{color:#667085}.mobile-action-dock{position:sticky;top:calc(var(--app-top-height,68px) + 6px);bottom:auto;z-index:19;display:grid;grid-template-columns:minmax(120px,.45fr) minmax(180px,1fr);gap:10px;margin-top:16px;padding:12px max(12px,env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));border:1px solid #d5dfe9;border-radius:12px 12px 0 0;background:#ffffffee;box-shadow:0 -8px 24px #1024381c;backdrop-filter:blur(10px)}.mobile-action-dock .button,.mobile-action-dock button{display:flex;align-items:center;justify-content:center;min-height:48px;margin:0;width:100%;box-sizing:border-box}.service-summary-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.service-summary-strip span{display:grid;gap:5px;padding:13px;border:1px solid #d9e2ec;border-radius:9px;background:#f8fafc;color:#627184}.service-summary-strip b{color:#182b40;font-size:17px}.service-log-list{display:grid;gap:12px}.service-log-card{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(310px,1fr) auto;gap:15px;align-items:center;padding:15px;border:1px solid #dbe3eb;border-left:5px solid #e29b20;border-radius:10px;background:#fff}.service-log-card.status-已確認{border-left-color:#16843d}.service-log-card.status-已作廢{border-left-color:#9aa4b2;opacity:.72}.service-log-card h3{margin:5px 0}.service-log-card p{margin:0;color:#5d6b7a}.service-log-card dl{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0}.service-log-card dl div{padding:9px;border-radius:8px;background:#f6f8fb}.service-log-card dt{font-size:11px;color:#667085}.service-log-card dd{margin:4px 0 0;font-weight:900}.service-log-actions{display:flex;gap:7px;align-items:center}.service-log-actions form{display:grid;grid-template-columns:minmax(110px,1fr) auto;gap:6px;margin:0}.service-log-actions input{margin:0;min-width:125px}.state-pill{display:inline-flex;padding:4px 9px;border-radius:999px;font-size:12px;font-weight:900}.state-pill.success{background:#dcf4df;color:#137834}.state-pill.warning{background:#fff0bf;color:#995600}.state-pill.danger{background:#e5e9ef;color:#465468}.summary-grid.three{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:16px}.summary-grid.three article{display:grid;gap:6px;padding:18px;border:1px solid #dce4ed;border-radius:11px;background:#fff;box-shadow:0 3px 10px #1018280a}.summary-grid.three b{font-size:25px}.unpaid-summary{border-left:5px solid #b42318!important}.initial-payment-block{margin-top:14px;padding-top:14px;border-top:1px dashed #cfd9e4}.expense-detail-grid .full{grid-column:1/-1}.void-row{opacity:.62}.customer-first-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:1050px){.service-summary-strip{grid-template-columns:1fr 1fr}.service-log-card{grid-template-columns:1fr}.service-log-actions{justify-content:flex-start}.customer-first-grid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){html{-webkit-text-size-adjust:100%}body{padding-bottom:env(safe-area-inset-bottom)}input,select,textarea,button{font-size:16px}.content,.page-content{max-width:100%;overflow-x:hidden}.toolbar.mobile-work-toolbar{align-items:stretch;flex-direction:column}.service-mobile-panel{padding:15px;border-radius:11px}.service-type-switch,.service-time-grid,.fee-grid,.service-summary-strip,.summary-grid.three,.customer-first-grid{grid-template-columns:1fr}.section-heading>span{flex-basis:30px;width:30px;height:30px}.service-total strong{font-size:21px}.mobile-action-dock{grid-template-columns:1fr 1.5fr;margin-left:-4px;margin-right:-4px}.service-log-card{padding:13px}.service-log-card dl{grid-template-columns:1fr}.service-log-actions{display:grid}.service-log-actions .button{width:100%;box-sizing:border-box;text-align:center}.service-log-actions form{grid-template-columns:1fr}.service-log-actions input,.service-log-actions button{width:100%;box-sizing:border-box}.mobile-card-table{min-width:0!important}.mobile-card-table thead{display:none}.mobile-card-table tbody,.mobile-card-table tr,.mobile-card-table td{display:block;width:100%;box-sizing:border-box}.mobile-card-table tr{margin:10px 0;padding:11px 12px;border:1px solid #dce4ed;border-radius:10px;background:#fff;box-shadow:0 2px 7px #1018280a}.mobile-card-table td{display:grid;grid-template-columns:minmax(105px,36%) minmax(0,1fr);gap:10px;padding:7px 0!important;border:0!important;text-align:left!important;overflow-wrap:anywhere}.mobile-card-table td::before{content:attr(data-label);color:#667085;font-size:12px;font-weight:900}.mobile-card-table td[colspan]{display:block;text-align:center!important}.material-table{min-width:0!important;table-layout:auto}.material-table colgroup,.material-table thead{display:none}.material-table tbody,.material-table tr,.material-table td{display:block;width:100%;box-sizing:border-box}.material-table tr{margin:12px 0;padding:13px;border:1px solid #cbd7e4;border-radius:11px;background:#fff;box-shadow:0 2px 8px #1018280d}.material-table td{position:relative;padding:6px 0!important;border:0!important}.material-table td::before{display:block;margin-bottom:4px;color:#607083;font-size:12px;font-weight:900}.material-table td:nth-child(1)::before{content:'商品'}.material-table td:nth-child(2)::before{content:'可用數量'}.material-table td:nth-child(3)::before{content:'數量'}.material-table td:nth-child(4)::before{content:'完修單價'}.material-table td:nth-child(5)::before{content:'退回後取消計價'}.material-table input,.material-table button{width:100%;min-height:46px;box-sizing:border-box}.material-table .chargeable{width:28px;height:28px}.scan-entry-row{grid-template-columns:1fr!important}.scan-entry-row button{width:100%}.filter-bar,.filters{grid-template-columns:1fr!important}.filter-bar>*{width:100%;box-sizing:border-box}.report-kpi-grid{grid-template-columns:1fr 1fr}.edit-grid .span-two{grid-column:1/-1}}
@media(max-width:430px){.report-kpi-grid{grid-template-columns:1fr}.mobile-action-dock{grid-template-columns:1fr}.service-type-switch span{min-height:54px}.panel{border-radius:10px}.toolbar h1{font-size:24px}}
.time-variance{font-size:12px;font-weight:900}.time-variance.over{color:#b42318}.time-variance.under{color:#187a3d}.service-log-card dl small{display:block;margin-top:4px;color:#667085}.record-actions{display:flex;align-items:flex-start;gap:7px;flex-wrap:wrap}.inline-repeat{position:relative}.inline-repeat>summary{display:inline-flex;align-items:center;min-height:36px;padding:6px 10px;border:1px solid #176dd0;border-radius:6px;color:#176dd0;background:#fff;cursor:pointer;font-weight:900;list-style:none}.inline-repeat>summary::-webkit-details-marker{display:none}.inline-repeat[open]>form{display:grid}.inline-repeat form{position:absolute;right:0;z-index:30;display:none;grid-template-columns:minmax(190px,1fr) auto;gap:7px;min-width:360px;padding:10px;border:1px solid #c9d7e6;border-radius:9px;background:#fff;box-shadow:0 12px 30px #1024382e}.inline-repeat input,.inline-repeat button{margin:0;min-height:40px}
@media(max-width:760px){.record-actions{display:grid;grid-template-columns:1fr 1fr}.record-actions>.view-btn,.inline-repeat,.inline-repeat>summary{width:100%;box-sizing:border-box;text-align:center;justify-content:center}.inline-repeat form{position:static;grid-template-columns:1fr;min-width:0;margin-top:7px;box-shadow:none}.repeat-repair-form button{min-height:50px}}
@media(max-width:820px){.sidebar{width:min(88vw,320px);padding-top:calc(18px + env(safe-area-inset-top));padding-bottom:calc(12px + env(safe-area-inset-bottom))}.sidebar-open{overflow:hidden}.admin-main{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}.topbar{padding-left:max(10px,env(safe-area-inset-left));padding-right:max(10px,env(safe-area-inset-right))}.toolbar .ops{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.toolbar .ops>*{width:100%;min-height:44px;box-sizing:border-box;text-align:center;justify-content:center}.table-wrap{-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain}button,.button,.view-btn{touch-action:manipulation}}
@media(max-width:540px){.top-meta>span:not(#clock){display:none}.top-title{min-width:0}.top-title .runtime-mode{flex:0 0 auto}.top-meta{flex:0 0 auto}.toolbar .ops{grid-template-columns:1fr}.public-main{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}}

/* v2.7.0 mobile acceptance fixes */
.service-type-switch label{position:relative;overflow:hidden}
.service-type-switch input{width:1px!important;height:1px!important;margin:0!important}
.onsite-only[hidden]{display:none!important}
@media(max-width:760px){input,select,textarea,button{min-height:44px}.menu-btn{min-width:44px;min-height:44px;margin-right:2px;padding:6px}.postal-fill-button{min-height:44px!important}.consent input,.photo-file-input,.service-type-switch input{min-height:0}}

/* v2.7.1 cascading Taiwan address fields and aligned repair-history actions */
.address-cascade{display:grid;grid-template-columns:minmax(150px,.7fr) minmax(170px,.8fr) minmax(280px,1.8fr);gap:10px;margin-top:7px}
.address-cascade-field{display:grid;gap:5px;min-width:0}
.address-cascade-field>span{color:#5e6d7e;font-size:12px;font-weight:900}
.address-cascade-field select,.address-cascade-field input{width:100%;min-width:0;box-sizing:border-box;margin:0}
.postal-address-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;align-items:stretch;margin-top:9px}
.address-composed-preview{background:#f4f7fa!important;color:#29445f!important;font-weight:800}
.postal-address-status{display:block;margin-top:5px;color:#667085;font-size:12px}.postal-address-status.ok{color:#137a42}.postal-address-status.warning{color:#a45a00}
.customer-records table th:last-child,.customer-records table td:last-child{width:188px}
.customer-records table td{vertical-align:middle}
.record-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch!important;gap:7px!important;min-width:174px}
.record-actions>.record-open,.record-actions>.inline-repeat,.record-actions>.inline-repeat>summary{width:100%;min-height:40px;box-sizing:border-box}
.record-actions>.record-open,.record-actions>.inline-repeat>summary{display:flex;align-items:center;justify-content:center;margin:0;padding:7px 9px;text-align:center;white-space:nowrap}
.record-actions>.record-open:only-child{grid-column:1/-1}
.record-actions>.inline-repeat{display:block}
@media(max-width:760px){.address-cascade{grid-template-columns:1fr 1fr}.address-detail-field{grid-column:1/-1}.postal-address-row{grid-template-columns:1fr}.postal-fill-button{width:100%}.customer-records table th:last-child,.customer-records table td:last-child{width:auto}.record-actions{grid-template-columns:1fr 1fr;min-width:0}.record-actions>.record-open,.record-actions>.inline-repeat,.record-actions>.inline-repeat>summary{min-height:44px}.mobile-card-table td[data-label="操作"]{display:block}.mobile-card-table td[data-label="操作"]::before{display:block;margin-bottom:8px}.inline-repeat form{width:100%;box-sizing:border-box}}
@media(max-width:430px){.address-cascade{grid-template-columns:1fr}.address-detail-field{grid-column:auto}.record-actions{grid-template-columns:1fr}.record-actions>.record-open:only-child{grid-column:auto}}

/* v2.7.2 repair video upload, playback and mobile progress */
.repair-video-form{margin-top:18px;padding-top:18px;border-top:1px dashed #b8c7d8}.repair-standard-file-field{grid-column:span 2}.repair-video-file-field{grid-column:span 3;display:grid;gap:8px;min-width:0}.repair-video-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.repair-video-choice{position:relative;display:grid!important;gap:4px;min-width:0;min-height:76px;padding:12px!important;border:2px solid #a9c8e7;border-radius:10px;background:#f6fbff;overflow:hidden}.repair-video-choice span{font-weight:900;color:#164d83}.repair-video-choice small{color:#5d6f82}.repair-video-choice input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.repair-video-camera{border-color:#9a8bd9;background:#f7f4ff}.repair-video-camera span{color:#4e389f}.repair-video-progress{display:grid;gap:7px;padding:11px 13px;border:1px solid #7daed0;border-radius:9px;background:#eef8ff}.repair-video-progress[hidden]{display:none}.repair-video-progress progress{width:100%;height:18px}.repair-attachment-grid{margin-top:16px;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.repair-attachment-card{min-width:0}.repair-attachment-card img{display:block;width:100%;height:140px;object-fit:cover;border-radius:8px;margin:8px 0}.repair-attachment-card video{display:block;width:100%;max-height:280px;aspect-ratio:16/9;object-fit:contain;border-radius:8px;margin:8px 0;background:#111}.repair-attachment-card small{overflow-wrap:anywhere}.repair-attachment-card p{margin:7px 0}.repair-video-form button{min-height:44px}
@media(max-width:760px){.repair-standard-file-field,.repair-video-file-field{grid-column:1/-1}.repair-video-form label,.repair-video-form .full{grid-column:1/-1}.repair-video-choice-grid{grid-template-columns:1fr}.repair-video-choice{min-height:72px}.repair-attachment-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}}
@media(max-width:540px){.repair-attachment-grid{grid-template-columns:1fr}.repair-attachment-card video{max-height:none}.repair-video-form input[type=file],.repair-video-form select,.repair-video-form input{font-size:16px}.repair-video-form button{width:100%;min-height:48px}}
.finance-todo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 0 18px}.finance-todo-card{display:flex;flex-direction:column;gap:5px;min-height:118px;padding:17px;border:1px solid #d9e1ea;border-radius:14px;background:#fff;color:#17324d;text-decoration:none}.finance-todo-card strong{font-size:30px}.finance-todo-card small{color:#667085}.finance-todo-card.alert{border-color:#f1b6ac;background:#fff7f5}.finance-todo-card.alert strong{color:#b42318}.finance-todo-grid.compact{margin:0}.case-profit-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.case-profit-grid>div{padding:15px;border-radius:12px;background:#f5f8fb}.case-profit-grid span,.case-profit-grid small{display:block;color:#667085}.case-profit-grid strong{display:block;margin:6px 0;color:#17324d;font-size:22px}.case-profit-grid .profit-result{background:#edf9f2}.case-profit-grid .profit-result strong,.positive-money{color:#087443}.case-profit-grid .profit-result.loss{background:#fff1f0}.case-profit-grid .profit-result.loss strong,.negative-money{color:#b42318}.todo-pill{display:inline-block;margin:2px;padding:3px 7px;border-radius:999px;background:#fff1d6;color:#875500;font-size:12px;font-weight:800}@media(max-width:820px){.finance-todo-grid,.case-profit-grid{grid-template-columns:1fr 1fr}}@media(max-width:520px){.finance-todo-grid,.case-profit-grid{grid-template-columns:1fr}.finance-todo-card{min-height:auto}}
.daily-closing-summary{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}.daily-closing-summary span{padding:10px 13px;border-radius:10px;background:#f5f8fb}.warranty-reminder-list{display:grid;gap:12px}.warranty-reminder-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;padding:15px;border:1px solid #d9e1ea;border-radius:12px}.warranty-reminder-card h3{margin:8px 0 4px}.warranty-reminder-card p{margin:0 0 8px;color:#667085}.warranty-reminder-card textarea{width:100%;min-height:72px}.warranty-reminder-card form{display:flex;flex-direction:column;gap:8px;justify-content:center}@media(max-width:700px){.warranty-reminder-card{grid-template-columns:1fr}.warranty-reminder-card form{align-items:stretch}}
.decision-level{display:inline-block;padding:4px 9px;border-radius:999px;font-weight:900}.level-緊急{background:#fee4e2;color:#b42318}.level-優先{background:#fff1d6;color:#875500}.level-建議{background:#e8f1ff;color:#175cd3}.level-銷售提醒{background:#f0e9ff;color:#6941c6}.level-觀察{background:#eef2f6;color:#475467}

/* v2.10.0 operation-smoothing workspace */
.top-ux-actions{display:flex;align-items:center;justify-content:center;gap:6px;margin-left:auto}.top-ux-actions button{display:flex;align-items:center;justify-content:center;gap:6px;min-height:38px;margin:0;padding:7px 10px;border:1px solid #cbd8e6;border-radius:9px;background:#f7faff;color:#173b60;font-weight:900}.top-ux-actions button:hover{border-color:#2477ce;background:#eaf4ff}.top-ux-actions button.active{border-color:#e1a127;background:#fff7df;color:#8c5900}.top-ux-actions kbd{padding:2px 5px;border:1px solid #cbd5e1;border-bottom-width:2px;border-radius:5px;background:#fff;color:#667085;font-size:10px}.ux-command-dialog{width:min(820px,calc(100vw - 28px));max-height:min(780px,calc(100vh - 28px));padding:0;border:0;border-radius:16px;background:#f8fafc;box-shadow:0 24px 70px #07182d73}.ux-command-dialog::backdrop{background:#10243c99;backdrop-filter:blur(2px)}.ux-command-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 20px;border-bottom:1px solid #dce5ee;background:#fff}.ux-command-head div{display:grid;gap:4px}.ux-command-head b{font-size:20px}.ux-command-head small{color:#667085}.ux-command-head button{min-width:42px;margin:0;padding:6px;font-size:22px}.ux-command-input-wrap{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;margin:16px 18px 8px;padding:8px 12px;border:2px solid #2375ce;border-radius:12px;background:#fff}.ux-command-input-wrap>span{color:#176dd0;font-size:24px}.ux-command-input-wrap input{min-width:0;margin:0;padding:9px 4px;border:0;outline:0;background:transparent;font-size:18px;font-weight:800;box-shadow:none}.ux-command-input-wrap input:focus{box-shadow:none}.ux-command-input-wrap kbd{color:#667085;font-size:11px}.ux-command-status{min-height:21px;margin:0;padding:0 20px 9px;color:#667085;font-size:13px}.ux-command-results{display:grid;gap:8px;max-height:560px;padding:0 18px 18px;overflow:auto}.ux-search-result{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 14px;border:1px solid #dce4ed;border-left:5px solid #2375ce;border-radius:10px;background:#fff;color:#172b43;text-decoration:none}.ux-search-result:hover{border-color:#78aee3;background:#f2f8ff}.ux-search-result.tone-orange{border-left-color:#e88616}.ux-search-result.tone-green{border-left-color:#138b4b}.ux-search-result.tone-purple{border-left-color:#8157c8}.ux-search-result.tone-slate{border-left-color:#64748b}.ux-result-kind{display:flex;align-items:center;justify-content:center;min-height:32px;border-radius:999px;background:#edf3f9;color:#35506c;font-size:12px;font-weight:900}.ux-result-copy{display:grid;min-width:0;gap:3px}.ux-result-copy b,.ux-result-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ux-result-copy small{color:#667085}.ux-search-result i{color:#176dd0;font-style:normal;font-weight:900}.ux-stored-section{padding:4px 0 8px}.ux-stored-section h3{margin:0 0 8px;color:#36536f;font-size:14px}.ux-stored-list{display:flex;flex-wrap:wrap;gap:8px}.ux-stored-list a{max-width:260px;padding:9px 11px;border:1px solid #d4deea;border-radius:9px;background:#fff;color:#1d4f80;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ux-command-empty{margin:0;color:#7a8795;font-size:13px}.money-input{border-color:#d7a43f!important;background:#fff9e8!important;color:#6d4500!important;font-weight:900!important;box-shadow:inset 4px 0 #e5aa2a}.money-input:focus{border-color:#d18700!important;background:#fffdf5!important;box-shadow:0 0 0 3px #f5c66045,inset 4px 0 #d99000!important}.money-field>small:first-of-type{color:#8a620d}.ux-form-dock{position:sticky;top:calc(var(--app-top-height,68px) + 6px);bottom:auto;z-index:19;display:flex;align-items:center;justify-content:flex-end;gap:9px;margin:18px -2px 0;padding:11px max(12px,env(safe-area-inset-right)) calc(11px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));border:1px solid #cbd8e5;border-radius:12px 12px 0 0;background:#ffffffed;box-shadow:0 -10px 28px #1024381f;backdrop-filter:blur(10px)}.ux-draft-state{margin-right:auto;color:#5e6f82;font-size:13px;font-weight:800}.ux-form-dock button{min-height:44px;margin:0}.ux-form-dock .ux-dock-primary{min-width:150px;background:#176dd0}.role-workbench{margin:0 0 18px;padding:18px;border:1px solid #cddcea;border-radius:14px;background:linear-gradient(135deg,#f6fbff,#fff)}.role-workbench-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:13px}.role-workbench-head h2{margin:0 0 4px}.role-workbench-head p{margin:0;color:#667085}.role-workbench-head span{padding:5px 9px;border-radius:999px;background:#e6f2ff;color:#165fa9;font-size:12px;font-weight:900}.role-workbench-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}.role-workbench-card{display:grid;gap:5px;min-height:108px;padding:14px;border:1px solid #d9e3ed;border-top:5px solid #2478cf;border-radius:11px;background:#fff;color:#17324d;text-decoration:none}.role-workbench-card strong{font-size:26px}.role-workbench-card small{color:#667085}.role-workbench-card.tone-red{border-top-color:#cf3029;background:#fff7f6}.role-workbench-card.tone-red strong{color:#b42318}.role-workbench-card.tone-orange{border-top-color:#e58a16;background:#fffaf0}.role-workbench-card.tone-orange strong{color:#9a5b00}.role-workbench-card.tone-green{border-top-color:#19854c;background:#f5fcf8}.role-workbench-card.tone-green strong{color:#14723f}.role-workbench-card.tone-slate{border-top-color:#758295}
@media(max-width:1100px){.top-ux-actions kbd,.top-ux-actions button:not(#ux-favorite-toggle) span{display:none}.role-workbench-grid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.ux-command-dialog{width:calc(100vw - 14px);max-height:calc(100vh - 14px);border-radius:12px}.ux-command-input-wrap{grid-template-columns:auto minmax(0,1fr);margin:10px}.ux-command-input-wrap kbd{display:none}.ux-command-results{padding:0 10px 12px}.ux-search-result{grid-template-columns:52px minmax(0,1fr);padding:11px}.ux-search-result i{display:none}.ux-result-copy b,.ux-result-copy small{white-space:normal}.ux-form-dock{display:grid;grid-template-columns:1fr 1fr}.ux-draft-state{grid-column:1/-1;margin:0}.ux-form-dock .ux-dock-primary{grid-column:1/-1;width:100%}.role-workbench-grid{grid-template-columns:1fr 1fr}.role-workbench-card{min-height:94px}.role-workbench-head{flex-direction:column}.role-workbench-head span{align-self:flex-start}}
@media(max-width:520px){.top-ux-actions{gap:3px}.top-ux-actions button{min-width:38px;padding:6px}.top-meta #clock{display:none}.role-workbench-grid{grid-template-columns:1fr}.ux-command-head{padding:14px}.ux-command-head b{font-size:18px}}

/* v2.10.1 task center, safe batch actions and customer quick view */
.batch-toolbar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:10px 18px;border-top:1px solid #e8edf2;background:#f8fafc}.batch-toolbar b{margin-right:auto;color:#36536f}.batch-toolbar select{width:auto;min-width:170px;margin:0}.batch-toolbar button{margin:0}.batch-check{width:44px!important;min-width:44px;text-align:center!important}.batch-check input{width:20px;height:20px;margin:0}.ux-filter-memory-clear{white-space:nowrap}.task-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:15px}.task-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border:1px solid #d6e0ea;border-radius:12px;background:#fff;color:#35506c}.task-summary strong{font-size:28px;color:#176dd0}.task-summary.selected{border-color:#2a7bd0;background:#eef7ff;box-shadow:inset 0 0 0 1px #2a7bd0}.task-filters{padding-top:14px}.task-list{display:grid;gap:12px;margin-top:16px}.operation-task{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,auto);gap:18px;padding:16px 18px;border:1px solid #d8e1ea;border-left:6px solid #2478cf;border-radius:12px;background:#fff;box-shadow:0 2px 8px #1024380a}.operation-task.tone-red{border-left-color:#cf3029}.operation-task.tone-orange{border-left-color:#e58a16}.operation-task.tone-green{border-left-color:#19854c}.operation-task.tone-purple{border-left-color:#8157c8}.operation-task-main h2{margin:6px 0;font-size:18px}.operation-task-main p{margin:0;color:#667085;line-height:1.55}.operation-task-meta{display:flex;align-items:center;gap:9px}.operation-task-meta span{padding:4px 8px;border-radius:999px;background:#edf3f8;color:#36536f;font-size:12px;font-weight:900}.operation-task-meta small{color:#7a8795}.task-assignment{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px;font-size:13px}.task-assignment span{color:#986000}.operation-task-actions{display:flex;flex-direction:column;justify-content:center;align-items:stretch;gap:7px}.operation-task-actions>a,.operation-task-actions button{width:100%;box-sizing:border-box;text-align:center}.operation-task-actions form{display:grid;margin:0}.task-inline-form{grid-template-columns:minmax(130px,1fr) auto!important;gap:6px}.task-inline-form select{min-width:0;margin:0}.task-complete{background:#18834d}.line-message-preview{max-width:760px;margin:8px 0;padding:12px;border:1px solid #d9e2eb;border-radius:8px;background:#f7f9fc;white-space:pre-wrap;font:14px/1.65 "Microsoft JhengHei",sans-serif}.customer-quick-dialog{width:min(1050px,calc(100vw - 28px));max-height:calc(100vh - 28px);padding:0;border:0;border-radius:16px;background:#f7f9fc;box-shadow:0 24px 70px #07182d73}.customer-quick-dialog::backdrop{background:#10243c99;backdrop-filter:blur(2px)}.customer-quick-shell{min-height:180px}.customer-quick-loading,.customer-quick-error{padding:48px;text-align:center}.customer-quick-content{padding:18px}.customer-quick-content header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.customer-quick-content header span{color:#176dd0;font-weight:900}.customer-quick-content header h2{margin:4px 0}.customer-quick-content header p{margin:0;color:#667085}.customer-quick-head-actions{display:flex;gap:8px}.customer-quick-contact{display:grid;grid-template-columns:1fr 1fr 2fr;gap:9px;margin:16px 0}.customer-quick-contact>div{display:grid;gap:4px;padding:11px;border:1px solid #dce4ed;border-radius:9px;background:#fff}.customer-quick-contact span{overflow-wrap:anywhere;color:#5e6f82}.customer-quick-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-bottom:14px}.customer-quick-stats>div{display:grid;gap:5px;padding:13px;border-radius:10px;background:#edf5ff}.customer-quick-stats span{color:#5e6f82;font-size:12px;font-weight:900}.customer-quick-stats strong{font-size:22px;color:#164f87}.customer-quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.customer-quick-grid section{min-width:0;padding:13px;border:1px solid #dce4ed;border-radius:10px;background:#fff}.customer-quick-grid h3{margin:0 0 8px}.customer-quick-grid section>a{display:grid;gap:3px;padding:8px 0;border-bottom:1px solid #edf0f4}.customer-quick-grid section>a:last-child{border-bottom:0}.customer-quick-grid small,.customer-quick-grid p{color:#667085}.customer-quick-content footer{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}.customer-quick-content footer .button{text-align:center}.ops button.view-btn{border:0;padding:5px 8px;font-size:12px}
@media(max-width:820px){.batch-toolbar{align-items:stretch}.batch-toolbar b{flex-basis:100%}.batch-toolbar select,.batch-toolbar button{flex:1 1 180px}.task-summary-grid{grid-template-columns:1fr}.operation-task{grid-template-columns:1fr}.customer-quick-dialog{width:calc(100vw - 12px);max-height:calc(100vh - 12px)}.customer-quick-content header,.customer-quick-head-actions{display:grid}.customer-quick-contact,.customer-quick-stats,.customer-quick-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.batch-toolbar{padding:10px}.batch-toolbar select,.batch-toolbar button{width:100%;flex-basis:100%}.customer-quick-content{padding:13px}.customer-quick-contact,.customer-quick-stats,.customer-quick-grid{grid-template-columns:1fr}.customer-quick-head-actions>*{width:100%;box-sizing:border-box;text-align:center}.customer-quick-content footer{display:grid}.operation-task{padding:14px}.task-inline-form{grid-template-columns:1fr!important}}
.customer-quick-dialog{position:relative}.customer-quick-dialog>.customer-quick-close{position:sticky;z-index:5;float:right;right:10px;top:10px;bottom:auto;width:42px;height:42px;padding:0;border-radius:999px;font-size:22px}

/* v2.10.3 repair quick-close workflow */
.repair-action-dock{position:sticky;top:7px;z-index:32;display:flex;align-items:center;gap:8px;margin:12px 0;padding:9px 11px;border:1px solid #bed1e5;border-radius:12px;background:#fffffff2;box-shadow:0 8px 24px #1024381c;backdrop-filter:blur(10px)}
.repair-action-dock b{color:#26445f;white-space:nowrap}.repair-action-dock .spacer{flex:1}.repair-action-dock a,.repair-action-dock button{min-height:38px;margin:0;padding:8px 11px;border-radius:8px;white-space:nowrap}.repair-action-dock button{background:#176dd0}.repair-action-dock .muted{background:#edf3f8;color:#34536e}
.repair-close-center{border:1px solid #bfd5e9;background:linear-gradient(135deg,#f4faff,#fff)}.repair-close-center>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:13px}.repair-close-center h2{margin:0 0 4px}.repair-close-center p{margin:0;color:#667085}.repair-close-center>header span{padding:5px 9px;border-radius:999px;background:#e3f1ff;color:#155da8;font-size:12px;font-weight:900;white-space:nowrap}
.repair-close-checks{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}.repair-close-checks>a,.repair-close-checks>div{display:grid;grid-template-columns:auto minmax(0,1fr);gap:3px 8px;align-content:start;min-height:82px;padding:11px;border:1px solid #d8e2ec;border-radius:10px;background:#fff;color:#27425e;text-decoration:none}.repair-close-checks span{grid-row:1/3;display:flex;align-items:center;justify-content:center;width:27px;height:27px;border-radius:999px;background:#dce9f6;color:#215d96;font-weight:900}.repair-close-checks b{align-self:center}.repair-close-checks small{color:#667085;line-height:1.4}.repair-close-checks .ready{border-color:#b7ddc9;background:#f5fcf8}.repair-close-checks .ready span{background:#d8f3e4;color:#157242}.repair-close-checks .attention{border-color:#efbf77;background:#fff9ec}.repair-close-checks .attention span{background:#ffe2ad;color:#8f5700}
.repair-fold{padding:0!important;overflow:visible}.repair-fold>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;cursor:pointer;list-style:none}.repair-fold>summary::-webkit-details-marker{display:none}.repair-fold>summary span{display:grid;gap:4px;min-width:0}.repair-fold>summary b{font-size:18px;color:#17324d}.repair-fold>summary small{color:#667085;line-height:1.45}.repair-fold>summary i{flex:0 0 auto;padding:5px 9px;border-radius:999px;background:#edf4fa;color:#28618e;font-size:12px;font-style:normal;font-weight:900}.repair-fold[open]>summary{border-bottom:1px solid #dce5ee;background:#f8fbfe}.repair-fold[open]>summary i::before{content:'收合';font-size:0}.repair-fold[open]>summary i{color:#3f5d77}.repair-fold-body{padding:18px}.repair-fold-actions{justify-content:flex-end;margin:0 0 13px}.repair-inline-history{margin-top:12px;border:1px solid #dce5ee;border-radius:9px;background:#fbfcfe}.repair-inline-history>summary{padding:10px 12px;cursor:pointer;color:#355a7b;font-weight:900}.repair-inline-history>div{padding:0 12px 12px}.repair-material-panel{border-color:#c7dbee;box-shadow:0 4px 16px #1024380c}.repair-material-panel .edit-section-title{align-items:flex-start}.repair-material-panel .eyebrow{display:block;margin-bottom:4px;color:#176dd0;font-size:12px;font-weight:900;letter-spacing:.08em}.repair-material-panel .empty{padding:16px;border-radius:9px;background:#f5f8fb}
@media(max-width:1100px){.repair-close-checks{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.repair-action-dock{top:4px;margin-left:-4px;margin-right:-4px;padding:7px;overflow-x:auto}.repair-action-dock>b,.repair-action-dock>.spacer{display:none}.repair-action-dock a,.repair-action-dock button{min-height:44px}.repair-close-center>header{display:grid}.repair-close-center>header span{justify-self:start}.repair-close-checks{grid-template-columns:1fr}.repair-close-checks>a,.repair-close-checks>div{min-height:0}.repair-fold>summary{padding:14px;align-items:flex-start}.repair-fold>summary b{font-size:16px}.repair-fold-body{padding:14px}.repair-fold-actions{display:grid}.repair-fold-actions>*{width:100%;box-sizing:border-box;text-align:center}.repair-material-panel .edit-section-title{display:grid;gap:10px}}
.repair-action-dock .repair-action-spacer{flex:1}.repair-fold[open]>summary i{font-size:0}.repair-fold[open]>summary i::before{font-size:12px}@media(max-width:760px){.repair-action-dock>.repair-action-spacer{display:none}.repair-action-dock button{position:sticky;right:0;z-index:2;box-shadow:-9px 0 12px #fffffff2}}

/* v2.10.7 sale warranty labels and useful long-form dock actions */
.ux-form-dock .ux-dock-add{background:#0d9488;color:#fff}.sale-warranty-labels{margin-top:16px;border-color:#b8d6f1;background:linear-gradient(135deg,#f5faff,#fff)}.sale-warranty-label-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;padding:0 18px 18px}.sale-warranty-label-card{display:grid;grid-template-columns:1fr;gap:12px;align-content:start;padding:14px;border:1px solid #cdddea;border-radius:11px;background:#fff}.sale-warranty-label-card>div:first-child{display:grid;gap:4px;min-width:0}.sale-warranty-label-card small{color:#667085}.sale-warranty-label-card b,.sale-warranty-label-card span{overflow-wrap:anywhere}.sale-warranty-label-actions{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:7px}.sale-warranty-label-actions .button{margin:0;text-align:center}
@media(max-width:900px){.sale-warranty-label-grid{grid-template-columns:1fr}}
@media(max-width:760px){.ux-form-dock .ux-dock-add{grid-column:1/-1;width:100%}.sale-warranty-label-grid{padding:0 12px 12px}.sale-warranty-label-actions{display:grid}.sale-warranty-label-actions .button{width:100%;box-sizing:border-box}}

/* v2.10.8 form clarity and customer-order completion layout */
.bank-account-form-section h2{margin-bottom:16px}.bank-account-form-grid{display:grid;grid-template-columns:minmax(300px,.85fr) minmax(420px,1.25fr);gap:18px;align-items:stretch}.bank-account-toggle{display:flex!important;align-items:flex-start;gap:12px;min-height:92px;margin:0;padding:16px;border:2px solid #bdd2e8;border-radius:11px;background:#f5faff;cursor:pointer}.bank-account-toggle input{flex:0 0 24px;width:24px!important;height:24px;margin:1px 0 0!important;accent-color:#1469d8}.bank-account-toggle span{display:grid;gap:5px}.bank-account-toggle b{font-size:15px;color:#173b60}.bank-account-toggle small,.bank-account-select small{display:block;color:#667085;font-weight:400;line-height:1.5}.bank-account-toggle:has(input:checked){border-color:#1469d8;background:#eaf4ff;box-shadow:0 0 0 3px #1469d81a}.bank-account-select{display:block;min-width:0}.bank-account-select select{width:100%}.order-sale-link-card{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:16px;padding:20px 22px;border-color:#9bd3b2;background:linear-gradient(135deg,#effbf4,#fff)}.order-sale-link-copy{display:flex;align-items:center;gap:15px;min-width:0}.order-sale-link-copy>span{display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;border-radius:50%;background:#16834b;color:#fff;font-size:26px;font-weight:900}.order-sale-link-copy small{color:#137342;font-weight:900}.order-sale-link-copy h2{margin:3px 0 5px;color:#154c33;font-size:20px}.order-sale-link-copy p{margin:0;color:#526b5d}.order-sale-link-card>.button{flex:0 0 auto;min-width:210px;text-align:center;background:#16834b}.ux-draft-state[hidden]{display:none}
@media(max-width:820px){.bank-account-form-grid{grid-template-columns:1fr}.order-sale-link-card{align-items:stretch;flex-direction:column}.order-sale-link-card>.button{width:100%;box-sizing:border-box}}

/* v2.12.8 scalable receivable/payable workbench */
.account-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:12px}.account-summary-grid .summary-card{min-height:112px;text-decoration:none}.account-summary-grid .summary-card>div{display:grid;gap:6px}.account-summary-grid .summary-card.selected{border-color:#2378d0;background:#eef7ff;box-shadow:inset 0 0 0 1px #2378d0}.account-summary-grid .summary-card strong,.account-summary-grid .summary-card small{display:block}.account-summary-grid .summary-card strong{font-size:clamp(20px,2vw,29px)}.account-credit-note{display:flex;gap:10px;flex-wrap:wrap;margin:-2px 0 15px}.account-credit-note span{padding:8px 11px;border:1px solid #f0c7a0;border-radius:9px;background:#fff8ee;color:#704719}.account-section-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:12px;padding:6px;border:1px solid #d7e1ec;border-radius:12px;background:#f4f7fa}.account-section-tabs a{padding:12px 10px;border-radius:8px;color:#48627d;text-align:center;text-decoration:none;font-weight:900}.account-section-tabs a:hover,.account-section-tabs a.selected{background:#176dd0;color:#fff;box-shadow:0 3px 9px #176dd033}.account-filter-panel{margin-bottom:16px;padding:16px}.account-filters{display:grid;grid-template-columns:minmax(260px,2fr) repeat(5,minmax(125px,1fr));gap:10px;align-items:end}.account-filters label{display:grid;gap:5px;margin:0;color:#52667a;font-size:12px;font-weight:900}.account-filters input,.account-filters select{width:100%;min-width:0;margin:0;box-sizing:border-box}.account-filter-actions{display:flex;gap:8px;grid-column:1/-1;justify-content:flex-end}.account-filter-actions button,.account-filter-actions .button{min-width:130px;box-sizing:border-box;text-align:center}.account-ledger-panel{margin-bottom:16px}.account-ledger-panel .panel-head p{margin:4px 0 0;color:#667085}.account-ledger-table{min-width:1120px}.account-payment-table{min-width:860px}.account-ledger-table td,.account-payment-table td{vertical-align:middle}.account-ledger-table .overdue-row{background:#fff7f5}.account-overdue{color:#b42318}.account-result-count{margin:11px 16px 2px;color:#667085;text-align:right}.operation-task.tone-green{border-left-color:#19854c}
.build-serial-select{display:block;margin-top:8px;font-size:13px;font-weight:700;color:#475467}.build-serial-select select{display:block;width:100%;min-width:0;margin-top:4px}.build-serial-choice-message{display:block;margin-top:4px;color:#475467}
@media(max-width:1100px){.account-summary-grid{grid-template-columns:1fr 1fr}.account-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.account-search-field{grid-column:span 2}}
@media(max-width:760px){.account-summary-grid,.account-section-tabs{grid-template-columns:1fr 1fr}.account-filters{grid-template-columns:1fr 1fr}.account-search-field{grid-column:1/-1}.account-filter-actions{display:grid;grid-template-columns:1fr 1fr}.account-filter-actions button,.account-filter-actions .button{width:100%;min-width:0}.account-ledger-table,.account-payment-table{min-width:0}.account-credit-note{display:grid}.account-result-count{text-align:center}}
@media(max-width:430px){.account-summary-grid,.account-section-tabs,.account-filters{grid-template-columns:1fr}.account-search-field,.account-filter-actions{grid-column:auto}.account-filter-actions{grid-template-columns:1fr}}
.quote-repair-save-actions{display:grid;grid-template-columns:minmax(260px,1fr) minmax(220px,.55fr);gap:10px}.quote-repair-save-actions button{width:100%;min-height:52px}.repair-quote-return-bar{position:sticky;top:76px;z-index:19;display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 16px;padding:12px 14px;border:1px solid #a9caec;border-radius:11px;background:#f3f8ffed;box-shadow:0 6px 18px #10243812;backdrop-filter:blur(8px)}.repair-quote-return-bar div{display:grid;gap:3px}.repair-quote-return-bar span{color:#5c6e82;font-size:13px}.repair-quote-return-bar .button{flex:0 0 auto}.repair-quote-hub{margin-bottom:16px;padding:19px;border:2px solid #9fc7ef;background:linear-gradient(135deg,#f2f8ff,#fff)}.repair-quote-hub:target{box-shadow:0 0 0 4px #2d7fd32b}.repair-quote-hub-head{display:flex;align-items:flex-start;justify-content:space-between;gap:22px}.repair-quote-hub-head h2{margin:3px 0 5px;font-size:21px}.repair-quote-hub-head p{margin:0;color:#586b80}.repair-quote-amount{display:grid;justify-items:end;gap:4px;min-width:180px}.repair-quote-amount small{color:#667085;font-weight:900}.repair-quote-amount strong{color:#1264b5;font-size:26px}.repair-quote-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:15px 0}.repair-quote-facts span{display:grid;gap:4px;padding:10px 12px;border:1px solid #d3e1ef;border-radius:9px;background:#fff;color:#52657a}.repair-quote-facts b{color:#173b60;font-size:12px}.repair-quote-actions{display:flex;flex-wrap:wrap;gap:8px}.repair-quote-actions form{display:flex;margin:0}.repair-quote-actions .button,.repair-quote-actions button{min-height:42px;box-sizing:border-box;text-align:center}.quote-status-草稿{background:#e9edf2;color:#475467}.quote-status-已送出{background:#e6f0ff;color:#1469d8}.quote-status-客戶接受{background:#e3f6e9;color:#16843d}
@media(max-width:760px){.quote-repair-save-actions{grid-template-columns:1fr}.repair-quote-return-bar{top:68px;align-items:stretch;flex-direction:column}.repair-quote-return-bar .button{width:100%;box-sizing:border-box;text-align:center}.repair-quote-hub-head{display:grid}.repair-quote-amount{justify-items:start}.repair-quote-facts{grid-template-columns:1fr}.repair-quote-actions{display:grid}.repair-quote-actions form,.repair-quote-actions .button,.repair-quote-actions button{width:100%}}

/* v2.10.9 guided intake and diagnostic templates */
.diagnostic-template-panel{padding:16px;border:2px solid #79aee3;border-radius:15px;background:linear-gradient(145deg,#f7fbff,#edf6ff)}
.diagnostic-template-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.diagnostic-template-head h3{margin:0;color:#174e83}.diagnostic-template-head p{margin:4px 0 0;color:#536b7f}
.diagnostic-recommended{padding:5px 9px;border-radius:999px;background:#dff2e7;color:#12653d;font-size:.78rem;font-weight:900;white-space:nowrap}
.diagnostic-template-controls{display:grid;grid-template-columns:minmax(220px,360px) 1fr;align-items:end;gap:12px}.diagnostic-template-summary{margin:0;padding:10px 12px;border-radius:9px;background:#fff;color:#40576c;line-height:1.5}
.diagnostic-check-list{display:grid;gap:8px;margin-top:13px}.diagnostic-check-row{display:grid;grid-template-columns:minmax(240px,1.4fr) 120px minmax(180px,1fr);align-items:center;gap:9px;padding:9px 10px;border:1px solid #c6d9ea;border-radius:10px;background:#fff}.diagnostic-check-row b{line-height:1.4}.diagnostic-check-row select,.diagnostic-check-row input{margin:0;min-height:42px}
.diagnostic-template-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:13px}.diagnostic-template-actions small{color:#52677a;line-height:1.45}.diagnostic-template-actions button{background:#176cc1}.diagnostic-template-feedback{margin:9px 0 0;color:#12653d;font-weight:900}
@media(max-width:780px){.diagnostic-template-head,.diagnostic-template-controls{display:grid;grid-template-columns:1fr}.diagnostic-recommended{justify-self:start}.diagnostic-check-row{grid-template-columns:1fr}.diagnostic-template-actions button{width:100%}}

/* v2.11.8 PAYUNi concealed installment checkout */
.payuni-payment-details{margin:0 0 18px;border:1px solid #cbd7e5;border-radius:10px;background:#f8fafc}.payuni-payment-details>summary{padding:11px 14px;color:#526579;font-size:13px;font-weight:800;cursor:pointer;user-select:none}.payuni-payment-details[open]>summary{border-bottom:1px solid #d7e1ec;color:#1f5f9f}.payuni-payment-panel{margin:0;border:0;border-radius:0 0 10px 10px;background:#f4f8ff}.payuni-installment-fieldset{grid-column:span 2;min-width:0;padding:12px;border:1px solid #b9c8d8;border-radius:9px;background:#fff}.payuni-installment-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(105px,1fr));gap:8px}.payuni-installment-options label{display:flex;align-items:center;justify-content:center;gap:9px;min-width:0;padding:9px 10px;border:1px solid #d2dce7;border-radius:9px;background:#f8fbfe;cursor:pointer}.payuni-installment-options label:has(input:checked){border-color:#2477ce;background:#eaf4ff;box-shadow:inset 0 0 0 1px #2477ce}.payuni-installment-options input{flex:0 0 auto;width:18px;height:18px;margin:0}.payuni-installment-options label>span{display:grid;gap:2px;text-align:center}.payuni-installment-options b{color:#173b60}.payuni-installment-options label>span small{margin:0;color:#5e7185;font-size:11px;font-weight:800}.payuni-installment-options label:has(input:checked) small{color:#165c9e}.payuni-config-note{display:block;margin-top:9px;color:#9a5b00}.payuni-config-note code{font-weight:800}.payuni-charge-summary{grid-column:span 2;display:grid;gap:4px;padding:13px 15px;border:1px solid #8ab4df;border-radius:9px;background:#eaf4ff}.payuni-charge-summary>span{color:#526579;font-size:12px;font-weight:800}.payuni-charge-summary output{color:#0b579f;font-size:24px;font-weight:900}.payuni-charge-summary .payuni-installment-estimate-label{margin-top:7px;padding-top:8px;border-top:1px solid #b9d2eb}.payuni-charge-summary output[data-payuni-installment-payment]{color:#173b60;font-size:19px}.payuni-charge-summary small{color:#526579}@media(max-width:820px){.payuni-installment-fieldset,.payuni-charge-summary{grid-column:auto}.payuni-installment-options{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v2.11.12 per-sale customer mobile installment access */
.payuni-customer-access{margin-top:15px;padding:15px;border:2px solid #c8d6e6;border-radius:12px;background:#fff}.payuni-customer-access.is-enabled{border-color:#75bd91;background:#f4fcf7}.payuni-customer-access-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.payuni-customer-access-head h4,.payuni-counter-heading{margin:0 0 5px}.payuni-customer-access-head p{margin:0;color:#5d6e80;line-height:1.5}.payuni-customer-access>form{margin:13px 0 0}.payuni-customer-share{display:grid;grid-template-columns:150px minmax(0,1fr);gap:16px;align-items:center;margin-top:14px}.payuni-customer-share>img{width:150px;height:150px;padding:7px;border:1px solid #d3dfeb;border-radius:10px;background:#fff}.payuni-customer-share-main{display:grid;gap:9px;min-width:0}.payuni-customer-share-main input{width:100%;margin-top:5px}.payuni-customer-share-main .ops{display:flex;gap:8px;flex-wrap:wrap}.payuni-customer-share-main .ops>*{margin:0}.payuni-customer-share-main small{color:#4d6859}.payuni-counter-heading{margin-top:20px;padding-top:16px;border-top:1px solid #cdd9e6;color:#244768}@media(max-width:720px){.payuni-customer-access-head{display:grid}.payuni-customer-share{grid-template-columns:1fr}.payuni-customer-share>img{justify-self:center}.payuni-customer-share-main .ops{display:grid}.payuni-customer-share-main .ops>*{width:100%;box-sizing:border-box;text-align:center}}

/* v2.11.14 mobile click-to-call links */
.phone-link{display:inline-flex;align-items:center;gap:5px;padding:3px 7px;border-radius:7px;background:#edf6ff;color:#1264b0;font-weight:800;white-space:nowrap}.phone-link:hover{background:#dceeff;color:#084f95}.phone-link:focus-visible{outline:3px solid #ffc754;outline-offset:2px}@media(pointer:coarse){.phone-link{min-height:36px;padding:7px 10px}}

/* v2.12.1 LINE Rich Menu administration */
.line-rich-menu-panel{margin:0 18px 16px;border:1px solid var(--line);border-radius:10px;background:#fbfcfe}.line-rich-menu-grid{display:grid;grid-template-columns:minmax(360px,1.25fr) 1fr;gap:20px;align-items:center;padding:0 18px 18px}.line-rich-menu-grid img{display:block;width:100%;border:1px solid #d4dde8;border-radius:10px;background:#f4f7fb}.line-rich-menu-grid h3{margin:0 0 8px}.line-rich-menu-grid ul{margin:0 0 14px;padding-left:22px;line-height:1.75}.line-rich-menu-grid form input{display:none}@media(max-width:800px){.line-rich-menu-grid{grid-template-columns:1fr}.line-setting-actions{flex-wrap:wrap}.line-settings-grid{grid-template-columns:1fr}}
.owner-rich-menu-panel{border-color:#c9c0e8;background:linear-gradient(145deg,#fbfaff,#f5f8fc)}.line-capability-row{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 12px}.line-rich-menu-grid button:disabled{opacity:.5;cursor:not-allowed}

/* v2.13.0 vendor repair workflow and secure remembered login */
.vendor-job-list{display:grid;gap:12px}.vendor-job-card{padding:15px;border:1px solid #cad8e6;border-left:5px solid #2475c7;border-radius:11px;background:#fff}.vendor-job-card.status-已回件{border-left-color:#16834b}.vendor-job-card.status-已取消{border-left-color:#98a2b3;opacity:.78}.vendor-job-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}.vendor-job-head h3{margin:0 0 4px;color:#173b60}.vendor-job-head p{margin:0;color:#667085}.vendor-job-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-bottom:12px}.vendor-job-grid>div{min-width:0;padding:10px 11px;border:1px solid #dde5ee;border-radius:9px;background:#f8fafc}.vendor-job-grid b{color:#52677c;font-size:12px}.vendor-job-grid p{margin:5px 0 0;overflow-wrap:anywhere;line-height:1.5}.vendor-job-form .mobile-action-dock{grid-template-columns:minmax(120px,.45fr) repeat(2,minmax(190px,1fr))}.remember-login-toggle{display:flex!important;align-items:flex-start;gap:11px;padding:12px;border:1px solid #bfd3e8;border-radius:10px;background:#f3f8fe;cursor:pointer}.remember-login-toggle input{flex:0 0 22px;width:22px!important;height:22px;margin:1px 0 0!important;accent-color:#176dd0}.remember-login-toggle span{display:grid;gap:3px}.remember-login-toggle small{color:#5f7184;font-weight:400;line-height:1.45}.remember-login-toggle:has(input:checked){border-color:#176dd0;background:#eaf4ff}
@media(max-width:980px){.vendor-job-grid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.vendor-job-head{display:grid}.vendor-job-head .button{width:100%;box-sizing:border-box;text-align:center}.vendor-job-grid{grid-template-columns:1fr}.vendor-job-form .mobile-action-dock{grid-template-columns:1fr}.vendor-job-form .mobile-action-dock>*{width:100%;box-sizing:border-box;text-align:center}}

/* v2.13.1 company tax ID visibility */
.customer-quick-contact.has-tax{grid-template-columns:1fr 1fr 1fr 2fr}.customer-quick-tax span,[data-company-tax-id]{font-variant-numeric:tabular-nums;letter-spacing:.04em}
@media(max-width:900px){.customer-quick-contact.has-tax{grid-template-columns:1fr 1fr}.customer-quick-contact.has-tax .customer-quick-address{grid-column:1/-1}}
@media(max-width:560px){.customer-quick-contact.has-tax{grid-template-columns:1fr}.customer-quick-contact.has-tax .customer-quick-address{grid-column:auto}}

/* v2.14.0 simplified daily workflow, shared customer picker and handover */
.quick-intake-more{margin-top:12px}.quick-intake-fold{margin-top:14px;padding:0!important}.quick-intake-fold>summary{display:flex;justify-content:space-between;gap:12px;padding:15px 17px;cursor:pointer;list-style:none}.quick-intake-fold>summary::-webkit-details-marker{display:none}.quick-intake-fold>summary span{display:grid;gap:4px}.quick-intake-fold>summary small{color:#667085}.quick-intake-fold>summary i{font-style:normal;color:#176dd0;font-weight:900}.quick-intake-fold[open]>summary{border-bottom:1px solid #dce5ee;background:#f8fbfe}.quick-intake-save>div{display:flex;flex-wrap:wrap;gap:8px}.task-primary{background:#176dd0!important;color:#fff!important}.operation-task-actions form{display:inline-flex;margin:0}.quick-customer-picker-action{display:flex;align-items:end}.quick-customer-picker-action button{width:100%}
.customer-picker-dialog{width:min(1120px,calc(100vw - 30px));max-width:none;padding:0;border:0;border-radius:16px;box-shadow:0 22px 70px #10243855}.customer-picker-dialog::backdrop{background:#0b1b2b99;backdrop-filter:blur(2px)}.customer-picker-head{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:17px 20px;background:#143b5f;color:#fff}.customer-picker-head>div{display:grid;gap:3px}.customer-picker-head b{font-size:19px}.customer-picker-head small{color:#d5e7f7}.customer-picker-head button{min-width:42px;margin:0}.customer-picker-layout{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(430px,1.2fr);min-height:530px}.customer-picker-search{padding:18px;border-right:1px solid #dce4ed;background:#f5f8fb}.customer-picker-search label{margin:0}.customer-picker-search p,.customer-picker-form>p{min-height:20px;color:#596d81;font-size:12px}.customer-picker-results{display:grid;gap:8px;max-height:405px;overflow:auto}.customer-picker-result{display:grid;gap:5px;width:100%;padding:12px;border:1px solid #cdd9e6;background:#fff;color:#20364d;text-align:left}.customer-picker-result b{color:#164f85}.customer-picker-result span{color:#63768a;font-size:12px;font-weight:500;overflow-wrap:anywhere}.customer-picker-result.selected{border-color:#176dd0;background:#eaf4ff;box-shadow:inset 0 0 0 1px #176dd0}.customer-picker-form{padding:18px}.customer-picker-form-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.customer-picker-form-head b{font-size:18px;color:#173b60}.customer-picker-fields{grid-template-columns:1fr 1fr}.customer-picker-actions{display:flex;flex-wrap:wrap;gap:8px}.customer-picker-actions>*{margin:0}.customer-picker-form label[hidden]{display:none}.customer-picker-form #customer-picker-save-status{color:#12653d;font-weight:800}
.tax-id-feedback{display:block;margin-top:5px;line-height:1.5;color:#536477;font-size:13px}.tax-id-feedback[hidden]{display:none}.tax-id-feedback.tax-id-error{color:#b42318;font-weight:700}input[data-tax-id-check][aria-invalid="true"]{border-color:#b42318;box-shadow:0 0 0 1px #b42318}
.repair-service-presets{padding:16px;border:2px solid #9acdb3;border-radius:15px;background:linear-gradient(145deg,#f7fdf9,#edf9f2)}.repair-service-presets h3{margin:0;color:#175b3b}.repair-service-presets>div>p{margin:5px 0 13px;color:#536b60}.repair-service-preset-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.repair-service-preset-buttons button{display:grid;gap:4px;min-height:72px;padding:10px 12px;background:#fff!important;color:#214838!important;border:1px solid #bcd9c9!important;text-align:left}.repair-service-preset-buttons button:hover{border-color:#16834b!important;background:#f1faf5!important}.repair-service-preset-buttons small{color:#61786c;font-weight:500;line-height:1.4}.repair-service-presets .hint.ok{color:#12653d;font-weight:900}
.handover-toolbar{margin-bottom:15px}.handover-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin-bottom:15px}.handover-summary article{display:grid;gap:5px;padding:15px;border:1px solid #cfdae6;border-top:4px solid #176dd0;border-radius:11px;background:#fff}.handover-summary small,.handover-summary span{color:#617184}.handover-summary strong{font-size:18px;overflow-wrap:anywhere}.handover-address{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:15px;padding:14px 16px}.handover-address>div:first-child{display:grid;gap:4px}.handover-check-panel{margin-bottom:15px}.handover-check-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:13px}.handover-check{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid #d5dee8;border-radius:10px;background:#f8fafc}.handover-check>span{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:50%;background:#e6ebf0;font-weight:900}.handover-check>div{display:grid;gap:3px}.handover-check small{color:#637386}.handover-check.ok{border-color:#a9d8bb;background:#effaf3}.handover-check.ok>span{background:#16834b;color:#fff}.handover-check.blocked{border-color:#eba8a3;background:#fff3f2}.handover-check.blocked>span{background:#c82d24;color:#fff}.handover-check.attention{border-color:#e9c17c;background:#fff9ed}.handover-check.attention>span{background:#e08a13;color:#fff}.handover-blockers{margin-bottom:15px;border:2px solid #e6a29c;background:#fff7f6}.handover-blockers h2{margin-top:0;color:#9f251e}.handover-blocker-actions{display:flex;flex-wrap:wrap;gap:8px}.handover-action-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.handover-action-card{margin:0}.handover-action-card h2{margin-top:0}.handover-payment-form{display:grid;grid-template-columns:1fr 1fr;gap:10px}.handover-payment-form label{margin:0}.handover-payment-form .full{grid-column:1/-1}.handover-money{color:#b42318;font-size:23px}.handover-done{padding:12px;border-radius:9px;background:#eaf8ef;color:#12653d;font-weight:900}.handover-final{grid-column:1/-1;border:2px solid #8dc9a5;background:linear-gradient(145deg,#f2fbf5,#fff)}.handover-close-button{width:100%;min-height:54px;font-size:17px}.handover-action-card button:disabled{background:#9aa6b2;color:#fff;cursor:not-allowed}
@media(max-width:950px){.customer-picker-layout{grid-template-columns:1fr}.customer-picker-search{border-right:0;border-bottom:1px solid #dce4ed}.customer-picker-results{max-height:260px}.repair-service-preset-buttons{grid-template-columns:1fr 1fr}.handover-summary,.handover-check-grid{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.customer-picker-dialog{width:calc(100vw - 12px)}.customer-picker-head{padding:14px}.customer-picker-layout{display:block;max-height:calc(100vh - 90px);overflow:auto}.customer-picker-search,.customer-picker-form{padding:13px}.customer-picker-fields,.repair-service-preset-buttons,.handover-summary,.handover-check-grid,.handover-action-grid,.handover-payment-form{grid-template-columns:1fr}.customer-picker-actions{display:grid}.customer-picker-actions>*{width:100%;box-sizing:border-box;text-align:center}.quick-intake-save>div{display:grid;width:100%}.quick-intake-save button{width:100%}.handover-address{align-items:stretch;flex-direction:column}.handover-address .ops{display:grid}.handover-address .ops>*{width:100%;box-sizing:border-box}.handover-final,.handover-payment-form .full{grid-column:auto}}
.customer-location-dialog{width:min(620px,calc(100vw - 24px));max-height:85vh;border:1px solid #d5e1e8;border-radius:14px;padding:20px;background:#fff;color:#172b3a;box-shadow:0 20px 60px #09253855}
.customer-location-dialog::backdrop{background:#071a2b99}
.customer-location-results{display:grid;gap:9px;max-height:60vh;overflow:auto}
.customer-location-option{display:grid;gap:4px;width:100%;text-align:left;padding:12px;border:1px solid #cbdde7;border-radius:10px;background:#f7fbfd;color:#172b3a;cursor:pointer}
.customer-location-option:hover,.customer-location-option:focus-visible{border-color:#087da3;background:#eaf8fc}
.customer-location-option span{font-size:.88rem;overflow-wrap:anywhere}
.customer-location-option[hidden]{display:none}
@media(max-width:600px){
  .customer-location-list table,.customer-location-list tbody,.customer-location-list tr,.customer-location-list td{display:block;width:100%}
  .customer-location-list thead{display:none}
  .customer-location-list tbody{padding:8px}
  .customer-location-list tr{margin:0 0 10px;padding:10px;border:1px solid #d9e3e9;border-radius:10px;background:#fff}
  .customer-location-list td{display:flex;gap:10px;align-items:flex-start;padding:5px 2px;border:0;overflow-wrap:anywhere}
  .customer-location-list td::before{flex:0 0 72px;color:#526878;font-weight:600}
  .customer-location-list td:nth-child(1)::before{content:'分店'}
  .customer-location-list td:nth-child(2)::before{content:'地址'}
  .customer-location-list td:nth-child(3)::before{content:'聯絡人'}
  .customer-location-list td:nth-child(4)::before{content:'狀態'}
  .customer-location-list td:nth-child(5)::before{content:'操作'}
}
.ocr-review-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}.ocr-review-grid img{display:block;width:100%;max-height:600px;object-fit:contain;border:1px solid #dce3ec;border-radius:8px}.ocr-review-grid img[hidden]{display:none}.ocr-review-grid ol{max-height:420px;overflow:auto;padding-left:24px;white-space:pre-wrap;overflow-wrap:anywhere}.ocr-suggestion{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin:8px 0;padding:8px;border:1px solid #b9d8e9;border-radius:8px}.ocr-low-confidence{color:#a53417;font-weight:700}@media(max-width:720px){.ocr-review-grid{grid-template-columns:1fr}}
