@font-face{font-family:IGThai;src:url('/assets/fonts/NotoSansThai-Regular.ttf') format('truetype');font-display:swap}
:root{color-scheme:light;--ink:#17212a;--muted:#65717b;--line:#dce2e4;--paper:#f3f4f2;--surface:#fff;--soft:#f7f8f7;--accent:#3d2aa5;--accent-dark:#261b75;--accent-soft:#efedfb;--warm:#bd704c;--danger:#b5413d;--shadow:0 14px 45px rgba(24,35,42,.07)}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;min-width:320px;background:var(--paper);color:var(--ink);font:15px/1.65 IGThai,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
button,input,select,textarea{font:inherit}
button,a{-webkit-tap-highlight-color:transparent}
button{cursor:pointer}
img{max-width:100%}
[hidden]{display:none!important}
.work-app{width:min(1120px,100% - 32px);margin:0 auto;padding:22px 0 28px}
.work-header{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 20px}
.brand-lockup{display:grid;grid-template-columns:46px auto;grid-template-rows:auto auto;column-gap:10px;align-items:center;color:inherit;text-decoration:none}
.brand-lockup img{grid-column:1;grid-row:1/3;width:46px;height:46px;object-fit:contain}
.brand-wordmark{grid-column:2;grid-row:1;font:800 22px/1.15 Arial,IGThai,sans-serif;letter-spacing:-.8px}
.brand-wordmark b{color:var(--accent);font-weight:800}
.brand-caption{grid-column:2;grid-row:2;color:var(--muted);font-size:11px;line-height:1.4;letter-spacing:.03em}
.header-actions,.toolbar-actions,.tracking-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.quiet-link{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:7px 11px;color:var(--muted);font-size:13px;text-decoration:none}
.quiet-link:hover{color:var(--accent-dark);text-decoration:underline;text-underline-offset:4px}
.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;border:1px solid transparent;border-radius:11px;padding:9px 16px;font-weight:750;text-align:center;text-decoration:none;transition:background .16s ease,border-color .16s ease,transform .16s ease}
.button:active{transform:translateY(1px)}
.button:focus-visible,.quiet-link:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(61,42,165,.22);outline-offset:2px}
.button-primary{background:var(--accent);color:#fff}
.button-primary:hover{background:var(--accent-dark)}
.button-outline{border-color:var(--line);background:#fff;color:var(--ink)}
.button-outline:hover{border-color:#a9c9c2;background:#f9fcfb}
.button-large{min-height:52px;padding:12px 24px;font-size:16px}
.hero-card{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-bottom:18px;padding:26px 30px;border:1px solid #e9ecea;border-radius:20px;background:linear-gradient(118deg,#fff 12%,#f7faf8 100%);box-shadow:var(--shadow)}
.eyebrow{margin:0 0 5px;color:var(--accent);font:800 10px/1.3 Arial,IGThai,sans-serif;letter-spacing:1.5px}
h1,h2,h3,p{margin-top:0}
h1{margin-bottom:7px;font-size:clamp(25px,4vw,36px);line-height:1.25;letter-spacing:-.03em}
.hero-copy{max-width:660px;margin:0;color:var(--muted);font-size:14px}
.step-track{display:flex;align-items:center;gap:11px;flex:0 0 auto;color:#8b959b;font-size:12px;white-space:nowrap}
.step{display:flex;align-items:center;gap:7px}
.step b{display:grid;width:29px;height:29px;place-items:center;border:1px solid var(--line);border-radius:50%;font:800 10px Arial,sans-serif}
.step.active{color:var(--accent-dark);font-weight:750}
.step.active b{border-color:var(--accent);background:var(--accent);color:#fff}
.step-line{width:36px;height:1px;background:#d4dcda}
.form-section{margin:14px 0;padding:23px 26px 25px;border:1px solid #e7ebea;border-radius:17px;background:var(--surface);box-shadow:0 5px 18px rgba(24,35,42,.035)}
.section-heading{display:flex;align-items:flex-start;gap:13px;margin-bottom:20px}
.section-heading-between{justify-content:space-between;align-items:center}
.heading-title{display:flex;align-items:flex-start;gap:13px}
.section-number{display:grid;flex:0 0 auto;width:34px;height:34px;place-items:center;border-radius:10px;background:var(--accent-soft);color:var(--accent-dark);font:800 11px Arial,sans-serif}
.section-heading h2,.admin-toolbar h2{margin:0 0 3px;font-size:18px;line-height:1.4}
.section-heading p,.muted-copy{margin:0;color:var(--muted);font-size:12px}
.field-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px 14px}
.field{display:flex;flex-direction:column;gap:6px;min-width:0;color:#37444d;font-size:13px;font-weight:700}
.field>span{line-height:1.45}
.field i,.choice-row legend i{color:var(--danger);font-style:normal}
.field input,.field select,.field textarea{width:100%;min-height:45px;border:1px solid #dce2e3;border-radius:10px;background:#fff;padding:9px 11px;color:var(--ink);font-size:14px;font-weight:400}
.field textarea{min-height:90px;resize:vertical}
.field input::placeholder,.field textarea::placeholder{color:#9aa3a7}
.field small{color:var(--muted);font-size:11px;font-weight:400;line-height:1.55}
.span-2{grid-column:span 2}
.device-list{display:grid;gap:14px}
.device-card{overflow:hidden;border:1px solid #dfe7e3;border-radius:15px;background:#fbfcfb}
.device-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 17px;border-bottom:1px solid #e8edeb;background:#f5f8f6}
.device-card-head h3{display:flex;align-items:center;gap:9px;margin:0;font-size:15px}
.device-index{display:grid;width:27px;height:27px;place-items:center;border-radius:50%;background:#fff;color:var(--accent-dark);font:800 11px Arial,sans-serif;box-shadow:0 1px 5px #10201612}
.remove-device{border:0;background:transparent;color:#9a6254;font-size:12px;text-decoration:underline;text-underline-offset:3px}
.device-card-body{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:18px;padding:17px}
.device-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.device-fields .wide{grid-column:1/-1}
.device-image-wrap{display:flex;flex-direction:column;gap:8px;align-items:center;justify-content:flex-start;min-width:0}
.device-image{display:block;width:100%;height:150px;object-fit:contain;border:1px solid #e5e9e7;border-radius:12px;background:#f4f7f6}
.image-caption{margin:0;color:var(--muted);font-size:10px;text-align:center;line-height:1.45}
.image-gen-button{min-height:36px;padding:6px 10px;font-size:11px}
.image-ai{color:#8c6043}
.device-list-limit{color:var(--muted);font-size:11px}
.choice-row{display:flex;align-items:center;gap:10px 20px;flex-wrap:wrap;margin:0;padding:0;border:0}
.choice-row legend{width:100%;margin-bottom:12px;font-size:13px;font-weight:700}
.choice{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:7px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:13px}
.choice input,.terms-list input,.consent-row input{width:18px;height:18px;accent-color:var(--accent);flex:0 0 auto}
.terms-list{display:grid;gap:9px;padding:0;counter-reset:item;list-style:none}
.terms-list li{counter-increment:item}
.terms-list li label{display:grid;grid-template-columns:21px minmax(0,1fr);align-items:start;gap:10px;padding:12px 13px;border:1px solid #e7ebea;border-radius:11px;background:#fbfcfb;color:#3b474e;font-size:12px;line-height:1.65}
.terms-list li label:before{content:counter(item);grid-column:1;grid-row:1;display:grid;width:21px;height:21px;place-items:center;border-radius:50%;background:#eef2f0;color:#5a696a;font:800 10px Arial,sans-serif}
.terms-list li[value="6"]{counter-reset:item 5}
.terms-list li[value="7"]{counter-reset:item 6}
.terms-list li[value="8"]{counter-reset:item 7}
.terms-list input{grid-column:2;grid-row:1;margin:2px 0 0}
.terms-list li label span{grid-column:2;grid-row:1;margin-left:28px}
.consent-row{display:grid;grid-template-columns:20px 1fr;gap:10px;align-items:start;margin:16px 0;padding:13px 14px;border-radius:11px;background:#f2f8f5;color:#314a43;font-size:12px;line-height:1.55}
.consent-row input{margin:1px 0 0}
.signature-field{max-width:540px;margin-top:15px}
.signature-block{display:flex;flex-direction:column;gap:8px;max-width:700px;margin-top:16px;color:#37444d;font-size:13px;font-weight:700}
.signature-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}
.signature-heading i{color:var(--danger);font-style:normal}
.signature-heading .button{min-height:35px;padding:5px 11px;font-size:11px}
#customerSignatureCanvas{display:block;width:100%;height:auto;aspect-ratio:700/220;border:1px solid #cbd6d4;border-radius:11px;background:#fff;touch-action:none;cursor:crosshair}
#customerSignatureCanvas:focus-visible{outline:3px solid rgba(61,42,165,.22);outline-offset:2px}
.signature-block small{color:var(--muted);font-size:11px;font-weight:400}
.admin-passcode{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:9px 0;padding:9px 11px;border:1px solid var(--line);border-radius:9px;background:#fff;color:#37444d;font-size:12px}
.admin-passcode code{font:700 13px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;overflow-wrap:anywhere}
.print-signature{display:block;width:280px;max-height:100px;object-fit:contain;object-position:left center}
.form-submit-area{display:flex;flex-direction:column;align-items:center;gap:9px;margin:20px 0 0;padding:18px 16px}
.form-message{min-height:20px;margin:0;color:var(--danger);font-size:13px;text-align:center}
.form-message.success{color:var(--accent-dark)}
.form-footnote{max-width:620px;margin:0;color:var(--muted);font-size:11px;text-align:center}
.queue-ticket{display:flex;flex:0 0 auto;flex-direction:column;align-items:flex-end;padding:12px 17px;border:1px dashed #a7c3bb;border-radius:13px;background:#f3faf7}
.queue-ticket span{color:var(--muted);font:800 9px Arial,sans-serif;letter-spacing:1.4px}
.queue-ticket b{color:var(--accent-dark);font:800 29px/1.25 Arial,sans-serif;letter-spacing:3px}
.queue-ticket small{color:var(--muted);font-size:10px}
.tracking-tools{justify-content:flex-end;margin:4px 0 14px}
.tracking-device-list{display:grid;gap:14px}
.tracking-device{display:grid;grid-template-columns:180px minmax(0,1fr);gap:20px;padding:18px;border:1px solid #e2e8e5;border-radius:16px;background:#fff;box-shadow:0 5px 18px rgba(24,35,42,.035)}
.tracking-device-image{width:100%;height:150px;object-fit:contain;border:1px solid #e8ecea;border-radius:12px;background:#f5f7f6}
.tracking-device-content{min-width:0}
.tracking-device-title{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:9px}
.tracking-device-title h2{margin:0;font-size:18px}
.status-pill{display:inline-flex;align-items:center;min-height:29px;padding:4px 11px;border:1px solid #cde2db;border-radius:100px;background:#edf7f3;color:#1c6659;font-size:11px;font-weight:750;white-space:nowrap}
.device-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 15px;margin:0 0 13px;color:#4e5b61;font-size:12px}
.device-meta b{color:#26353a}
.inspection-note{margin:10px 0;padding:11px 13px;border-radius:10px;background:#f7f8f7;color:#435057;font-size:12px;white-space:pre-wrap}
.estimate-card{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 0;padding:12px 14px;border:1px solid #e7dfc8;border-radius:11px;background:#fbf8ef;font-size:12px}
.estimate-card b{color:#7b5a22;font-size:16px}
.decision-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.button-danger{border-color:#edcbc7;background:#fff8f7;color:#983e36}
.timeline{display:flex;gap:0;overflow:auto;margin-top:13px;padding:3px 0 8px}
.timeline-item{position:relative;flex:1 0 110px;min-width:0;padding:19px 10px 0 0;color:#879196;font-size:10px;line-height:1.4}
.timeline-item:before{position:absolute;top:6px;left:1px;width:9px;height:9px;border:2px solid #d7dfdc;border-radius:50%;background:#fff;content:""}
.timeline-item:after{position:absolute;top:10px;left:12px;width:calc(100% - 8px);height:1px;background:#dfe5e2;content:""}
.timeline-item:last-child:after{display:none}
.timeline-item.current{color:var(--accent-dark);font-weight:750}
.timeline-item.current:before{border-color:var(--accent);background:var(--accent)}
.timeline-item time{display:block;margin-top:3px;color:#97a0a4;font-size:9px;font-weight:400}
.login-card{width:min(420px,100%);margin:28px auto;padding:24px;border:1px solid #e3e9e6;border-radius:17px;background:#fff;box-shadow:var(--shadow)}
.login-card h2{margin:0 0 3px;font-size:20px}
.login-card>p:not(.form-message){margin:0 0 16px;color:var(--muted);font-size:12px}
.login-card .button{width:100%;margin-top:10px}
.admin-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:18px 0 13px}
.admin-layout{display:grid;grid-template-columns:310px minmax(0,1fr);align-items:start;gap:14px}
.admin-repair-list,.admin-repair-detail{min-width:0;border:1px solid #e2e8e5;border-radius:15px;background:#fff}
.admin-repair-list{overflow:hidden}
.repair-list-item{display:flex;width:100%;flex-direction:column;gap:2px;padding:13px 15px;border:0;border-bottom:1px solid #edf0ee;background:#fff;text-align:left}
.repair-list-item:last-child{border-bottom:0}
.repair-list-item:hover,.repair-list-item.selected{background:#f0f7f4}
.repair-list-item b{font:800 14px Arial,sans-serif;letter-spacing:1px}
.repair-list-item span,.repair-list-item small{color:var(--muted);font-size:11px}
.admin-repair-detail{padding:17px}
.admin-repair-detail h2{margin:0 0 4px;font-size:19px}
.admin-customer-summary{display:flex;gap:7px 16px;flex-wrap:wrap;margin:7px 0 15px;padding:11px;border-radius:10px;background:#f6f8f6;color:#445157;font-size:12px}
.admin-device-editor{margin:12px 0;padding:13px;border:1px solid #e4e9e7;border-radius:12px;background:#fbfcfb}
.admin-device-editor h3{margin:0 0 8px;font-size:14px}
.admin-device-editor .field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.admin-device-editor .field{font-size:11px}
.admin-device-editor .field input,.admin-device-editor .field select,.admin-device-editor .field textarea{min-height:40px;font-size:12px}
.admin-device-editor .field textarea{min-height:67px}
.admin-device-editor .editor-actions{display:flex;justify-content:flex-end;margin-top:10px}
.admin-device-editor .editor-actions .button{min-height:39px;font-size:12px}
.admin-link-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.empty-state{padding:30px 16px;color:var(--muted);font-size:13px;text-align:center}
.work-footer{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:22px 2px 0;padding:15px 3px;border-top:1px solid #dfe4e2;color:var(--muted);font-size:10px}
.work-footer div{display:flex;gap:10px;flex-wrap:wrap}
.work-footer b{color:#39464c;font:800 11px Arial,IGThai,sans-serif}
.work-footer span{color:var(--muted)}
.tracking-hero{margin-bottom:13px}
.tracking-customer{margin:9px 0 0;color:var(--accent-dark);font-size:13px;font-weight:750}
.admin-hero{margin-bottom:13px}
.admin-search{display:flex;align-items:end;gap:9px;flex-wrap:wrap;margin:0 0 13px}
.admin-search .field{width:min(260px,100%)}
.admin-search .button{min-height:45px}
.admin-model-image{display:grid;grid-template-columns:90px minmax(0,1fr);gap:12px;align-items:center;margin:11px 0;padding:10px;border:1px solid var(--line);border-radius:11px;background:#fbfcff}
.admin-model-image img{width:90px;height:90px;object-fit:contain;border-radius:8px;background:#fff}
.admin-model-image .button{min-height:35px;margin-top:8px;padding:6px 10px;font-size:11px}
.admin-model-image small{display:block;margin-top:6px;color:var(--muted);font-size:10px}
#adminPrintView:not([hidden]){display:block}
.receipt-toolbar{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:16px}
.receipt-paper{max-width:900px;margin:0 auto;padding:26px;background:#fff;border:1px solid var(--line);border-radius:12px}
.receipt-device{display:flow-root;overflow-wrap:anywhere}
.receipt-device-image{float:right;width:100px;height:100px;object-fit:contain;margin:0 0 8px 14px}
.receipt-passcode{white-space:pre-wrap;font-family:monospace}
.print-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}
.print-heading h1{margin:0}
.print-heading>b{font:800 21px Arial,sans-serif}
.print-block{margin:11px 0;padding:13px 15px;border:1px solid #cfd5d9;border-radius:9px;break-inside:avoid}
.print-block h2{margin:0 0 7px;font-size:15px}
.print-block p{margin:4px 0;font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere}
.print-terms{margin:0 0 10px;padding-left:22px}
.print-terms li{margin:7px 0;font-size:13px;line-height:1.7;overflow-wrap:anywhere}
@media(max-width:500px){.receipt-paper{padding:14px}.print-heading{align-items:flex-start;flex-direction:column}.print-heading>b{font-size:18px}.receipt-device-image{width:70px;height:70px}.receipt-toolbar .button{font-size:12px}}
@media(max-width:760px){.work-app{width:min(100% - 22px,650px);padding-top:13px}.work-header{align-items:flex-start}.header-actions{gap:1px}.quiet-link{min-height:40px;padding:6px 8px;font-size:11px}.header-actions .button{min-height:40px;padding:7px 10px;font-size:11px}.hero-card{align-items:flex-start;flex-direction:column;padding:21px 20px;gap:16px}.step-track{align-self:flex-start}.form-section{padding:18px 16px 20px}.field-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.device-card-body{grid-template-columns:minmax(0,1fr) 150px;gap:12px;padding:13px}.device-image{height:125px}.tracking-device{grid-template-columns:128px minmax(0,1fr);gap:13px;padding:13px}.tracking-device-image{height:125px}.admin-layout{grid-template-columns:1fr}.admin-repair-list{max-height:260px;overflow:auto}.admin-toolbar{align-items:flex-start}.tracking-tools{justify-content:flex-start}.queue-ticket{align-items:flex-start}.work-footer{margin-top:17px}}
@media(max-width:500px){.brand-lockup{grid-template-columns:39px auto;column-gap:8px}.brand-lockup img{width:39px;height:39px}.brand-wordmark{font-size:18px}.brand-caption{font-size:10px}.header-actions{flex-direction:column;align-items:flex-end}.hero-card{padding:19px 16px;border-radius:16px}.hero-copy{font-size:12px}.form-section{padding:16px 13px}.section-heading h2{font-size:16px}.section-heading p{font-size:11px}.section-heading-between{align-items:flex-start}.section-heading-between>.button{min-height:39px;padding:7px 10px;font-size:11px;white-space:nowrap}.customer-fields .span-2{grid-column:1/-1}.device-card-head{padding:11px 12px}.device-card-body{grid-template-columns:1fr}.device-fields{grid-template-columns:1fr}.device-fields .wide{grid-column:auto}.device-image-wrap{grid-row:1}.device-image{height:145px}.terms-list li label{font-size:11px;padding:10px}.tracking-device{grid-template-columns:1fr}.tracking-device-image{height:170px}.tracking-device-title{align-items:flex-start;flex-direction:column;gap:6px}.device-meta{grid-template-columns:1fr}.timeline-item{flex-basis:100px}.admin-toolbar{flex-direction:column}.toolbar-actions{width:100%}.admin-device-editor .field-grid{grid-template-columns:1fr}.work-footer{font-size:9px}}
@media print{body{background:#fff}.work-app{width:100%;padding:0}.work-header{display:flex!important;margin-bottom:12px}.header-actions,.tracking-tools,.admin-hero,.work-footer,.receipt-toolbar{display:none!important}.page-view:not(#trackingView){display:none!important}#trackingView{display:block!important}body.admin-print #trackingView{display:none!important}body.admin-print #adminPrintView{display:block!important}.hero-card,.tracking-device{box-shadow:none;border-color:#bbb;break-inside:avoid}.tracking-device{grid-template-columns:150px minmax(0,1fr);margin-bottom:10px}.tracking-device-image{height:130px}.timeline{overflow:visible}.timeline-item{flex-basis:auto}.timeline-item:after{width:calc(100% - 8px)}}

@media print{body.admin-print .receipt-paper{max-width:none;padding:0;border:0;border-radius:0}body.admin-print .print-heading{flex-direction:row;align-items:center}body.admin-print .print-block p{font-size:9pt}body.admin-print .print-terms li{font-size:9pt;line-height:1.55;break-inside:avoid}body.admin-print .receipt-terms,body.admin-print .receipt-device{break-inside:auto}body.admin-print .print-block h2{break-after:avoid}body.admin-print .print-signature{break-inside:avoid}body.admin-print .receipt-device-image{width:80px;height:80px}}
