*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans TC",sans-serif;background:#f4f7fb;color:#172033}header{background:#15243b;color:#fff;padding:14px 5%;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.brand{font-weight:800;font-size:20px}nav{display:flex;gap:8px;flex-wrap:wrap}nav a{color:#fff;text-decoration:none;padding:8px 10px;border-radius:8px}nav a:hover{background:#ffffff20}main{max-width:1200px;margin:25px auto;padding:0 16px}h1{font-size:28px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.card,.login-card{background:#fff;border-radius:16px;padding:22px;box-shadow:0 6px 24px #1b2b4420}.login-card{max-width:420px;margin:8vh auto}.wide{grid-column:auto}label{display:block;font-weight:700;margin:12px 0 5px}input,select,textarea{width:100%;padding:12px;border:1px solid #ced6e0;border-radius:9px;font:inherit;background:#fff}textarea{min-height:90px}button,.button{border:0;background:#1677ff;color:#fff;padding:12px 16px;border-radius:10px;font-weight:700;cursor:pointer;text-decoration:none;display:inline-block;margin:4px}.danger{background:#d83a42}.actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.actions button{font-size:18px;padding:18px}.flash{padding:12px;border-radius:10px;margin-bottom:12px}.success,.ok{background:#dcf7e7;color:#096b35}.danger,.bad{background:#ffe1e1;color:#941d1d}.hint{color:#697386}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;background:#fff}th,td{text-align:left;padding:11px;border-bottom:1px solid #e8edf3;white-space:nowrap}.request{border-bottom:1px solid #e6ebf1;padding:14px 0}.badge{background:#edf3ff;padding:5px 9px;border-radius:20px}.request form{display:flex;gap:6px;align-items:center;margin-top:8px}.request form input{flex:1}.punch #result{margin-top:12px;padding:10px;border-radius:8px}@media(max-width:760px){.grid{grid-template-columns:1fr}header{align-items:flex-start}nav{width:100%;overflow-x:auto;flex-wrap:nowrap}h1{font-size:24px}.card{padding:16px}}

