:root{--b:#1f3a5f;--a:#e07a1f;--bg:#f3f5f8;--r:14px}
*{box-sizing:border-box}
body{margin:0;font:17px/1.4 -apple-system,system-ui,Segoe UI,Roboto,sans-serif;background:var(--bg);color:#1b1f24;-webkit-text-size-adjust:100%}
header{position:sticky;top:0;z-index:5;background:var(--b);color:#fff;display:flex;justify-content:space-between;align-items:center;padding:calc(env(safe-area-inset-top) + 10px) 16px 10px}
.brand{font-weight:700;font-size:18px}.brand span{color:#ffc58a}
header .ghost{color:#fff;border-color:#ffffff55;font-size:22px;min-height:44px;width:48px}
main{max-width:1180px;margin:0 auto;padding:12px 12px calc(env(safe-area-inset-bottom) + 24px)}
.card{background:#fff;border-radius:var(--r);padding:14px 16px;margin-bottom:12px;box-shadow:0 1px 3px #0001}
h2{font-size:16px;text-transform:uppercase;letter-spacing:.04em;color:var(--b);margin:2px 0 10px}
label{display:block;font-size:14px;color:#555;margin:8px 0}
.label{font-size:14px;color:#555;margin:8px 0 4px}
input,select,textarea{display:block;width:100%;margin-top:4px;font:inherit;font-size:17px;padding:12px;border:1px solid #cfd6df;border-radius:10px;background:#fff;color:#111;min-height:48px}
textarea{resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid var(--a);border-color:transparent}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.row3{display:grid;grid-template-columns:2fr 1fr 1.3fr;gap:10px}
.row2 label,.row3 label{margin:4px 0}
.chk{display:flex;align-items:center;gap:12px;font-size:16px;color:#222;min-height:48px;margin:0;padding:4px 0}
.chk input{width:26px;height:26px;min-height:0;margin:0;flex:none;accent-color:var(--b)}
.checks.inline{display:flex;gap:24px}
.seg{display:grid;grid-template-columns:1fr 1fr;gap:6px;background:#e6eaf0;padding:5px;border-radius:12px}
.seg button{border:0;background:transparent;padding:14px 8px;font:inherit;font-weight:600;border-radius:9px;color:#334;min-height:52px}
.seg button.on{background:var(--b);color:#fff}
button{font:inherit;cursor:pointer}
.primary{background:var(--a);color:#fff;border:0;border-radius:12px;padding:16px;font-weight:700;font-size:18px;min-height:56px}
.ghost{background:transparent;border:1px solid #c5ccd6;border-radius:12px;padding:12px;min-height:50px}
.link{background:none;border:0;color:var(--b);padding:10px 0;font-weight:600;min-height:44px}
.actions{display:grid;grid-template-columns:2fr 1fr;gap:10px;margin-top:4px}
.muted{color:#667}.small{font-size:13px}
canvas{width:100%;height:170px;border:1px dashed #9aa7b5;border-radius:10px;background:#fbfcfd;touch-action:none;display:block}
.ac{position:relative}
.sugg{position:absolute;left:0;right:0;top:100%;z-index:10;list-style:none;margin:2px 0 0;padding:0;background:#fff;border:1px solid #cfd6df;border-radius:10px;box-shadow:0 6px 18px #0002;max-height:300px;overflow:auto}
.sugg li{padding:14px 12px;border-bottom:1px solid #eee;color:#111;font-size:16px}.sugg li small{color:#777;display:block}
.sugg li:active,.sugg li.hl{background:#fff3e6}
.legal{font-size:13px;color:#333;max-height:50vh;overflow:auto}.legal p{margin:6px 0}
summary{font-weight:600;color:var(--b);min-height:40px;display:flex;align-items:center}
dialog{border:0;border-radius:16px;width:min(92vw,460px);padding:18px}dialog::backdrop{background:#0006}
menu{display:flex;gap:10px;justify-content:flex-end;padding:0;margin:14px 0 0}
#customList{padding-left:18px}#customList li{display:flex;justify-content:space-between;align-items:center}
body.t-roof .service, body.t-service .roof{display:none}
.sigs{display:grid;gap:12px}
@media (min-width:900px){
 body{font-size:16px}
 .grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}
 .grid .card{margin:0}.full{grid-column:1/-1}
 .sigs{grid-template-columns:1fr 1fr}
 canvas{height:150px}
 .actions{max-width:520px;margin:16px 0 0 auto}
 .seg{max-width:620px}
}

.sugg li.info{color:#667;font-style:italic}

.hdr{display:flex;gap:8px;align-items:center}
.badge{background:#ffc58a;color:#1f3a5f;border:0;border-radius:20px;padding:8px 12px;font-weight:700;min-height:40px}
.badge.err{background:#ffb3b3}
#review{width:min(96vw,760px)}
#rvFrame{width:100%;height:45vh;border:1px solid #ddd;border-radius:10px;background:#eee}
.rvbox{border-top:1px solid #eee;margin-top:10px;padding-top:6px}
.ok{color:#17803d}.bad{color:#b42318}

#gate{display:none;position:fixed;inset:0;z-index:100;background:var(--b);align-items:center;justify-content:center;padding:24px}
body.locked #gate{display:flex}body.locked header,body.locked main{display:none}
.gcard{background:#fff;border-radius:18px;padding:28px 22px;max-width:380px;width:100%;text-align:center}
.gcard h1{font-size:22px;color:var(--b);margin:10px 0 6px}.gcard .primary{width:100%;margin-top:10px}
#gateMsg.bad{color:#b42318;font-weight:600}
