:root{
  --nav:#07111f;--nav2:#0b1a2f;--panel:#fff;--ink:#102033;--muted:#65758b;--line:#d9e3ef;
  --soft:#f5f8fc;--soft-blue:#eef7ff;--accent:#168fe8;--accent2:#5ebcff;--accent-dark:#0867b5;
  --danger:#b42318;--warning:#a15c00;--success:#0e7a43;--shadow:0 20px 70px rgba(4,20,39,.25);
  font-family:"Verdana",Arial,sans-serif;color:var(--ink);
}

html,body,#app,.leaflet-container,.leaflet-container *,button,input,select,textarea{font-family:"Verdana",Arial,sans-serif!important}
*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{overflow:hidden;background:#dce7f3;color:var(--ink)}button,input,select,textarea{font:inherit}button{touch-action:manipulation}.topbar{position:fixed;z-index:1001;top:0;left:0;right:0;min-height:64px;padding:calc(8px + env(safe-area-inset-top)) 14px 8px;display:flex;align-items:center;gap:10px;background:linear-gradient(180deg,#07111f,#081526);color:#fff;box-shadow:0 2px 14px rgba(0,0,0,.28)}.brand-block{min-width:0;display:flex;align-items:flex-end;gap:8px}.brand-home{color:inherit;text-decoration:none;cursor:pointer}.brand-home:focus-visible{outline:2px solid #ffe400;outline-offset:3px}.brand-home:hover .top-logo{filter:brightness(1.08)}.top-logo{display:block;width:132px;height:auto;max-height:38px;object-fit:contain}.brand-block span{font-size:11px;color:#8093ad;margin-bottom:2px;white-space:nowrap}.top-actions{margin-left:auto;display:flex;align-items:center;gap:5px}.icon-btn{border:0;background:transparent;color:inherit;font-size:25px;line-height:1;width:40px;height:40px;border-radius:0;display:grid;place-items:center;cursor:pointer}.icon-btn:hover,.icon-btn:focus-visible{background:rgba(255,255,255,.1);outline:none}.locate-btn{font-size:28px}.account{font-size:13px;color:#d9e8f8;text-decoration:none;padding:6px 8px;border-radius:0;max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:6px}.account:hover{background:#10233e}.notification-bell{position:relative;width:38px;height:38px;display:grid;place-items:center;color:#e6f4ff;text-decoration:none;font-size:18px;border:1px solid transparent}.notification-bell:hover,.notification-bell:focus-visible{background:#10233e;border-color:#244765;outline:none}.notification-bell b{position:absolute;right:-3px;top:-4px;min-width:18px;height:18px;padding:0 4px;display:grid;place-items:center;background:#d92d20;color:#fff;border:2px solid #07111f;font-size:8px;line-height:1;font-weight:950}.notification-bell b[hidden]{display:none}#map{position:absolute;inset:64px 0 0}.leaflet-control-attribution{font-size:10px}.leaflet-popup-content-wrapper{border-radius:0;box-shadow:0 12px 36px rgba(0,0,0,.22)}
.fab{position:fixed;z-index:900;right:18px;bottom:calc(20px + env(safe-area-inset-bottom));border:1px solid rgba(255,255,255,.45);border-radius:0;background:linear-gradient(180deg,#5ebcff,#168fe8 55%,#0867b5);color:#fff;font-weight:900;font-size:14px;letter-spacing:.035em;padding:12px 18px 12px 14px;box-shadow:0 10px 28px rgba(13,111,190,.42),inset 0 1px rgba(255,255,255,.45);cursor:pointer;display:flex;align-items:center;gap:6px}.fab span{font-size:22px;line-height:1}.fab:active{transform:translateY(1px)}
.drawer{position:fixed;z-index:1200;left:0;top:0;bottom:0;width:min(350px,90vw);background:#fff;padding:18px;padding-top:calc(18px + env(safe-area-inset-top));transform:translateX(-103%);transition:transform .2s ease;box-shadow:var(--shadow);overflow:auto}.drawer.open{transform:none}.drawer-shade{position:fixed;z-index:1190;inset:0;background:rgba(4,15,30,.52);display:none}.drawer-shade.open{display:block}.drawer-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.drawer-logo{width:150px;height:auto}.drawer .icon-btn{color:#102033}.drawer h2{font-size:18px;margin:0 0 16px}.drawer label,.wizard-form label{display:block;font-size:13px;font-weight:750;color:#33465f;margin-bottom:13px}.drawer input,.drawer select,.wizard-form input[type=text],.wizard-form input[type=search],.wizard-form select,.wizard-form textarea{width:100%;margin-top:6px;padding:11px 12px;border:1px solid #c8d7e8;border-radius:0;background:#fff;color:#102033;font:inherit;outline:none;transition:border-color .15s,box-shadow .15s}.drawer input:focus,.drawer select:focus,.wizard-form input:focus,.wizard-form select:focus,.wizard-form textarea:focus{border-color:#55aeef;box-shadow:0 0 0 3px rgba(22,143,232,.12)}.drawer hr{border:0;border-top:1px solid var(--line);margin:20px 0}.drawer-link{display:inline-block;margin-top:14px;color:#0875c7;font-weight:800;text-decoration:none}.drawer-small{font-size:11px;color:var(--muted);line-height:1.55;margin-top:24px}.stats-card{padding:13px;border-radius:0;background:#f3f7fb;border:1px solid #e0e8f2}.stats-card strong,.stats-card span{display:block}.stats-card span{font-size:12px;color:var(--muted);margin-top:3px}.wide{width:100%}
.secondary-btn,.primary-btn{border:0;border-radius:0;padding:11px 14px;font-weight:850;cursor:pointer}.secondary-btn{background:#e8eef5;color:#24364c}.secondary-btn:hover{background:#dce6f1}.primary-btn{background:linear-gradient(180deg,#43acf4,#168fe8);color:#fff;min-width:120px;box-shadow:0 5px 14px rgba(22,143,232,.23)}.primary-btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.text-btn{border:0;background:transparent;color:#0875c7;font-weight:850;cursor:pointer;padding:5px 0}.muted{color:var(--muted)}
.modal-backdrop{position:fixed;z-index:2000;inset:0;background:rgba(2,10,22,.67);display:grid;place-items:center;padding:14px}.modal-backdrop[hidden]{display:none}.modal{width:min(1080px,100%);max-height:min(94vh,940px);background:#fff;border-radius:0;box-shadow:0 28px 90px rgba(0,0,0,.48);overflow:hidden;display:flex;flex-direction:column}.modal-head{display:flex;align-items:center;gap:14px;padding:18px 22px 14px;border-bottom:1px solid #edf2f7}.modal-title-wrap{min-width:0}.modal-head h1{font-size:23px;margin:2px 0 0;letter-spacing:-.02em}.modal-head p{font-size:12px;color:var(--muted);margin:4px 0 0}.modal-head .icon-btn{margin-left:auto;color:#102033}.eyebrow{font-size:10px;font-weight:950;letter-spacing:.14em;color:#168fe8}.progress-track{height:4px;background:#eef3f8}.progress-track span{display:block;height:100%;width:20%;background:linear-gradient(90deg,#168fe8,#73c8ff);transition:width .2s ease}.modal-body{min-height:0;overflow:hidden;display:grid;grid-template-columns:minmax(290px,35%) 1fr;flex:1}.photo-pane{padding:18px;background:linear-gradient(180deg,#f7faff,#f2f6fb);border-right:1px solid var(--line);overflow:auto}.preview-wrap{aspect-ratio:4/3;border-radius:0;background:#dfe7f1;display:grid;place-items:center;overflow:hidden;margin-bottom:11px;border:1px solid #d5e0ec}.preview-wrap img{width:100%;height:100%;object-fit:contain;background:#0a1422}.photo-placeholder{text-align:center;color:#74869c;font-size:40px}.photo-placeholder span{font-size:12px}.photo-facts{display:grid;gap:8px;margin-top:13px}.photo-facts>div{background:#fff;border:1px solid #dce6f0;border-radius:0;padding:10px 11px}.kicker{display:block;font-size:9px;font-weight:950;letter-spacing:.13em;color:#8da0b6}.photo-facts strong{display:block;font-size:12px;margin-top:3px;word-break:break-word}.preset-notice{margin-top:10px;padding:10px 11px;border:1px solid #a9d9fb;background:#ebf7ff;color:#075b99;border-radius:0;font-size:12px;font-weight:750;line-height:1.4}.warning{margin-top:10px;padding:10px 11px;border-radius:0;background:#fff5d8;border:1px solid #f0d38e;color:#754b00;font-size:12px;font-weight:750;line-height:1.45}
.wizard-form{min-height:0;display:flex;flex-direction:column;background:#fff}.wizard-step{display:none;padding:21px 24px 12px;overflow:auto;min-height:0;flex:1}.wizard-step.active{display:block}.step-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:20px}.step-heading>div{display:flex;align-items:center;gap:10px}.step-heading h2{font-size:21px;margin:0;letter-spacing:-.02em}.step-heading p{max-width:430px;margin:2px 0 0;color:var(--muted);font-size:12px;line-height:1.45;text-align:right}.step-number{display:grid;place-items:center;width:32px;height:32px;border-radius:0;background:#e9f6ff;color:#075f9f;font-weight:950;font-size:11px}.subheading,.selector-title>span{display:block;font-size:11px;font-weight:950;letter-spacing:.09em;text-transform:uppercase;color:#6e8198;margin:0 0 9px}.selector-block{margin-top:19px}.selector-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}.selector-title>span{margin:0}.selector-title input[type=search]{width:min(220px,55%);margin:0;padding:8px 10px;font-size:12px}.choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.choice-grid.compact{grid-template-columns:repeat(4,minmax(0,1fr))}.choice-grid.brands{grid-template-columns:repeat(4,minmax(0,1fr))}.choice-btn{border:1px solid #d8e3ef;background:#fff;border-radius:0;padding:11px 10px;min-height:46px;text-align:left;color:#20344c;font-weight:800;font-size:12px;cursor:pointer;transition:.13s ease}.choice-btn:hover{border-color:#8fcaf3;background:#f5fbff}.choice-btn.selected{border-color:#168fe8;background:#eaf7ff;box-shadow:0 0 0 2px rgba(22,143,232,.12);color:#075f9f}.choice-btn small{display:block;font-size:10px;font-weight:650;color:#7d8da2;margin-top:3px}.breadcrumb{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:0 0 10px;font-size:12px;color:#5f7187}.breadcrumb b{color:#0b6eae}.breadcrumb span:not(:last-child)::after{content:'\f054';font-family:"Font Awesome 6 Free";font-weight:900;margin-left:6px;color:#a4b1c0}.custom-panel{margin-top:14px;padding:14px;border-radius:0;background:#f7f9fc;border:1px solid #dde6ef}.custom-panel .field-row:last-child label{margin-bottom:0}.remember-row{display:flex!important;align-items:center;gap:8px;margin-top:18px!important;font-size:12px!important}.remember-row input,.rapid input{width:auto!important;margin:0!important;accent-color:#168fe8}
.multi-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.condition-choice{position:relative}.condition-choice input{position:absolute;opacity:0;pointer-events:none}.condition-choice span{display:flex;align-items:center;gap:9px;min-height:50px;padding:11px 12px;border:1px solid #d8e3ef;border-radius:0;background:#fff;font-size:12px;font-weight:800;cursor:pointer}.condition-choice span::before{content:'\2b';font-family:"Font Awesome 6 Free";font-weight:900;display:grid;place-items:center;flex:0 0 24px;width:24px;height:24px;border-radius:0;background:#edf2f7;color:#53687d;font-size:17px}.condition-choice input:checked+span{border-color:#168fe8;background:#eaf7ff;color:#075f9f}.condition-choice input:checked+span::before{content:'';background:#eaf7ff url('../ui/TickMark.png') center/22px 22px no-repeat;color:transparent}.hint{font-size:11px;line-height:1.5;color:#718399;margin:13px 2px}.radio-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.radio-card-grid.compact{grid-template-columns:repeat(3,minmax(0,1fr))}.radio-card{border:1px solid #d8e3ef;background:#fff;border-radius:0;padding:12px;text-align:left;cursor:pointer;color:#253950;min-height:52px;font-size:12px;font-weight:800}.radio-card.selected{border-color:#168fe8;background:#eaf7ff;color:#075f9f;box-shadow:0 0 0 2px rgba(22,143,232,.1)}.radio-card.warning-tone{border-color:#efc777;background:#fffaf0}.radio-card.warning-tone.selected{border-color:#d88a08;background:#fff4d9;color:#744700}.provenance{grid-template-columns:repeat(2,minmax(0,1fr))}
.segmented{display:grid;grid-template-columns:repeat(3,1fr);background:#edf2f7;border-radius:0;padding:4px;margin-bottom:16px}.segmented button{border:0;background:transparent;border-radius:0;padding:9px 7px;font-size:12px;font-weight:800;color:#617489;cursor:pointer}.segmented button.selected{background:#fff;color:#0875c7;box-shadow:0 2px 8px rgba(20,51,84,.13)}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:11px}.location-card{border:1px solid #cfe0ef;border-radius:0;padding:14px;background:#f7fbff;display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:17px}.location-card strong,.location-card small{display:block}.location-card strong{font-size:14px;margin-top:3px}.location-card small{font-size:10px;color:#74869b;margin-top:3px}.location-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.location-actions .secondary-btn{font-size:11px;padding:9px 10px}.final-fields{margin-top:17px}.review-card{margin-top:15px;border-radius:0;background:linear-gradient(180deg,#0b1a2f,#081321);color:#eaf4ff;padding:16px;min-height:90px}.review-card .review-title{font-size:16px;font-weight:900;color:#fff}.review-card .review-line{font-size:12px;color:#b9cbe0;margin-top:5px;line-height:1.45}.review-card .review-tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:10px}.review-card .review-tag{font-size:10px;background:#153452;color:#d9efff;border-radius:0;padding:5px 8px}.wizard-footer{display:flex;align-items:center;gap:10px;padding:12px 20px calc(12px + env(safe-area-inset-bottom));border-top:1px solid #e6edf5;background:rgba(255,255,255,.97);box-shadow:0 -6px 18px rgba(22,45,75,.05)}.wizard-footer .rapid{margin:0 auto 0 0!important;display:flex!important;align-items:center;gap:7px;font-size:12px}.wizard-footer .primary-btn{min-width:126px}.wizard-footer button[hidden]{display:none}
.capture-menu-backdrop{position:fixed;z-index:2600;inset:0;background:rgba(2,9,20,.66);display:grid;place-items:end center;padding:16px calc(16px + env(safe-area-inset-right)) calc(16px + env(safe-area-inset-bottom)) calc(16px + env(safe-area-inset-left))}.capture-menu-backdrop[hidden]{display:none}.capture-menu{width:min(500px,100%);background:#fff;border-radius:0;padding:18px;box-shadow:var(--shadow);display:grid;gap:10px}.capture-logo{width:150px;height:auto;margin-bottom:3px}.capture-menu>strong{font-size:19px}.capture-menu>p{font-size:12px;line-height:1.5;color:var(--muted);margin:-3px 0 4px}.capture-choice{border:1px solid #d7e3ef;background:#f8fbfe;border-radius:0;padding:13px;text-align:left;display:flex;align-items:center;gap:12px;color:#1e344d;cursor:pointer}.capture-choice>span:first-child{font-size:24px}.capture-choice b,.capture-choice small{display:block}.capture-choice b{font-size:13px}.capture-choice small{font-size:11px;color:#71849b;margin-top:3px}.capture-choice:hover{border-color:#8fcaf3;background:#eff9ff}.sync-badge{position:fixed;z-index:950;left:50%;transform:translateX(-50%);bottom:calc(18px + env(safe-area-inset-bottom));background:#07111f;color:#fff;padding:8px 12px;border-radius:0;font-size:11px;box-shadow:var(--shadow)}.toast{position:fixed;z-index:3000;left:50%;transform:translateX(-50%);bottom:calc(88px + env(safe-area-inset-bottom));max-width:min(90vw,560px);background:#07111f;color:#fff;padding:11px 15px;border-radius:0;box-shadow:var(--shadow);font-weight:750;font-size:12px;text-align:center}.map-pin{width:32px;height:32px;border:2px solid #fff;border-radius:0;display:grid;place-items:center;color:#fff;background:#526579;box-shadow:0 2px 8px rgba(0,0,0,.34);font-weight:950;font-size:9px}.map-pin.key-toro{background:#d52b2b}.map-pin.key-k-rain{background:#ed8b00;color:#111}.map-pin.key-mystery{background:#e4c51a;color:#111}.map-pin.key-orbit{background:#2f9d44}.map-pin.key-buckner{background:#155f31}.map-pin.key-hunter{background:#1f67d8}.map-pin.key-3d-printed{background:#183f88}.map-pin.key-weathermatic{background:#7a3ba5}.map-pin.key-other{background:#d94e9d}.map-pin.key-rain-bird{background:#111}.map-pin.key-controller{background:#79502f}.map-pin.key-valve{background:#fff;color:#111;border-color:#68717a}.map-pin.key-backflow{background:#8d959d;color:#111}.map-pin.key-rain-sensor{background:#183f88}.map-pin.key-equipment-other{background:#54351f}.marker-cluster-small,.marker-cluster-medium,.marker-cluster-large{background:rgba(7,17,31,.18)!important}.marker-cluster-small div,.marker-cluster-medium div,.marker-cluster-large div{background:#eef4f8!important;color:#07111f!important;border:1px solid #66798d!important;font-weight:950!important}.map-pin.rainjet{background:#6b7280}.popup-card{min-width:205px;max-width:260px}.popup-card img{width:100%;max-height:155px;object-fit:cover;border-radius:0;margin-bottom:9px}.popup-card strong{font-size:14px}.popup-card .small{font-size:11px;color:#6d7f94;margin-top:5px;line-height:1.4}.popup-card .components{font-size:11px;margin-top:6px;line-height:1.4}.popup-field-notes{margin-top:8px;padding:7px 8px;border:1px solid #c6d3df;background:#f6f9fc;font-size:11px;line-height:1.45;color:#2d4155}.popup-field-notes>b{display:block;margin-bottom:3px;font-size:10px;letter-spacing:.055em;text-transform:uppercase;color:#60768d}.popup-field-notes>div{white-space:pre-wrap;overflow-wrap:anywhere;max-height:126px;overflow:auto}.popup-card .discoverer{font-size:11px;color:#587087;margin-top:5px;line-height:1.4}.popup-card .discoverer b{color:#183f63}.approved-mark{display:inline-block;margin-left:5px;padding:2px 5px;border-radius:0;background:#e5f7ee;color:#147148;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.popup-delete,.archive-delete{border:0;border-radius:0;background:#fff0f0;color:#a52424;font-weight:900;font-size:10px;padding:8px 10px;cursor:pointer}.popup-delete{width:100%;margin-top:9px}.popup-delete:hover,.archive-delete:hover{background:#ffe1e1}.popup-delete:disabled,.archive-delete:disabled{opacity:.5;cursor:wait}.popup-tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:7px}.popup-tags span{font-size:10px;background:#eef4f9;border-radius:0;padding:4px 6px}.installed-banner{position:fixed;z-index:1800;top:76px;left:50%;transform:translateX(-50%);background:#0e7143;color:#fff;border-radius:0;padding:10px 14px;box-shadow:var(--shadow);font-size:12px;font-weight:750}
@media(max-width:820px){.choice-grid.brands{grid-template-columns:repeat(3,minmax(0,1fr))}.choice-grid.compact{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:720px){
  .topbar{min-height:58px;padding:calc(7px + env(safe-area-inset-top)) 9px 7px}.top-logo{width:118px}.brand-block span{font-size:9px}.account{max-width:92px;padding:8px 6px}.notification-bell{width:32px;height:34px;font-size:15px}#map{inset:58px 0 0}.fab{right:12px;bottom:calc(12px + env(safe-area-inset-bottom));padding:11px 15px 11px 12px}
  .modal-backdrop{padding:0;place-items:end center}.modal{width:100%;height:calc(100dvh - env(safe-area-inset-top));max-height:100dvh;border-radius:0}.modal-head{padding:14px 17px 10px}.modal-head h1{font-size:20px}.modal-body{display:block;overflow:auto}.photo-pane{border-right:0;border-bottom:1px solid var(--line);padding:14px}.preview-wrap{aspect-ratio:16/8.6}.photo-facts{grid-template-columns:repeat(3,1fr)}.photo-facts>div{padding:8px}.photo-facts strong{font-size:10px}.wizard-form{min-height:0;overflow:visible}.wizard-step{padding:17px 16px 10px;overflow:visible}.step-heading{display:block;margin-bottom:16px}.step-heading p{margin-top:7px;text-align:left;max-width:none}.choice-grid,.choice-grid.brands,.choice-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.choice-btn{min-height:48px}.multi-choice-grid{grid-template-columns:1fr}.radio-card-grid,.radio-card-grid.compact,.provenance{grid-template-columns:1fr 1fr}.field-row{grid-template-columns:1fr}.location-card{display:block}.location-actions{justify-content:flex-start;margin-top:12px}.wizard-footer{position:sticky;bottom:0;z-index:5;padding:10px 13px calc(10px + env(safe-area-inset-bottom))}.wizard-footer .rapid{font-size:11px}.wizard-footer .primary-btn{min-width:105px;padding-left:10px;padding-right:10px}.wizard-footer .secondary-btn{padding-left:10px;padding-right:10px}.selector-title input[type=search]{width:52%}
}
@media(max-width:420px){.photo-facts{grid-template-columns:1fr 1fr}.photo-facts>div:last-child{grid-column:1/-1}.radio-card-grid,.radio-card-grid.compact,.provenance{grid-template-columns:1fr}.segmented button{font-size:11px}.wizard-footer .rapid{max-width:90px;line-height:1.1}}
.archive-open{margin-top:10px}.archive-backdrop{position:fixed;z-index:2400;inset:0;background:rgba(2,9,20,.66);display:grid;place-items:center;padding:18px}.archive-backdrop[hidden]{display:none}.archive-panel{width:min(820px,100%);max-height:min(88vh,900px);overflow:auto;background:#fff;border-radius:0;box-shadow:var(--shadow);padding:18px}.archive-panel>header{display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;top:-18px;background:#fff;padding:18px 0 10px;z-index:2;border-bottom:1px solid #eef3f7}.archive-panel h2{margin:2px 0 0;font-size:21px}.archive-panel .icon-btn{color:#102033}.archive-intro{font-size:12px;color:var(--muted);line-height:1.5}.archive-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}.archive-card{border:1px solid #dae5ef;border-radius:0;overflow:hidden;background:#fff}.archive-card>img,.archive-photo-missing{width:100%;height:170px;object-fit:cover;background:#e7edf4}.archive-photo-missing{display:grid;place-items:center;color:#8293a7;font-size:12px}.archive-card-body{padding:12px}.archive-card-body>strong{font-size:14px}.archive-meta{font-size:11px;color:#718398;margin-top:4px;line-height:1.4}.archive-tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:8px}.archive-tags span{font-size:10px;background:#eef5fb;border-radius:0;padding:4px 6px}.archive-card p{font-size:11px;color:#5f7288;line-height:1.45;margin:9px 0 0}.archive-delete{margin-top:10px}.archive-empty{grid-column:1/-1;padding:32px;text-align:center;color:#53677b;background:#f5f8fb;border-radius:0}
@media(max-width:620px){.archive-backdrop{padding:0;place-items:end center}.archive-panel{width:100%;max-height:92vh;border-radius:0;padding:15px;padding-bottom:calc(15px + env(safe-area-inset-bottom))}.archive-list{grid-template-columns:1fr}.archive-card{display:grid;grid-template-columns:130px 1fr}.archive-card>img,.archive-photo-missing{height:100%;min-height:130px}.archive-panel>header{top:-15px;padding-top:15px}}

.admin-mark{background:#fee9e8!important;border-color:#d99791!important;color:#8b2119!important}.moderator-mark{background:#fff2d6!important;border-color:#deb55d!important;color:#725000!important}
/* v0.3 utilitarian square geometry: override Leaflet/cluster defaults too. */
.leaflet-container *, .marker-cluster, .marker-cluster div{border-radius:0!important}

/* v0.3.1.1 — Quick Log map-point workflow + supplied UI assets */
.quick-pick-banner{position:fixed;z-index:1200;top:86px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:12px;max-width:min(92vw,760px);background:#07111f;color:#fff;border:2px solid #168fe8;padding:10px 12px;box-shadow:var(--shadow);font-size:12px}.quick-pick-banner[hidden]{display:none}.quick-pick-banner b{letter-spacing:.08em;color:#73c8ff}.quick-pick-banner span{flex:1}.quick-pick-banner button{border:1px solid #587087;background:#10263f;color:#fff;padding:7px 10px;font:inherit;font-weight:800;cursor:pointer;border-radius:0}#map.quick-pick-active,#map.quick-pick-active.leaflet-grab,#map.quick-pick-active .leaflet-interactive,#map.rapid-pick-active,#map.rapid-pick-active.leaflet-grab,#map.rapid-pick-active .leaflet-interactive,#map.system-pick-active,#map.system-pick-active.leaflet-grab,#map.system-pick-active .leaflet-interactive{cursor:url('../pin-cursor.svg') 14 30,crosshair!important}.log-mode-choice{min-height:68px}.quick-mode-notice{margin:14px 18px 0;border:1px solid #76c4f7;background:#eef8ff;color:#0d5183;padding:10px 12px;display:flex;gap:10px;align-items:center;font-size:12px}.quick-mode-notice[hidden]{display:none}.quick-mode-notice b{letter-spacing:.08em}.quick-log-mode .modal-body{grid-template-columns:1fr}.quick-log-mode .photo-pane{display:none}.quick-log-mode .wizard-form{max-width:none}.quick-log-mode .wizard-step{max-width:900px;width:100%;margin-inline:auto}
@media(max-width:700px){.quick-pick-banner{top:66px;width:calc(100% - 18px);max-width:none}.quick-pick-banner span{font-size:10px}.quick-mode-notice{margin:10px 12px 0}}
.quick-duplicate-warning{margin:8px 18px 0}.quick-duplicate-warning[hidden]{display:none}@media(max-width:700px){.quick-duplicate-warning{margin:8px 12px 0}}

/* v0.3.1.1 — supplied IrriDex UI artwork */
.drawer-image-nav{display:grid;gap:8px;margin-top:14px}.drawer-image-link{display:block;border:1px solid #aab9c8;background:#0a1726;overflow:hidden;text-decoration:none;line-height:0}.drawer-image-link img{display:block;width:100%;height:auto;aspect-ratio:4/1;object-fit:cover}.drawer-image-link:hover,.drawer-image-link:focus-visible{border-color:#168fe8;outline:2px solid rgba(22,143,232,.22);outline-offset:0}.drawer-personal-export{display:block;margin-top:10px}.log-mode-icon{width:64px;height:64px;flex:0 0 64px;object-fit:contain}.capture-choice.log-mode-choice{padding:10px 13px}.capture-choice.log-mode-choice>span{min-width:0}.save-find-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px}.save-find-btn img{width:22px;height:22px;object-fit:contain}.save-find-btn[hidden]{display:none}.asset-action{display:inline-flex!important;align-items:center;justify-content:center;gap:5px}.asset-action img{width:20px!important;height:20px!important;object-fit:contain!important;margin:0!important}.approved-mark{display:inline-flex;align-items:center;gap:2px;vertical-align:middle}.approved-mark .approved-tick{width:12px;height:12px;object-fit:contain;margin:0}.popup-card .approved-mark img{width:12px;max-height:none;margin:0;border-radius:0}.archive-card .asset-action img{width:20px;height:20px}.capture-choice>img.log-mode-icon+span{display:block}
@media(max-width:420px){.log-mode-icon{width:54px;height:54px;flex-basis:54px}.drawer-image-nav{gap:6px}}



/* v0.3.1.2 — compact supplied-artwork controls. Keep the art as icons, not billboards. */
.drawer-image-nav{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:6px!important;
  margin-top:10px!important;
}
.drawer-image-link{
  width:100%!important;
  min-width:0!important;
}
.drawer-image-link img{
  display:block!important;
  width:100%!important;
  height:37px!important;
  max-width:100%!important;
  max-height:37px!important;
  aspect-ratio:auto!important;
  object-fit:cover!important;
}
.capture-menu{
  width:min(420px,100%)!important;
  padding:14px!important;
  gap:7px!important;
}
.capture-logo{width:118px!important;margin-bottom:0!important}
.capture-menu>strong{font-size:17px!important}
.capture-menu>p{font-size:11px!important;margin:-2px 0 2px!important}
.capture-choice.log-mode-choice{
  min-height:0!important;
  height:auto!important;
  padding:7px 9px!important;
  gap:9px!important;
}
.log-mode-icon{
  display:block!important;
  width:40px!important;
  height:40px!important;
  max-width:40px!important;
  max-height:40px!important;
  flex:0 0 40px!important;
  object-fit:contain!important;
}
.capture-choice.log-mode-choice b{font-size:12px!important}
.capture-choice.log-mode-choice small{font-size:9px!important;margin-top:2px!important}
.wizard-footer .save-find-btn{
  min-width:88px!important;
  padding:7px 10px!important;
  gap:4px!important;
  font-size:11px!important;
  line-height:1.1!important;
}
.wizard-footer .save-find-btn img{
  display:block!important;
  width:16px!important;
  height:16px!important;
  max-width:16px!important;
  max-height:16px!important;
  flex:0 0 16px!important;
  object-fit:contain!important;
  margin:0!important;
}
@media(max-width:420px){
  .drawer-image-link img{height:34px!important;max-height:34px!important}
  .log-mode-icon{width:36px!important;height:36px!important;max-width:36px!important;max-height:36px!important;flex-basis:36px!important}
  .capture-menu{padding:12px!important}
}
.visibility-badge{display:inline-block;margin:6px 0 2px;padding:4px 7px;border:1px solid #7e93a8;background:#edf3f8;color:#31485d;font-size:10px;font-weight:950;letter-spacing:.05em;text-transform:uppercase}.visibility-badge.approved-only{background:#fff4c7;border-color:#c99a19;color:#6b4d00}.visibility-badge.private-only{background:#e8edf3;border-color:#8d9baa;color:#3e4e5d}.popup-card>.visibility-badge,.archive-card-body>.visibility-badge{display:table}
.visibility-field{margin:17px 0 0;padding:0;border:0}.visibility-field legend{display:block;margin-bottom:7px;font-size:11px;font-weight:900;color:#344a61;letter-spacing:.03em}.visibility-field label{display:flex;align-items:flex-start;gap:9px;margin:0;padding:9px 10px;border:1px solid #cfe0ef;background:#f8fbfe;cursor:pointer}.visibility-field label+label{border-top:0}.visibility-field input{width:auto;margin:2px 0 0;accent-color:#168fe8}.visibility-field span,.visibility-field b,.visibility-field small{display:block}.visibility-field b{font-size:12px;color:#20364b}.visibility-field small{font-size:11px;color:#71849b;margin-top:2px;line-height:1.35}

/* v0.3.3.4 — high-zoom building/address labels */
.address-number-icon{background:transparent!important;border:0!important;width:auto!important;height:auto!important;overflow:visible!important;pointer-events:none!important}
.address-number-icon span{display:block;transform:translate(-50%,-50%);white-space:nowrap;background:rgba(255,255,255,.94);border:1px solid #07111f;color:#07111f;padding:2px 4px;font-size:10px;font-weight:950;line-height:1;letter-spacing:.02em;box-shadow:1px 1px 0 rgba(0,0,0,.55)}
@media(max-width:700px){.address-number-icon span{font-size:9px;padding:2px 3px}}

/* v0.3.4.0 — independent point assets */
.map-pin{position:relative;grid-template-columns:1fr;grid-template-rows:1fr;overflow:visible}
.map-pin .pin-brand{display:grid;place-items:center;width:100%;height:100%;line-height:1}
.map-pin .pin-type{position:absolute;right:-7px;bottom:-7px;min-width:17px;height:17px;padding:0 3px;display:grid;place-items:center;background:#07111f;color:#fff;border:1px solid #fff;font-size:6px;font-weight:950;letter-spacing:-.02em;box-shadow:0 1px 4px rgba(0,0,0,.35)}
.equipment-type-badge{display:table;margin:5px 0 2px;padding:3px 6px;border:1px solid #9aabbc;background:#f0f4f8;color:#32485e;font-size:8px;font-weight:950;letter-spacing:.05em;text-transform:uppercase}
.equipment-type-badge.type-valve{background:#e8f6ef;border-color:#5da57f;color:#205e42}
.equipment-type-badge.type-controller{background:#edf1ff;border-color:#7288c7;color:#33487e}
.equipment-type-badge.type-sensor{background:#fff7dc;border-color:#b89d45;color:#66520c}
.equipment-type-badge.type-backflow{background:#e8f5fa;border-color:#5e9caf;color:#275866}
.equipment-type-badge.type-filter{background:#f2edf9;border-color:#9175b0;color:#533b70}
.equipment-type-badge.type-pump{background:#f9ecec;border-color:#b87b7b;color:#743939}
.component-detail-hint{display:flex;gap:10px;align-items:flex-start;margin:0 0 16px;padding:11px 12px;border:1px solid #a7b7c8;background:#f3f7fa;color:#344c64;font-size:11px;line-height:1.45}
.component-detail-hint[hidden]{display:none}.component-detail-hint b{white-space:nowrap;color:#0b6eae;letter-spacing:.07em}.component-detail-hint span{flex:1}

.body-feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:520px){.body-feature-grid{grid-template-columns:1fr}}


/* v0.4.6.0 — first-class line/polygon logging */
.geometry-draw-banner{position:fixed;z-index:1250;top:86px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:8px;max-width:min(94vw,860px);background:#07111f;color:#fff;border:2px solid #ef35df;padding:9px 11px;box-shadow:var(--shadow);font-size:11px}.geometry-draw-banner[hidden]{display:none}.geometry-draw-banner b{color:#ff64e9;letter-spacing:.07em;white-space:nowrap}.geometry-draw-banner span{flex:1}.geometry-draw-banner button{border:1px solid #66798d;background:#10263f;color:#fff;padding:6px 9px;font:inherit;font-weight:850;cursor:pointer}.geometry-draw-banner button:disabled{opacity:.45;cursor:not-allowed}#map.geometry-draw-active,#map.geometry-draw-active.leaflet-grab,#map.geometry-draw-active .leaflet-interactive{cursor:crosshair!important}.geometry-form{width:min(520px,100%)!important;max-height:min(92dvh,760px);overflow:auto}.geometry-form label{display:grid;gap:5px;font-size:11px;font-weight:850;color:#31485d}.geometry-form input,.geometry-form textarea{width:100%;box-sizing:border-box}.geometry-form .geometry-visibility{margin-top:4px}.geometry-form-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end;margin-top:4px}.geometry-draft-vertex{stroke:#07111f;stroke-width:2;fill:#fff;fill-opacity:1}.geometry-draft-shape{stroke:#ef35df;stroke-width:4;fill:#ef35df;fill-opacity:.12}.geometry-draft-shape.line-draft{fill-opacity:0}
@media(max-width:700px){.geometry-draw-banner{top:66px;width:calc(100% - 18px);max-width:none;gap:5px;padding:7px}.geometry-draw-banner span{font-size:9px}.geometry-draw-banner button{padding:6px 7px}.geometry-form-actions>*{flex:1 1 auto}}
/* v0.4.7.0 — edit actions */
.popup-edit,.archive-edit{border:0;border-radius:0;background:#eef7ff;color:#0b67ad;font-weight:900;font-size:10px;padding:8px 10px;text-decoration:none;cursor:pointer}.popup-edit{width:100%;margin-top:9px}.popup-edit+.popup-delete{margin-top:5px}.popup-edit:hover,.archive-edit:hover{background:#dceeff}.archive-edit{margin-top:10px}

/* v0.4.10.0 supplied top-down sprinkler marker artwork (25% smaller render). */
.map-pin-image{width:28.5px;height:28.5px;display:grid;place-items:center;overflow:visible;pointer-events:none}
.map-pin-image img{display:block;width:28.5px;height:28.5px;object-fit:contain;filter:drop-shadow(0 2px 3px rgba(0,0,0,.55));pointer-events:none;user-select:none;-webkit-user-drag:none}


/* v0.4.10.0 — measurement + explicit pin relocation tools. */
.measure-btn[aria-pressed="true"]{background:#e9f6ff!important;color:#07111f!important;box-shadow:inset 0 0 0 2px #56b8f6}
.measure-banner,.move-pin-banner{position:fixed;z-index:1260;top:86px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:8px;max-width:min(94vw,900px);background:#07111f;color:#fff;border:2px solid #56b8f6;padding:9px 11px;box-shadow:var(--shadow);font-size:11px}
.measure-banner[hidden],.move-pin-banner[hidden]{display:none}.measure-banner b,.move-pin-banner b{color:#8fd1ff;letter-spacing:.07em;white-space:nowrap}.measure-banner span,.move-pin-banner span{flex:1;min-width:140px}.measure-banner button,.move-pin-banner button{border:1px solid #66798d;background:#10263f;color:#fff;padding:6px 9px;font:inherit;font-weight:850;cursor:pointer}.measure-banner button:disabled,.move-pin-banner button:disabled{opacity:.45;cursor:not-allowed}
#map.measure-active,#map.measure-active.leaflet-grab,#map.measure-active .leaflet-interactive{cursor:crosshair!important}#map.measure-active .leaflet-marker-icon,#map.measure-active .leaflet-marker-shadow,#map.measure-active .leaflet-interactive{pointer-events:none!important}.measure-line{stroke:#55c7ff;stroke-width:3;stroke-dasharray:8 5}.measure-live-line{stroke:#bcecff;stroke-width:2;stroke-dasharray:4 5}.measure-point{stroke:#07111f;stroke-width:2;fill:#fff;fill-opacity:1}.leaflet-tooltip.measure-live-tooltip{background:#07111f;color:#fff;border:1px solid #8fd1ff;border-radius:0;box-shadow:0 2px 7px rgba(0,0,0,.35);font:800 10px/1.15 "Verdana",Arial,sans-serif;padding:5px 7px;white-space:nowrap}.leaflet-tooltip-top.measure-live-tooltip:before{border-top-color:#8fd1ff}
.popup-move{border:0;border-radius:0;background:#e9f6ff;color:#075f9f;font-weight:900;font-size:10px;padding:8px 10px;cursor:pointer;width:100%;margin-top:9px}.popup-move:hover{background:#d7efff}.popup-move+.popup-edit{margin-top:5px}.popup-move+.popup-delete{margin-top:5px}
.pin-move-active{filter:drop-shadow(0 0 6px #56b8f6)!important;z-index:10000!important}.pin-move-mode .leaflet-marker-icon.pin-move-active{cursor:move!important;cursor:grab!important}.pin-move-mode .leaflet-marker-icon.pin-move-active.leaflet-drag-target{cursor:grabbing!important}
@media(max-width:700px){.measure-banner,.move-pin-banner{top:66px;width:calc(100% - 18px);max-width:none;gap:5px;padding:7px}.measure-banner span,.move-pin-banner span{font-size:9px;min-width:0}.measure-banner button,.move-pin-banner button{padding:6px 7px}}


/* v0.4.11.0 moderator-controlled announcement banner. It overlays the map under the
   fixed topbar; interactive mode banners automatically move below its measured height. */
.site-banner{position:fixed;z-index:1190;top:64px;left:0;right:0;max-height:74px;overflow:auto;overscroll-behavior:contain;background:#fff4c2;color:#352700;border-bottom:2px solid #d7ad00;padding:8px 14px;text-align:center;font-size:12px;font-weight:850;line-height:1.35;box-shadow:0 3px 10px rgba(0,0,0,.14);overflow-wrap:anywhere}.site-banner span{white-space:pre-line}.has-site-banner #map .leaflet-top{top:calc(var(--site-banner-offset,0px) + 6px)}
.has-site-banner .quick-pick-banner,.has-site-banner .geometry-draw-banner,.has-site-banner .measure-banner,.has-site-banner .move-pin-banner{top:calc(86px + var(--site-banner-offset,0px))}
@media(max-width:700px){.site-banner{top:58px;max-height:64px;padding:7px 10px;font-size:10px}.has-site-banner #map .leaflet-top{top:calc(var(--site-banner-offset,0px) + 5px)}.has-site-banner .quick-pick-banner,.has-site-banner .geometry-draw-banner,.has-site-banner .measure-banner,.has-site-banner .move-pin-banner{top:calc(66px + var(--site-banner-offset,0px))}}


/* v0.4.14.0 — dedicated Rapid Log. Intentionally flatter and shorter than Quick/Advanced Log. */
.rapid-pick-banner{border-color:#ffd44a}.rapid-pick-banner b{color:#ffe47a}
.rapid-log-choice{border-color:#e4bd27;background:#fffbed}
.rapid-log-choice:hover{border-color:#c79500;background:#fff5c7}
.rapid-log-glyph{width:40px;height:40px;display:grid;place-items:center;font-size:27px!important;line-height:1}
.rapid-log-backdrop{z-index:2750;place-items:center}
.rapid-log-panel{width:min(520px,100%);max-height:min(760px,calc(100dvh - 28px));overflow:auto;gap:14px;padding:18px}
.rapid-log-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.rapid-log-head .capture-logo{margin:0}
.rapid-log-title{display:block;font-size:20px;margin-top:2px}
.rapid-log-point{margin:3px 0 0!important;font-size:10px!important;color:#71849b!important;font-variant-numeric:tabular-nums}
.rapid-section{border:1px solid #d5e1ec;padding:12px;margin:0;min-width:0}
.rapid-section legend{font-size:11px;font-weight:950;letter-spacing:.08em;color:#183f63;padding:0 5px}
.rapid-subhead,.rapid-uncommon-label{display:block;font-size:9px;font-weight:950;letter-spacing:.09em;color:#71849b;margin-bottom:7px}
.rapid-uncommon-label{margin-top:11px}
.rapid-brand-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.rapid-brand-btn{border:1px solid #cbd9e6;background:#f7fafc;color:#16324d;min-height:44px;padding:8px 6px;font:inherit;font-size:11px;font-weight:900;cursor:pointer}
.rapid-brand-btn.selected{background:#0b74c5;border-color:#0b74c5;color:#fff;box-shadow:inset 0 0 0 2px #fff}
.rapid-section select{width:100%;border:1px solid #bdcddb;background:#fff;padding:10px;font:inherit;font-size:12px;color:#183044;border-radius:0}
.rapid-condition-grid,.rapid-visibility-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.rapid-condition-grid label,.rapid-visibility-grid label{position:relative;display:block;margin:0}
.rapid-condition-grid input,.rapid-visibility-grid input{position:absolute;opacity:0;pointer-events:none}
.rapid-condition-grid span,.rapid-visibility-grid span{display:grid;place-items:center;min-height:46px;border:1px solid #cad8e4;background:#f7fafc;font-size:12px;font-weight:950;cursor:pointer;text-align:center;padding:7px}
.rapid-condition-grid input:checked+span,.rapid-visibility-grid input:checked+span{background:#0b74c5;border-color:#0b74c5;color:#fff;box-shadow:inset 0 0 0 2px #fff}
.rapid-condition-grid label:nth-child(2) input:checked+span{background:#8a6b11;border-color:#8a6b11}
.rapid-condition-grid label:nth-child(3) input:checked+span{background:#a62b2b;border-color:#a62b2b}
.rapid-notes{font-size:10px;font-weight:950;letter-spacing:.07em;color:#29455e;margin:0}
.rapid-notes>span{font-weight:700;color:#7c8da0}
.rapid-notes textarea{display:block;width:100%;margin-top:7px;resize:vertical;min-height:74px;max-height:150px;border:1px solid #bdcddb;border-radius:0;padding:10px;font:inherit;font-size:12px;line-height:1.45;letter-spacing:0;color:#142b41}
.rapid-post{width:100%;min-height:48px;font-size:14px;font-weight:950;letter-spacing:.08em}
.wizard-footer-spacer{flex:1}
@media(max-width:560px){
  .rapid-log-backdrop{place-items:end center;padding:0}
  .rapid-log-panel{width:100%;max-height:calc(100dvh - env(safe-area-inset-top));padding:14px 13px calc(14px + env(safe-area-inset-bottom))}
  .rapid-brand-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rapid-brand-btn{min-height:46px}
}

/* v0.4.14.2 deployment fingerprint: intentionally visible in the logging chooser. */
.irridex-build-marker{display:block;text-align:center;margin-top:7px;font:700 9px/1.2 "Verdana",Arial,sans-serif;color:#7a8b9c;letter-spacing:.04em}

/* v0.4.15.1 — Traditional / Google MyMaps-style mode */
.traditional-mode-btn.active{background:#eef6ff;border-color:#2d6aa3;box-shadow:inset 0 0 0 2px #8db8df}
.traditional-mode-drawer-btn{margin-top:10px}.drawer-mode-help{font-size:12px;line-height:1.35;color:#66778b;margin:6px 2px 12px}
.traditional-log-choice{border-color:#b9cbe0!important;background:#f7fbff!important}.traditional-log-glyph{font-size:34px;line-height:1;width:48px;text-align:center}
body.traditional-mode #map{cursor:default}.traditional-pick-active{cursor:crosshair!important}
.traditional-pick-banner{border-top-color:#2d6aa3}
.traditional-layers-panel{position:absolute;z-index:720;left:12px;top:calc(68px + var(--site-banner-offset,0px));width:min(300px,calc(100vw - 24px));max-height:calc(100vh - 100px - var(--site-banner-offset,0px));overflow:auto;background:#fff;border:1px solid #93a7bc;box-shadow:0 4px 18px rgba(0,0,0,.28);padding:10px;font-family:"Verdana",Arial,sans-serif}
.traditional-layers-head{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #d6e0ea;padding-bottom:7px;margin-bottom:6px}.traditional-layers-head>div{display:flex;flex-direction:column}.traditional-layers-head b{font-size:18px}.traditional-layers-head small{color:#65768a;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.traditional-layer-list{display:grid;gap:2px;margin-bottom:8px}.traditional-layer-row{display:flex;gap:8px;align-items:center;padding:7px 5px;border-bottom:1px solid #edf1f5;cursor:pointer}.traditional-layer-row:hover{background:#f4f8fb}.traditional-layer-row input{width:17px;height:17px}.traditional-layer-row span{display:flex;flex:1;align-items:center;justify-content:space-between;gap:8px}.traditional-layer-row b{font-size:13px}.traditional-layer-row small{font-size:11px;color:#718196}
.traditional-marker-svg{display:block;overflow:visible;filter:drop-shadow(0 1px 1px rgba(0,0,0,.45));user-select:none}.traditional-marker-svg-pin{width:32px;height:44px}.traditional-marker-svg-dot{width:32px;height:32px}
.traditional-popup-meta{display:flex;align-items:center;gap:6px;margin:4px 0 6px;font-size:12px;font-weight:700;color:#596b7d}.traditional-color-chip{width:12px;height:12px;border-radius:50%;background:var(--trad-color);border:1px solid #77818b;display:inline-block;flex:0 0 auto}
.traditional-log-panel{width:min(620px,calc(100vw - 28px));max-height:calc(100vh - 28px);overflow:auto}.traditional-log-panel>label{display:grid;gap:5px;font-weight:800;margin:8px 0}.traditional-log-panel input[type=text],.traditional-log-panel input:not([type]),.traditional-log-panel textarea,.traditional-log-panel select{font:inherit;padding:9px;border:1px solid #aab9c8;background:#fff}
.traditional-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.traditional-choice{position:relative;display:flex;align-items:center;gap:8px;border:1px solid #c4d0dc;background:#f8fafc;padding:8px;min-height:42px;cursor:pointer;font-weight:700}.traditional-choice input{position:absolute;opacity:0;pointer-events:none}.traditional-choice:has(input:checked){border-color:#2d6aa3;background:#eaf4ff;box-shadow:inset 0 0 0 1px #2d6aa3}.traditional-choice-swatch{width:20px;height:20px;border-radius:50%;background:var(--trad-color);border:1px solid #68798a;box-shadow:inset 0 0 0 1px rgba(255,255,255,.35);flex:0 0 auto}.traditional-symbol-preview{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#e7edf4;color:#17283a;font-weight:900}.symbol-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:700px){.traditional-layers-panel{top:calc(60px + var(--site-banner-offset,0px));left:6px;width:min(280px,calc(100vw - 12px));max-height:45vh}.traditional-choice-grid,.symbol-grid{grid-template-columns:1fr}.traditional-mode-btn{display:inline-flex}}

/* v0.4.15.5 filter/search refinement */
.filter-help{font-size:11px;line-height:1.45;color:var(--muted);margin:-2px 0 10px}.filter-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.filter-actions .wide{width:100%}@media(max-width:320px){.filter-actions{grid-template-columns:1fr}}


/* v0.4.16.0 — daily/login startup sequence. */
body.irridex-intro-active{overflow:hidden!important}
.irridex-intro{position:fixed;z-index:50000;inset:0;background:#000;backdrop-filter:blur(0);-webkit-backdrop-filter:blur(0);display:grid;place-items:center;overflow:hidden;transition:background .78s ease,backdrop-filter .78s ease,-webkit-backdrop-filter .78s ease;isolation:isolate}
.irridex-intro[hidden]{display:none!important}
.irridex-intro-begin{position:absolute;z-index:6;inset:auto;border:0;background:transparent;color:#fff;font-family:"Verdana",Arial,sans-serif!important;font-size:clamp(20px,3.2vw,40px);font-weight:800;letter-spacing:.015em;padding:30px;cursor:pointer;text-shadow:0 2px 8px rgba(0,0,0,.75);transition:opacity .42s ease,transform .42s ease}
.irridex-intro-begin:focus-visible{outline:2px solid #fff;outline-offset:4px}
.irridex-intro-scene{position:absolute;inset:0;display:grid;place-items:center;padding:5vw;opacity:0;transform:scale(.985);pointer-events:none;transition:opacity .62s ease .28s,transform .62s cubic-bezier(.2,.7,.2,1) .28s}
.irridex-intro-bar-wrap{position:relative;width:min(1180px,92vw);filter:drop-shadow(0 22px 40px rgba(0,0,0,.35))}
.irridex-intro-bar{display:block;width:100%;height:auto;user-select:none;-webkit-user-drag:none}
.irridex-intro-start{position:absolute;z-index:3;right:3%;top:50%;width:39%;transform:translateY(-50%);border:0;background:transparent;padding:0;cursor:pointer;opacity:.98;transition:transform .12s ease,filter .12s ease;pointer-events:auto}
.irridex-intro-start:disabled{pointer-events:none}
.irridex-intro-start:not(:disabled):hover{filter:brightness(1.04)}
.irridex-intro-start:not(:disabled):active{transform:translateY(-50%) scale(.992)}
.irridex-intro-start:focus-visible{outline:3px solid #ffe800;outline-offset:4px}
.irridex-intro-start img{display:block;width:100%;height:auto;user-select:none;-webkit-user-drag:none}
.irridex-intro-splash{position:absolute;z-index:5;right:3.8%;top:-10%;max-width:46%;color:#ffe600;font-family:"Verdana",Arial,sans-serif!important;font-size:clamp(16px,2.45vw,34px);font-weight:900;line-height:.95;text-align:center;text-transform:none;white-space:normal;transform:rotate(-12deg) scale(1);transform-origin:center;text-shadow:2px 2px 0 #5b4700,0 0 7px rgba(0,0,0,.75);animation:irridexSplashPulse 1.45s ease-in-out infinite alternate;pointer-events:none}
.irridex-intro.is-entered{background:rgba(0,0,0,.16);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.irridex-intro.is-entered .irridex-intro-begin{opacity:0;transform:scale(.96);pointer-events:none}
.irridex-intro.is-entered .irridex-intro-scene{opacity:1;transform:scale(1)}
.irridex-intro.is-leaving{background:rgba(0,0,0,0);backdrop-filter:blur(0);-webkit-backdrop-filter:blur(0);transition-duration:.82s}
.irridex-intro.is-leaving .irridex-intro-scene{opacity:0;transform:scale(1.018);transition:opacity .58s ease,transform .7s ease}
@keyframes irridexSplashPulse{from{transform:rotate(-12deg) scale(.94)}to{transform:rotate(-12deg) scale(1.08)}}
@media(max-width:640px){.irridex-intro-scene{padding:4vw}.irridex-intro-bar-wrap{width:96vw}.irridex-intro-start{right:2.5%;width:40%}.irridex-intro-splash{right:3%;top:-24%;max-width:50%;font-size:clamp(13px,4vw,22px);text-shadow:1px 1px 0 #5b4700,0 0 5px rgba(0,0,0,.8)}}
@media(prefers-reduced-motion:reduce){.irridex-intro,.irridex-intro-begin,.irridex-intro-scene,.irridex-intro-start{transition-duration:.12s!important;transition-delay:0s!important}.irridex-intro-splash{animation:none}}

/* v0.4.17.0 — guest splash tutorial button + guided tutorial wizard. */
.irridex-intro-tutorial{position:absolute;z-index:3;left:3%;top:50%;width:39%;transform:translateY(-50%);border:0;background:transparent;padding:0;cursor:pointer;opacity:.98;transition:transform .12s ease,filter .12s ease;pointer-events:auto}
.irridex-intro-tutorial:disabled{pointer-events:none}
.irridex-intro-tutorial:not(:disabled):hover{filter:brightness(1.04)}
.irridex-intro-tutorial:not(:disabled):active{transform:translateY(-50%) scale(.992)}
.irridex-intro-tutorial:focus-visible{outline:3px solid #ffe800;outline-offset:4px}
.irridex-intro-tutorial img{display:block;width:100%;height:auto;user-select:none;-webkit-user-drag:none}
body.irridex-tutorial-active{overflow:hidden!important}
.irridex-tutorial{position:fixed;z-index:60000;inset:0;font-family:"Verdana",Arial,sans-serif;color:#102033;pointer-events:auto}
.irridex-tutorial[hidden]{display:none!important}
.irridex-tutorial-dim{position:absolute;inset:0;background:rgba(0,0,0,.66);backdrop-filter:blur(1.5px);-webkit-backdrop-filter:blur(1.5px)}
.irridex-tutorial-focus{position:fixed;z-index:1;border:3px solid #ffe600;background:rgba(255,255,255,.06);box-shadow:0 0 0 3px rgba(0,0,0,.45),0 0 28px rgba(255,230,0,.42);pointer-events:none;transition:left .24s ease,top .24s ease,width .24s ease,height .24s ease}
.irridex-tutorial-card{position:fixed;z-index:3;width:min(460px,calc(100vw - 24px));max-height:min(72vh,680px);overflow:auto;background:#fff;border:3px solid #173b63;border-radius:0;box-shadow:0 18px 60px rgba(0,0,0,.58);padding:18px;color:#102033;transition:left .22s ease,top .22s ease,transform .22s ease}
.irridex-tutorial-card.is-centered{left:50%!important;top:50%!important;transform:translate(-50%,-50%);width:min(560px,calc(100vw - 24px))!important}
.irridex-tutorial-card header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;border-bottom:1px solid #dbe5ef;padding-bottom:10px;margin-bottom:12px}
.irridex-tutorial-kicker{display:block;font-family:"Verdana",Arial,sans-serif;font-size:10px;font-weight:900;letter-spacing:.13em;color:#276b9c}
.irridex-tutorial-card h2{font-family:"Verdana",Arial,sans-serif;margin:3px 0 0;font-size:22px;line-height:1.02;color:#0f2942}
.irridex-tutorial-progress{flex:0 0 auto;background:#0f2942;color:#fff;font-size:11px;font-weight:900;padding:6px 8px}
.irridex-tutorial-body{font-size:13px;line-height:1.52;color:#2a4158}
.irridex-tutorial-body p{margin:0 0 10px}.irridex-tutorial-body p:last-child{margin-bottom:0}
.irridex-tutorial-feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:10px}
.irridex-tutorial-feature-grid span{display:block;border:1px solid #cbd9e6;background:#f5f9fc;padding:9px}.irridex-tutorial-feature-grid span:last-child:nth-child(odd){grid-column:1/-1}
.irridex-tutorial-feature-grid b,.irridex-tutorial-feature-grid small{display:block}.irridex-tutorial-feature-grid b{font-family:"Verdana",Arial,sans-serif;color:#102f4a}.irridex-tutorial-feature-grid small{font-size:10px;line-height:1.35;color:#587086;margin-top:3px}
.irridex-tutorial-card footer{display:flex;align-items:center;gap:8px;border-top:1px solid #dbe5ef;margin-top:14px;padding-top:12px;position:sticky;bottom:-18px;background:#fff;padding-bottom:2px}
.irridex-tutorial-spacer{flex:1}
.irridex-tutorial-end,.irridex-tutorial-nav{border:0;border-radius:0;padding:10px 12px;font:800 12px "Verdana",Arial,sans-serif;cursor:pointer}
.irridex-tutorial-end{background:#313f4d;color:#fff}.irridex-tutorial-nav{background:#dce8f2;color:#17334e}.irridex-tutorial-nav.primary{background:#0875c7;color:#fff;min-width:72px}.irridex-tutorial-nav:disabled{opacity:.42;cursor:default}
.irridex-tutorial-end:focus-visible,.irridex-tutorial-nav:focus-visible{outline:3px solid #ffe600;outline-offset:2px}
@media(max-width:640px){.irridex-intro-tutorial{left:2.5%;width:40%}.irridex-tutorial-card{max-height:66vh;padding:15px}.irridex-tutorial-card h2{font-size:19px}.irridex-tutorial-body{font-size:12px}.irridex-tutorial-feature-grid{grid-template-columns:1fr}.irridex-tutorial-feature-grid span:last-child:nth-child(odd){grid-column:auto}.irridex-tutorial-card footer{bottom:-15px}.irridex-tutorial-end,.irridex-tutorial-nav{padding:9px 10px}}
@media(prefers-reduced-motion:reduce){.irridex-intro-tutorial,.irridex-tutorial-focus,.irridex-tutorial-card{transition-duration:.12s!important}}

/* v0.4.17.1 — tutorial window refinement */
/* Keep the IrriDex wordmark clear: both guest splash buttons live in the right side. */
.irridex-intro-start{right:2.4%;left:auto;width:29.5%}
.irridex-intro-tutorial{left:auto;right:33.2%;width:29.5%}
@media(max-width:640px){
  .irridex-intro-start{right:2%;left:auto;width:30%}
  .irridex-intro-tutorial{left:auto;right:33.5%;width:30%}
}

/* The tutorial behaves like a movable Luna-era utility window, not a modal blur wall. */
body.irridex-tutorial-active{overflow:inherit!important}
.irridex-tutorial{pointer-events:none}
.irridex-tutorial-dim{
  background:rgba(0,14,34,.08);
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  pointer-events:none
}
.irridex-tutorial-focus{
  border:3px solid #ffe400;
  background:rgba(255,228,0,.035);
  box-shadow:0 0 0 2px rgba(0,0,0,.55),0 0 18px rgba(255,228,0,.28);
  border-radius:3px;
  pointer-events:none
}
.irridex-tutorial-card{
  pointer-events:auto;
  width:min(490px,calc(100vw - 18px));
  max-height:min(78vh,720px);
  overflow:hidden;
  padding:0;
  background:#ece9d8;
  border:2px solid #003caa;
  border-radius:9px 9px 5px 5px;
  box-shadow:5px 6px 18px rgba(0,0,0,.45),0 0 0 1px rgba(255,255,255,.72) inset;
  color:#102033;
  transition:none
}
.irridex-tutorial-card.is-dragging{box-shadow:7px 9px 22px rgba(0,0,0,.52),0 0 0 1px rgba(255,255,255,.72) inset}
.irridex-tutorial-card.is-centered{transform:none!important}
.irridex-tutorial-titlebar{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:42px;
  margin:0!important;
  padding:5px 6px 5px 10px!important;
  border:0!important;
  color:#fff;
  background:linear-gradient(180deg,#3c95ff 0%,#0f67df 16%,#064ac2 56%,#0038a4 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.78),inset 0 -1px 0 rgba(0,24,112,.85);
  cursor:grab;
  touch-action:none;
  user-select:none
}
.irridex-tutorial-card.is-dragging .irridex-tutorial-titlebar{cursor:grabbing}
.irridex-tutorial-titlecopy{min-width:0;flex:1}
.irridex-tutorial-kicker{
  color:#d9ecff;
  font-size:8px;
  letter-spacing:.11em;
  line-height:1;
  text-shadow:1px 1px 0 rgba(0,0,0,.45)
}
.irridex-tutorial-card h2{
  margin:2px 0 0;
  color:#fff;
  font-size:17px;
  line-height:1.06;
  text-shadow:1px 1px 1px rgba(0,0,0,.72);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis
}
.irridex-tutorial-progress{
  background:rgba(0,28,112,.62);
  border:1px solid rgba(255,255,255,.52);
  border-radius:3px;
  color:#fff;
  font-size:10px;
  padding:4px 7px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18)
}
.irridex-tutorial-close{
  flex:0 0 auto;
  width:28px;
  height:25px;
  padding:0 0 2px;
  border:1px solid #fff;
  border-radius:4px;
  color:#fff;
  background:linear-gradient(180deg,#f7a08e 0%,#e65d43 42%,#b82e18 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8),0 0 0 1px rgba(109,19,9,.55);
  font:700 20px/20px "Verdana",Arial,sans-serif;
  cursor:pointer;
  text-shadow:1px 1px 0 rgba(0,0,0,.35)
}
.irridex-tutorial-close:hover{filter:brightness(1.08)}
.irridex-tutorial-close:active{filter:brightness(.9)}
.irridex-tutorial-content{
  max-height:calc(min(78vh,720px) - 42px);
  overflow:auto;
  padding:16px 16px 0;
  background:linear-gradient(180deg,#fff 0%,#f8f8f3 100%)
}
.irridex-tutorial-body{font-size:13px;line-height:1.52;color:#263f57}
.irridex-tutorial-card footer{
  display:flex;
  align-items:center;
  gap:8px;
  position:sticky;
  bottom:0;
  margin:14px -16px 0;
  padding:10px 16px 12px;
  border-top:1px solid #c9c6b7;
  background:#ece9d8
}
.irridex-tutorial-end,.irridex-tutorial-nav{
  border:1px solid #7f9db9;
  border-radius:3px;
  padding:8px 12px;
  background:linear-gradient(180deg,#fff 0%,#f1f1e8 55%,#dedbca 100%);
  color:#17334e;
  box-shadow:inset 0 0 0 1px #fff;
  font:800 12px "Verdana",Arial,sans-serif
}
.irridex-tutorial-end{background:linear-gradient(180deg,#fff 0%,#f1f1e8 55%,#dedbca 100%);color:#27323c}
.irridex-tutorial-nav.primary{
  min-width:72px;
  border-color:#316ac5;
  background:linear-gradient(180deg,#fdfefe 0%,#e9f1fb 52%,#c8dbf2 100%);
  color:#143b73
}
.irridex-tutorial-end:hover,.irridex-tutorial-nav:not(:disabled):hover{border-color:#316ac5;filter:brightness(1.02)}
.irridex-tutorial-nav:disabled{opacity:.5}
.irridex-tutorial-close:focus-visible,.irridex-tutorial-end:focus-visible,.irridex-tutorial-nav:focus-visible{outline:2px solid #ffe400;outline-offset:2px}
@media(max-width:640px){
  .irridex-tutorial-card{width:min(440px,calc(100vw - 12px));max-height:82vh}
  .irridex-tutorial-content{max-height:calc(82vh - 42px);padding:13px 13px 0}
  .irridex-tutorial-card footer{margin:12px -13px 0;padding:9px 13px 10px}
  .irridex-tutorial-card h2{font-size:15px}
  .irridex-tutorial-progress{font-size:9px;padding:4px 5px}
  .irridex-tutorial-close{width:27px;height:24px}
}


/* v0.4.17.3 — live tutorial hardware-wizard preview */
#logModal.tutorial-hardware-demo .modal{outline:3px solid #ffd800;outline-offset:-3px}
#logModal.tutorial-hardware-demo .quick-mode-notice{border:2px solid #d6ad00;background:#fff8c7;color:#563f00;font-weight:700}
#logModal.tutorial-hardware-demo #saveFind{cursor:not-allowed;filter:saturate(.25);opacity:.72}

/* v0.4.18.0 — visible project credits and splash credits button. */
.irridex-intro-credits{
  position:absolute;z-index:3;right:23.7%;top:50%;width:20.2%;transform:translateY(-50%);
  border:0;background:transparent;padding:0;cursor:pointer;opacity:.98;
  transition:transform .12s ease,filter .12s ease;pointer-events:auto
}
.irridex-intro-credits:disabled{pointer-events:none}
.irridex-intro-credits:not(:disabled):hover{filter:brightness(1.04)}
.irridex-intro-credits:not(:disabled):active{transform:translateY(-50%) scale(.992)}
.irridex-intro-credits:focus-visible{outline:3px solid #ffe800;outline-offset:4px}
.irridex-intro-credits img{display:block;width:100%;height:auto;user-select:none;-webkit-user-drag:none}
/* Three equal controls leave the left ~37% of the bar clear for the IrriDex hero. */
.irridex-intro-start{right:2%;left:auto;width:20.2%}
.irridex-intro-credits{right:23.7%;left:auto;width:20.2%}
.irridex-intro-tutorial{right:45.4%;left:auto;width:20.2%}

.irridex-credits-overlay{
  position:absolute;z-index:12;inset:0;overflow:hidden;
  background:rgba(1,7,16,.42);opacity:0;pointer-events:none;
  transition:opacity .34s ease;
  backdrop-filter:blur(15px) brightness(.52) saturate(.72);
  -webkit-backdrop-filter:blur(15px) brightness(.52) saturate(.72)
}
.irridex-credits-overlay[hidden]{display:none!important}
.irridex-credits-overlay.is-open{opacity:1;pointer-events:auto}
.irridex-credits-overlay::before,.irridex-credits-overlay::after{
  content:"";position:absolute;z-index:3;left:0;right:0;height:18vh;pointer-events:none
}
.irridex-credits-overlay::before{top:0;background:linear-gradient(180deg,rgba(0,4,12,.94),rgba(0,4,12,0))}
.irridex-credits-overlay::after{bottom:0;background:linear-gradient(0deg,rgba(0,4,12,.94),rgba(0,4,12,0))}
.irridex-credits-hint{
  position:absolute;z-index:5;top:max(14px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);
  padding:7px 11px;border:1px solid rgba(255,255,255,.2);background:rgba(3,12,24,.56);
  color:rgba(232,244,255,.78);font:900 9px/1 "Verdana",Arial,sans-serif;
  letter-spacing:.11em;white-space:nowrap;pointer-events:none;opacity:0;
  transition:opacity .35s ease .45s
}
.irridex-credits-overlay.is-open .irridex-credits-hint{opacity:1}
.irridex-credits-scroll{
  position:absolute;z-index:2;inset:0;overflow-y:auto;overflow-x:hidden;
  padding:0 max(18px,env(safe-area-inset-right)) 0 max(18px,env(safe-area-inset-left));
  color:#f4f8ff;background:transparent;overscroll-behavior:contain;
  scrollbar-width:none;touch-action:none;cursor:grab;outline:none
}
.irridex-credits-scroll::-webkit-scrollbar{display:none}
.irridex-credits-scroll.is-dragging{cursor:grabbing}
.irridex-credits-roll{
  width:min(850px,92vw);margin:0 auto;text-align:center;
  text-shadow:0 2px 8px rgba(0,0,0,.88),0 0 22px rgba(0,0,0,.55);
  user-select:none;-webkit-user-select:none
}
.irridex-credits-leadin{height:34vh;min-height:180px}
.irridex-credits-hero{padding:0 10px 13vh;margin:0;border:0;text-align:center}
.irridex-credits-hero b{
  display:block;font:900 clamp(46px,9vw,94px)/.92 "Verdana",Arial,sans-serif;
  color:#fff;letter-spacing:-.055em
}
.irridex-credits-hero span{
  display:block;max-width:640px;margin:14px auto 0;color:#d9e7f5;
  font-size:clamp(13px,1.8vw,18px);font-weight:800;line-height:1.45
}
.irridex-credit-section{margin:0 auto 12vh;padding:0;max-width:790px}
.irridex-credit-section h2{
  margin:0 0 32px;color:#fff;font-size:clamp(21px,3.2vw,34px);font-weight:900;
  letter-spacing:.04em;text-transform:uppercase
}
.irridex-credit-section .credit-list{display:grid;gap:24px}
.irridex-credit-section .credit-row{
  display:block;padding:0;border:0;background:transparent
}
.irridex-credit-section .credit-row strong{
  display:block;color:#fff;font-size:clamp(16px,2.15vw,22px);font-weight:900;line-height:1.25
}
.irridex-credit-section .credit-row strong a{color:inherit;text-decoration:none;pointer-events:none}
.irridex-credit-section .credit-row span{
  display:block;max-width:710px;margin:7px auto 0;color:#c5d5e5;
  font-size:clamp(12px,1.6vw,16px);font-weight:700;line-height:1.48
}
.irridex-credits-fine{
  max-width:700px;margin:0 auto 11vh;color:#a9bbcd;font-size:clamp(10px,1.25vw,13px);font-weight:700;line-height:1.55
}
.irridex-credits-end{padding:0 10px;text-align:center}
.irridex-credits-end b{
  display:block;color:#fff;font:900 clamp(42px,8vw,82px)/.95 "Verdana",Arial,sans-serif;
  letter-spacing:-.05em
}
.irridex-credits-end span{display:block;margin-top:10px;color:#d8e8f7;font-size:clamp(14px,2vw,20px);font-weight:900}
.irridex-credits-tail{height:68vh;min-height:360px}
@media(max-width:640px){
  .irridex-intro-start{right:1.5%;width:20.8%}
  .irridex-intro-credits{right:23.5%;width:20.8%}
  .irridex-intro-tutorial{right:45.5%;width:20.8%}
  .irridex-credits-hint{top:max(9px,env(safe-area-inset-top));font-size:8px;padding:6px 8px}
  .irridex-credits-roll{width:min(94vw,650px)}
  .irridex-credits-leadin{height:28vh;min-height:130px}
  .irridex-credits-hero{padding-bottom:11vh}
  .irridex-credit-section{margin-bottom:10vh}
  .irridex-credit-section h2{margin-bottom:24px}
  .irridex-credit-section .credit-list{gap:20px}
  .irridex-credits-tail{height:62vh;min-height:300px}
}
@media(prefers-reduced-motion:reduce){
  .irridex-intro-credits,.irridex-credits-overlay,.irridex-credits-hint{transition-duration:.12s!important;transition-delay:0s!important}
}

@media(max-width:520px){.notification-bell{display:none}}


/* v0.4.25.0 — randomized one-pass intro sillies. */
.irridex-intro-sillies{position:absolute;z-index:4;left:0;right:0;bottom:max(10px,env(safe-area-inset-bottom));height:34px;overflow:hidden;pointer-events:none;user-select:none;-webkit-user-select:none;opacity:0;transition:opacity .22s ease}
.irridex-intro-sillies.is-running{opacity:1}
.irridex-intro-silly{--silly-duration:8.5s;position:absolute;left:100%;bottom:0;max-width:none;white-space:nowrap;color:#fff;font-family:"Verdana",Arial,sans-serif;font-size:clamp(13px,1.45vw,19px);font-weight:700;letter-spacing:.01em;line-height:1.15;text-shadow:0 2px 3px rgba(0,0,0,.95),0 0 8px rgba(0,0,0,.9);will-change:transform;animation:irridexSillyCross var(--silly-duration) linear forwards}
@keyframes irridexSillyCross{from{transform:translateX(0)}to{transform:translateX(calc(-100vw - 100%))}}
@media(max-width:640px){.irridex-intro-sillies{bottom:max(7px,env(safe-area-inset-bottom));height:30px}.irridex-intro-silly{font-size:clamp(12px,3.5vw,16px)}}
@media(prefers-reduced-motion:reduce){.irridex-intro-sillies{display:none!important}}



/* v0.4.25.5 — centered IrriSplash startup card with code-rendered controls. */
.irridex-intro-scene{padding:clamp(18px,4vw,64px);display:grid;place-items:center;transform:scale(.992);overflow:hidden;background:transparent}
.irridex-intro-card{position:relative;width:min(1180px,92vw,calc(74vh * 1.400438));aspect-ratio:1280/914;filter:drop-shadow(0 22px 42px rgba(0,0,0,.44));pointer-events:none}
.irridex-intro-background{position:absolute;z-index:0;inset:0;width:100%;height:100%;object-fit:contain;object-position:center;user-select:none;-webkit-user-drag:none;pointer-events:none}
.irridex-intro-controls{position:absolute;z-index:6;right:clamp(14px,3.2%,42px);bottom:clamp(14px,5.5%,46px);display:flex;align-items:center;justify-content:flex-end;gap:clamp(7px,1vw,13px);pointer-events:auto;filter:drop-shadow(0 7px 12px rgba(0,0,0,.42))}
.irridex-intro-action{position:relative!important;inset:auto!important;width:clamp(108px,12.5vw,172px)!important;height:clamp(46px,5.1vw,62px);transform:none!important;margin:0;padding:0 13px;border:2px solid rgba(255,255,255,.9);border-radius:7px;box-shadow:inset 0 2px 0 rgba(255,255,255,.45),inset 0 -3px 0 rgba(0,0,0,.22),0 0 0 2px rgba(0,0,0,.24);font-family:"Verdana",Arial,sans-serif;font-size:clamp(14px,1.45vw,21px);font-weight:700;letter-spacing:.055em;line-height:1;color:#fff;text-shadow:0 2px 1px rgba(0,0,0,.5);cursor:pointer;opacity:.98;transition:filter .1s ease,transform .08s ease,box-shadow .08s ease;pointer-events:auto}
.irridex-intro-action span{display:block;transform:translateY(-1px)}
.irridex-intro-action:disabled{opacity:.55;cursor:default;pointer-events:none;filter:saturate(.55)}
.irridex-intro-action:not(:disabled):hover{filter:brightness(1.09) saturate(1.08)}
.irridex-intro-action:not(:disabled):active{transform:translateY(2px)!important;box-shadow:inset 0 3px 7px rgba(0,0,0,.34),0 0 0 2px rgba(0,0,0,.24);filter:brightness(.93)}
.irridex-intro-action:focus-visible{outline:3px solid #ffe800;outline-offset:4px}
.irridex-intro-start{background:linear-gradient(180deg,#48db5c 0%,#28c940 49%,#14952a 50%,#20b43a 100%)}
.irridex-intro-tutorial{background:linear-gradient(180deg,#5b6cff 0%,#394ddc 49%,#2432a7 50%,#3546c7 100%)}
.irridex-intro-credits{background:linear-gradient(180deg,#f3c44d 0%,#dca72d 49%,#ac7716 50%,#c59021 100%)}
.irridex-intro-splash{z-index:5;right:clamp(16px,4.5%,58px);top:clamp(14px,6%,48px);max-width:46%;font-size:clamp(15px,2vw,31px)}
.irridex-intro.is-entered{background:rgba(0,0,0,.08);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.irridex-intro.is-entered .irridex-intro-scene{transform:scale(1)}
.irridex-intro.is-leaving .irridex-intro-scene{transform:scale(1.012)}
.irridex-intro-sillies{z-index:7}
@media(max-width:760px){
  .irridex-intro-scene{padding:16px}
  .irridex-intro-card{width:min(96vw,calc(70vh * 1.400438))}
  .irridex-intro-controls{left:2.2%;right:2.2%;bottom:4%;justify-content:center;gap:6px}
  .irridex-intro-action{width:auto!important;flex:1 1 0;max-width:160px;height:clamp(38px,11vw,46px);padding:0 7px;font-size:clamp(11px,3.3vw,15px);letter-spacing:.03em;border-radius:6px}
  .irridex-intro-splash{right:3%;top:5%;max-width:50%;font-size:clamp(12px,4.5vw,21px)}
}
@media(max-width:430px){
  .irridex-intro-card{width:96vw}
  .irridex-intro-action{height:40px;font-size:11px}
}
@media(prefers-reduced-motion:reduce){.irridex-intro-action{transition-duration:.01ms!important}}

/* v0.4.25.5 — keep every intro control inside IrriSplash; faster/deeper splash text. */
.irridex-intro-controls{
  right:4%;
  bottom:5.5%;
  width:min(58%,510px);
  max-width:92%;
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:minmax(0,1fr);
  gap:clamp(6px,.85vw,12px);
  box-sizing:border-box;
}
.irridex-intro-action{
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  box-sizing:border-box;
  padding-inline:clamp(7px,1vw,13px);
}
.irridex-intro-splash{
  right:8%;
  top:10%;
  max-width:42%;
  animation-duration:.483333s;
}
@media(max-width:760px){
  .irridex-intro-controls{
    left:3%;
    right:3%;
    bottom:4.5%;
    width:auto;
    max-width:none;
    gap:5px;
  }
  .irridex-intro-action{
    max-width:none!important;
  }
  .irridex-intro-splash{
    right:7%;
    top:8%;
    max-width:45%;
  }
}
/* IrriSplash.png is 1280×914. Keep the card at the source aspect ratio so overlay controls track the visible artwork exactly. */

/* v0.4.26.1 — branded startup loading panel, collapsible announcements, UI sounds toggle. */
.startup-loading{position:fixed;z-index:49000;inset:0;display:grid;place-items:center;padding:18px;background:rgba(0,0,0,.56);opacity:1;transition:opacity .16s ease;pointer-events:auto}
.startup-loading[hidden]{display:none!important}.startup-loading.is-complete{opacity:0;pointer-events:none}
.startup-loading-card{position:relative;width:min(494px,calc(100vw - 30px));aspect-ratio:494/266;filter:drop-shadow(0 18px 34px rgba(0,0,0,.52));overflow:hidden}
.startup-loading-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;user-select:none;-webkit-user-drag:none;pointer-events:none}
.startup-loading-message{position:absolute;z-index:2;left:8%;right:8%;top:45%;transform:translateY(-50%);text-align:center;color:#fff;font-family:"Verdana",Arial,sans-serif;font-size:clamp(17px,4vw,30px);font-weight:800;letter-spacing:.025em;text-shadow:0 2px 3px rgba(0,0,0,.95),0 0 10px rgba(0,0,0,.75)}
.startup-loading-bar{position:absolute;z-index:2;left:50%;bottom:10px;transform:translateX(-50%);width:min(220px,55%);height:auto;max-height:19px;object-fit:contain;user-select:none;-webkit-user-drag:none;pointer-events:none}
.site-banner{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;column-gap:10px;transition:max-height .16s ease,padding .16s ease}
.site-banner-message{min-width:0;white-space:pre-line}.site-banner-toggle{align-self:start;border:1px solid #9f7f00;background:#fff9df;color:#4c3900;padding:4px 8px;font:inherit;font-size:10px;font-weight:900;line-height:1;cursor:pointer;white-space:nowrap}
.site-banner.is-collapsed{max-height:34px!important;overflow:hidden;padding-top:5px;padding-bottom:5px;align-items:center}.site-banner.is-collapsed .site-banner-message{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:22px}.site-banner.is-collapsed .site-banner-toggle{align-self:center}
.drawer-sound-toggle{display:flex!important;align-items:flex-start;gap:9px;margin:12px 0 3px!important;padding:9px 10px;border:1px solid #c6d4e1;background:#f4f8fb;color:#253d55!important;cursor:pointer}.drawer-sound-toggle input{width:auto!important;min-width:16px;height:16px;margin:1px 0 0!important;accent-color:#168fe8}.drawer-sound-toggle span{min-width:0}.drawer-sound-toggle b,.drawer-sound-toggle small{display:block}.drawer-sound-toggle b{font-size:11px}.drawer-sound-toggle small{margin-top:2px;color:#6a7e91;font-size:9px;line-height:1.3}
@media(max-width:700px){.startup-loading-bar{bottom:7px}.site-banner{column-gap:6px}.site-banner-toggle{padding:4px 6px;font-size:9px}}

/* v0.4.26.2 — hard-collapse banner, bottom arrow handle, frontmost startup loader. */
.startup-loading{z-index:2147483000!important}
.site-banner{
  display:block!important;
  position:fixed;
  padding:8px 14px 23px!important;
  max-height:96px!important;
  overflow:hidden!important;
  transition:height .16s ease,max-height .16s ease,padding .16s ease!important;
}
.site-banner-message{
  display:block;
  min-width:0;
  max-height:58px;
  overflow:auto;
  white-space:pre-line;
  padding:0 4px;
}
.site-banner-toggle{
  position:absolute!important;
  z-index:2;
  left:50%!important;
  right:auto!important;
  bottom:0!important;
  transform:translateX(-50%);
  width:54px;
  height:18px;
  padding:0!important;
  display:grid;
  place-items:center;
  border:1px solid #9f7f00!important;
  border-bottom:0!important;
  background:#fff9df!important;
  color:#4c3900!important;
  font-size:11px!important;
  line-height:1!important;
  cursor:pointer;
}
.site-banner.is-collapsed{
  height:18px!important;
  min-height:18px!important;
  max-height:18px!important;
  padding:0!important;
  overflow:hidden!important;
}
.site-banner.is-collapsed .site-banner-message{display:none!important}
.site-banner.is-collapsed .site-banner-toggle{
  top:0!important;
  bottom:auto!important;
  height:18px;
  border-top:0!important;
  border-bottom:0!important;
}
html[data-theme="dark"] .site-banner-toggle{background:#241b07!important;color:#ffe8a9!important;border-color:#977716!important}
@media(max-width:700px){
  .site-banner{padding:7px 10px 21px!important;max-height:82px!important}
  .site-banner-message{max-height:50px}
  .site-banner-toggle{width:48px;height:17px;font-size:10px!important}
  .site-banner.is-collapsed{height:17px!important;min-height:17px!important;max-height:17px!important}
  .site-banner.is-collapsed .site-banner-toggle{height:17px}
}

/* v0.4.29.0 — contrast audit + non-blocking live startup loader. */
.topbar{z-index:2147483645!important}
.drawer-shade{z-index:2147483644!important}
.drawer{z-index:2147483646!important}
.startup-loading{z-index:2147483600!important;background:rgba(0,0,0,.14)!important;pointer-events:none!important;place-items:center!important}
.startup-loading-card{pointer-events:none!important}
.startup-loading-progress-label{position:absolute;z-index:3;left:50%;bottom:31px;transform:translateX(-50%);min-width:72px;text-align:center;color:#fff;font-size:10px;font-weight:900;letter-spacing:.04em;text-shadow:0 1px 3px #000}
.irridex-tutorial-nav.primary,.primary-btn{background:#0875c7!important;color:#fff!important}
.archive-empty{color:#53677b!important}
.condition-choice span::before{color:#53687d!important}
.step-number{color:#075f9f!important}


/* v0.4.29.1 — deterministic cropped green loading progress. */
.startup-loading-bar-green{
  /* Dedicated green artwork: same 220×19 source dimensions as the gray GIF.
     JS changes clip-path only; width, height and transform never represent progress. */
  z-index:3!important;
  filter:none!important;
  will-change:clip-path;
}
.startup-loading-progress-label{z-index:4!important}

/* v0.4.29.3 — mobile logging reliability/usability pass. */
.save-find-status{min-width:0;max-width:360px;color:#53677b;font-size:11px;font-weight:800;line-height:1.3;text-align:right}
.save-find-status[data-state="working"]{color:#0b67ad}
.save-find-status[data-state="success"]{color:#0e6f40}
.save-find-status[data-state="error"]{color:#9b261d}
html[data-theme="dark"] .save-find-status{color:#c5d7e8}
html[data-theme="dark"] .save-find-status[data-state="working"]{color:#8fd1ff}
html[data-theme="dark"] .save-find-status[data-state="success"]{color:#8be0b1}
html[data-theme="dark"] .save-find-status[data-state="error"]{color:#ffaaa2}

@media(max-width:720px){
  /* Keep the logger below the persistent shell instead of hiding its title/close
     control underneath the top bar. visualViewport updates this height when the
     mobile keyboard opens. */
  .modal-backdrop{
    top:var(--irridex-topbar-height,58px)!important;
    bottom:auto!important;
    height:max(240px,calc(var(--irridex-visual-height,100dvh) - var(--irridex-topbar-height,58px)))!important;
    padding:0!important;
    place-items:stretch!important;
    overflow:hidden;
  }
  .modal{width:100%!important;height:100%!important;max-height:100%!important;min-height:0!important;box-shadow:none!important}
  .modal-head{padding:10px 12px 8px!important;gap:8px!important;flex:0 0 auto}
  .modal-head h1{font-size:18px!important}
  .modal-head p{font-size:11px!important;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100vw - 72px)}
  .modal-head .icon-btn{width:44px;height:44px;min-width:44px;font-size:28px}
  .modal-body{min-height:0!important;overflow:auto!important;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  .wizard-form{min-height:100%!important}
  .wizard-step{padding:13px 12px 18px!important}
  .step-heading{margin-bottom:12px!important}
  .step-heading>div{gap:8px!important}
  .step-heading h2{font-size:18px!important}
  .step-heading p{font-size:11px!important;margin-top:5px!important}
  .step-number{width:30px;height:30px}

  /* iOS zooms focused controls below 16px. Keeping the actual editing controls at
     16px makes the form substantially less jumpy without inflating labels/cards. */
  .wizard-form input[type=text],.wizard-form input[type=search],.wizard-form select,.wizard-form textarea,
  .rapid-log-panel select,.rapid-log-panel textarea,.traditional-log-panel input,.traditional-log-panel select,.traditional-log-panel textarea{
    font-size:16px!important;
  }
  .selector-title{align-items:stretch!important;flex-direction:column!important;gap:6px!important}
  .selector-title input[type=search]{width:100%!important;min-height:44px!important;margin:0!important}
  .choice-grid,.choice-grid.brands,.choice-grid.compact{gap:7px!important}
  .choice-btn{min-height:52px!important;padding:10px!important;font-size:12px!important;touch-action:manipulation}
  .condition-choice span,.radio-card{min-height:54px!important}
  .segmented button{min-height:46px!important}
  .visibility-field label{min-height:54px;padding:10px!important}
  .location-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:7px!important}
  .location-actions .secondary-btn{min-height:46px!important;padding:9px 7px!important}
  .location-actions .secondary-btn:last-child{grid-column:1/-1}

  /* Advanced Log used to spend roughly half a phone screen on the photo pane.
     Preserve the useful preview + EXIF summary as a compact two-column strip. */
  .photo-pane{display:grid!important;grid-template-columns:92px minmax(0,1fr)!important;grid-template-rows:auto auto!important;gap:7px 9px!important;padding:9px 10px!important;overflow:visible!important}
  .preview-wrap{grid-column:1!important;grid-row:1!important;width:92px!important;height:70px!important;aspect-ratio:auto!important;margin:0!important}
  #replacePhoto{grid-column:1!important;grid-row:2!important;width:92px!important;min-height:38px!important;padding:6px!important;font-size:10px!important;line-height:1.15}
  .photo-facts{grid-column:2!important;grid-row:1/3!important;display:grid!important;grid-template-columns:1fr!important;gap:4px!important;margin:0!important;min-width:0}
  .photo-facts>div{padding:5px 7px!important;min-width:0}
  .photo-facts strong{font-size:10px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .photo-pane .preset-notice,.photo-pane .warning{grid-column:1/-1!important;margin-top:0!important}
  .quick-log-mode .photo-pane{display:none!important}

  /* Keep navigation/save controls reachable above the keyboard and make the action
     buttons thumb-sized. Status occupies its own row only when there is text. */
  .wizard-footer{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr)!important;gap:7px!important;padding:8px 10px calc(8px + env(safe-area-inset-bottom))!important;position:sticky!important;bottom:0!important;z-index:12!important}
  .wizard-footer-spacer{display:none!important}
  .wizard-footer #backStep{grid-column:1;grid-row:2;width:100%;min-height:50px}
  .wizard-footer #nextStep,.wizard-footer #saveFind{grid-column:2;grid-row:2;width:100%;min-height:50px;min-width:0!important}
  .save-find-status{grid-column:1/-1;grid-row:1;max-width:none;text-align:left;font-size:10px;min-height:0}
  .save-find-status:empty{display:none}
}

@media(max-width:390px){
  .choice-grid,.choice-grid.brands,.choice-grid.compact{grid-template-columns:1fr!important}
  .location-actions{grid-template-columns:1fr!important}
  .location-actions .secondary-btn:last-child{grid-column:auto}
  .photo-pane{grid-template-columns:78px minmax(0,1fr)!important}
  .preview-wrap,#replacePhoto{width:78px!important}
  .preview-wrap{height:62px!important}
}

/* v0.4.29.4 — user-selectable line/polygon colors */
.geometry-color-field{display:grid;grid-template-columns:minmax(90px,120px) minmax(120px,1fr) 44px;gap:8px;align-items:end}.geometry-color-field label{margin:0}.geometry-color-field input[type=color]{height:42px;padding:3px;cursor:pointer}.geometry-color-field input[type=text]{height:42px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;text-transform:uppercase}.geometry-color-swatch{display:block;width:42px;height:42px;border:2px solid var(--line,#6f8498);background:#3388ff;box-sizing:border-box}.geometry-color-badge{display:flex;align-items:center;gap:6px;width:max-content;margin:6px 0;font-size:10px;font-weight:800;color:var(--ink,#dce8f4)}.geometry-color-badge i{display:inline-block;width:13px;height:13px;border:1px solid currentColor}.geometry-form .geometry-color-field label{color:var(--ink,#dce8f4)}
@media(max-width:520px){.geometry-color-field{grid-template-columns:88px 1fr 42px}.geometry-color-field input[type=color],.geometry-color-field input[type=text]{height:46px}.geometry-color-swatch{width:42px;height:46px}}


/* v0.4.29.6 — pin creation-date filters + previous-activity quick view */
.filter-date-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.filter-date-grid label{min-width:0}.drawer input[type=date]{min-width:0}.filter-since-active{display:flex!important;align-items:flex-start;gap:9px;padding:10px;border:1px solid #c6d4e1;background:#f4f8fb;cursor:pointer}.filter-since-active input{width:auto!important;min-width:17px;height:17px;margin:1px 0 0!important;accent-color:#168fe8}.filter-since-active span{min-width:0}.filter-since-active b,.filter-since-active small{display:block}.filter-since-active b{font-size:11px;color:#203a54}.filter-since-active small{margin-top:3px;font-size:9px;line-height:1.35;color:#60768b}.filter-since-active:has(input:disabled){opacity:.62;cursor:not-allowed}.new-since-active-badge{display:inline-block;margin:5px 4px 0 0;padding:3px 5px;border:1px solid #1672ad;background:#e6f5ff;color:#075783;font-size:8px;font-weight:900;letter-spacing:.035em}.popup-card .new-since-active-badge{vertical-align:middle}html[data-theme=dark] .filter-since-active{border-color:#425b71;background:#142538}html[data-theme=dark] .filter-since-active b{color:#e8f2fb}html[data-theme=dark] .filter-since-active small{color:#a9bdd0}html[data-theme=dark] .new-since-active-badge{border-color:#53b9f4;background:#0c3855;color:#d8f1ff}
@media(max-width:360px){.filter-date-grid{grid-template-columns:1fr}}

/* v0.4.29.10: release fingerprint; update dialogs must stay above the fixed topbar/drawer. */
.irridex-update-backdrop{z-index:2147483647!important}

/* v0.4.29.12 — System Log lives in the map logging chooser and gets coordinates by map click. */
.system-pick-banner{border-color:#37b86f}.system-pick-banner b{color:#8bf0b6}
.system-log-choice{border-color:#9fd8b8!important;background:#f4fff8!important}.system-log-choice:hover{border-color:#37a968!important;background:#eafff1!important}
.system-log-glyph{width:40px;height:40px;flex:0 0 40px;display:grid;place-items:center;border:2px solid #268b54;background:#ddf8e8;color:#17673d;font-size:11px!important;font-weight:950;letter-spacing:.04em}
.system-log-backdrop{z-index:2750;place-items:center}.system-log-panel{width:min(600px,100%)}
.system-log-field{display:block;margin:0;font-size:10px;font-weight:950;letter-spacing:.07em;color:#29455e}
.system-log-field input,.system-log-field textarea{display:block;width:100%;margin-top:6px;border:1px solid #bdcddb;border-radius:0;background:#fff;color:#142b41;padding:10px;font:inherit;font-size:12px;line-height:1.4;letter-spacing:0;outline:none}
.system-log-field input:focus,.system-log-field textarea:focus{border-color:#55aeef;box-shadow:0 0 0 3px rgba(22,143,232,.12)}
.system-log-field textarea{resize:vertical;min-height:72px;max-height:170px}.system-log-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:560px){.system-log-backdrop{place-items:end center;padding:0}.system-log-panel{width:100%;max-height:calc(100dvh - env(safe-area-inset-top))}.system-log-grid{grid-template-columns:1fr}.system-log-field input,.system-log-field textarea{font-size:16px}}

/* v0.4.29.13 — no-billing aerial basemap test release; CSS fingerprint advanced with JS/service worker. */

/* v0.4.29.15: desktop right-click map location workflow. */
.irridex-map-context-popup .leaflet-popup-content{margin:12px 14px}
.map-context-card{display:grid;gap:8px;min-width:250px;color:var(--ink,#102033);font-family:"Verdana",Arial,sans-serif}
.map-context-kicker{font-size:10px;font-weight:900;letter-spacing:.12em;color:var(--muted,#63788c)}
.map-context-address{font-size:14px;font-weight:800;line-height:1.35;overflow-wrap:anywhere}
.map-context-coordinates{font:700 12px/1.3 ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;color:var(--muted,#63788c);user-select:all}
.map-context-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:3px}
.map-context-copy{min-height:38px;border:1px solid var(--line,#b9c7d5);background:var(--panel,#fff);color:var(--ink,#102033);font-weight:900;font-size:11px;cursor:pointer}
.map-context-copy:hover:not(:disabled){filter:brightness(.96)}
.map-context-copy:disabled{opacity:.48;cursor:wait}
@media(max-width:520px){.map-context-actions{grid-template-columns:1fr}.map-context-card{min-width:220px}}

/* v0.4.29.16 — Movement Select + user-selectable map motion. */
.bulk-move-btn[aria-pressed="true"]{background:#dff8ff!important;color:#07111f!important;box-shadow:inset 0 0 0 2px #00d4ff}
.bulk-move-banner{position:fixed;z-index:1265;top:86px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:8px;max-width:min(94vw,980px);background:#06151d;color:#fff;border:2px solid #00d4ff;padding:9px 11px;box-shadow:var(--shadow);font-size:11px}
.bulk-move-banner[hidden]{display:none}.bulk-move-banner b{color:#7eeeff;letter-spacing:.07em;white-space:nowrap}.bulk-move-banner span{flex:1;min-width:180px}.bulk-move-banner button{border:1px solid #5a7a88;background:#10263f;color:#fff;padding:6px 9px;font:inherit;font-weight:850;cursor:pointer}.bulk-move-banner button:disabled{opacity:.45;cursor:not-allowed}
#map.bulk-move-selecting,#map.bulk-move-selecting.leaflet-grab,#map.bulk-move-selecting .leaflet-interactive{cursor:crosshair!important}
#map.bulk-move-ready .bulk-move-selection-box,#map.bulk-move-ready .leaflet-interactive.bulk-move-selection-box{cursor:move!important}
#map.bulk-move-dragging,#map.bulk-move-dragging.leaflet-grab{cursor:grabbing!important}
.bulk-move-selection-box{filter:drop-shadow(0 0 2px rgba(0,212,255,.75))}.bulk-move-preview-dot{stroke:#00d4ff;fill:#07111f}
.has-site-banner .bulk-move-banner{top:calc(86px + var(--site-banner-offset,0px))}
@media(max-width:700px){.bulk-move-banner{top:66px;width:calc(100% - 18px);max-width:none;gap:5px;padding:7px}.bulk-move-banner span{font-size:9px;min-width:0}.bulk-move-banner button{padding:6px 7px}.has-site-banner .bulk-move-banner{top:calc(66px + var(--site-banner-offset,0px))}}
#map.bulk-move-selecting .leaflet-marker-icon,#map.bulk-move-selecting .leaflet-marker-shadow,#map.bulk-move-selecting svg .leaflet-interactive{pointer-events:none!important}



/* v0.4.29.22 — user supplied imagery patches + OAM catalog repair. */
#map.image-overlay-pick-active,#map.image-overlay-pick-active.leaflet-grab,#map.image-overlay-pick-active .leaflet-interactive{cursor:crosshair!important}
.image-overlay-choice{border-color:#e2c15c!important;background:#fffaf0!important}.image-overlay-choice:hover{background:#fff2cb!important;border-color:#c99c12!important}.image-overlay-glyph{width:40px;height:40px;flex:0 0 40px;display:grid;place-items:center;border:2px solid #b88700;background:#fff1b8;font-size:20px!important}
.image-overlay-backdrop{z-index:2760}.image-overlay-form{width:min(610px,100%);max-height:min(88dvh,820px);overflow:auto}.image-overlay-form>label{display:block;font-size:10px;font-weight:900;letter-spacing:.06em;color:#29455e}.image-overlay-form>label input,.image-overlay-form>label textarea{display:block;width:100%;margin-top:6px}.image-overlay-form input[type=file]{border:1px solid #bdcddb;background:#fff;color:#142b41;padding:9px}.image-overlay-form input[type=range]{padding:0}.image-overlay-preview-wrap{min-height:80px;border:1px dashed #aebecd;background:#0915230d;display:grid;place-items:center;overflow:hidden}.image-overlay-preview{display:block;max-width:100%;max-height:220px;object-fit:contain}.irridex-imagery-patch-draft{filter:drop-shadow(0 0 0.5px #fff) drop-shadow(0 0 2px #ffcf33)}
.map-context-patches{border-top:1px solid var(--line,#b9c7d5);border-bottom:1px solid var(--line,#b9c7d5);padding:7px 0;display:grid;gap:5px}.map-context-patches>b{font-size:9px;letter-spacing:.08em;color:var(--muted,#63788c)}.map-context-patch-row{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:800}.map-context-patch-row span{flex:1;min-width:0;overflow-wrap:anywhere}.map-context-patch-row button{border:1px solid #a33;background:#fff0f0;color:#8d1717;padding:4px 7px;font-size:9px;font-weight:900;cursor:pointer}.map-context-patch-row button:disabled{opacity:.5;cursor:wait}
@media(max-width:560px){.image-overlay-backdrop{place-items:end center;padding:0}.image-overlay-form{width:100%;max-height:calc(100dvh - env(safe-area-inset-top))}.image-overlay-form input,.image-overlay-form textarea{font-size:16px!important}}

/* v0.4.29.23 — supplied artwork icons for Traditional, Rapid, System and Imagery Patch logging choices. */

/* v0.4.29.25 — corrected rotation dragging + edge-to-edge/editable sprinkler layouts. */
.map-rotation-control{position:absolute;z-index:1190;right:10px;top:86px;display:grid;grid-template-columns:36px 48px 36px;border:1px solid #71889b;background:#07111f;box-shadow:var(--shadow)}
.map-rotation-control button{height:36px;border:0;border-right:1px solid #53697c;border-radius:0;background:#10263f;color:#fff;font:900 19px/1 "Verdana",Arial,sans-serif;cursor:pointer;padding:0;touch-action:manipulation}
.map-rotation-control button:last-child{border-right:0}.map-rotation-control button:hover{background:#173856}.map-rotation-control button:active{background:#0a1b2c}.map-rotation-control #rotateNorthBtn{font-size:11px;letter-spacing:.02em}.map-rotation-control #rotateNorthBtn b{display:block;white-space:nowrap;overflow:hidden;text-overflow:clip}
#map.map-is-rotated .leaflet-control-scale,#map.map-is-rotated .leaflet-control-attribution{transform:none}
.has-site-banner .map-rotation-control{top:calc(86px + var(--site-banner-offset,0px))}

.layout-draw-banner{position:fixed;z-index:1270;top:86px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:8px;max-width:min(95vw,1050px);background:#071b13;color:#fff;border:2px solid #55d98c;padding:9px 11px;box-shadow:var(--shadow);font-size:11px}
.layout-draw-banner[hidden]{display:none}.layout-draw-banner b{color:#91f3b7;letter-spacing:.07em;white-space:nowrap}.layout-draw-banner span{flex:1;min-width:190px}.layout-draw-banner button{border:1px solid #5c7d69;border-radius:0;background:#103522;color:#fff;padding:6px 9px;font:inherit;font-weight:850;cursor:pointer}.layout-draw-banner button:hover:not(:disabled){background:#174c31}.layout-draw-banner button:disabled{opacity:.45;cursor:not-allowed}.has-site-banner .layout-draw-banner{top:calc(86px + var(--site-banner-offset,0px))}
#map.layout-tool-active,#map.layout-tool-active.leaflet-grab{cursor:crosshair!important}#map.layout-tool-active .leaflet-interactive{cursor:crosshair}#map.layout-rectangle-selecting,#map.layout-rectangle-selecting.leaflet-grab{cursor:crosshair!important}
.layout-guide-line{stroke:#55d98c;filter:drop-shadow(0 0 2px rgba(0,0,0,.7))}.layout-anchor-point{stroke:#fff;fill:#139653}.layout-preview-point{stroke:#fff;fill:#19b868;filter:drop-shadow(0 1px 2px rgba(0,0,0,.65))}.layout-selection-box{stroke:#78f4ad;filter:drop-shadow(0 0 2px rgba(0,0,0,.65))}.layout-index-tooltip{border-radius:0!important;border:1px solid #3b6c4e!important;background:#071b13!important;color:#dfffea!important;box-shadow:none!important;font:900 9px/1 "Verdana",Arial,sans-serif!important;padding:3px 5px!important}.layout-index-tooltip:before{display:none!important}

.layout-tools-choice{border-color:#91d9ad!important;background:#f4fff8!important}.layout-tools-choice:hover{border-color:#38a969!important;background:#eafff1!important}.layout-tools-glyph{width:40px;height:40px;flex:0 0 40px;display:grid;place-items:center;border:2px solid #278850;background:#def8e7;color:#126337;font-size:25px!important;font-weight:950}
.layout-tool-backdrop{z-index:2770;place-items:center}.layout-tool-form{width:min(720px,100%);max-height:min(90dvh,900px);overflow:auto;gap:12px}.layout-tool-form fieldset{margin:0;border:1px solid #bdcddb;padding:10px}.layout-tool-form legend{padding:0 5px;font-size:9px;font-weight:950;letter-spacing:.09em;color:#466079}.layout-tool-form>label,.layout-option-panel>label,.layout-identity-grid>label{display:block;font-size:10px;font-weight:900;letter-spacing:.055em;color:#29455e}.layout-tool-form select,.layout-tool-form input[type=number],.layout-tool-form textarea{display:block;width:100%;margin-top:5px;border:1px solid #bdcddb;border-radius:0;background:#fff;color:#142b41;padding:9px;font:inherit;font-size:12px;line-height:1.35;outline:none}.layout-tool-form select:focus,.layout-tool-form input[type=number]:focus,.layout-tool-form textarea:focus{border-color:#55aeef;box-shadow:0 0 0 3px rgba(22,143,232,.12)}.layout-tool-form textarea{resize:vertical;min-height:58px;max-height:150px}
.layout-mode-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.layout-mode-grid label{display:block;min-width:0;cursor:pointer}.layout-mode-grid input{position:absolute;opacity:0;pointer-events:none}.layout-mode-grid span{display:block;height:100%;border:1px solid #c5d2df;background:#f7fafc;padding:10px}.layout-mode-grid b,.layout-mode-grid small{display:block}.layout-mode-grid b{font-size:11px;color:#1d3851}.layout-mode-grid small{margin-top:4px;font-size:9px;line-height:1.35;color:#667b8e}.layout-mode-grid input:checked+span{border-color:#159957;background:#e9faef;box-shadow:inset 0 0 0 1px #159957}.layout-mode-grid input:focus-visible+span{outline:2px solid #168fe8;outline-offset:2px}
.layout-option-panel{display:grid;gap:6px;border-left:3px solid #43bd75;background:#f5fbf7;padding:10px}.layout-option-panel[hidden]{display:none}.layout-option-panel>small{font-size:9px;line-height:1.4;color:#667b8e}.layout-number-grid,.layout-identity-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.layout-check{display:flex!important;align-items:flex-start;gap:9px!important;border:1px solid #c5d2df;background:#f7fafc;padding:9px;cursor:pointer;letter-spacing:0!important}.layout-check input{flex:0 0 auto;width:17px;height:17px;margin:1px 0 0;accent-color:#159957}.layout-check span{min-width:0}.layout-check b,.layout-check small{display:block}.layout-check b{font-size:10px;color:#243f57}.layout-check small{margin-top:3px;font-size:9px;line-height:1.35;color:#667b8e}.layout-feature-grid{display:flex;gap:6px;flex-wrap:wrap}.layout-feature-choice{position:relative;cursor:pointer}.layout-feature-choice input{position:absolute;opacity:0;pointer-events:none}.layout-feature-choice span{display:block;border:1px solid #bac9d7;background:#f5f8fb;color:#29455e;padding:7px 8px;font-size:9px;font-weight:850}.layout-feature-choice input:checked+span{border-color:#159957;background:#e4f8eb;color:#075f31}.layout-feature-choice input:focus-visible+span{outline:2px solid #168fe8;outline-offset:2px}.layout-optional{font-weight:650;color:#71859a;letter-spacing:0}.layout-estimate{border:1px solid #8dcda8;background:#effaf3;color:#155d34;padding:9px 10px;font-size:10px;font-weight:850;line-height:1.4}.layout-form-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.layout-form-actions button{min-height:44px}.layout-visibility{display:grid;gap:6px}.layout-visibility label{margin:0!important}

html[data-theme="dark"] .layout-tools-choice{border-color:#367957!important;background:#102a1c!important;color:#eefaf2!important}html[data-theme="dark"] .layout-tools-choice:hover{background:#153824!important}html[data-theme="dark"] .layout-tools-glyph{border-color:#5bc286;background:#123e26;color:#a8f0c3}html[data-theme="dark"] .layout-tool-form fieldset{border-color:#405b70}html[data-theme="dark"] .layout-tool-form legend,html[data-theme="dark"] .layout-tool-form>label,html[data-theme="dark"] .layout-option-panel>label,html[data-theme="dark"] .layout-identity-grid>label{color:#c5d7e8}html[data-theme="dark"] .layout-tool-form select,html[data-theme="dark"] .layout-tool-form input[type=number],html[data-theme="dark"] .layout-tool-form textarea{border-color:#425d73;background:#102235;color:#f2f7fb}html[data-theme="dark"] .layout-mode-grid span,html[data-theme="dark"] .layout-check{border-color:#425d73;background:#122639}html[data-theme="dark"] .layout-mode-grid b,html[data-theme="dark"] .layout-check b{color:#e6f1f9}html[data-theme="dark"] .layout-mode-grid small,html[data-theme="dark"] .layout-check small,html[data-theme="dark"] .layout-option-panel>small{color:#a9bdcf}html[data-theme="dark"] .layout-mode-grid input:checked+span{border-color:#51c980;background:#123b26}html[data-theme="dark"] .layout-option-panel{background:#102d1d}html[data-theme="dark"] .layout-feature-choice span{border-color:#425d73;background:#14283a;color:#d6e5f0}html[data-theme="dark"] .layout-feature-choice input:checked+span{border-color:#51c980;background:#123b26;color:#bcf4d0}html[data-theme="dark"] .layout-estimate{border-color:#477c5b;background:#102d1d;color:#b9efcd}

@media(max-width:700px){.map-rotation-control{top:66px;right:8px;grid-template-columns:34px 46px 34px}.map-rotation-control button{height:34px}.has-site-banner .map-rotation-control{top:calc(66px + var(--site-banner-offset,0px))}.layout-draw-banner{top:66px;width:calc(100% - 18px);max-width:none;gap:5px;padding:7px;overflow-x:auto}.layout-draw-banner span{font-size:9px;min-width:150px}.layout-draw-banner button{padding:6px 7px;white-space:nowrap}.has-site-banner .layout-draw-banner{top:calc(66px + var(--site-banner-offset,0px))}.layout-tool-backdrop{place-items:end center;padding:0}.layout-tool-form{width:100%;max-height:calc(100dvh - env(safe-area-inset-top));padding:12px!important}.layout-tool-form select,.layout-tool-form input[type=number],.layout-tool-form textarea{font-size:16px!important}.layout-mode-grid{grid-template-columns:1fr}.layout-identity-grid{grid-template-columns:1fr 1fr}}
@media(max-width:430px){.layout-number-grid,.layout-identity-grid{grid-template-columns:1fr}.map-rotation-control{right:6px}}
/* Layout capture must win over existing pin/vector click handlers so known endpoints can be picked directly on top of existing records and then snapped exactly. */
#map.layout-tool-active .leaflet-marker-icon,#map.layout-tool-active .leaflet-marker-shadow,#map.layout-tool-active svg .leaflet-interactive{pointer-events:none!important}


/* v0.4.29.25 layout transform controls. */
.layout-transform-actions{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.layout-transform-actions[hidden]{display:none!important}
.layout-transform-actions button{padding:5px 7px;min-width:0;white-space:nowrap}
.layout-transform-frame{cursor:move!important}
.layout-scale-handle{cursor:nwse-resize!important;stroke:#0b6d3a;fill:#b5ffd1}
.layout-rotate-handle{cursor:grab!important;stroke:#6b4800;fill:#ffd45d}
.layout-rotate-stem{stroke:#ffd45d;pointer-events:none}
#map.layout-transforming,#map.layout-transforming .leaflet-interactive{cursor:grabbing!important}
.layout-edge-note{display:block;margin-top:6px;color:var(--muted);line-height:1.35}
@media(max-width:900px){.layout-draw-banner{left:8px;right:8px;transform:none;max-width:none;flex-wrap:wrap}.layout-draw-banner span{min-width:min(100%,260px);flex:1 1 260px}.layout-transform-actions{order:3;flex:1 1 100%}}

/* v0.4.29.26 — layout editing UI: free edge/corner resize, distinct proposed heads. */
.layout-draw-banner{
  width:min(980px,calc(100vw - 28px));max-width:none;
  display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px 14px;
  padding:10px 12px;background:#071b13;border:1px solid #55d98c;box-shadow:0 10px 30px rgba(0,0,0,.34)
}
.layout-banner-copy{min-width:0;display:flex;align-items:baseline;gap:10px}
.layout-banner-copy b{flex:0 0 auto;color:#91f3b7;letter-spacing:.075em;white-space:nowrap;font-size:11px}
.layout-banner-copy span{min-width:0;flex:1;color:#effff5;font-size:10px;line-height:1.35}
.layout-banner-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}
.layout-banner-actions>button,.layout-transform-actions button{min-height:32px;padding:6px 9px;border:1px solid #486858;background:#0b2b1c;color:#f5fff8;font-size:10px;font-weight:850}
.layout-banner-actions>button:hover:not(:disabled),.layout-transform-actions button:hover:not(:disabled){background:#123b27;border-color:#6d9a80}
.layout-banner-actions .layout-create-btn{background:#1b8e4d;border-color:#61d590;color:#fff;min-width:76px}
.layout-banner-actions .layout-create-btn:hover:not(:disabled){background:#24a65c}
.layout-banner-actions .layout-cancel-btn{background:#1a2220;border-color:#5d6864;color:#dce5e1}
.layout-transform-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.layout-transform-actions[hidden]{display:none!important}
.layout-transform-actions button{white-space:nowrap}

/* Proposed heads are round blue map symbols. They are deliberately unlike edit handles. */
.layout-preview-point{stroke:#d8f1ff!important;stroke-width:2.25!important;fill:#168fe8!important;fill-opacity:1!important;filter:drop-shadow(0 1px 2px rgba(0,0,0,.72))}
.layout-transform-frame{cursor:move!important;stroke:#6af0a4!important;stroke-width:2!important}

/* Resize handles are square, high-contrast controls at every edge and corner. */
.layout-resize-handle{background:#f7fff9!important;border:2px solid #25b866!important;box-sizing:border-box!important;border-radius:1px!important;box-shadow:0 1px 4px rgba(0,0,0,.72)!important}
.layout-resize-handle span{display:block;width:100%;height:100%;background:transparent}
.layout-resize-n,.layout-resize-s{cursor:ns-resize!important}
.layout-resize-e,.layout-resize-w{cursor:ew-resize!important}
.layout-resize-nw,.layout-resize-se{cursor:nwse-resize!important}
.layout-resize-ne,.layout-resize-sw{cursor:nesw-resize!important}
.layout-rotate-handle{display:grid!important;place-items:center!important;background:#ffcb45!important;border:2px solid #5d4300!important;border-radius:50%!important;box-sizing:border-box!important;color:#2c2100!important;font:900 14px/1 "Verdana",Arial,sans-serif!important;box-shadow:0 1px 4px rgba(0,0,0,.72)!important;cursor:grab!important}
.layout-rotate-handle span{display:block;transform:translateY(-.5px)}
.layout-rotate-stem{stroke:#ffcb45!important;stroke-width:2!important;pointer-events:none!important}

/* Layout capture normally suppresses ordinary map markers/vectors. Re-enable only the
   transform frame and its dedicated DOM handles so editing remains draggable. */
#map.layout-tool-active .layout-transform-frame.leaflet-interactive{pointer-events:auto!important}
#map.layout-tool-active .layout-resize-handle.leaflet-marker-icon,
#map.layout-tool-active .layout-rotate-handle.leaflet-marker-icon{pointer-events:auto!important}
#map.layout-transforming .layout-resize-handle.leaflet-marker-icon,
#map.layout-transforming .layout-rotate-handle.leaflet-marker-icon{cursor:grabbing!important}

@media(max-width:760px){
  .layout-draw-banner{left:8px;right:8px;transform:none;width:auto;grid-template-columns:1fr;gap:8px;padding:9px;overflow:visible}
  .layout-banner-copy{display:grid;gap:3px}
  .layout-banner-copy span{font-size:9px;min-width:0}
  .layout-banner-actions{justify-content:flex-start;gap:5px}
  .layout-banner-actions>button,.layout-transform-actions button{min-height:34px;padding:7px 8px}
}
.layout-banner-actions .layout-transform-actions{order:0;flex:0 0 auto}

/* v0.4.29.28 — always-available feedback tab + compact feedback dialog. */
.feedback-tab{position:fixed;z-index:1580;right:0;top:50%;transform:translateY(-50%);width:34px;min-height:116px;padding:9px 6px;border:1px solid #4fcf88;border-right:0;border-radius:0;background:#071b13;color:#dffff0;box-shadow:0 4px 16px rgba(0,0,0,.34);cursor:pointer;font:800 10px/1 "Verdana",Arial,sans-serif;letter-spacing:.12em}
.feedback-tab span{display:block;writing-mode:vertical-rl;transform:rotate(180deg);margin:auto}
.feedback-tab:hover,.feedback-tab:focus-visible{background:#0f3422;color:#fff;outline:none;border-color:#80efad}
.irridex-intro-active .feedback-tab{display:none}
.feedback-backdrop{position:fixed;z-index:3100;inset:0;display:grid;place-items:center;padding:18px;background:rgba(2,10,17,.68)}
.feedback-backdrop[hidden]{display:none!important}
.feedback-dialog{width:min(680px,100%);max-height:min(90dvh,860px);overflow:auto;border:1px solid #6f8191;border-radius:0;background:#f8fbfd;color:#132b40;box-shadow:0 18px 54px rgba(0,0,0,.45)}
.feedback-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:15px 16px 12px;border-bottom:1px solid #c4d0da;background:#eef4f8}
.feedback-dialog-head h2{margin:2px 0 0;font-size:21px}.feedback-dialog-head .eyebrow{font-size:9px;font-weight:900;letter-spacing:.12em;color:#168550}.feedback-dialog-head .icon-btn{flex:0 0 auto;color:#20384d}
#feedbackForm{display:grid;gap:13px;padding:16px}.feedback-type-field{margin:0;border:1px solid #bdcbd7;padding:10px}.feedback-type-field legend{padding:0 5px;font-size:9px;font-weight:900;letter-spacing:.08em;color:#536a7d}.feedback-type-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.feedback-type-grid label{display:block;cursor:pointer;min-width:0}.feedback-type-grid input{position:absolute;opacity:0;pointer-events:none}.feedback-type-grid span{display:block;height:100%;box-sizing:border-box;border:1px solid #c4d0da;background:#fff;padding:9px}.feedback-type-grid b,.feedback-type-grid small{display:block}.feedback-type-grid b{font-size:11px;color:#213b52}.feedback-type-grid small{margin-top:3px;font-size:9px;line-height:1.3;color:#6c7f90}.feedback-type-grid input:checked+span{border-color:#1aa35d;box-shadow:inset 0 0 0 1px #1aa35d;background:#ebf9f1}.feedback-type-grid input:focus-visible+span{outline:2px solid #168fe8;outline-offset:2px}
.feedback-label{display:grid;gap:5px;font-size:10px;font-weight:900;letter-spacing:.055em;color:#29455e}.feedback-label>span{font-weight:600;letter-spacing:0;color:#718397}.feedback-label input,.feedback-label textarea{width:100%;box-sizing:border-box;border:1px solid #b9c8d5;border-radius:0;background:#fff;color:#142b41;padding:10px;font:400 14px/1.4 "Verdana",Arial,sans-serif;outline:none}.feedback-label textarea{resize:vertical;min-height:132px}.feedback-label input:focus,.feedback-label textarea:focus{border-color:#168fe8;box-shadow:0 0 0 2px rgba(22,143,232,.13)}
.feedback-context-toggle{display:flex;align-items:flex-start;gap:9px;border:1px solid #c2ced8;background:#f2f6f9;padding:10px;cursor:pointer}.feedback-context-toggle input{width:17px;height:17px;margin:1px 0 0;accent-color:#168b52}.feedback-context-toggle b,.feedback-context-toggle small{display:block}.feedback-context-toggle b{font-size:10px;color:#29455e}.feedback-context-toggle small{margin-top:3px;font-size:9px;line-height:1.35;color:#6b7e90}.feedback-context-preview{display:none;border:1px solid #c1ced9;background:#eef4f7;padding:8px 10px;font:11px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace;color:#41576b;white-space:pre-wrap;overflow-wrap:anywhere}.feedback-context-preview.is-visible{display:block}.feedback-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.feedback-status{min-height:18px;font-size:11px;font-weight:700;color:#5d7184}.feedback-status.is-error{color:#b12626}.feedback-status.is-success{color:#147c48}.feedback-actions{display:flex;justify-content:flex-end;gap:8px;padding-top:3px}.feedback-actions button{min-width:120px;min-height:40px}.feedback-inbox-link{box-sizing:border-box;text-align:center;text-decoration:none;margin-top:4px}
html[data-theme="dark"] .feedback-dialog{background:#0d1b27;color:#ecf5fb;border-color:#425c70}html[data-theme="dark"] .feedback-dialog-head{background:#102333;border-color:#375064}html[data-theme="dark"] .feedback-dialog-head h2,html[data-theme="dark"] .feedback-dialog-head .icon-btn{color:#f2f8fc}html[data-theme="dark"] .feedback-type-field{border-color:#3d566a}html[data-theme="dark"] .feedback-type-field legend,html[data-theme="dark"] .feedback-label{color:#c4d6e5}html[data-theme="dark"] .feedback-type-grid span{border-color:#3e586d;background:#112638}html[data-theme="dark"] .feedback-type-grid b{color:#e7f1f8}html[data-theme="dark"] .feedback-type-grid small,html[data-theme="dark"] .feedback-label>span,html[data-theme="dark"] .feedback-context-toggle small{color:#a8bac8}html[data-theme="dark"] .feedback-type-grid input:checked+span{border-color:#4dcb82;background:#113722}html[data-theme="dark"] .feedback-label input,html[data-theme="dark"] .feedback-label textarea{border-color:#405a6f;background:#0d2030;color:#f2f8fc}html[data-theme="dark"] .feedback-context-toggle,html[data-theme="dark"] .feedback-context-preview{border-color:#3e5669;background:#102433;color:#b9cbd8}html[data-theme="dark"] .feedback-context-toggle b{color:#d9e6ef}
@media(max-width:680px){.feedback-tab{width:32px;min-height:102px;font-size:9px}.feedback-backdrop{place-items:end center;padding:0}.feedback-dialog{width:100%;max-height:calc(100dvh - env(safe-area-inset-top));border-left:0;border-right:0;border-bottom:0}.feedback-type-grid{grid-template-columns:1fr 1fr}.feedback-label input,.feedback-label textarea{font-size:16px}.feedback-actions{display:grid;grid-template-columns:1fr 1fr}.feedback-actions button{min-width:0}}

/* 1.0.0.6: a usable map remains visible while bounded data batches load. */
.map-read-status{position:fixed;z-index:810;left:50%;transform:translateX(-50%);bottom:calc(82px + env(safe-area-inset-bottom));max-width:min(560px,calc(100vw - 24px));display:flex;align-items:center;gap:8px;padding:9px 12px;background:#fff;color:#142b41;border:1px solid #8296a8;font-size:13px;line-height:1.4;pointer-events:none}
.map-read-status button{pointer-events:auto;min-height:44px;padding:8px 14px;border:1px solid #54738d;background:#edf5fb;color:#142b41;font:700 14px Verdana,Arial,sans-serif}
.map-read-status button[hidden]{display:none}
.map-overview-marker{display:grid!important;place-items:center;background:#eef4f8;color:#122a3e;border:2px solid #47667f;font:bold 14px Verdana,Arial,sans-serif;box-shadow:0 2px 5px #0004;cursor:pointer}
.mobile-tools-toggle,.mobile-map-tools{display:none}
html[data-theme="dark"] .map-read-status{background:#102333;color:#edf6ff;border-color:#647f93}
@media(max-width:720px),(pointer:coarse){
  #app{height:100dvh}
  #map{top:var(--irridex-topbar-height,58px)!important;bottom:0!important}
  .topbar{gap:4px!important;padding-left:max(8px,env(safe-area-inset-left))!important;padding-right:max(8px,env(safe-area-inset-right))!important}
  .top-actions{gap:4px!important;min-width:0}
  .top-logo{width:76px!important}
  .topbar .icon-btn,.topbar .account{min-height:44px!important;flex-shrink:0}
  .topbar .icon-btn{width:44px!important;min-width:44px!important}
  .topbar .account{max-width:64px!important;padding:6px!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .topbar .notification-bell{display:none!important}
  .mobile-tools-toggle{display:inline-flex!important;font-size:12px!important;align-items:center;justify-content:center}
  .mobile-map-tools:not([hidden]){display:flex;flex-wrap:wrap;gap:8px;position:fixed;z-index:1100;top:calc(var(--irridex-topbar-height,58px) + 8px);right:8px;max-width:calc(100vw - 16px);padding:12px;background:var(--card,#fff);color:var(--ink,#142b41);border:1px solid #8296a8}
  .mobile-map-tools .icon-btn{display:inline-flex!important;width:48px;height:48px;align-items:center;justify-content:center}
  .mobile-map-tools .map-rotation-control{position:static!important;display:grid;grid-template-columns:44px 48px 44px}
  .mobile-map-tools .map-rotation-control button{height:48px!important}
  .drawer{top:var(--irridex-topbar-height,58px)!important;bottom:0!important;width:min(360px,100vw)!important;max-height:calc(var(--irridex-visual-height,100dvh) - var(--irridex-topbar-height,58px));overflow-y:auto;overscroll-behavior:contain;padding-bottom:calc(20px + env(safe-area-inset-bottom))!important}
  .drawer-head{position:sticky;top:0;z-index:2;background:var(--card,#fff)}
  .drawer input,.drawer select,.drawer textarea{font-size:16px!important;min-height:44px}
  .drawer input[type=checkbox]{min-height:22px}
  .drawer button,.drawer .icon-btn,.filter-actions button{min-height:44px!important}
  .capture-menu{max-height:calc(var(--irridex-visual-height,100dvh) - 24px - env(safe-area-inset-top));overflow-y:auto;overscroll-behavior:contain}
  .capture-choice{min-height:58px}
  .capture-choice small{font-size:12px}
  .feedback-tab{top:auto!important;bottom:calc(18px + env(safe-area-inset-bottom))!important;left:8px!important;transform:none!important;width:86px!important;min-height:44px!important;height:44px!important;writing-mode:horizontal-tb!important;font-size:11px!important}
  .feedback-tab span{writing-mode:horizontal-tb!important;transform:none!important}
  .map-read-status{width:calc(100vw - 24px);box-sizing:border-box;max-width:none;bottom:calc(82px + env(safe-area-inset-bottom));font-size:12px}
  .measure-banner,.move-pin-banner,.bulk-move-banner,.geometry-draw-banner,.layout-draw-banner,.quick-pick-banner{top:calc(var(--irridex-topbar-height,58px) + var(--site-banner-offset,0px) + 8px)!important;flex-wrap:wrap}
  .measure-banner button,.move-pin-banner button,.bulk-move-banner button,.geometry-draw-banner button,.layout-draw-banner button,.quick-pick-banner button{min-height:44px!important;padding:8px 12px!important}
  .leaflet-control-zoom a{width:44px!important;height:44px!important;line-height:44px!important}
}
/* Keep Leaflet's internal z-indexes inside the map, below application controls. */
#map{isolation:isolate;z-index:0}
@media(max-width:720px),(pointer:coarse){
  .fab{min-height:52px!important;bottom:calc(50px + env(safe-area-inset-bottom))!important}
  .feedback-tab{bottom:calc(50px + env(safe-area-inset-bottom))!important}
  .map-read-status{bottom:calc(116px + env(safe-area-inset-bottom))}
  .leaflet-control-attribution{max-width:calc(100vw - 12px);max-height:42px;overflow:auto;font-size:10px!important}
}
@media(max-width:720px),(pointer:coarse){
  .topbar .brand-block{min-width:0!important;flex:0 1 76px!important}
  .topbar .brand-block span{display:none!important}
  .topbar .top-actions{margin-left:auto!important}
  #captureCancel{position:sticky;bottom:0;z-index:2;min-height:44px;background:var(--card,#fff);border:1px solid #8296a8}
}

/* 1.0.0.8: readable, dismissible map layers without bottom-control collisions. */
.map-read-status[hidden]{display:none!important}
#map .irridex-map-layers{background:#fff;color:#142b41;border:1px solid #657f94;box-shadow:0 3px 14px #07111f30;color-scheme:light}
#map .irridex-map-layers label{color:#142b41!important;display:flex;align-items:center;min-height:44px;margin:0;line-height:1.35}
#map .irridex-map-layers label>span{display:flex;align-items:center;gap:8px}
#map .irridex-map-layers input{width:18px;height:18px;flex:none;margin:0 2px 0 0;accent-color:#0866a9}
#map .irridex-map-layers .leaflet-control-layers-toggle{width:44px;height:44px}
#map .irridex-map-layers.leaflet-control-layers-expanded{width:min(310px,calc(100vw - 80px));padding:10px;max-height:calc(100dvh - 200px);overflow-y:auto}
#map .irridex-map-layers .leaflet-control-layers-list{height:auto!important;max-height:calc(100dvh - 270px);overflow-y:auto;padding:0 4px 0 0}
.map-layers-close{display:none;width:100%;min-height:44px;margin-top:8px;border:1px solid #657f94;background:#edf5fb;color:#142b41;font:700 14px Verdana,Arial,sans-serif;cursor:pointer}
.leaflet-control-layers-expanded .map-layers-close{display:block}
html[data-theme="dark"] #map .irridex-map-layers{background:#102333;color:#edf6ff;border-color:#8296a8;color-scheme:dark}
html[data-theme="dark"] #map .irridex-map-layers label{color:#edf6ff!important}
html[data-theme="dark"] #map .map-layers-close{background:#203c52;color:#edf6ff;border-color:#8296a8}
html[data-theme="dark"] #map .leaflet-control-zoom a{background:#102333;color:#edf6ff;border-color:#8296a8}
#map .map-layers-close:focus-visible,#map .leaflet-control-layers-toggle:focus-visible{outline:3px solid #168fe8;outline-offset:2px}
@media(min-width:721px) and (pointer:fine){#map .irridex-map-layers{margin-top:62px}}
/* Keep Feedback in the bottom-left action area at every viewport width. */
.feedback-tab{top:auto!important;bottom:calc(50px + env(safe-area-inset-bottom))!important;left:8px!important;right:auto!important;transform:none!important;width:86px!important;min-height:44px!important;height:44px!important;font-size:11px!important}
.feedback-tab span{writing-mode:horizontal-tb!important;transform:none!important}

/* 1.0.0.11: lifecycle markings must be deterministic in Modern Mode.
   Traditional Canvas already applies the same 75% dim / 30% shrink semantics. */
.map-pin-status-shell{position:relative;display:grid;place-items:center;width:100%;height:100%;overflow:visible}
.map-pin-status-shell .marker-visual{transform-origin:50% 50%}
.map-pin-status-shell.is-inactive .marker-visual{transform:scale(.7);filter:brightness(.25) saturate(.7)}
.map-pin-status-shell.has-red-x::before,.map-pin-status-shell.has-red-x::after{content:"";position:absolute;z-index:5;left:50%;top:50%;width:118%;height:4px;border-radius:2px;background:#e00000;opacity:.55;pointer-events:none;transform-origin:center}
.map-pin-status-shell.has-red-x::before{transform:translate(-50%,-50%) rotate(45deg)}
.map-pin-status-shell.has-red-x::after{transform:translate(-50%,-50%) rotate(-45deg)}
.map-pin-saved-check{position:absolute;z-index:7;right:-5px;bottom:-5px;display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#0cbf63;color:#fff;border:2px solid rgba(255,255,255,.98);box-shadow:0 1px 4px rgba(0,0,0,.55);font:900 15px/1 Arial,sans-serif;pointer-events:none;text-shadow:0 1px 1px rgba(0,0,0,.35)}
.map-pin-saved-check::after{content:"";display:block;width:11px;height:9px;background:#fff;clip-path:polygon(0 51%,16% 34%,39% 67%,84% 0,100% 15%,40% 100%);filter:drop-shadow(0 1px 1px rgba(0,0,0,.35))}
.irridex-vector-check{display:inline-block;width:13px;height:10px;background:currentColor;clip-path:polygon(0 51%,16% 34%,39% 67%,84% 0,100% 15%,40% 100%)}
.map-pin-status-shell.is-inactive .map-pin-saved-check{filter:none;opacity:1}
.discoverer.saved-by{margin-top:5px;padding-top:5px;border-top:1px solid rgba(127,127,127,.22)}
.saved-by .saved-at{font-size:10px;color:var(--muted);white-space:nowrap}


/* 1.0.0.12: optional structured hardware-archaeology metadata. */
.hardware-archaeology{margin:14px 0;border:1px solid var(--line);background:var(--panel);}
.hardware-archaeology>summary{cursor:pointer;padding:11px 12px;display:flex;gap:8px;align-items:baseline;justify-content:space-between;list-style:none;}
.hardware-archaeology>summary::-webkit-details-marker{display:none}.hardware-archaeology>summary:after{content:'\2b';font-family:"Font Awesome 6 Free";font-weight:900;font-size:18px}.hardware-archaeology[open]>summary:after{content:'\f068'}
.hardware-archaeology>summary span{font-size:10px;color:var(--muted);font-weight:700;text-align:right}.hardware-archaeology-body{padding:0 12px 12px;border-top:1px solid var(--line)}
.popup-archaeology{margin:7px 0;border:1px solid rgba(127,127,127,.35);padding:5px 7px}.popup-archaeology summary{cursor:pointer;font-weight:800}.popup-archaeology p{margin:5px 0;line-height:1.3}
@media(max-width:640px){.hardware-archaeology>summary{align-items:flex-start;flex-direction:column}.hardware-archaeology>summary span{text-align:left}}

/* v1.0.0.25: Font Awesome replaces fragile Unicode/action-image glyphs. */
.save-find-btn>i{font-size:18px;line-height:1}.secondary-btn>i,.icon-btn>i{pointer-events:none}

/* 1.0.0.27 — touch-friendly rectangle editors and imagery-patch QOL. */
.rectangle-corner-handle{box-sizing:border-box;background:#fff;border:3px solid #00d4ff;border-radius:50%;box-shadow:0 2px 8px rgba(0,0,0,.55);cursor:nwse-resize!important;touch-action:none!important}
.bulk-select-corner-handle{border-color:#00d4ff!important;background:#06151d!important}
.image-overlay-corner-handle{border-color:#ffcf33!important;background:#241d00!important}
.image-overlay-move-handle{box-sizing:border-box;display:grid!important;place-items:center;background:#ffcf33;color:#181300;border:3px solid #fff;border-radius:50%;box-shadow:0 2px 10px rgba(0,0,0,.6);font-size:15px;cursor:move!important;touch-action:none!important}
.image-overlay-move-handle i{display:grid;place-items:center;width:100%;height:100%;pointer-events:none}
#map.bulk-move-selecting .rectangle-corner-handle{pointer-events:auto!important}
.image-overlay-selection-box,.bulk-move-selection-box{touch-action:none}
.image-overlay-pick-banner{border-color:#ffcf33}.image-overlay-pick-banner b{color:#ffe47d}
.map-context-patch-actions{display:flex;gap:5px;flex:0 0 auto}.map-context-patch-row .map-context-patch-actions button{border-color:#7f91a2;background:#edf3f8;color:#20364b}.map-context-patch-row .map-context-patch-actions button[data-delete-image-overlay]{border-color:#a33;background:#fff0f0;color:#8d1717}
.image-overlay-form>label small{display:block;margin-top:3px;font-size:9px;font-weight:700;letter-spacing:0;text-transform:none;color:#60778b;line-height:1.35}
@media(max-width:720px),(pointer:coarse){
  #map.bulk-move-selecting,#map.image-overlay-pick-active{cursor:default!important}
  .rectangle-corner-handle{width:34px!important;height:34px!important;margin-left:-17px!important;margin-top:-17px!important;border-width:4px}
  .image-overlay-move-handle{width:44px!important;height:44px!important;margin-left:-22px!important;margin-top:-22px!important;font-size:18px}
  .image-overlay-form{padding-bottom:calc(76px + env(safe-area-inset-bottom))!important}
  .image-overlay-form .geometry-form-actions{position:sticky;bottom:0;z-index:4;margin:12px -14px calc(-76px - env(safe-area-inset-bottom))!important;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #bdcddb;box-shadow:0 -7px 18px rgba(0,0,0,.12)}
  html[data-theme="dark"] .image-overlay-form .geometry-form-actions{background:#102333;border-color:#49647b}
  .image-overlay-preview{max-height:28dvh}
}

/* 1.0.0.29 — administrator-only global pin-to-imagery calibration. */
.global-calibration-btn{border-color:#f0b92d!important}
.global-calibration-drawer-btn{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:8px}
.global-calibration-pick-banner{border-color:#f0b92d}.global-calibration-pick-banner b{color:#ffe28a}
.global-calibration-backdrop{z-index:2820}
.global-calibration-form{width:min(680px,100%)!important;max-height:min(92dvh,900px);overflow:auto}
.global-calibration-form>strong{font-size:20px}.global-calibration-intro,.global-calibration-help,.global-calibration-warning{line-height:1.45!important}
.global-calibration-form>label small{display:block;margin-top:4px;color:var(--muted,#64788b);font-weight:650;line-height:1.35}
.global-calibration-shift-card{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid var(--line,#bdcddb);background:var(--panel,#f4f8fb)}
.global-calibration-shift-card>div{display:grid;gap:4px;padding:10px;border-right:1px solid var(--line,#bdcddb);border-bottom:1px solid var(--line,#bdcddb)}
.global-calibration-shift-card>div:nth-child(2n){border-right:0}.global-calibration-shift-card>div:nth-last-child(-n+2){border-bottom:0}
.global-calibration-shift-card span{font-size:9px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted,#64788b);font-weight:850}.global-calibration-shift-card b{font-size:13px;overflow-wrap:anywhere}
.global-calibration-preview{display:grid;gap:4px;padding:10px;border:2px solid #2295d2;background:#eaf8ff;color:#163c54}.global-calibration-preview b{font-size:14px}.global-calibration-preview span{font-size:11px;font-weight:800}.global-calibration-preview small{font-size:10px;line-height:1.4}
.global-calibration-history-section{display:grid;gap:7px;margin-top:8px;padding-top:10px;border-top:1px solid var(--line,#bdcddb)}.global-calibration-history-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.global-calibration-history-head .secondary-btn{padding:6px 9px}
.global-calibration-history{display:grid;gap:7px}.global-calibration-history>span{font-size:11px;color:var(--muted,#64788b)}
.global-calibration-history-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px;border:1px solid var(--line,#bdcddb);background:var(--panel,#f6f9fc)}.global-calibration-history-row>div{display:grid;gap:2px;min-width:0}.global-calibration-history-row b{font-size:11px}.global-calibration-history-row span,.global-calibration-history-row small,.global-calibration-history-row em{font-size:9px;line-height:1.35;color:var(--muted,#64788b);font-style:normal}.global-calibration-history-row em{font-weight:850;color:#8f5a00}.global-calibration-history-row button{flex:none;padding:7px 9px}
.global-calibration-warning{display:flex;gap:7px;align-items:flex-start;margin:4px 0 0!important;padding:9px;border:1px solid #d7aa34;background:#fff7da;color:#604600!important}
html[data-theme="dark"] .global-calibration-preview{background:#0d3448;color:#dff5ff;border-color:#59c5ff}html[data-theme="dark"] .global-calibration-warning{background:#3d310e;color:#ffe9a0!important;border-color:#9b7a20}
@media(max-width:620px),(pointer:coarse){
  .global-calibration-backdrop{place-items:end center;padding:0}.global-calibration-form{width:100%!important;max-height:calc(100dvh - env(safe-area-inset-top));padding-bottom:calc(18px + env(safe-area-inset-bottom))}
  .global-calibration-shift-card{grid-template-columns:1fr}.global-calibration-shift-card>div{border-right:0!important;border-bottom:1px solid var(--line,#bdcddb)!important}.global-calibration-shift-card>div:last-child{border-bottom:0!important}
  .global-calibration-history-row{align-items:flex-start}.global-calibration-history-row button{min-height:44px}
  .global-calibration-form .geometry-form-actions>button{min-height:46px;flex:1 1 45%}
}
