:root{--green:#82da25;--green-dark:#315f12;--ink:#17212b;--muted:#697583;--bg:#f4f6f3;--line:#dce2da;--danger:#b42318}*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit}.app-header{background:#090b09;color:#fff;padding:14px 20px;display:flex;justify-content:space-between;align-items:center;gap:18px;position:sticky;top:0;z-index:10;box-shadow:0 3px 14px rgba(0,0,0,.18)}.brand-wrap{display:flex;align-items:center;gap:14px}.brand-logo{width:76px;height:52px;object-fit:cover;object-position:center;border-radius:8px}.app-header h1{margin:0;font-size:1.3rem}.app-header p{margin:3px 0 0;color:#c8d0c3;font-size:.86rem}main{max-width:820px;margin:auto;padding:18px}.card,.step{background:#fff;border-radius:15px;padding:18px;box-shadow:0 3px 14px rgba(0,0,0,.07)}.card{margin-bottom:14px}.intro h2,.step h2{margin-top:0}.primary,.secondary,.danger{border:0;border-radius:10px;padding:12px 16px;font-weight:700;cursor:pointer}.primary{background:linear-gradient(135deg,var(--green),#57ae16);color:#0f1a08}.secondary{background:#e7ebe5;color:var(--ink)}.danger{background:#fee4e2;color:var(--danger)}.hidden{display:none!important}.survey-list{display:grid;gap:12px}.survey-item{width:100%;background:#fff;border:0;border-left:5px solid var(--green);border-radius:12px;padding:16px;box-shadow:0 3px 12px rgba(0,0,0,.06);cursor:pointer;text-align:left;display:flex;justify-content:space-between;gap:14px}.survey-item h3{margin:0 0 5px}.survey-item p{margin:3px 0;color:#5f6975}.survey-meta{display:flex;flex-direction:column;align-items:flex-end;gap:6px;color:#53614d;font-size:.85rem;white-space:nowrap}.progress-wrap{margin:0 0 16px}.progress-wrap>div:first-child{font-size:.9rem;margin-bottom:7px;color:#586371}.progress{height:9px;background:#dce2d8;border-radius:999px;overflow:hidden}.progress>div{height:100%;width:16.66%;background:linear-gradient(90deg,var(--green-dark),var(--green));transition:.2s}.step{display:none}.step.active{display:block}.step h2{padding-bottom:10px;border-bottom:3px solid var(--green)}label{display:block;font-weight:700;margin:14px 0;font-size:.93rem}input,select,textarea{width:100%;padding:12px;margin-top:6px;border:1px solid #cbd3ca;border-radius:9px;background:#fff}input:focus,select:focus,textarea:focus{outline:2px solid rgba(130,218,37,.28);border-color:#6cb927}textarea{resize:vertical}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.calc,.review-note{background:#eff9e8;border-left:4px solid var(--green);border-radius:9px;padding:12px;margin:12px 0}.nav-buttons{display:flex;justify-content:space-between;gap:10px;margin-top:16px}.upload-card{border:1px solid var(--line);background:#f9fbf8;border-radius:12px;padding:14px;margin:14px 0}.upload-card strong{display:block;margin-bottom:4px}.upload-card small{display:block;color:var(--muted);margin-bottom:10px}.fileBtn{display:inline-block;background:#1d261a;color:#fff;padding:11px 14px;border-radius:9px;cursor:pointer;margin:8px 0;font-weight:700}.fileBtn input{display:none}.file-status{font-size:.86rem;color:var(--muted);margin-top:6px}.photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.photoPreview img{width:100%;height:210px;object-fit:cover;border-radius:10px;margin-top:8px}.remove-photo{border:0;background:#fee4e2;color:var(--danger);padding:7px 10px;border-radius:7px;margin-top:6px;cursor:pointer}.detail h2{margin:0}.detail-title{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.detail-title p{margin:6px 0;color:var(--muted)}.status-pill{background:#eaf8dd;color:#355f15;padding:6px 10px;border-radius:999px;font-size:.8rem;font-weight:700}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.detail-row{padding:10px;background:#f5f7f4;border-radius:8px;white-space:pre-wrap}.detail-row span{display:block;font-size:.78rem;color:var(--muted);margin-bottom:4px}.detail h3{margin-top:24px;border-bottom:2px solid var(--green);padding-bottom:6px}.detail-photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:12px 0}.detail-photo{background:#f5f7f4;border-radius:10px;overflow:hidden}.detail-photo img{display:block;width:100%;height:230px;object-fit:cover}.detail-photo span{display:block;padding:8px 10px;font-size:.86rem;font-weight:700}.detail-actions{display:flex;gap:10px;margin-top:24px}details{border:1px solid var(--line);border-radius:10px;margin:12px 0}summary{cursor:pointer;font-weight:700;padding:13px}.details-body{padding:0 13px 13px}
@media(max-width:600px){.app-header{align-items:center;padding:10px 12px}.brand-logo{width:58px;height:42px}.app-header p{display:none}.app-header h1{font-size:1.05rem}.app-header .primary{padding:10px 12px}.grid2,.detail-grid,.photo-grid,.detail-photo-grid{grid-template-columns:1fr}.survey-item{display:block}.survey-meta{align-items:flex-start;flex-direction:row;margin-top:10px}.detail-actions{flex-direction:column}.primary,.secondary,.danger{min-height:44px}main{padding:12px}.photoPreview img,.detail-photo img{height:auto;max-height:320px}}

.survey-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.exit-survey-btn{padding:10px 14px}.draft-status{font-size:.85rem;color:#8a5a00;font-weight:700}.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.58);display:flex;align-items:center;justify-content:center;padding:18px;z-index:100}.modal-card{width:min(520px,100%);background:#fff;border-radius:16px;padding:22px;box-shadow:0 20px 60px rgba(0,0,0,.28)}.modal-card h2{margin:0 0 8px}.modal-card p{color:var(--muted);line-height:1.45}.modal-actions{display:grid;gap:10px;margin-top:18px}.status-pill.draft,.list-status.draft{background:#fff4d6;color:#8a5a00}.list-status{background:#eaf8dd;color:#355f15;padding:4px 8px;border-radius:999px;font-size:.75rem;font-weight:700}.survey-meta{flex-wrap:wrap}

.multi-photo-preview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px}.preview-photo-item{position:relative;background:#eef2ec;border-radius:10px;padding:6px}.preview-photo-item img{width:100%;height:140px!important;object-fit:cover;border-radius:8px;margin:0!important}.preview-photo-item .remove-photo{width:100%;margin-top:6px}@media(max-width:600px){.multi-photo-preview{grid-template-columns:repeat(2,minmax(0,1fr))}.preview-photo-item img{height:110px!important}}

/* Login */
.login-screen{min-height:100vh;min-height:100dvh;background:radial-gradient(circle at 82% 5%,rgba(103,183,38,.28),transparent 30%),linear-gradient(145deg,#0b120c 0%,#050806 58%,#020403 100%);display:flex;align-items:center;justify-content:center;padding:32px 22px;position:relative;overflow:hidden;color:#fff}.login-screen:before{content:"A";position:absolute;right:-7vw;top:-11vh;font-size:min(92vh,800px);font-weight:900;line-height:1;color:rgba(111,189,42,.075);font-family:Arial,Helvetica,sans-serif;transform:scaleX(.88);pointer-events:none}.login-screen:after{content:"";position:absolute;left:-150px;bottom:-150px;width:430px;height:330px;background:radial-gradient(ellipse,rgba(90,161,31,.28),rgba(90,161,31,0) 67%);filter:blur(10px);transform:rotate(25deg);pointer-events:none}.login-ambient{position:absolute;pointer-events:none;border-radius:999px;filter:blur(42px)}.login-ambient-a{width:300px;height:150px;background:rgba(118,211,41,.12);top:-55px;left:15%}.login-ambient-b{width:230px;height:130px;background:rgba(95,178,34,.1);bottom:6%;right:-70px}.login-panel{position:relative;z-index:1;width:min(620px,100%);padding:10px 0 4px}.login-logo-frame{width:min(310px,68vw);height:178px;margin:0 auto 24px;border:2px solid rgba(130,218,37,.82);border-radius:23px;background:#050706;box-shadow:0 0 24px rgba(130,218,37,.12),inset 0 0 35px rgba(255,255,255,.02);display:flex;align-items:center;justify-content:center;overflow:hidden}.login-logo{display:block;width:94%;height:94%;object-fit:contain;object-position:center;border-radius:16px}.login-panel h1{text-align:center;margin:0;color:#fff;font-size:clamp(2.25rem,6vw,3.25rem);line-height:1.05;letter-spacing:-.04em}.login-subtitle{text-align:center;margin:14px 0 45px;color:#b6bdc2;font-size:clamp(1.02rem,3vw,1.35rem);font-weight:400}.login-field-label{display:block;margin:0 0 10px;color:#fff;font-weight:800;font-size:1.02rem}.login-input-wrap{position:relative;margin:0 0 25px}.login-input-wrap input{width:100%;height:68px;margin:0;padding:0 58px;border:2px solid #586068;border-radius:15px;background:rgba(9,14,16,.82);color:#fff;font-size:16px;box-shadow:inset 0 1px 0 rgba(255,255,255,.02);transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.login-input-wrap input::placeholder{color:#818990}.login-input-wrap input:focus{outline:none;border-color:#85da2d;box-shadow:0 0 0 3px rgba(130,218,37,.12);background:rgba(10,16,17,.95)}.login-field-icon{position:absolute;left:20px;top:50%;transform:translateY(-50%);color:#a7adb2;font-size:1.7rem;line-height:1;z-index:2;pointer-events:none}.login-lock-icon{font-size:1.35rem}.password-toggle{position:absolute;right:13px;top:50%;transform:translateY(-50%);width:46px;height:46px;border:0;border-radius:12px;background:transparent;color:#aeb5bb;font-size:1.55rem;cursor:pointer;display:grid;place-items:center}.password-toggle:hover,.password-toggle:focus-visible{background:rgba(255,255,255,.06);color:#d7dbde;outline:none}.login-btn{width:100%;min-height:70px;border:0;border-radius:15px;background:linear-gradient(100deg,#a4eb42 0%,#7fd12f 55%,#65ba26 100%);color:#071007;font-size:1.25rem;font-weight:900;cursor:pointer;box-shadow:0 8px 24px rgba(74,144,27,.14);display:flex;align-items:center;justify-content:center;gap:20px;margin-top:5px}.login-btn:hover{filter:brightness(1.03)}.login-btn:disabled{opacity:.65;cursor:wait}.login-arrow{font-size:1.75rem;font-weight:500;line-height:1}.login-error{background:rgba(99,20,20,.6);color:#ffd4d2;border:1px solid rgba(244,121,115,.72);border-radius:10px;padding:11px 12px;margin:-7px 0 15px;font-weight:700;font-size:.9rem}.login-authorised{display:grid;grid-template-columns:minmax(30px,1fr) auto minmax(30px,1fr);align-items:center;gap:17px;margin-top:34px;color:#9da4aa}.login-authorised span{height:1px;background:#697077}.login-authorised small{text-align:center;font-size:.93rem;white-space:nowrap}.header-actions{display:flex;align-items:center;gap:8px}.header-logout{border:1px solid #4d5749;background:transparent;color:#fff;border-radius:9px;padding:10px 12px;font-weight:700;cursor:pointer}.header-logout:hover{background:#1d251b}
@media(max-width:600px){.login-screen{align-items:center;padding:24px 22px 30px}.login-panel{width:100%;max-width:430px}.login-logo-frame{width:min(260px,72vw);height:148px;margin-bottom:24px;border-radius:20px}.login-panel h1{font-size:2.4rem}.login-subtitle{font-size:1.08rem;margin:11px 0 38px}.login-input-wrap{margin-bottom:22px}.login-input-wrap input{height:64px}.login-btn{min-height:65px}.login-authorised{gap:12px;margin-top:29px}.login-authorised small{font-size:.76rem}.header-actions{gap:6px}.header-logout{padding:9px 10px;font-size:.8rem}.app-header .header-actions .primary{font-size:.84rem}}
@media(max-height:720px){.login-screen{align-items:flex-start;padding-top:20px;overflow:auto}.login-logo-frame{height:115px;width:205px;margin-bottom:16px}.login-panel h1{font-size:2rem}.login-subtitle{margin:8px 0 22px}.login-input-wrap{margin-bottom:16px}.login-input-wrap input{height:56px}.login-btn{min-height:57px}.login-authorised{margin-top:20px}}

/* Mobile login viewport lock: keep the login screen fitted to the device with no page panning */
html,body{width:100%;max-width:100%;overflow-x:hidden}
.login-screen{position:fixed;inset:0;width:100%;max-width:100vw;height:100dvh;min-height:100dvh;overflow-y:auto;overflow-x:hidden;overscroll-behavior:none}
.login-panel{width:min(620px,100%);max-width:100%;min-width:0;margin:0 auto}
.login-panel form,.login-input-wrap,.login-input-wrap input,.login-btn{max-width:100%;min-width:0}
.login-authorised{max-width:100%;min-width:0}
@media(max-width:600px){
  .login-screen{padding-left:max(22px,env(safe-area-inset-left));padding-right:max(22px,env(safe-area-inset-right));}
  .login-panel{width:100%;max-width:430px;}
  .login-authorised{grid-template-columns:minmax(20px,1fr) minmax(0,auto) minmax(20px,1fr)}
  .login-authorised small{white-space:normal;line-height:1.25}
}

.backup-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px}.backup-status{font-size:.86rem;color:var(--muted)}.backup-tools .secondary:disabled{opacity:.65;cursor:wait}@media(max-width:600px){.backup-tools{align-items:flex-start;flex-direction:column}.backup-tools .secondary{width:100%}}


/* Account settings */
.header-account{border:1px solid #668259;background:#182016;color:#eaf3e5;border-radius:9px;padding:10px 12px;font-weight:700;cursor:pointer}.header-account:hover{background:#222d1e}.account-modal-card{max-width:520px}.account-modal-card form label{margin:13px 0}.account-message{border-radius:9px;padding:10px 12px;margin:10px 0;font-weight:700;font-size:.9rem}.account-error{background:#fee4e2;color:#8d1b13;border:1px solid #f4aaa5}.account-success{background:#eaf8dd;color:#355f15;border:1px solid #b9dd99}.account-actions{margin-top:16px}.account-actions .primary:disabled{opacity:.65;cursor:wait}@media(max-width:600px){.header-account,.header-logout{padding:9px 8px;font-size:.75rem}.account-modal-card{padding:18px}.account-modal-card input{font-size:16px}}

/* V1 completion / validation review */
.completion-check{margin:16px 0 10px;border-radius:12px;padding:14px 16px;border:1px solid var(--line);background:#f6f8f5}.completion-check .completion-title{font-weight:800;margin-bottom:8px}.completion-check strong{display:block}.completion-check span{display:block;margin-top:4px;color:var(--muted)}.completion-check ul{margin:7px 0 0;padding-left:20px}.completion-check li{margin:3px 0}.completion-check .completion-group+ .completion-group{margin-top:12px;padding-top:10px;border-top:1px solid rgba(0,0,0,.08)}.completion-check.needs-attention{background:#fff7e6;border-color:#e8c77a;color:#6d4b00}.completion-check.needs-attention .recommended{color:#5d665a}.completion-check.ready{background:#eaf8dd;border-color:#b7dd94;color:#355f15}.completion-check.ready-with-notes{background:#eef7e8;border-color:#c9dfaF;color:#355f15}.completion-check.ready-with-notes .recommended{color:#5d665a}

.restore-section{margin-top:22px;padding-top:18px;border-top:1px solid #dfe7e2}.restore-section h3{margin:0 0 6px}.restore-section p{font-size:.92rem;color:#59645e}.restore-section input[type=file]{width:100%;margin:8px 0 10px}.restore-preview{padding:10px 12px;margin:8px 0 10px;border-radius:8px;background:#eef8f1;color:#245b35;font-weight:600}.restore-section .danger:disabled{opacity:.45;cursor:not-allowed}

/* Account modal can grow beyond the viewport now that backup restore is included. */
#accountModal{
  align-items:flex-start;
  overflow-y:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}
#accountModal .account-modal-card{
  max-height:calc(100dvh - 36px);
  overflow-y:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  margin:auto 0;
}
@supports not (height: 100dvh){
  #accountModal .account-modal-card{max-height:calc(100vh - 36px)}
}
@media(max-width:600px){
  #accountModal{padding:10px}
  #accountModal .account-modal-card{max-height:calc(100dvh - 20px);width:100%}
}


/* V1 saved-survey dashboard polish */
.dashboard-tools{padding:15px 16px}.survey-summary{font-size:1.05rem;font-weight:800;margin-bottom:12px;color:#24301f}.survey-search-row{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:12px;align-items:end}.survey-search,.survey-sort{margin:0}.survey-search span,.survey-sort span{display:block;font-size:.78rem;color:var(--muted);margin-bottom:4px}.survey-search input,.survey-sort select{margin-top:0}.survey-filters{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.survey-filter{border:1px solid #ccd6c7;background:#fff;color:#33402f;border-radius:999px;padding:8px 14px;font-weight:700;cursor:pointer}.survey-filter.active{background:#172114;color:#fff;border-color:#172114}.survey-main{min-width:0}.survey-ref{font-size:.74rem;letter-spacing:.04em;font-weight:800;color:#57872e;margin-bottom:5px}.list-status{padding:5px 9px;border-radius:999px;font-weight:800;font-size:.76rem}.list-status.complete{background:#eaf8dd;color:#355f15}.list-status.draft{background:#fff1c7;color:#755500}.open-hint{font-weight:800;color:#497b25}.empty-surveys{text-align:center;color:var(--muted);padding:28px}.empty-surveys strong{color:var(--ink)}
@media(max-width:600px){.survey-search-row{grid-template-columns:1fr}.survey-sort{max-width:none}.survey-item{padding:14px;align-items:flex-start}.survey-item h3{font-size:1rem}.survey-item p{font-size:.86rem;line-height:1.3}.survey-meta{font-size:.76rem}.open-hint{display:none}.survey-summary{font-size:.95rem}.survey-filters{display:grid;grid-template-columns:repeat(3,1fr)}.survey-filter{padding:9px 7px}.dashboard-tools{padding:13px}}


/* V1 modal close controls: avoid using browser Back on mobile */
.modal-card{position:relative}
.modal-close{position:sticky;top:0;z-index:5;float:right;width:42px;height:42px;margin:-7px -7px 4px 12px;border:0;border-radius:999px;background:#eef1ed;color:#263126;font-size:1.8rem;line-height:1;font-weight:400;cursor:pointer;display:grid;place-items:center;box-shadow:0 2px 8px rgba(0,0,0,.08)}
.modal-close:hover,.modal-close:focus-visible{background:#dfe7dc;color:#111;outline:2px solid rgba(130,218,37,.45)}
.modal-close:active{transform:scale(.96)}
@media(max-width:600px){.modal-close{width:46px;height:46px;font-size:2rem;margin:-8px -8px 5px 12px}}
