:root{--green:#1f4d3a;--deep:#143528;--cream:#f6f0e6;--paper:#fffaf2;--gold:#c4a35a;--ink:#1a1f1c;--muted:#58645b;--line:#d9d0c2;--red:#852b2b;font-family:Inter,"Segoe UI",system-ui,sans-serif;color:var(--ink);background:var(--cream);line-height:1.55}*{box-sizing:border-box}body{margin:0}a{color:var(--green);text-underline-offset:4px}button,input,select,textarea{font:inherit}button,.button{min-height:44px;border:1px solid var(--green);background:var(--green);color:white;border-radius:8px;padding:10px 17px;font-weight:650;cursor:pointer}button:hover{background:var(--deep)}button.secondary{background:transparent;color:var(--green)}button:disabled{opacity:.55;cursor:wait}input,select,textarea{width:100%;min-height:44px;border:1px solid #a99f91;border-radius:7px;padding:9px 11px;background:white;color:var(--ink)}input[type=checkbox]{width:20px;min-height:20px;flex:none;accent-color:var(--green)}:focus-visible{outline:3px solid var(--gold);outline-offset:3px}[hidden]{display:none!important}.skip{position:absolute;top:-100px;padding:10px;background:white;z-index:20}.skip:focus{top:8px}.site-header{padding:15px max(20px,calc((100% - 1100px)/2));display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);background:var(--paper)}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:800;font-size:20px;line-height:1.2}.brand img{width:65px;height:65px;object-fit:contain}.brand small{display:block;font-size:10px;letter-spacing:.16em;margin-top:6px}main{max-width:1100px;margin:auto;padding:40px 22px 65px}h1{font-family:Georgia,serif;font-size:clamp(32px,5vw,56px);line-height:1.1;margin:12px 0 17px;color:var(--green);font-weight:500}h2{font-family:Georgia,serif;font-size:26px;line-height:1.25;color:var(--green);margin:0 0 16px}h3{font-size:18px;margin:0 0 10px}.eyebrow{letter-spacing:.15em;font-size:11px;font-weight:800;color:var(--green)}.intro{font-size:18px;max-width:660px;color:var(--muted)}.notice{background:#eee6d4;border:1px solid #d8c99f;border-radius:10px;padding:15px 18px;font-size:14px;margin:22px 0}.card{background:var(--paper);border:1px solid var(--line);border-radius:15px;padding:25px;margin:22px 0;box-shadow:0 5px 22px #1f4d3a05}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.row select{flex:1;min-width:210px}.identity label{display:block;margin-bottom:7px;font-weight:600}.identity p{margin-bottom:0;color:var(--muted);font-size:14px}.toolbar{display:flex;justify-content:space-between;gap:20px;align-items:center;margin:35px 0 10px}.toolbar p{font-size:12px;color:var(--muted);margin:3px 0}.badge{font-size:12px;display:inline-block;background:#e5eee8;color:var(--green);border-radius:20px;padding:4px 11px;font-weight:700;margin:0 0 12px}.muted,.hint{color:var(--muted);font-size:14px}.error{background:#fae8e5;color:var(--red);border:1px solid #e1b1aa;border-radius:8px;padding:14px}.success{background:#e5eee8;color:var(--green);border-radius:8px;padding:14px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field{display:block;font-weight:600;margin:12px 0}.field input,.field select,.field textarea{display:block;margin-top:6px;font-weight:400}.checkbox{display:flex;align-items:flex-start;gap:10px;margin:16px 0}.checkbox span{flex:1}.equipment-form{margin:20px 0;padding:18px;border:1px solid var(--line);border-radius:10px;min-width:0}.equipment-form legend{padding:0 6px;font-weight:700;color:var(--green)}.equipment-form.excluded{background:#eee9e0}.equipment-form.excluded .equipment-fields{opacity:.6}ul{padding-left:22px}li{margin:7px 0}.scope{border-left:3px solid var(--gold);padding:3px 0 3px 15px;margin:20px 0}.summary{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:17px 0;margin:20px 0}.summary strong,.summary span{display:block}.summary span{font-size:13px;color:var(--muted)}.event{border-top:1px solid var(--line);padding:12px 0}.event time{display:block;font-size:12px;color:var(--muted)}details{margin:16px 0}summary{cursor:pointer;font-weight:650}footer{text-align:center;padding:24px;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}form p{overflow-wrap:anywhere}.form-feedback{margin-top:15px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}.quote-head{display:flex;justify-content:space-between;gap:15px;align-items:start}.empty{padding:25px;border:1px dashed var(--line);border-radius:12px}.record-id{font-size:11px;color:var(--muted);overflow-wrap:anywhere}.subheading{margin-top:32px}.quote-head h2{margin-bottom:6px}@media(max-width:650px){.site-header{padding:12px 15px;gap:10px}.brand{font-size:16px}.brand img{width:48px;height:48px}.site-header>a:last-child{font-size:12px;max-width:75px}main{padding:26px 16px 45px}.grid,.summary{grid-template-columns:1fr}.card{padding:20px 16px}.equipment-form{padding:12px}.toolbar{align-items:flex-start}.toolbar button{font-size:13px;padding:8px 12px}.row button{flex:1}.quote-head{display:block}.summary{gap:10px}.identity .row select{min-width:100%}}

.quote-link { display: block; width: fit-content; min-height: 44px; padding-top: 12px; font-weight: 700; }

.schedule-controls > button { margin: 0 10px 10px 0; }

.visit-messages { border-top: 1px solid var(--line); padding-top: 18px; margin-top: 24px; }
.visit-messages > summary { min-height: 44px; color: var(--green); }
.message-history { margin: 18px 0; max-height: 440px; overflow-y: auto; overflow-wrap: anywhere; }
.visit-message { border: 1px solid var(--line); border-radius: 10px; background: #fff; padding: 14px 16px; margin-bottom: 12px; }
.visit-message > strong { display: block; font-size: 14px; }
.visit-message > time { display: block; color: var(--muted); font-size: 12px; margin-top: 3px; }
.visit-message-body { white-space: pre-wrap; overflow-wrap: anywhere; margin: 12px 0 0; }
.message-composer { margin-top: 20px; }
.message-composer textarea { min-height: 120px; resize: vertical; }
.message-status:empty { display: none; }
.message-composer textarea[readonly] { background: #eee9e0; }
@media (max-width: 650px) { .message-composer button { width: 100%; } .visit-message { padding: 12px; } }

.install-help { width: min(520px, calc(100% - 32px)); max-height: calc(100dvh - 40px); overflow-y: auto; border: 1px solid var(--line); border-radius: 18px; padding: 26px; color: var(--ink); background: var(--paper); box-shadow: 0 16px 80px #0004; }
.install-help::backdrop { background: #10261ec7; }
.install-help ol { padding-left: 24px; }
.install-help li { margin: 18px 0; padding-left: 6px; }
.install-help .install-tip { font-size: 14px; background: var(--cream); padding: 12px; border-radius: 8px; }
.install-help > button { width: 100%; }
@media (max-width: 400px) { .install-help { padding: 20px; } .install-help h2 { font-size: 24px; } }

/* Dedicated service app shell. Marketing pages retain their existing design. */
.service-app { background: #f3f5f2; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; --paper: #fff; --line: #e2e8e1; --muted: #68736a; }
.service-app .app-header { display: flex; justify-content: space-between; align-items: center; gap: 12px; max-width: 920px; margin: auto; padding: calc(16px + env(safe-area-inset-top)) 24px 16px; }
.service-app .app-brand { display: flex; align-items: center; gap: 10px; text-decoration: none; font-weight: 750; font-size: 16px; letter-spacing: -.4px; }
.service-app .app-brand img { width: 45px; height: 45px; object-fit: contain; }
.service-app .app-brand small { display: block; font-size: 8px; letter-spacing: 1.6px; margin-top: 2px; font-weight: 600; }
.service-app .pilot-label { color: #735e2c; background: #efe8d3; border-radius: 20px; padding: 5px 10px; font-size: 10px; font-weight: 650; white-space: nowrap; }
.service-app .app-main { max-width: 920px; padding: 10px 24px calc(110px + env(safe-area-inset-bottom)); }
.service-app .app-page-heading { display: flex; align-items: center; justify-content: space-between; margin: 12px 0 22px; }
.service-app .app-kicker { font-size: 10px; font-weight: 750; letter-spacing: 1.6px; color: #647467; margin: 0 0 7px; display: block; }
.service-app h1 { font-family: inherit; font-size: 34px; letter-spacing: -1.3px; font-weight: 750; margin: 0; color: #183e2c; }
.service-app h2 { font-family: inherit; font-size: 21px; font-weight: 700; letter-spacing: -.5px; }
.service-app .app-monogram { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; color: #376048; background: #e1e9dd; font-size: 12px; font-weight: 750; }
.service-app .toolbar { border: 0; margin: 0 0 18px; padding: 0; align-items: center; }
.service-app .toolbar strong { font-size: 12px; color: #536259; }
.service-app #refreshed { font-size: 10px; margin: 3px 0 0; color: var(--muted); }
.service-app #refresh { font-size: 11px; border-color: #d7dfd4; background: #fff; padding: 8px 12px; border-radius: 12px; }
.service-app button { border-radius: 12px; min-height: 48px; }
.service-app .card { border-radius: 20px; padding: 22px; margin: 16px 0; box-shadow: 0 4px 18px #183e2c04; }
.service-app .app-next-visit { position: relative; overflow: hidden; background: #1e4937; border-radius: 24px; padding: 30px; color: #fff; }
.service-app .app-next-visit::after { content: ''; position: absolute; width: 190px; height: 190px; border: 34px solid #ffffff05; border-radius: 50%; right: -60px; top: -65px; pointer-events: none; }
.service-app .app-next-visit .app-kicker { color: #cbdac7; }
.service-app .app-next-visit h2 { font-size: 30px; max-width: 470px; line-height: 1.18; color: #fff; letter-spacing: -1px; margin: 16px 0 12px; }
.service-app .app-next-visit p { color: #d4e0d5; max-width: 420px; font-size: 14px; line-height: 1.6; margin-bottom: 24px; }
.service-app .app-next-visit button { background: #ead8a9; color: #203c2c; border: 0; min-width: 160px; font-size: 13px; }
.service-app .app-shortcuts { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 16px; }
.service-app .app-shortcuts button { display: flex; flex-direction: column; text-align: left; align-items: flex-start; gap: 6px; background: white; border: 1px solid var(--line); border-radius: 20px; padding: 20px; color: #193e2c; }
.service-app .app-shortcuts button > span:first-child { font-size: 13px; }
.service-app .app-shortcuts strong { font-size: 20px; letter-spacing: -.5px; }
.service-app .app-shortcut-link { font-size: 11px; color: #708174; padding-top: 6px; }
.service-app .app-message-card p { color: var(--muted); font-size: 14px; }
.service-app .app-message-card button { background: #edf2eb; border: 0; font-size: 13px; }
.service-app .app-pilot-note { text-align: center; color: #768177; font-size: 10px; margin: 24px 0; }
.service-app .app-tabbar { position: fixed; z-index: 30; bottom: 0; left: 50%; transform: translateX(-50%); width: min(100%, 920px); display: grid; grid-template-columns: repeat(5,1fr); background: #fffffff5; backdrop-filter: blur(18px); border-top: 1px solid #dfe6dd; padding: 8px 12px calc(8px + env(safe-area-inset-bottom)); }
.service-app .app-tabbar button { display: flex; flex-direction: column; align-items: center; gap: 4px; border: 0; padding: 9px 2px; background: transparent; color: #788178; font-size: 10px; border-radius: 14px; min-width: 0; }
.service-app .app-tabbar button[aria-current=page] { color: #214a34; background: #eaf0e6; font-weight: 750; }
.service-app .app-tabbar svg { width: 22px; height: 22px; }
.service-app .subheading { margin-top: 20px; font-size: 18px; }
.service-app .empty { background: #fff; border: 1px solid var(--line); border-radius: 18px; color: #667369; font-size: 14px; padding: 24px; }
.service-app .badge { border-radius: 20px; font-size: 10px; padding: 5px 10px; }
.service-app .app-about { font-size: 14px; color: var(--muted); }
.service-app #feedback:empty { display: none; }
.service-app .summary { gap: 14px; }
@media(max-width: 650px) {
 .service-app .app-header { padding-left: 20px; padding-right: 20px; }
 .service-app .app-main { padding-left: 20px; padding-right: 20px; }
 .service-app .app-next-visit { padding: 25px; }
 .service-app .app-next-visit h2 { font-size: 28px; }
 .service-app .card { padding: 20px; }
 .service-app .app-shortcuts button { padding: 18px; }
 .service-app .app-shortcuts strong { font-size: 19px; }
}
@media(max-width: 350px) { .service-app .app-brand { font-size: 14px; } .service-app .app-header,.service-app .app-main { padding-left: 15px; padding-right: 15px; } .service-app .pilot-label { padding: 4px 7px; } }
