*{box-sizing:border-box}body{margin:0;background:#f4f5f7;color:#142033;font-family:Arial,sans-serif}.app{max-width:560px;margin:auto;min-height:100vh;padding:20px 14px 48px}.brand{display:flex;align-items:center;gap:11px;margin:10px 4px 22px}.mark{width:44px;height:44px;border-radius:50%;background:#142033;color:#fff;display:grid;place-items:center;font-size:24px;font-weight:700}.brand strong,.brand span{display:block}.brand span{font-size:11px;letter-spacing:1.8px;color:#697386;margin-top:2px}.card{background:#fff;border-radius:18px;padding:20px;box-shadow:0 7px 24px rgba(20,32,51,.06)}h1{font-size:24px;margin:0 0 14px}h2{font-size:18px}.muted{color:#697386}.homeTop{display:flex;align-items:center;justify-content:space-between;gap:12px}.homeTop h1{margin:0}.helpLine{font-size:14px;color:#697386;margin:12px 0 20px}.helpLine a{color:#142033;font-weight:700;text-decoration:none}.pin{width:100%;font-size:30px;text-align:center;letter-spacing:10px;padding:16px;border:1px solid #ccd2da;border-radius:12px;margin:18px 0}button,.cameraBtn{width:100%;border:0;border-radius:12px;padding:15px 16px;font-size:16px;font-weight:700;cursor:pointer;margin-top:10px;text-align:center}.primary{background:#142033;color:#fff}.secondary{background:#eef1f4;color:#142033}.textBtn,.backLink{width:auto;background:transparent;color:#697386;padding:6px 0;margin:0;font-size:13px}.backLink{margin-bottom:18px}.subtleDanger{background:transparent;color:#9f3030;border:1px solid #e6c9c9;font-size:13px}.subtleDanger.solid{background:#fff3f3}.visit{border:1px solid #e2e6eb;border-radius:14px;padding:15px;margin:10px 0}.visit strong{display:block;font-size:17px}.cleanCard .primary{margin-top:12px}.visitMeta{font-size:13px;color:#697386;margin:7px 0 0}.quietStatus{display:inline-block;margin-top:8px;font-size:13px;font-weight:700;color:#697386}.quietStatus.done,.statusDone{color:#28704b}.quietStatus.missed,.statusMissed{color:#a43a3a}.statusBusy{color:#735c1f}.statusTodo{color:#697386}.emptyDay{padding:22px;text-align:center;border:1px solid #e2e6eb;border-radius:14px;color:#697386}.adminLinks{margin-top:22px;padding-top:12px;border-top:1px solid #e8ebef}.instruction{display:flex;flex-direction:column;gap:4px;background:#f7f8fa;border-left:3px solid #142033;border-radius:8px;padding:12px;margin-bottom:16px}.instruction span{font-size:14px;color:#566174;line-height:1.45}.activeSince{font-size:15px;margin:4px 0 16px}.privacyNote{font-size:13px;line-height:1.45;color:#697386;background:#f7f8fa;border-radius:10px;padding:11px}.qualityProgress{font-weight:700;font-size:14px;margin:16px 0;color:#697386}.qualityProgress.complete{color:#28704b}.qualityTile{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #dfe4ea;border-radius:14px;padding:14px;margin:10px 0}.qualityTile>div{min-width:0}.qualityTile strong,.qualityTile span{display:block}.qualityTile span{font-size:12px;color:#697386;margin-top:4px}.qualityTile.selected{border-color:#b8c2cf}.qualityTile.uploaded{border-color:#b7d7c5}.cameraBtn{width:auto;min-width:112px;margin:0;background:#142033;color:#fff;font-size:12px;padding:11px}.cameraBtn input{display:none}.addExtra{background:transparent;border:1px dashed #b9c1cb;color:#566174;font-size:13px}.extraPhoto{display:block;border:1px solid #e2e6eb;border-radius:10px;padding:11px;margin:8px 0;font-size:13px}.extraPhoto input{display:block;margin-top:8px;width:100%}.remarksBox{margin:20px 0 8px}.remarksBox label,.fieldLabel{display:block;font-size:14px;font-weight:700;margin:10px 0}.remarksBox select,.fieldLabel select{width:100%;margin-top:7px;padding:12px;border:1px solid #ccd2da;border-radius:10px;background:#fff;font-size:15px}textarea{width:100%;min-height:84px;border:1px solid #ccd2da;border-radius:10px;padding:11px;font-size:16px;margin-top:8px}.message{padding:12px;border-radius:10px;margin:12px 0;background:#f5f6f8}.error,.attentionText{color:#9f3030}.ok{color:#28704b}.thankYou{text-align:center;padding:18px 2px}.thankIcon{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;margin:0 auto 15px;background:#edf7f1;color:#28704b;font-size:30px;font-weight:700}.thanksLead{font-size:18px;line-height:1.5}.sectionTitle{display:flex;justify-content:space-between;align-items:center;margin-top:20px}.sectionTitle span{font-size:13px;background:#f1f3f5;border-radius:999px;padding:5px 9px}.adminRow p{margin:7px 0}.doneDetails{margin-top:20px;border-top:1px solid #e5e8ec;padding-top:14px}.doneDetails summary{cursor:pointer;font-weight:700;color:#566174}.filters{margin:16px 0;padding:14px;background:#f7f8fa;border:1px solid #e2e6eb;border-radius:14px}.filters label{display:block;font-size:13px;font-weight:700;margin:8px 0}.filters select,.filters input{display:block;width:100%;margin-top:6px;padding:11px;border:1px solid #ccd2da;border-radius:9px;background:#fff;font-size:14px}.dategrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.summary{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:14px 0}.summary div{background:#f5f6f8;border-radius:10px;padding:11px}.summary strong{display:block;font-size:20px}.summary span{font-size:11px;color:#697386}.reportDate{font-size:12px;font-weight:700;color:#697386;margin:0 0 7px}.proofPhoto{margin:14px 0}.proofPhoto figcaption{font-size:13px;font-weight:700;margin-bottom:6px}.proofPhoto img{display:block;width:100%;border-radius:12px}button:disabled{opacity:.45;cursor:not-allowed}@media(min-width:480px){.summary{grid-template-columns:repeat(3,1fr)}}@media(max-width:380px){.qualityTile{display:block}.cameraBtn{width:100%;margin-top:12px}.homeTop{align-items:flex-start}}

/* v7.2 PWA install */
.installSlot{margin-top:12px;text-align:center}
.installAppBtn{width:100%;background:#fff;border:1px solid #d1d5db;color:#142033;font-size:13px;font-weight:700;padding:13px 14px;border-radius:12px}
.installAppBtn:hover{background:#f8fafc}
@media (display-mode: standalone){.installSlot{display:none}}

/* v7.3 production hardening */
.connectionBanner{position:sticky;top:8px;z-index:20;margin:0 0 10px;padding:10px 12px;border-radius:10px;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;font-size:13px;font-weight:700}
.connectionBanner[hidden]{display:none}