.page-head,.repair-actions{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap}.secondary{background:#667085}.repair-form-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.repair-form-grid label{margin:0}.span2{grid-column:span 2}.repair-sheet{background:#fff;padding:18px;overflow:auto}.repair-title{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:end}.repair-title h1{text-align:center}.repair-title>div:last-child{text-align:right}.red{color:#c52222}.repair-table{border-collapse:collapse;min-width:1000px}.repair-table th,.repair-table td{border:1px solid #333;padding:7px;white-space:normal;vertical-align:top}.repair-table th{background:#eee;font-weight:500}.repair-content{height:300px}.pre{white-space:pre-wrap}.sign-row{height:100px}.customer-sign img{max-width:180px;max-height:90px}.signature-panel{max-width:800px;margin:20px auto}.signature-panel canvas{width:100%;height:220px;border:2px solid #333;background:#fff;touch-action:none}@media(max-width:760px){.repair-form-grid{grid-template-columns:1fr 1fr}}@media print{header,.no-print{display:none!important}main{max-width:none;margin:0;padding:0}.repair-sheet{padding:0}.repair-table{min-width:0;font-size:10px}.repair-content{height:220px}@page{size:A4 landscape;margin:8mm}}

/* 2026-08: 維修/保養報告單 - 依紙本照片版型 */
.repair-page-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:14px}.repair-page-head h1{margin-bottom:4px}.repair-edit-card{background:#fff;border-radius:14px;padding:24px;box-shadow:0 6px 24px #1b2b4420}.report-form-title{text-align:center;font-size:24px;font-weight:800;letter-spacing:.12em;margin:0 0 20px}.report-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.report-form-grid label{margin:0}.report-form-grid .span3{grid-column:span 3}.report-form-grid textarea{min-height:150px;line-height:1.75}.report-form-grid textarea[name="repair_content"]{min-height:230px}.warranty-options{height:46px;display:flex;align-items:center;gap:26px;border:1px solid #ced6e0;border-radius:9px;padding:0 12px}.warranty-options label{display:flex;align-items:center;gap:7px;font-weight:500}.warranty-options input{width:auto}.form-actions{margin-top:18px;display:flex;gap:8px;flex-wrap:wrap}
.paper-repair-report{width:min(100%,900px);min-height:1120px;margin:18px auto;background:#fff;padding:58px 74px 54px;box-shadow:0 5px 25px #1b2b4425;color:#343434;font-family:"Noto Serif TC","PMingLiU","MingLiU",serif}.paper-company{text-align:center;font-size:20px;letter-spacing:.08em;margin-bottom:15px}.paper-company span{font-size:15px;margin-left:12px;text-decoration:underline;text-underline-offset:3px}.paper-title{text-align:center;font-size:22px;letter-spacing:.22em;margin-bottom:20px}.paper-row{display:flex;gap:22px;min-height:38px;align-items:center}.paper-row.top-line{border-top:1.4px solid #555;padding-top:8px}.paper-field{display:flex;align-items:center;gap:6px;min-width:0}.paper-field.grow{flex:1}.paper-field.date-field{width:40%}.instrument-row{gap:18px}.instrument-row .paper-field{flex:1}.paper-label{color:#666;white-space:nowrap;font-size:14px}.warranty-row{margin-top:2px}.check-box{display:inline-flex;width:19px;height:19px;border:1px solid #777;align-items:center;justify-content:center;font-family:sans-serif;font-weight:700;margin:0 3px 0 10px}.slash{margin:0 7px;color:#777}.paper-section{margin-top:10px}.section-label{margin-bottom:4px}.lined-writing{position:relative;border-top:1px solid #777;background:repeating-linear-gradient(to bottom,transparent 0,transparent 43px,#8f8f8f 44px);padding:6px 12px;line-height:44px}.issue-writing{height:260px}.processing-section{margin-top:22px}.processing-writing{height:340px}.paper-pre{white-space:pre-wrap;font-family:"Noto Sans TC","Microsoft JhengHei",sans-serif;font-size:19px;line-height:44px;color:#222}.paper-signatures{display:grid;grid-template-columns:1fr 1fr;gap:55px;margin-top:25px;padding-top:12px}.signature-cell{display:flex;align-items:flex-start;min-height:100px}.engineer-sign-text{font-size:30px;margin:26px 0 0 14px;font-family:"DFKai-SB","BiauKai",cursive}.saved-customer-sign{height:95px;display:flex;align-items:center;justify-content:center;flex:1}.saved-customer-sign img{max-height:88px;max-width:245px}.unsigned{color:#aaa;font-family:sans-serif;font-size:13px}.repair-no-printline{text-align:right;color:#888;font:12px sans-serif;margin-top:10px}.signature-panel{max-width:850px;margin:20px auto;background:#fff;padding:20px;border-radius:14px;box-shadow:0 6px 24px #1b2b4420}.signature-panel-title{font-size:20px;font-weight:800;margin-bottom:5px}.signature-panel canvas{display:block;width:100%;height:240px;border:1.5px solid #777;background:#fff;touch-action:none;border-radius:4px}.signature-actions{margin-top:10px;display:flex;gap:8px}.signature-panel #sigMsg{margin-top:8px;font-weight:700}
@media(max-width:760px){.report-form-grid{grid-template-columns:1fr}.report-form-grid .span3{grid-column:span 1}.paper-repair-report{padding:30px 24px;min-height:0}.paper-company{font-size:17px}.paper-company span{display:block;margin:7px 0 0}.paper-row{flex-wrap:wrap;gap:7px}.paper-field.date-field{width:100%}.instrument-row .paper-field{flex-basis:100%}.paper-signatures{grid-template-columns:1fr;gap:15px}.issue-writing{height:230px}.processing-writing{height:300px}}
@media print{body{background:#fff}.paper-repair-report{box-shadow:none;width:100%;min-height:0;margin:0;padding:11mm 14mm 9mm}.paper-company{font-size:15pt}.paper-company span{font-size:10pt}.paper-title{font-size:16pt}.paper-label{font-size:9.5pt}.paper-row{min-height:8mm}.paper-pre{font-size:12pt;line-height:9mm}.lined-writing{background:repeating-linear-gradient(to bottom,transparent 0,transparent 8.7mm,#888 8.9mm);line-height:9mm}.issue-writing{height:47mm}.processing-writing{height:69mm}.paper-signatures{margin-top:5mm}.engineer-sign-text{font-size:22pt}.saved-customer-sign img{max-height:22mm}.paper-repair-report{page-break-inside:avoid}@page{size:A4 portrait;margin:0}}

.line-link-box{display:flex;gap:8px}.line-link-box input{flex:1;padding:10px;border:1px solid #ccc;border-radius:8px}
