/* R4.6.0 core CSS bundle; originals retained for source completeness. */

/* ===== BEGIN app.css ===== */
:root{--ink:#17211d;--muted:#67736d;--forest:#125a3b;--forest-deep:#0b3d2b;--mint:#dff4e8;--sand:#f7f5ef;--line:#e4e9e4;--card:#fff;--danger:#dc2626;--warning:#b7791f;--shadow:0 16px 50px rgba(22,42,31,.09);font-family:Inter,"PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink)}*{box-sizing:border-box}body{margin:0;background:var(--sand);font-size:14px}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh}.sidebar{position:fixed;width:236px;inset:0 auto 0 0;background:var(--forest-deep);color:#eaf7ef;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:10px;padding:25px 21px 22px}.brand-mark{width:34px;height:34px;border-radius:12px;background:#dff4e8;color:var(--forest-deep);display:grid;place-items:center;font-size:19px;box-shadow:0 5px 16px rgba(0,0,0,.12)}.brand b{display:block;font-size:16px;letter-spacing:.2px}.brand small{display:block;color:#a5c9b6;font-size:9px;letter-spacing:1.2px;margin-top:3px}.nav-list{padding:12px}.nav-item{display:flex;align-items:center;gap:12px;padding:12px;border-radius:11px;color:#b6d7c5;margin:4px 0;transition:.18s}.nav-item:hover{background:rgba(255,255,255,.1);color:white}.nav-primary{background:#1a7650;color:#fff!important;box-shadow:0 9px 20px rgba(0,0,0,.16)}.sidebar-foot{margin:auto 18px 17px;padding:14px 8px 0;border-top:1px solid rgba(255,255,255,.12);color:#bdd7c8;font-size:12px}.sidebar-foot small{color:#82ac95;font-size:10px}.status-dot{width:7px;height:7px;background:#74e3a5;display:inline-block;border-radius:999px;margin-right:6px;box-shadow:0 0 0 4px rgba(116,227,165,.13)}.main-content{margin-left:236px;min-height:100vh}.topbar{height:78px;padding:0 44px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:rgba(247,245,239,.86);backdrop-filter:blur(12px);position:sticky;top:0;z-index:10}.eyebrow{display:block;color:var(--forest);font-weight:800;letter-spacing:1.3px;font-size:10px;margin-bottom:7px}.user-menu{display:flex;align-items:center;gap:9px}.avatar{width:33px;height:33px;border-radius:50%;display:grid;place-items:center;background:#cdebd8;color:var(--forest);font-weight:800}.user-name{font-weight:700;font-size:13px}.user-name small{display:block;color:var(--muted);font-weight:500;font-size:10px}.icon-button{border:0;background:none;color:#466154;font-size:19px;padding:7px;margin-left:8px}.page-content{max-width:1440px;padding:34px 44px 70px;margin:auto}.hero{background:linear-gradient(119deg,#0c4c34,#176d4b 64%,#25835c);color:white;border-radius:22px;min-height:248px;padding:35px 40px;display:flex;justify-content:space-between;overflow:hidden;position:relative;box-shadow:0 20px 50px rgba(10,70,44,.17)}.hero h1{font-size:30px;margin:3px 0 9px}.hero p{color:#cfe8d9;max-width:570px;line-height:1.7;margin:0}.hero .eyebrow{color:#a8e3bd}.hero-actions{display:flex;gap:10px;margin-top:23px}.hero-orb{width:190px;height:190px;margin-right:24px;border:1px solid rgba(255,255,255,.18);border-radius:50%;display:flex;flex-direction:column;justify-content:center;align-items:center;background:radial-gradient(circle,rgba(142,241,182,.29),transparent 63%);position:relative}.hero-orb:before,.hero-orb:after{content:"";position:absolute;border:1px solid rgba(255,255,255,.14);border-radius:50%}.hero-orb:before{inset:19px}.hero-orb:after{inset:-20px}.hero-orb span{font-size:49px;position:relative}.hero-orb small{font-size:9px;letter-spacing:1px;margin-top:8px;position:relative}.button{border:1px solid transparent;padding:10px 14px;border-radius:10px;font-weight:750;display:inline-flex;gap:12px;justify-content:center;align-items:center;transition:.15s}.button.primary{background:var(--forest);color:#fff}.hero .button.primary{background:#e2f6e9;color:#12482f}.button.primary:hover{transform:translateY(-1px);filter:brightness(.95)}.button.ghost{background:#fff;border-color:var(--line);color:#2b493a}.hero .button.ghost{background:transparent;border-color:rgba(255,255,255,.3);color:#fff}.button.full{width:100%}.button.large{padding:14px}.button.small{padding:8px 11px;font-size:12px}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:21px 0}.metric-card,.card{background:var(--card);border:1px solid var(--line);box-shadow:0 4px 18px rgba(19,38,26,.025)}.metric-card{border-radius:15px;padding:18px}.metric-card span{color:var(--muted);display:block;font-size:12px}.metric-card b{font-size:28px;margin:7px 0 2px;display:block}.metric-card small{color:#91a098}.metric-card.accent{background:var(--mint);border-color:#c7ead3}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:17px}.card{border-radius:16px;padding:22px}.card-head,.page-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.card h2,.page-heading h1{margin:0;font-size:20px}.card-head h2{font-size:17px}.text-link{font-weight:750;color:var(--forest);white-space:nowrap}.task-list,.record-mini-list{margin-top:18px}.task-item,.record-mini{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.task-item:last-child,.record-mini:last-child{border-bottom:0}.task-pin{width:30px;height:30px;border-radius:9px;background:#e7f5ed;color:var(--forest);display:grid;place-items:center}.task-item div,.record-mini div{flex:1}.task-item b,.record-mini b{display:block}.task-item small,.record-mini small,td small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.record-date{font-weight:800;color:var(--forest);font-size:12px;width:39px}.tag{font-size:11px;display:inline-flex;padding:4px 8px;border-radius:999px;font-weight:700;white-space:nowrap}.tag.success{background:#e2f7e9;color:#167143}.tag.warning{background:#fff4d8;color:#9a6500}.tag.danger{background:#fde7e7;color:#bb2929}.tag.neutral{background:#eef2ef;color:#59675e}.large-tag{padding:7px 11px}.empty-state{text-align:center;color:#95a29a;padding:32px 10px}.empty-state span{font-size:28px}.page-heading{margin-bottom:22px}.page-heading h1{font-size:28px;letter-spacing:-.4px}.page-heading p{color:var(--muted);margin:7px 0 0}.heading-actions{display:flex;gap:9px}.filter-bar{display:flex;align-items:center;gap:9px;margin:-5px 0 14px}.filter-bar span{margin-left:auto;color:var(--muted)}.filter-bar select,.filter-bar input{padding:9px 11px;background:white;border:1px solid var(--line);border-radius:9px;min-width:150px;outline:none}.record-filter{background:#fff;padding:10px;border:1px solid var(--line);border-radius:12px}.table-card{padding:0;overflow:hidden}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;min-width:760px}th{background:#f6f8f5;color:#708078;text-align:left;font-size:11px;letter-spacing:.4px;padding:13px 17px;text-transform:uppercase}td{padding:14px 17px;border-top:1px solid var(--line);vertical-align:middle}td b{display:block}.table-empty{text-align:center;color:var(--muted);padding:43px}.actions{display:flex;gap:8px}.actions a,.actions button,.text-button{border:0;background:none;color:var(--forest);font-weight:800;font-size:16px}.actions form{display:inline}.modal{display:none;position:fixed;inset:0;z-index:60}.modal.open{display:block}.modal-backdrop{position:absolute;inset:0;background:rgba(10,30,20,.45);backdrop-filter:blur(3px)}.modal-box{width:min(560px,calc(100% - 32px));background:#fff;border-radius:17px;padding:22px;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);box-shadow:var(--shadow);max-height:90vh;overflow:auto}.modal-box.wide{width:min(760px,calc(100% - 32px))}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.modal-head h2{margin:0;font-size:20px}.modal-head button{border:0;background:#f1f5f2;font-size:20px;line-height:1;border-radius:8px;width:30px;height:30px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid label{font-weight:700;font-size:12px;color:#31463b}.form-grid input,.form-grid select,.form-grid textarea,.review-form textarea{display:block;width:100%;border:1px solid #dce5de;border-radius:9px;padding:10px 11px;margin-top:6px;outline:none;background:#fff;color:var(--ink)}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{border-color:#49a373;box-shadow:0 0 0 3px rgba(73,163,115,.13)}.span-2{grid-column:span 2}.form-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:4px}.site-callout{padding:13px;border:1px solid #cde7d7;background:#f5fbf7;border-radius:11px;display:flex;gap:11px;align-items:center}.site-callout>span{font-size:23px;color:var(--forest)}.site-callout b,.site-callout small{display:block}.site-callout small{color:var(--muted);font-size:11px;margin-top:3px}.map-layout{display:grid;grid-template-columns:1fr 276px;gap:16px}.map-card{background:#fff;border:1px solid var(--line);border-radius:17px;padding:8px;position:relative;min-height:620px}.leaflet-map{height:604px;border-radius:12px;overflow:hidden}.map-side{background:var(--forest-deep);color:#effaf2;border-radius:17px;padding:24px;align-self:stretch}.map-side .eyebrow{color:#9ce0b5}.map-side h2{margin:0 0 10px}.map-side p{line-height:1.65;color:#c6dfcf}.map-side hr{border:0;border-top:1px solid rgba(255,255,255,.16);margin:22px 0}.map-side .button{margin-top:15px;background:#e1f5e9;color:#11452f}.map-legend{position:absolute;bottom:21px;left:21px;background:white;border-radius:10px;padding:10px 12px;box-shadow:0 8px 20px rgba(0,0,0,.17);z-index:500;font-size:11px}.map-legend b{display:block;margin-bottom:6px}.map-legend span{margin-right:8px}.dot{width:7px;height:7px;border-radius:50%;display:inline-block;margin-right:3px}.dot.gray{background:#94a3b8}.dot.yellow{background:#eab308}.dot.green{background:#16a34a}.dot.red{background:#dc2626}.popup-card b,.popup-card small,.popup-card a{display:block}.popup-card small{color:#66736c;margin:3px 0}.popup-card p{font-size:11px;line-height:1.7}.popup-card span{font-size:10px;padding:3px 5px;background:#e8f5ec;border-radius:4px}.popup-card a{margin-top:9px;color:var(--forest);font-weight:bold}.sampling-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:17px}.sample-main{margin-bottom:16px}.section-head{display:flex;gap:12px;align-items:flex-start;margin-bottom:18px}.section-index{width:27px;height:27px;flex:none;border-radius:8px;background:#e7f6ec;color:var(--forest);display:grid;place-items:center;font-weight:850;font-size:12px}.section-head h2{font-size:17px;margin:1px 0 4px}.section-head p{margin:0;color:var(--muted);font-size:12px}.location-box{background:#f6faf7;border:1px solid #d7eadc;display:flex;align-items:center;justify-content:space-between;border-radius:10px;padding:12px;margin:4px 0 16px}.location-box b,.location-box small{display:block}.location-box small{color:var(--muted);font-size:11px;margin-top:4px}.ocr-upload{border:1px dashed #94cbaa;border-radius:11px;background:#f8fcf9;padding:15px;display:flex;align-items:center;justify-content:space-between;gap:12px}.ocr-upload b,.ocr-upload small{display:block}.ocr-upload small{color:var(--muted);font-size:11px;margin-top:4px}.upload-button,.file-picker{background:#e0f3e7;color:var(--forest);font-weight:800;padding:9px 11px;border-radius:8px;font-size:12px;white-space:nowrap}.upload-button input,.file-picker input{display:none}.ocr-status{margin:10px 0 0;border-radius:8px;padding:9px 11px;background:#fff5dc;color:#8d6003;font-size:12px;line-height:1.55}.ocr-status.ok{background:#e8f7ec;color:#15643a}.parameter-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:16px}.parameter-grid label{position:relative;background:#fbfcfb;border:1px solid var(--line);border-radius:10px;padding:10px;font-weight:700;font-size:12px}.parameter-grid label span{float:right;color:var(--muted);font-size:10px}.parameter-grid input{border:0;background:transparent;padding:7px 0 0;display:block;width:100%;outline:none;font-weight:800;font-size:18px;color:var(--forest)}.photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}.photo-slot{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:126px;border:1.5px dashed #9fcfb0;border-radius:11px;background:#fbfefc;color:var(--forest);cursor:pointer}.photo-slot>span{font-size:24px}.photo-slot b{margin-top:6px}.photo-slot small{font-size:11px;color:var(--muted);margin-top:3px}.photo-slot input{display:none}.sample-side .side-sticky,.detail-grid aside .side-sticky{position:sticky;top:98px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:21px}.side-sticky h2{font-size:18px;margin:0 0 13px}.side-sticky ul{padding-left:18px;color:#547062;line-height:2;margin:0 0 19px}.small-copy{font-size:11px;color:var(--muted);line-height:1.65}.detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:17px}.detail-grid section>.card{margin-bottom:16px}.readings{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.readings>div{background:#f5faf7;border-radius:11px;padding:13px}.readings span,.readings b,.readings small{display:block}.readings span{font-size:11px;color:var(--muted)}.readings b{font-size:23px;color:var(--forest);margin-top:6px}.readings small{display:inline;font-size:10px;font-weight:600;margin-left:3px}.alert-card{margin-top:16px;padding:11px;border-radius:9px;background:#fff0f0;color:#b12626;display:flex;gap:12px;font-size:12px}.detail-list>div{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--line)}.detail-list>div:last-child{border-bottom:0}.detail-list span{color:var(--muted);font-size:12px}.detail-list b{text-align:right;font-size:12px}.notes{margin-top:13px;padding:12px;background:#f7f9f7;border-radius:9px;color:#526359;font-size:12px;line-height:1.7}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.photo{border-radius:10px;overflow:hidden;background:#f3f6f3;border:1px solid var(--line);position:relative;aspect-ratio:1}.photo img{width:100%;height:100%;object-fit:cover}.photo span{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(0,0,0,.7));color:white;padding:18px 7px 6px;font-size:10px}.review-form{margin-top:17px}.review-form>div{display:flex;gap:8px;margin-top:8px}.review-form .button{font-size:12px;padding:9px}.danger-button{color:#b82828!important;border-color:#f3caca!important}.back-link{display:block;color:var(--forest);font-weight:750;font-size:12px;margin-bottom:13px}.import-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:18px}.import-card{min-height:276px;display:flex;flex-direction:column}.import-icon{font-size:29px;color:var(--forest);background:#e7f5ec;width:47px;height:47px;border-radius:13px;display:grid;place-items:center}.import-card h2{font-size:18px;margin:15px 0 7px}.import-card p{color:var(--muted);font-size:12px;line-height:1.65;margin:0 0 11px}.import-card form{margin-top:auto;padding-top:13px}.file-picker{display:block;margin:9px 0;text-align:center}.error-text{white-space:pre-wrap;color:#aa4545}.flash{padding:11px 14px;border-radius:10px;margin-bottom:17px;background:#edf7f0;color:#20663b;border:1px solid #d2edda;font-weight:650}.flash span{margin-right:7px}.flash.error{background:#fff1f1;color:#b52c2c;border-color:#f5d4d4}.flash.warning{background:#fff7e7;color:#8b6008;border-color:#f2e2bc}.mobile-header,.mobile-nav{display:none}.login-wrap{min-height:100vh;display:grid;grid-template-columns:1.2fr .8fr;background:#f3f1eb}.login-scene{background:linear-gradient(125deg,rgba(7,57,37,.87),rgba(16,108,71,.63)),url('https://images.unsplash.com/photo-1547683905-f686c993aae5?auto=format&fit=crop&w=1600&q=80') center/cover;position:relative}.login-scene:after{content:'FIELD SURVEY';position:absolute;bottom:50px;left:60px;color:rgba(255,255,255,.19);font-size:12vw;font-weight:900;letter-spacing:-6px}.login-panel{padding:clamp(38px,7vw,94px);display:flex;flex-direction:column;justify-content:center;max-width:580px}.login-brand{display:flex;align-items:center;gap:10px;margin-bottom:auto}.login-brand b{display:block;font-size:16px}.login-brand small{display:block;color:var(--muted);font-size:9px;letter-spacing:1px;margin-top:3px}.login-copy{margin:55px 0 30px}.login-copy h1{font-size:clamp(34px,4vw,48px);letter-spacing:-1.5px;margin:6px 0 13px;line-height:1.13}.login-copy p{color:var(--muted);line-height:1.7;max-width:360px}.login-form label{display:block;font-weight:750;font-size:12px;margin:13px 0}.login-form input{display:block;width:100%;border:1px solid #d6e0d8;border-radius:10px;padding:13px;margin-top:7px;background:#fff;outline:none}.login-form input:focus{border-color:#3a9264;box-shadow:0 0 0 3px rgba(58,146,100,.12)}.login-form .button{margin-top:10px}.login-note{margin-top:28px;color:#849187;line-height:1.6;font-size:10px}.error-page{min-height:100vh;display:flex;align-items:center;justify-content:center;flex-direction:column;background:var(--sand);text-align:center}.error-page>span{font-size:80px;font-weight:900;color:#c7ddd0}.error-page h1{margin:0}.error-page p{color:var(--muted);margin-bottom:22px}
@media(max-width:1000px){.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.mobile-open{transform:translateX(0);box-shadow:10px 0 40px rgba(0,0,0,.27)}.main-content{margin-left:0;padding-bottom:68px}.mobile-header{display:flex;height:59px;align-items:center;justify-content:space-between;padding:0 16px;background:var(--forest-deep);color:#fff}.mobile-header .brand{padding:0}.mobile-header .brand-mark{width:29px;height:29px;border-radius:9px;font-size:15px}.menu-toggle{background:rgba(255,255,255,.12);color:#fff;border:0;border-radius:7px;padding:6px 9px}.topbar{display:none}.mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;height:65px;background:white;border-top:1px solid var(--line);z-index:30;justify-content:space-around;align-items:center}.mobile-nav a{display:flex;flex-direction:column;align-items:center;color:#65756b;font-size:18px;min-width:45px}.mobile-nav small{font-size:9px;margin-top:2px}.mobile-add{width:46px;height:46px!important;border-radius:50%;background:var(--forest);color:#fff!important;justify-content:center;transform:translateY(-15px);box-shadow:0 9px 20px rgba(13,79,48,.25)}.mobile-add+small{display:none}.page-content{padding:22px 16px 30px}.hero{border-radius:16px;padding:25px;min-height:unset}.hero h1{font-size:25px}.hero-orb{display:none}.metric-grid{grid-template-columns:1fr 1fr;gap:10px}.metric-card{padding:14px}.two-col,.map-layout,.sampling-layout,.detail-grid{grid-template-columns:1fr}.map-side{display:none}.map-card{min-height:520px}.leaflet-map{height:504px}.sample-side{display:none}.parameter-grid{grid-template-columns:1fr 1fr}.readings{grid-template-columns:1fr 1fr}.import-grid{grid-template-columns:1fr}.gallery{grid-template-columns:repeat(2,1fr)}.login-wrap{grid-template-columns:1fr}.login-scene{display:none}.login-panel{max-width:none;min-height:100vh;padding:34px 25px}.login-copy{margin:60px 0 25px}.heading-actions{flex-wrap:wrap}.page-heading h1{font-size:25px}.form-grid{grid-template-columns:1fr}.span-2{grid-column:span 1}.form-actions{grid-column:span 1}.form-actions .button{flex:1}.filter-bar{flex-wrap:wrap}.filter-bar span{margin-left:0}.record-filter input{width:100%}.photo-grid{grid-template-columns:1fr 1fr}.detail-grid aside{display:none}}
@media(max-width:500px){.hero-actions{flex-direction:column}.hero-actions .button{width:100%}.metric-card b{font-size:24px}.page-heading{flex-direction:column;gap:12px}.heading-actions{width:100%}.heading-actions .button{flex:1}.ocr-upload{align-items:flex-start;flex-direction:column}.upload-button{width:100%;text-align:center}.photo-grid{grid-template-columns:1fr}.map-card{padding:5px;border-radius:12px}.leaflet-map{border-radius:8px}.map-legend{left:13px;bottom:13px;max-width:190px}.readings b{font-size:19px}.modal-box{padding:18px}.location-box{align-items:flex-start;gap:8px;flex-direction:column}.location-box .button{width:100%}}

/* R2: China satellite map, permanent labels and safer management actions */
.site-name-label{background:rgba(255,255,255,.96);border:1px solid rgba(17,75,48,.28);border-radius:5px;box-shadow:0 2px 8px rgba(15,50,32,.16);color:#174b31;font-size:11px;font-weight:800;line-height:1.2;padding:3px 6px;white-space:nowrap}.site-name-label:before{display:none}.popup-values{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:10px 0}.popup-values span{background:#f3f8f4;border-radius:6px;color:#527063;font-size:10px;padding:6px}.popup-values strong{color:#164a31;display:block;font-size:12px;margin-top:2px}.popup-status{display:inline-block;background:#eaf5ee;border-radius:4px;color:#155d38;font-size:11px;font-weight:800;padding:3px 6px}.popup-coord{color:#78877f!important;font-size:10px!important;margin-top:8px}.popup-actions{display:flex;gap:8px;margin-top:11px}.popup-actions a{border:1px solid #c6ddce;border-radius:7px;flex:1;font-size:11px;margin:0!important;padding:7px 8px;text-align:center}.popup-actions .popup-primary{background:var(--forest);border-color:var(--forest);color:#fff}.map-error{position:absolute;top:14px;left:50%;transform:translateX(-50%);z-index:1000;background:#fff5e5;border:1px solid #f0ce8a;border-radius:8px;color:#8a5a02;padding:10px 14px;font-size:12px}.danger-text{color:#b42318!important}.site-filter-note{align-items:center;background:#eaf5ee;border:1px solid #cde7d6;border-radius:10px;color:#35624a;display:flex;font-size:12px;gap:9px;margin-bottom:12px;padding:10px 13px}.site-filter-note span{background:#cdebd8;border-radius:99px;color:#15643a;font-size:10px;font-weight:850;padding:3px 7px}.site-filter-note b{font-size:12px}.site-filter-note a{color:var(--forest);font-weight:800;margin-left:auto}.modal label small{color:var(--muted);display:block;font-size:10px;font-weight:500;line-height:1.4;margin-top:4px}
@media(max-width:700px){.site-name-label{font-size:10px;padding:2px 4px}.popup-actions{flex-direction:column}.site-filter-note{align-items:flex-start;flex-wrap:wrap}.site-filter-note a{margin-left:0;width:100%}}

/* R2.2: OCR display-frame verification */
.ocr-overlay-link{display:inline-flex;align-items:center;margin-top:.45rem;padding:.38rem .6rem;border-radius:.5rem;background:rgba(20,83,45,.10);color:#0f5b37;font-weight:700;text-decoration:none}.ocr-overlay-link:hover{background:rgba(20,83,45,.18)}


/* R2.4: revision workflow for pending / returned sampling records */
.detail-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}.detail-actions form{margin:0}.edit-permit,.return-note{display:flex;align-items:flex-start;gap:10px;margin:0 0 17px;padding:12px 14px;border:1px solid #bfe4cc;border-radius:11px;background:#effaf2;color:#205c38;font-size:12px;line-height:1.55}.edit-permit b,.return-note b{white-space:nowrap}.return-note{border-color:#f3d499;background:#fff8e8;color:#7a5406}.location-fields{margin-top:11px}.edit-location{margin-top:16px}.edit-photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:3px 0 18px}.edit-photo-card{position:relative;display:block;min-height:148px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#f4f8f5;cursor:pointer}.edit-photo-card>a{display:block;height:150px}.edit-photo-card img{display:block;width:100%;height:100%;object-fit:cover}.photo-badge{position:absolute;left:8px;top:8px;background:rgba(18,59,40,.82);border-radius:999px;color:#fff;font-size:10px;font-weight:750;padding:4px 7px}.remove-photo{position:absolute;left:0;right:0;bottom:0;background:rgba(255,255,255,.94);border-top:1px solid rgba(0,0,0,.08);color:#933232;font-size:11px;font-weight:750;padding:8px 9px}.remove-photo input{vertical-align:middle;margin-right:4px;accent-color:#bd3434}.add-photo-grid{margin-top:4px}.record-edit-link{display:block;margin-top:5px;font-weight:800}.empty-state{padding:18px;border:1px dashed #cddad1;border-radius:10px;color:var(--muted);font-size:12px;text-align:center}
@media(max-width:900px){.edit-photo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.detail-actions{justify-content:flex-start}}
@media(max-width:600px){.edit-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.edit-photo-card,.edit-photo-card>a{min-height:126px;height:126px}.detail-actions{width:100%;align-items:stretch}.detail-actions form,.detail-actions .button{width:100%}.detail-actions .tag{align-self:flex-start}.edit-permit,.return-note{flex-direction:column;gap:3px}}

/* R2.4.1：记录列表内的删除操作 */
.record-actions{white-space:nowrap}
.inline-delete-form{display:inline;margin-left:10px}
.inline-delete-form .delete-link{border:0;background:transparent;padding:0;color:#b42318;cursor:pointer;font:inherit;text-decoration:none}
.inline-delete-form .delete-link:hover{text-decoration:underline}


/* R2.5：分组任务与组内完成同步 */
.group-rule-note{display:flex;align-items:flex-start;gap:11px;background:#eef8f2;border:1px solid #cce6d5;border-radius:12px;color:#275940;font-size:12px;line-height:1.6;margin:0 0 16px;padding:12px 14px}.group-rule-note b{color:#0d5933;white-space:nowrap}.group-grid{display:grid;gap:15px;grid-template-columns:repeat(2,minmax(0,1fr))}.group-card{padding:20px}.group-card-head{display:flex;justify-content:space-between;gap:10px}.group-card-head h2{font-size:18px;margin:5px 0}.group-card-head p{color:var(--muted);font-size:11px;margin:0}.group-progress{display:flex;align-items:end;justify-content:space-between;margin:19px 0 8px}.group-progress span{color:var(--muted);font-size:11px}.group-progress b{color:var(--forest);font-size:20px}.progress-bar{background:#e6efe9;border-radius:99px;height:8px;overflow:hidden}.progress-bar i{background:linear-gradient(90deg,#1b8051,#6eb977);border-radius:99px;display:block;height:100%;min-width:0}.group-meta{border-bottom:1px solid var(--line);color:var(--muted);display:flex;flex-direction:column;font-size:11px;gap:4px;margin:15px 0;padding-bottom:15px}.group-card-actions{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.group-card-actions form{margin:0}.member-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;max-height:440px;overflow:auto;padding:4px}.member-choice{align-items:center;border:1px solid var(--line);border-radius:10px;cursor:pointer;display:flex;gap:9px;padding:10px}.member-choice:has(input:checked){background:#eff9f2;border-color:#80c69b}.member-choice input{accent-color:var(--forest)}.member-choice b{display:block;font-size:12px}.member-choice small{color:var(--muted);display:block;font-size:10px;margin-top:2px}.member-avatar{align-items:center;background:#d8eee0;border-radius:50%;color:#0d5b35;display:flex;font-size:12px;font-weight:850;height:28px;justify-content:center;width:28px}.task-done{background:#f0faf4}.task-completer{color:#347653!important;display:block;margin-top:3px}.completion-text{color:#347653;display:block;font-size:10px;margin-top:5px}.group-completion-banner{align-items:center;background:#effaf4;border:1px solid #bfdfcb;border-radius:12px;color:#266546;display:flex;gap:11px;margin:0 0 16px;padding:11px 13px}.group-completion-banner>span{align-items:center;background:#d6f1e0;border-radius:9px;color:#0a6436;display:flex;font-weight:900;height:30px;justify-content:center;width:30px}.group-completion-banner b{display:block;font-size:12px}.group-completion-banner small{display:block;font-size:11px;margin-top:2px}.popup-group{color:#496b5b;font-size:11px;margin-top:8px}.popup-task{background:#f1f5f2;border-radius:6px;color:#57685f;font-size:11px;margin-top:7px;padding:6px}.popup-task.done{background:#e8f7ee;color:#1f6a42}.popup-disabled{align-items:center;background:#f3f4f6;border:1px solid #d8dbe0;border-radius:7px;color:#64748b;display:flex;flex:1;font-size:11px;justify-content:center;padding:7px 8px;text-align:center}.dot.teal{background:#0f9f9a}.muted{color:var(--muted)}.big-empty{margin-top:10px;padding:55px}
@media(max-width:900px){.group-grid{grid-template-columns:1fr}.member-picker{grid-template-columns:1fr}.group-rule-note{flex-direction:column;gap:4px}}


/* R2.6：批量多选与安全操作工具栏 */
.check-cell{width:38px;text-align:center}.check-cell input[type="checkbox"],.card-check input[type="checkbox"]{accent-color:var(--forest);height:16px;width:16px;cursor:pointer}.bulk-toolbar{align-items:center;background:linear-gradient(135deg,#f5fbf7,#edf7f0);border:1px solid #cde4d4;border-radius:12px;display:flex;flex-wrap:wrap;gap:10px;margin:0 0 15px;padding:11px 13px}.bulk-summary{align-items:center;display:flex;gap:7px;color:#557164;font-size:12px;white-space:nowrap}.bulk-summary b{align-items:center;background:#d6f0df;border-radius:99px;color:#0c6137;display:flex;font-size:13px;height:25px;justify-content:center;min-width:25px;padding:0 7px}.bulk-summary .text-button{font-size:11px}.bulk-controls{align-items:center;display:flex;flex:1;flex-wrap:wrap;gap:8px}.bulk-controls select,.bulk-controls input{background:#fff;border:1px solid #cadbd0;border-radius:8px;color:#244b36;font-size:12px;height:34px;max-width:220px;padding:0 9px}.bulk-controls [hidden]{display:none!important}.bulk-hint{color:#6a8275;flex-basis:100%;font-size:10px;line-height:1.45}.card-check{align-items:center;background:#f6faf7;border:1px solid #d6e7da;border-radius:8px;color:#466759;display:inline-flex;font-size:10px;font-weight:750;gap:5px;padding:5px 7px;position:absolute;right:13px;top:13px}.group-card{position:relative}.group-card-head{padding-right:68px}@media(max-width:720px){.bulk-toolbar{align-items:stretch;flex-direction:column}.bulk-controls{width:100%}.bulk-controls select,.bulk-controls input,.bulk-controls .button{flex:1;max-width:none;min-width:0}.bulk-summary{flex-wrap:wrap}.table-wrap{overflow-x:auto}.check-cell{min-width:36px}}


/* R2.7 DeepSeek vision settings */
.settings-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.85fr);gap:22px;align-items:start}.form-stack{display:grid;gap:15px}.form-stack>label{display:grid;gap:7px;font-weight:650}.form-stack input:not([type=checkbox]){width:100%}.toggle-row{display:flex!important;align-items:flex-start!important;gap:11px!important;padding:12px;border:1px solid var(--line,#dfe7e1);border-radius:12px;background:var(--soft,#f8fbf9);font-weight:400!important}.toggle-row input{margin:3px 0 0;min-width:16px;min-height:16px}.toggle-row span{display:grid;gap:3px}.toggle-row small{color:var(--muted,#68766d);font-weight:400}.toggle-row.compact{padding:9px 12px}.settings-aside{position:sticky;top:22px}.settings-aside hr{border:0;border-top:1px solid var(--line,#dfe7e1);margin:18px 0}.notice-card{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border:1px solid #dce8dd;background:#f4faf4;border-radius:14px;margin:0 0 20px}.notice-card b{color:#0f5132;white-space:nowrap}.notice-card span{line-height:1.6;color:#506057}.ocr-status small{line-height:1.55}.ocr-overlay-link{font-weight:700}.photo-badge{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:900px){.settings-layout{grid-template-columns:1fr}.settings-aside{position:static}}

/* R2.8.1 desktop parameter layout: cards wrap by usable form width, not only viewport width. */
.parameter-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,178px),1fr));
  gap:14px;
  margin-top:18px;
  align-items:stretch;
}
.parameter-grid .parameter-field{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  grid-template-areas:"label unit" "input input";
  gap:8px 10px;
  min-width:0;
  min-height:118px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:13px;
  background:linear-gradient(145deg,#fbfdfb,#f4faf6);
  color:#31463b;
  font-weight:750;
  font-size:13px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.82);
}
.parameter-grid .parameter-label{grid-area:label;min-width:0;line-height:1.45;}
.parameter-grid .parameter-unit{
  grid-area:unit;
  align-self:start;
  color:#60756a;
  font-size:11px;
  line-height:1.45;
  font-weight:700;
  white-space:nowrap;
}
.parameter-grid .parameter-field input{
  grid-area:input;
  width:100%;
  min-width:0;
  min-height:42px;
  margin:0;
  padding:7px 0 0;
  border:0;
  border-top:1px solid #e5eee7;
  border-radius:0;
  background:transparent;
  outline:0;
  color:var(--forest);
  font-size:clamp(22px,2vw,29px);
  font-weight:850;
  line-height:1.1;
  letter-spacing:-.35px;
  font-variant-numeric:tabular-nums;
  appearance:textfield;
  -moz-appearance:textfield;
}
.parameter-grid .parameter-field input:focus{border-top-color:#b4ddc3;box-shadow:none;}
.parameter-grid .parameter-field input::-webkit-outer-spin-button,
.parameter-grid .parameter-field input::-webkit-inner-spin-button{appearance:none;margin:0;}
.parameter-grid .parameter-field:focus-within{
  border-color:#69b989;
  box-shadow:0 0 0 3px rgba(73,163,115,.13), inset 0 1px 0 rgba(255,255,255,.82);
}
/* Detail values use the same usable-width rule so values never become narrow tiles. */
.readings{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,178px),1fr));
  gap:14px;
}
.readings .reading-card{
  min-width:0;
  min-height:112px;
  padding:15px;
  border-radius:13px;
  background:linear-gradient(145deg,#f7fbf8,#eff8f2);
  border:1px solid #e1eee5;
}
.readings .reading-card span{font-size:12px;color:#5e7367;font-weight:700;}
.readings .reading-card b{min-width:0;font-size:clamp(24px,2.2vw,31px);line-height:1.15;color:var(--forest);margin-top:10px;word-break:break-word;font-variant-numeric:tabular-nums;}
.readings .reading-card small{font-size:11px;white-space:nowrap;margin-left:4px;color:#4b6758;}
/* A desktop browser can still have a narrow content column because of the fixed sidebar.
   Stack the action/audit rail before the parameter cards need to shrink. */
@media (max-width:1380px){
  .sampling-layout,.detail-grid{grid-template-columns:1fr;}
  .sample-side .side-sticky,.detail-grid aside .side-sticky{position:static;}
}
@media (max-width:560px){
  .parameter-grid,.readings{grid-template-columns:1fr;}
  .parameter-grid .parameter-field,.readings .reading-card{min-height:104px;}
}



/* R2.9：以表单真实可用宽度自适应参数卡片，并统一相册/文件与相机上传入口。 */
.sample-main{container-type:inline-size;container-name:sample-panel;}
.parameter-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;}
.parameter-grid .parameter-field{min-width:0;overflow:hidden;}
.parameter-grid .parameter-label{overflow-wrap:anywhere;word-break:break-word;}
.parameter-grid .parameter-unit{max-width:100%;overflow-wrap:anywhere;word-break:break-word;text-align:right;}
.parameter-grid .parameter-field input{max-width:100%;}
.readings{grid-template-columns:repeat(4,minmax(0,1fr));}
.upload-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px;flex:none;}
.upload-button{display:inline-flex;align-items:center;justify-content:center;min-height:38px;border:1px solid transparent;cursor:pointer;transition:.16s;}
.upload-button.album{background:#e1f3e7;color:#0d5a35;}
.upload-button.camera{background:#fff;border-color:#bdd8c7;color:#1e6240;}
.upload-button:hover,.photo-choice:hover{transform:translateY(-1px);filter:brightness(.98);}
.file-feedback{margin:10px 0 0;padding:9px 11px;border-radius:9px;border:1px solid #dbeade;background:#f6fbf7;color:#496557;font-size:12px;line-height:1.5;}
.photo-upload-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:17px;}
.photo-upload-panel{display:flex;flex-direction:column;align-items:flex-start;min-width:0;min-height:176px;padding:17px;border:1.5px dashed #9fcfb0;border-radius:13px;background:linear-gradient(145deg,#fbfefc,#f4faf6);color:#1e6240;}
.photo-upload-icon{display:grid;place-items:center;width:36px;height:36px;margin-bottom:8px;border-radius:10px;background:#e2f3e7;color:#0d5a35;font-size:19px;}
.photo-upload-panel b{font-size:13px;}
.photo-upload-panel>small{color:var(--muted);font-size:11px;line-height:1.55;margin-top:5px;}
.photo-upload-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto;padding-top:13px;}
.photo-choice{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:8px 10px;border-radius:8px;cursor:pointer;font-size:11px;font-weight:800;transition:.16s;}
.photo-choice input{display:none;}
.photo-choice.album{background:#e0f3e7;color:#0d5a35;}
.photo-choice.camera{background:#fff;border:1px solid #c9dfd0;color:#246344;}
.photo-selection{width:100%;min-height:18px;margin-top:11px;padding-top:9px;border-top:1px solid #ddeae0;color:#78887f;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.photo-selection.has-files{color:#197044;font-weight:700;}
@container sample-panel (max-width: 960px){
  .parameter-grid,.readings{grid-template-columns:repeat(2,minmax(0,1fr));}
  .parameter-grid .parameter-field,.readings .reading-card{min-height:112px;}
}
@container sample-panel (max-width: 520px){
  .parameter-grid,.readings{grid-template-columns:1fr;}
  .parameter-grid .parameter-field{min-height:104px;}
}
@media(max-width:760px){
  .ocr-upload{align-items:stretch;flex-direction:column;}
  .upload-actions{justify-content:stretch;width:100%;}
  .upload-button{flex:1;min-width:calc(50% - 4px);}
  .photo-upload-grid{grid-template-columns:1fr;}
}
@media(max-width:400px){
  .upload-actions,.photo-upload-actions{flex-direction:column;align-items:stretch;}
  .upload-button,.photo-choice{width:100%;}
}


/* R3.0 · compact meter verification, high-quality photo preview, image archive */
.mobile-header-actions{display:flex;align-items:center;gap:8px}.mobile-logout{display:none;border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.12);color:#fff;border-radius:8px;padding:6px 9px;font-size:11px;font-weight:800}.ocr-workbench{display:grid;grid-template-columns:minmax(240px,.72fr) minmax(330px,1.28fr);gap:16px;align-items:stretch}.ocr-tools{display:flex;min-width:0}.ocr-upload.compact{width:100%;min-height:116px;align-items:center;background:linear-gradient(145deg,#f9fdf9,#eff8f2);border-style:solid;border-color:#d7eadc}.ocr-upload.compact>b{font-size:14px}.ocr-upload.compact small,.ocr-upload.compact+.file-feedback,.ocr-status,.file-feedback{display:none!important}.standard-meter-preview{margin:0;min-height:192px;border:1px solid #cfe4d6;background:#fbfefc;border-radius:14px;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}.standard-meter-preview img{display:block;width:100%;height:clamp(180px,22vw,290px);object-fit:contain;background:#edf5ef}.standard-meter-preview figcaption{width:100%;padding:8px 10px;color:#466154;font-size:11px;font-weight:750;text-align:center;background:#fff;border-top:1px solid #e2ece4}.standard-meter-preview.is-loading:after{content:'识别中';position:absolute;inset:0;display:grid;place-items:center;background:rgba(255,255,255,.74);color:#1d6b43;font-weight:800;letter-spacing:.5px}.photo-upload-panel{min-height:206px}.capture-input-holder{display:contents}.photo-preview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:100%;margin-top:13px}.photo-preview-grid:empty{display:none}.selected-photo-card{position:relative;min-width:0;margin:0;border-radius:10px;overflow:hidden;background:#fff;border:1px solid #dbe8df;aspect-ratio:1}.selected-photo-card img{width:100%;height:100%;object-fit:cover;display:block}.selected-photo-card figcaption{position:absolute;left:0;right:0;bottom:0;padding:17px 6px 5px;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.7));font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.selected-photo-remove{position:absolute;top:5px;right:5px;border:0;border-radius:7px;padding:4px 6px;background:rgba(255,255,255,.94);color:#b72626;font-size:10px;font-weight:800}.stored-photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 16px}.stored-photo-card{position:relative;overflow:hidden;border:1px solid #dfe9e2;border-radius:12px;background:#fbfdfb}.stored-photo-card>a{display:block;aspect-ratio:1}.stored-photo-card img{width:100%;height:100%;object-fit:cover;display:block}.stored-photo-card .photo-badge{position:absolute;left:6px;top:6px;max-width:calc(100% - 12px);padding:4px 6px;border-radius:6px;background:rgba(255,255,255,.92);color:#24553a;font-size:10px;font-weight:800}.stored-remove-checkbox{display:none}.stored-photo-actions{display:flex;gap:6px;padding:8px}.photo-action{display:inline-flex;align-items:center;justify-content:center;flex:1;border:1px solid #d9e6dc;border-radius:7px;padding:6px;background:#fff;color:#276040;font-size:10px;font-weight:800;cursor:pointer}.photo-action.danger{color:#b52828;border-color:#f0d3d3}.photo-action.replace input{display:none}.stored-remove-note{display:block;padding:0 8px 8px;color:#a02929;font-size:10px;font-weight:800}.stored-photo-card.marked-for-delete{opacity:.48;filter:grayscale(.55)}.stored-photo-card.marked-for-delete:after{content:'保存时删除';position:absolute;inset:0;display:grid;place-items:center;color:#9d2626;font-weight:900;background:rgba(255,255,255,.44);pointer-events:none}.detail-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}.heading-actions{flex-wrap:wrap}.image-export-note{font-size:11px;color:#688176}.record-actions{white-space:nowrap}.ocr-upload.compact .upload-actions{margin-left:auto}@media(max-width:1000px){.mobile-logout{display:inline-flex}.ocr-workbench{grid-template-columns:1fr}.ocr-upload.compact{min-height:96px}.standard-meter-preview{min-height:150px}.standard-meter-preview img{height:min(58vw,310px)}.stored-photo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.photo-preview-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:620px){.ocr-upload.compact{align-items:stretch;gap:13px}.ocr-upload.compact .upload-actions{margin-left:0}.ocr-workbench{gap:12px}.stored-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-actions{justify-content:flex-start}.page-heading .heading-actions{width:100%}}@media(max-width:390px){.photo-preview-grid{grid-template-columns:1fr 1fr}.standard-meter-preview figcaption{font-size:10px}}

.camera-input-archive{display:none!important}


/* R3.0.1 · desktop-only: keep the standardized meter image inside the meter-photo card.
   Mobile keeps the original stacked preview below the selector. */
@media (min-width:1001px){
  .sampling-layout > .sample-main{grid-column:1;}
  .sampling-layout > .sample-side{grid-column:2;grid-row:1 / span 3;}
  .ocr-workbench{display:block;}
  .ocr-tools{display:block;}
  .ocr-upload.compact{display:flex;align-items:stretch;min-height:0;padding:16px;gap:14px;}
  .ocr-upload-header{display:flex;align-items:center;justify-content:space-between;gap:14px;min-width:0;}
  .ocr-upload.compact .upload-actions{margin-left:auto;flex-wrap:wrap;justify-content:flex-end;}
  .standard-meter-preview-desktop{display:flex;min-height:250px;width:100%;border-style:solid;}
  .standard-meter-preview-desktop>a{display:block;width:100%;min-height:0;flex:1;}
  .standard-meter-preview-desktop img{height:clamp(230px,27vw,360px);max-height:360px;}
  .standard-meter-preview-mobile{display:none!important;}
}
@media (max-width:1000px){
  .standard-meter-preview-desktop{display:none!important;}
  .standard-meter-preview-mobile{display:flex;}
}
/* Keep hidden preview containers truly hidden until OCR returns a standardized image. */
.standard-meter-preview[hidden]{display:none!important;}
@media (min-width:1001px){.ocr-upload.compact{flex-direction:column;}}

/* R3.2 · task visibility, announcements and active navigation */
.nav-item.nav-primary{background:transparent;box-shadow:none;color:#b6d7c5!important;border:1px solid transparent}
.nav-item.active,.nav-item.nav-primary.active{background:#169454;color:#fff!important;box-shadow:0 9px 20px rgba(0,0,0,.16)}
.nav-item.active:hover,.nav-item.nav-primary.active:hover{background:#10854a;color:#fff!important}
.mobile-nav a.active{color:var(--forest);font-weight:850}.mobile-nav .mobile-add.active{background:#0f6b41;box-shadow:0 11px 24px rgba(13,79,48,.32)}
.dashboard-hero{margin-bottom:17px}
.announcement-board{background:#fff;border:1px solid #d9e8dd;border-radius:16px;padding:18px 20px;margin:0 0 18px;box-shadow:0 4px 18px rgba(19,38,26,.025)}
.announcement-board-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding-bottom:11px;margin-bottom:4px}.announcement-board h2{margin:0;font-size:18px}.notice-persistent{background:#eaf7ee;color:#176440;font-size:10px;font-weight:850;border-radius:99px;padding:5px 8px}.announcement-list{display:grid;gap:2px}.announcement-item{display:grid;grid-template-columns:30px minmax(0,1fr);gap:10px;padding:13px 0;border-bottom:1px dashed #e5ece6}.announcement-item:last-child{border-bottom:0}.announcement-icon{width:27px;height:27px;border-radius:9px;background:#eaf6ee;color:#187247;display:grid;place-items:center;font-weight:900;font-size:14px}.announcement-item.priority-important .announcement-icon{background:#fff2d6;color:#a96a00}.announcement-item.priority-urgent .announcement-icon{background:#fde7e7;color:#b42318}.announcement-title-row{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.announcement-title-row b{font-size:13px}.announcement-item p{margin:5px 0;color:#475a4e;line-height:1.65;font-size:12px;white-space:pre-wrap}.announcement-item small{color:#829087;font-size:10px}.task-reminder-strip{background:linear-gradient(90deg,#f1fbf4,#fff);border:1px solid #d3ecd9;border-radius:14px;padding:13px 16px;margin:0 0 18px;display:flex;align-items:center;gap:16px}.reminder-title{display:flex;align-items:center;gap:10px;min-width:220px}.reminder-title>span{width:31px;height:31px;background:#d9f3e3;color:var(--forest);border-radius:9px;display:grid;place-items:center;font-weight:900}.reminder-title b,.reminder-title small{display:block}.reminder-title small{font-size:10px;color:var(--muted);margin-top:2px}.reminder-stats{display:flex;gap:8px;flex:1;flex-wrap:wrap}.reminder-stats span{background:#fff;border:1px solid #dfe9e1;border-radius:999px;color:#5c6e62;font-size:11px;padding:6px 9px}.reminder-stats b{color:var(--forest);margin-right:3px}.reminder-stats .warn{border-color:#f1d0cf;background:#fff5f5;color:#a13a34}.reminder-stats .warn b{color:#bf2626}.reminder-stats .today{border-color:#f1dda9;background:#fffaf0;color:#976609}.reminder-stats .today b{color:#9a6500}.task-reminder-strip .text-link{font-size:11px}
.map-filter-extended{display:flex;gap:9px;align-items:end;flex-wrap:wrap}.map-filter-extended label{font-size:10px;font-weight:800;color:#5c7062;display:grid;gap:4px}.map-filter-extended select{border:1px solid var(--line);border-radius:9px;padding:9px 10px;background:white;min-width:145px;color:#294537}.map-scope-note{border:1px solid #d2ead9;background:#f6fcf8;border-radius:11px;display:flex;align-items:center;gap:9px;padding:10px 13px;margin:-8px 0 14px;color:#416151;font-size:12px}.map-scope-note>span{background:#d8f2e1;border-radius:99px;color:#16643b;font-size:10px;font-weight:900;padding:4px 7px}.map-scope-note b{font-size:12px}.map-scope-note small{margin-left:auto;color:#728077}.map-filter-extended label[hidden]{display:none}.notice-admin-tip{display:flex;gap:10px;align-items:flex-start;background:#f2faf5;border:1px solid #d7ebdd;border-radius:12px;padding:13px 15px;margin-bottom:17px}.notice-admin-tip>span{width:23px;height:23px;background:#d7f0e1;color:#14633b;border-radius:50%;display:grid;place-items:center;font-weight:900}.notice-admin-tip b,.notice-admin-tip small{display:block}.notice-admin-tip b{font-size:12px}.notice-admin-tip small{font-size:11px;color:#607267;margin-top:3px}.checkbox-line{display:flex!important;align-items:flex-start;gap:9px;background:#f6fbf7;border:1px solid #dcecdf;border-radius:9px;padding:10px!important;cursor:pointer}.checkbox-line input{width:auto!important;margin:3px 0 0!important}.checkbox-line b,.checkbox-line small{display:block}.checkbox-line small{font-weight:500;color:var(--muted);font-size:10px;line-height:1.45;margin-top:3px}.acknowledge-wrap{min-height:calc(100vh - 170px);display:grid;place-items:center;padding:30px 0}.acknowledge-card{max-width:720px;width:100%;background:#fff;border:1px solid #d8e7dc;border-radius:20px;padding:clamp(24px,5vw,44px);box-shadow:var(--shadow);position:relative;overflow:hidden}.acknowledge-card:after{content:"";position:absolute;width:220px;height:220px;border-radius:50%;right:-95px;top:-110px;background:radial-gradient(circle,#d7f3e1 0,rgba(215,243,225,0) 70%);pointer-events:none}.acknowledge-mark{display:grid;place-items:center;width:46px;height:46px;border-radius:15px;background:#e7f6ec;color:var(--forest);font-size:24px;font-weight:900;margin-bottom:18px;position:relative;z-index:1}.acknowledge-card.priority-important .acknowledge-mark{background:#fff0d2;color:#a66b00}.acknowledge-card.priority-urgent .acknowledge-mark{background:#fde7e7;color:#b42318}.acknowledge-card h1{font-size:28px;margin:2px 0 10px;position:relative;z-index:1}.announcement-full-content{margin:22px 0 17px;background:#f8fbf8;border:1px solid #e2ece4;border-radius:12px;padding:17px;color:#344c3d;line-height:1.85;white-space:normal;position:relative;z-index:1}.acknowledge-meta{font-size:11px;color:#718075;margin-bottom:19px;position:relative;z-index:1}.acknowledge-form{position:relative;z-index:1}.acknowledge-form .button{width:100%}.acknowledge-card>small{display:block;text-align:center;color:#8a968f;font-size:10px;margin-top:13px;position:relative;z-index:1}
@media(max-width:1000px){.task-reminder-strip{align-items:flex-start;flex-wrap:wrap}.task-reminder-strip .text-link{margin-left:auto}.map-filter-extended{width:100%}.map-filter-extended label{flex:1;min-width:135px}.map-filter-extended select{width:100%;min-width:0}.map-scope-note{flex-wrap:wrap}.map-scope-note small{margin-left:0;width:100%}.announcement-board{padding:15px}.acknowledge-wrap{min-height:calc(100vh - 130px);padding:8px 0 40px}}
@media(max-width:620px){.announcement-item{grid-template-columns:26px minmax(0,1fr)}.announcement-icon{width:25px;height:25px}.task-reminder-strip{gap:11px;padding:12px}.reminder-title{min-width:0;width:100%}.reminder-stats{width:100%}.task-reminder-strip .text-link{margin-left:0}.map-filter-extended label{min-width:100%}.acknowledge-card h1{font-size:23px}.acknowledge-card{border-radius:15px;padding:24px 19px}.acknowledge-wrap{padding:0 0 30px}}


/* R3.5 · daily inspection, resilient positioning and map point creation */
.location-actions{display:flex;gap:8px;flex-wrap:wrap}.location-manual{margin:10px 0 2px;border:1px dashed #bed9c8;background:#f7fcf8;border-radius:11px;padding:12px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:9px;align-items:end}.location-manual[hidden]{display:none}.location-manual label{font-size:11px;font-weight:800;color:#355044}.location-manual input{display:block;width:100%;margin-top:5px;border:1px solid #cfe2d4;border-radius:8px;padding:8px;background:#fff}.location-manual small{grid-column:1/-1;color:#65766b;font-size:10px;line-height:1.5}.inspection-hero{background:linear-gradient(120deg,#442078,#6434a4 64%,#8857c8)}.inspection-hero .eyebrow{color:#eadcff}.inspection-hero p{color:#ece5fb}.inspection-chip{background:#efe7ff;color:#5d2795;border-radius:99px;padding:5px 9px;font-size:10px;font-weight:850}.inspection-filter{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:15px}.inspection-filter select,.inspection-filter input{background:#fff;border:1px solid var(--line);border-radius:9px;padding:9px 11px;min-width:145px}.inspection-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:17px}.inspection-side{background:#30204a;color:#f3edff;border-radius:16px;padding:22px}.inspection-side .eyebrow{color:#d9c5ff}.inspection-side p{color:#dfd5ef;line-height:1.65}.quick-test-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:12px}.quick-test-card{border:1px solid #e4d9f4;background:#fbf9ff;border-radius:12px;padding:11px}.quick-test-card b{display:block;color:#5b2e93;font-size:13px}.quick-test-card small{display:block;color:#7d7089;font-size:10px;margin:4px 0 8px}.quick-test-card input{width:100%;border:1px solid #d9cde9;border-radius:8px;padding:8px;margin-bottom:7px}.quick-test-card .photo-choice{display:block;text-align:center;padding:7px 6px}.inspection-photo-sections{display:grid;grid-template-columns:1fr 1fr;gap:12px}.inspection-photo-panel{border:1px solid #e2d8f0;background:#fff;border-radius:12px;padding:13px}.inspection-photo-panel h3{font-size:13px;margin:0 0 4px}.inspection-photo-panel p{font-size:11px;color:var(--muted);margin:0 0 10px}.inspection-photo-panel .photo-upload-actions{justify-content:flex-start}.inspection-status{display:inline-flex;gap:4px;align-items:center;background:#f0e9ff;color:#6537a0;border-radius:99px;padding:4px 8px;font-size:10px;font-weight:800}.task-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;margin:0 0 16px}.task-summary{background:#f8f4ff;border:1px solid #e5daf4;border-radius:12px;padding:12px}.task-summary b{display:block;font-size:20px;color:#6433a2}.task-summary small{font-size:10px;color:#796d84}.map-add-panel{position:absolute;top:16px;left:16px;z-index:600;background:#fff;border:1px solid #dccff0;border-radius:12px;padding:11px;box-shadow:0 8px 20px rgba(48,20,78,.15);max-width:300px}.map-add-panel b,.map-add-panel small{display:block}.map-add-panel small{font-size:10px;color:#6d6178;margin-top:3px;line-height:1.4}.map-add-panel .button{margin-top:8px}.map-add-form{display:grid;gap:8px;margin-top:9px}.map-add-form input,.map-add-form select,.map-add-form textarea{border:1px solid #ddcfed;border-radius:8px;padding:8px;font-size:12px}.map-add-form[hidden]{display:none}.map-symbol{width:28px;height:28px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);display:grid;place-items:center;border:2px solid #fff;box-shadow:0 3px 8px rgba(0,0,0,.25);color:#fff;font-size:15px;font-weight:900}.map-symbol span{transform:rotate(45deg);display:block}.map-symbol.unsampled{background:#2563eb}.map-symbol.sampled{background:#159b70}.map-symbol.returned{background:#dc2626}.map-symbol.inspection{background:#7c3aed;border-radius:7px;transform:rotate(45deg)}.map-symbol.inspection span{transform:rotate(-45deg)}.map-legend .dot.blue{background:#2563eb}.map-legend .dot.purple{background:#7c3aed}.map-legend .shape-diamond{display:inline-block;width:8px;height:8px;background:#7c3aed;transform:rotate(45deg);margin:0 5px 0 1px}.popup-card .inspection-badge{background:#eee7ff;color:#63359b}.photo-kind-badges{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.photo-kind-badges span{font-size:10px;background:#f2ebff;color:#693ba4;padding:4px 7px;border-radius:99px}.inspection-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.inspection-detail-grid .card{padding:18px}.inspection-value-list{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.inspection-value-list span{background:#f8f5fd;border:1px solid #e9e1f3;border-radius:9px;padding:8px;font-size:11px}.inspection-value-list strong{display:block;color:#57317e;font-size:15px;margin-top:4px}.archive-tag{background:#f0f2f3;color:#5f6871}.map-click-coordinates{font-family:ui-monospace,Consolas,monospace;font-size:10px;color:#5e4c70}.point-type-pill{font-size:10px;background:#f4effb;color:#6d4495;border-radius:99px;padding:4px 7px;display:inline-block}
@media(max-width:1000px){.inspection-grid{grid-template-columns:1fr}.inspection-side{display:none}.quick-test-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.inspection-photo-sections{grid-template-columns:1fr}.location-manual{grid-template-columns:1fr 1fr}.map-add-panel{max-width:calc(100% - 32px)}}
@media(max-width:620px){.quick-test-grid{grid-template-columns:1fr 1fr}.task-summary-grid{grid-template-columns:1fr 1fr}.location-manual{grid-template-columns:1fr}.location-actions{width:100%}.location-actions .button{flex:1}.inspection-detail-grid{grid-template-columns:1fr}.inspection-value-list{grid-template-columns:1fr 1fr}.map-add-panel{top:auto;bottom:16px}.map-card{min-height:560px}.leaflet-map{height:544px}}
/* R3.6 · collaboration point creation, GPS diagnostics and work-report flow */
.form-note{align-self:end;border:1px dashed #d5c6e7;background:#faf7ff;color:#68577d;border-radius:10px;padding:10px 12px;font-size:12px;line-height:1.55}.report-filter-card{margin-bottom:14px}.report-filter-form{padding:0 22px 21px}.report-filter-form .form-actions{align-self:end}.report-overview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin:0 0 15px}.report-overview{border:1px solid #e3d9f1;background:#fff;border-radius:13px;padding:13px 14px}.report-overview span{display:block;color:#766a83;font-size:11px;font-weight:700}.report-overview b{display:block;color:#542c85;font-size:19px;margin-top:5px}.report-overview.needs-note{background:#fff9ed;border-color:#f0d9a5}.report-overview.needs-note b{color:#a46400}.report-reminder{display:grid;grid-template-columns:minmax(250px,.8fr) minmax(300px,1.2fr);gap:24px;border-color:#efd9ae;background:#fffdf8;margin-bottom:15px}.report-reminder h2{margin:5px 0 7px;font-size:19px}.report-reminder p{margin:0;line-height:1.65;color:#725d3f}.report-reminder-list{display:grid;gap:7px}.report-reminder-list>div{display:grid;grid-template-columns:1fr auto;gap:4px 12px;border-bottom:1px solid #f2e7d2;padding:7px 0}.report-reminder-list b{font-size:12px}.report-reminder-list small{grid-column:1/2;color:#766d64}.report-reminder-list .text-link,.report-reminder-list .muted{grid-column:2;grid-row:1/3;align-self:center}.work-note-context{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin-bottom:15px}.work-note-context>div{padding:12px 15px;border-right:1px solid #e8e1f0}.work-note-context>div:last-child{border-right:0}.work-note-context span{display:block;color:#7a6a8d;font-size:10px;font-weight:750}.work-note-context b{display:block;color:#4f2c7f;font-size:13px;margin-top:5px}.work-note-layout textarea{width:100%;resize:vertical;min-height:70px}.template-tip{grid-column:1/-1;border-left:4px solid #7d45b1;background:#f8f3ff;color:#5a4970;border-radius:0 9px 9px 0;padding:11px 13px;font-size:12px;line-height:1.6}.sample-side li small{display:block;margin-top:3px}.location-box small{max-width:760px;line-height:1.55}.location-actions .button{white-space:nowrap}@media(max-width:1000px){.report-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.report-reminder{grid-template-columns:1fr}.work-note-context{grid-template-columns:repeat(2,minmax(0,1fr))}.work-note-context>div:nth-child(2){border-right:0}.work-note-context>div:nth-child(-n+2){border-bottom:1px solid #e8e1f0}}@media(max-width:620px){.report-overview-grid{grid-template-columns:1fr 1fr}.report-filter-form{padding:0 14px 15px}.report-reminder{padding:16px}.report-reminder-list>div{grid-template-columns:1fr}.report-reminder-list .text-link,.report-reminder-list .muted{grid-column:1;grid-row:auto;justify-self:start}.work-note-context{grid-template-columns:1fr}.work-note-context>div{border-right:0;border-bottom:1px solid #e8e1f0}.work-note-context>div:last-child{border-bottom:0}.location-actions{gap:6px}.location-actions .button{font-size:11px;padding:8px 9px}}


/* R3.7.1 · resilient on-device form draft recovery */
.draft-status-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 14px;padding:10px 12px;border:1px solid #cde5d4;border-radius:12px;background:linear-gradient(135deg,#f5fcf7,#eef9f2);color:#245339;box-shadow:0 3px 12px rgba(28,92,48,.05)}
.draft-status-copy{display:flex;align-items:flex-start;gap:9px;min-width:0}.draft-status-copy>span{display:inline-grid;place-items:center;flex:0 0 auto;width:22px;height:22px;border-radius:50%;background:#d9f1e0;color:#1c7b42;font-size:12px;font-weight:900}.draft-status-copy b,.draft-status-copy small{display:block}.draft-status-copy b{font-size:12px;line-height:1.35}.draft-status-copy small{margin-top:2px;color:#5b7864;font-size:10px;line-height:1.45}.draft-clear-button{flex:0 0 auto;border:0;background:transparent;color:#64726a;font-size:11px;font-weight:750;text-decoration:underline;cursor:pointer;padding:6px}.draft-clear-button:hover{color:#a13d3d}.draft-photo-note{margin:9px 0 0;color:#6b776e;font-size:10px;line-height:1.5}
@media(max-width:620px){.draft-status-bar{align-items:flex-start}.draft-clear-button{padding:2px 0;white-space:nowrap}.draft-status-copy{gap:8px}}

/* R3.7.2 · Mobile-first field form action bar and readability refinement. */
.mobile-submit-panel,.mobile-submit-spacer{display:none}
.sample-main{transition:box-shadow .18s ease,border-color .18s ease}
.sample-main:focus-within{border-color:#bfe3cb;box-shadow:0 10px 25px rgba(19,90,59,.07)}
.section-head{position:relative}
.section-head:after{content:"";position:absolute;left:39px;right:0;bottom:-9px;height:1px;background:linear-gradient(90deg,rgba(18,90,59,.16),rgba(18,90,59,0))}
.photo-upload-panel,.inspection-photo-panel,.quick-test-card{transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}
.photo-upload-panel:focus-within,.inspection-photo-panel:focus-within,.quick-test-card:focus-within{border-color:#bddec9;box-shadow:0 8px 20px rgba(19,90,59,.07)}
button:disabled{cursor:not-allowed!important;opacity:.68;transform:none!important}
@media(max-width:1000px){
  .page-content{padding-bottom:166px}
  .mobile-submit-spacer{display:block;height:94px;grid-column:1/-1}
  .mobile-submit-panel{display:flex;position:fixed;z-index:42;left:12px;right:12px;bottom:calc(73px + env(safe-area-inset-bottom));min-height:72px;align-items:center;gap:10px;padding:10px 11px 10px 14px;border:1px solid rgba(255,255,255,.22);border-radius:17px;background:linear-gradient(135deg,#0c5034,#16754d);box-shadow:0 14px 34px rgba(10,59,39,.28);color:#fff;backdrop-filter:blur(14px)}
  .mobile-submit-panel.inspection-submit-panel{background:linear-gradient(135deg,#4a257d,#7044aa)}
  .mobile-submit-panel[data-submit-state="ready"]{box-shadow:0 15px 36px rgba(13,111,69,.34)}
  .mobile-submit-panel[data-submit-state="needs-work"]{background:linear-gradient(135deg,#7b5616,#a87616)}
  .mobile-submit-panel.inspection-submit-panel[data-submit-state="needs-work"]{background:linear-gradient(135deg,#805b16,#a87c1d)}
  .mobile-submit-panel[data-submit-state="submitting"]{background:linear-gradient(135deg,#35514a,#46645a)}
  .mobile-submit-copy{display:grid;min-width:0;flex:1;gap:1px}
  .mobile-submit-copy b{font-size:14px;line-height:1.3;letter-spacing:.1px}
  .mobile-submit-copy small{font-size:10px;line-height:1.36;opacity:.84;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mobile-submit-eyebrow{font-size:8px;letter-spacing:1px;font-weight:850;opacity:.68}
  .mobile-submit-button{flex:0 0 auto;min-height:48px;padding:0 15px;border:0;border-radius:12px;background:#fff!important;color:#105238!important;box-shadow:0 4px 12px rgba(0,0,0,.12);font-size:13px;white-space:nowrap}
  .inspection-submit-panel .mobile-submit-button{color:#582c8d!important}
  .mobile-submit-button span:last-child{font-size:17px;line-height:1}
  .mobile-submit-button.is-submitting{min-width:120px}
  .draft-status-bar{margin-bottom:12px}
  .page-heading{margin-bottom:15px}
  .page-heading .tag,.page-heading .inspection-chip{align-self:center}
  .sample-main{margin-bottom:12px;border-radius:15px;padding:16px}
  .section-head{margin-bottom:16px}
  .section-head h2{font-size:16px}
  .section-head p{font-size:11px;line-height:1.55}
  .location-box{padding:12px;margin-bottom:13px;align-items:flex-start;gap:10px;flex-direction:column}
  .location-actions{width:100%}
  .location-actions .button{flex:1;min-height:37px}
  .photo-upload-actions{gap:7px}
  .photo-choice{min-height:36px;display:inline-flex;align-items:center;justify-content:center}
}
@media(max-width:420px){
  .mobile-submit-panel{left:8px;right:8px;bottom:calc(70px + env(safe-area-inset-bottom));padding:9px 9px 9px 12px;border-radius:15px}
  .mobile-submit-copy b{font-size:13px}
  .mobile-submit-copy small{font-size:9px}
  .mobile-submit-button{min-height:46px;padding:0 12px;font-size:12px}
  .sample-main{padding:14px}
  .section-index{width:25px;height:25px}
}

/* R3.7.4 · responsive navigation, target-coordinate defaults and compact field workflow */
.sidebar-scroll{min-height:0;flex:1;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:rgba(203,239,216,.38) transparent}
.sidebar-scroll::-webkit-scrollbar{width:5px}.sidebar-scroll::-webkit-scrollbar-thumb{background:rgba(203,239,216,.36);border-radius:999px}
.nav-section{margin:0 0 7px}.nav-section-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;border:0;background:transparent;color:#8dbda1;padding:11px 12px 7px;font-size:10px;font-weight:850;letter-spacing:1.15px;text-transform:uppercase}.nav-section-toggle i{font-style:normal;font-size:15px;line-height:1;transition:transform .18s ease}.nav-section.is-collapsed .nav-section-toggle i{transform:rotate(-90deg)}.nav-section-body{display:block}.nav-section.is-collapsed .nav-section-body{display:none}.nav-section.has-active .nav-section-toggle{color:#dff4e8}.mobile-menu-scrim{display:none}
.coordinate-source-card{display:flex;align-items:flex-start;gap:10px;margin:0 0 14px;padding:11px 13px;border:1px solid #c9e5d2;border-radius:12px;background:linear-gradient(135deg,#f4fcf6,#ecf8f0);color:#23563a}.coordinate-source-card .coordinate-icon{display:grid;place-items:center;flex:0 0 auto;width:27px;height:27px;border-radius:9px;background:#d8f1e0;color:#0c673d;font-weight:900}.coordinate-source-card b,.coordinate-source-card small{display:block}.coordinate-source-card b{font-size:12px}.coordinate-source-card small{margin-top:3px;color:#597566;font-size:10px;line-height:1.55}.coordinate-source-card.is-live{border-color:#b7d8e9;background:linear-gradient(135deg,#f1fbff,#ebf7fc)}.coordinate-source-card.is-live .coordinate-icon{background:#d8edf7;color:#12638b}.coordinate-source-card.is-manual{border-color:#eed6a8;background:#fffaf0}.coordinate-source-card.is-manual .coordinate-icon{background:#fff0cd;color:#986100}
.form-grid select[data-task-select] option[hidden]{display:none}.task-link-hint{grid-column:1/-1;display:block;margin-top:-6px;color:#6c6d74;font-size:11px;line-height:1.5}.task-link-hint strong{color:#5a347c}.task-link-mode{grid-column:1/-1;display:flex!important;align-items:center;gap:8px!important;border:1px solid #ded2ed;border-radius:10px;background:#faf7ff;padding:9px 11px;color:#5e4b72!important;font-size:11px!important;font-weight:650!important}.task-link-mode input{margin:0;width:16px;height:16px;accent-color:#69429d}.task-link-mode small{font-weight:400;color:#75658a}
.form-section-toggle{display:none}
@media(max-width:1000px){
  body.mobile-menu-open{overflow:hidden;touch-action:none}
  .sidebar{width:min(88vw,328px);height:100dvh;max-height:100dvh;overflow:hidden;touch-action:pan-y;padding-bottom:calc(8px + env(safe-area-inset-bottom));will-change:transform}
  .sidebar-scroll{overflow-y:auto!important;overscroll-behavior-y:contain;touch-action:pan-y;padding-bottom:12px}
  .sidebar .nav-list{padding:9px 12px 18px}.sidebar-foot{margin:7px 18px 0;flex:0 0 auto;padding:12px 8px 0}
  .nav-section-toggle{padding:12px 12px 8px;border-radius:9px;background:rgba(255,255,255,.045)}
  .nav-section:not(.is-open) .nav-section-body,.nav-section.is-collapsed .nav-section-body{display:none}
  .nav-section.is-open .nav-section-body{display:block}
  .nav-item{padding:12px 13px;margin:4px 0}
  .mobile-menu-scrim{position:fixed;inset:0;z-index:19;background:rgba(6,27,17,.48);backdrop-filter:blur(2px)}
  .mobile-menu-scrim.is-visible{display:block}
  .coordinate-source-card{margin-bottom:12px}.coordinate-source-card small{font-size:10px}
  .task-link-mode{align-items:flex-start}.task-link-mode input{flex:0 0 auto;margin-top:1px}
  .filter-bar form{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%}.filter-bar form select:last-child{grid-column:1/-1}.filter-bar span{width:100%;font-size:11px}
  .table-wrap{border-radius:15px}.table-card{border-radius:15px}
  .form-grid select,.form-grid input,.form-grid textarea{min-height:43px}.form-grid textarea{min-height:82px}
}
@media(max-width:620px){
  .nav-section-toggle{font-size:10px;padding-top:11px}.nav-item{font-size:14px}
  .coordinate-source-card{padding:10px 11px}.coordinate-source-card .coordinate-icon{width:25px;height:25px}
  .task-link-hint{font-size:10px}.filter-bar form{grid-template-columns:1fr}.filter-bar form select{grid-column:1!important}
}
.map-add-continue{display:flex;align-items:flex-start;gap:7px;color:#5f4e72;font-size:10px;line-height:1.45}.map-add-continue input{margin:1px 0 0;accent-color:#69429d}

/* R3.7.5 · text-only AI work-report editor, template-faithful export and explicit map add mode */
.work-note-editor-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.72fr);gap:16px;align-items:start}.work-note-editor-card{padding:22px}.report-context-card{border-color:#e6ddf2;background:linear-gradient(135deg,#fff,#fbf9ff)}.report-ai-toolbar{display:grid;grid-template-columns:1fr auto;gap:12px;margin:2px 0 16px;padding:14px;border:1px solid #e5d9f2;border-radius:14px;background:linear-gradient(135deg,#faf7ff,#fff)}.report-ai-state{display:flex;align-items:flex-start;gap:9px;min-width:0}.report-ai-state>span{display:grid;place-items:center;flex:0 0 auto;width:25px;height:25px;border-radius:9px;background:#ece2f8;color:#633c90;font-weight:900}.report-ai-state b,.report-ai-state small{display:block}.report-ai-state b{font-size:12px;color:#4d2d73}.report-ai-state small{margin-top:3px;color:#726383;font-size:10px;line-height:1.45}.report-ai-state.success>span{background:#ddf2e4;color:#167044}.report-ai-state.success b{color:#1d6a42}.report-ai-state.error>span{background:#fde7e7;color:#a33333}.report-ai-state.error b{color:#973030}.report-ai-state.loading>span{background:#fff0c7;color:#a56a00}.report-ai-instruction{grid-column:1/-1;display:grid;gap:6px;font-size:11px;font-weight:750;color:#5b4b70}.report-ai-instruction input{min-height:39px}.report-ai-actions{grid-column:1/-1;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.text-button{border:0;background:transparent;color:#6a4299;font-weight:800;font-size:12px;padding:7px 2px;cursor:pointer}.text-button:hover{text-decoration:underline}.report-editor-label{display:grid;gap:8px;font-weight:800;color:#3c3150}.report-editor-label>span{font-size:10px;font-weight:500;color:#776b85}.report-editor-label textarea{width:100%;min-height:380px;padding:15px 16px;border:1px solid #d8cbea;border-radius:14px;background:#fff;line-height:1.78;font-size:14px;resize:vertical;box-shadow:inset 0 1px 2px rgba(64,32,95,.035)}.report-editor-label textarea:focus{outline:0;border-color:#9d77c6;box-shadow:0 0 0 4px rgba(113,68,168,.11)}.report-editor-foot{display:flex;justify-content:space-between;gap:12px;margin:8px 2px 14px;color:#7d7189;font-size:10px;line-height:1.45}.report-editor-foot span:first-child{font-weight:800;color:#5b3d7b}.report-prompt-details{margin:14px 0;border:1px dashed #d7cae6;border-radius:11px;background:#fbf9fd}.report-prompt-details summary{cursor:pointer;padding:11px 13px;color:#5e3b85;font-size:11px;font-weight:800}.report-prompt-details pre{white-space:pre-wrap;margin:0;padding:0 13px 13px;color:#5f5867;font:11px/1.6 ui-monospace,SFMono-Regular,Consolas,monospace}.report-save-actions{margin-top:15px}.report-source-card{position:sticky;top:18px;padding:18px}.report-source-list{display:grid;gap:9px}.report-source-item{padding:10px;border:1px solid #ebe4f3;border-radius:11px;background:#fff}.report-source-item b,.report-source-item small{display:block}.report-source-item b{font-size:12px;color:#4e2c77}.report-source-item small{margin-top:3px;font-size:10px;color:#776c84}.report-source-item p{margin:7px 0 0;color:#5b5265;font-size:11px;line-height:1.52}.report-value-chips{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}.report-value-chips span{padding:3px 6px;border-radius:99px;background:#f2edf8;color:#65428b;font-size:9px;font-weight:800}.report-value-chips .danger{background:#fff0f0;color:#a53232}.map-add-panel{border:1px solid rgba(105,66,157,.26);box-shadow:0 12px 26px rgba(42,21,73,.16)}.map-add-panel.is-adding{border-color:#8859bd;box-shadow:0 0 0 4px rgba(122,75,175,.14),0 15px 30px rgba(42,21,73,.18)}.map-add-heading{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.map-add-heading b,.map-add-heading small{display:block}.map-add-heading b{font-size:13px;color:#4e2c76}.map-add-heading small{margin-top:4px;max-width:260px;color:#6f647c;font-size:10px;line-height:1.45}.map-add-mode-badge{flex:0 0 auto;padding:4px 7px;border-radius:99px;background:#edf0f2;color:#64717a;font-size:9px;font-weight:850}.map-add-panel.is-adding .map-add-mode-badge{background:#f1e8fb;color:#633a94}.map-add-controls,.map-add-form-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}.map-add-details{margin:4px 0;border:1px dashed #ddd0eb;border-radius:9px;background:#fcfbfe}.map-add-details summary{padding:8px 9px;cursor:pointer;color:#674793;font-size:10px;font-weight:800}.map-add-details>div{display:grid;gap:8px;padding:0 9px 9px}.map-add-details input,.map-add-details textarea{width:100%}.map-add-cursor{cursor:crosshair!important}.map-add-cursor .leaflet-interactive{cursor:pointer!important}
@media(max-width:1000px){.work-note-editor-layout{grid-template-columns:1fr}.work-note-editor-card{padding:16px}.report-source-card{position:static}.report-editor-label textarea{min-height:320px}.report-ai-toolbar{grid-template-columns:1fr}.report-editor-foot{align-items:flex-start;flex-direction:column;gap:4px}}
@media(max-width:620px){.report-ai-toolbar{padding:12px}.report-ai-actions .button{width:100%}.report-editor-label textarea{font-size:13px;line-height:1.7;min-height:290px}.report-context-card{grid-template-columns:1fr!important}.map-add-heading{display:block}.map-add-mode-badge{display:inline-block;margin-top:7px}.map-add-panel{max-width:calc(100% - 20px)}.map-add-form-actions .button{flex:1}.report-save-actions .button{width:100%}}

/* R3.7.6 · adaptive desktop/mobile navigation and visual refresh */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
:root{--forest-950:#07351f;--forest-900:#0a452b;--forest-800:#0d5b38;--forest-700:#137449;--forest-100:#e9f8ef;--violet-700:#61399a;--violet-100:#f1eafe;--radius-xl:22px;--radius-lg:16px;--soft-shadow:0 14px 36px rgba(18,48,34,.08)}
body{background:linear-gradient(180deg,#fafbf8 0,#f4f5ef 100%);color:#15221b}
.brand{position:relative}.brand-mark{background:linear-gradient(145deg,#ecfff2,#c8f2d9);border:1px solid rgba(255,255,255,.46);font-family:ui-rounded,"SF Pro Rounded","PingFang SC",sans-serif}
.nav-item{position:relative;min-height:47px;font-weight:720;letter-spacing:.05px}.nav-item .nav-icon{width:27px;height:27px;display:grid;place-items:center;flex:0 0 auto;border-radius:9px;background:rgba(223,244,232,.10);color:#c6ead4;font-size:15px;line-height:1;font-family:ui-rounded,"SF Pro Rounded","PingFang SC",sans-serif;transition:background .18s ease,color .18s ease,transform .18s ease}.nav-item:hover .nav-icon{background:rgba(223,244,232,.19);color:#fff;transform:translateY(-1px)}.nav-item.active .nav-icon,.nav-item.nav-primary.active .nav-icon{background:rgba(255,255,255,.20);color:#fff}.nav-item.active:after{content:"";position:absolute;right:8px;width:5px;height:5px;border-radius:50%;background:#e2f7e9;box-shadow:0 0 0 4px rgba(226,247,233,.12)}
.nav-section-toggle{letter-spacing:1px}.nav-section-toggle span{display:flex;align-items:center;gap:8px}.nav-section-toggle:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.75}.nav-section-toggle i{width:22px;height:22px;display:grid;place-items:center;border-radius:7px;background:rgba(255,255,255,.06)}
.sidebar{width:258px;background:linear-gradient(180deg,var(--forest-950) 0%,var(--forest-900) 44%,#0b5434 100%);box-shadow:12px 0 38px rgba(4,42,25,.06)}.main-content{margin-left:258px}.sidebar-foot{padding-top:15px}.topbar{height:82px;padding:0 46px;background:rgba(250,251,248,.86);border-color:#e5ece6}.page-content{max-width:1510px;padding:34px 46px 74px}.card,.metric-card{border-color:#e3ebe4;box-shadow:0 6px 24px rgba(13,55,33,.035)}.card{border-radius:var(--radius-lg)}.metric-card{border-radius:15px}.button{border-radius:11px;min-height:40px}.button.primary{background:linear-gradient(135deg,#0c5b38,#167d50);box-shadow:0 8px 18px rgba(17,102,62,.16)}.button.ghost{background:#fff}.page-heading h1{letter-spacing:-.5px}.filter-bar select,.filter-bar input{border-radius:10px;min-height:40px}.table-card{border-radius:var(--radius-lg)}
.mobile-header-actions{display:flex;align-items:center;gap:9px}.mobile-brand-text{display:grid;gap:1px}.mobile-brand-text b{font-size:16px;line-height:1.1}.mobile-brand-text small{display:block;color:rgba(231,255,240,.70);font-size:8px;letter-spacing:1.1px;font-weight:750}.menu-toggle{position:relative;display:inline-grid;place-items:center;width:46px;height:42px;padding:0!important;border:1px solid rgba(219,255,232,.24)!important;border-radius:13px!important;background:rgba(255,255,255,.10)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.08);-webkit-tap-highlight-color:transparent;touch-action:manipulation}.menu-toggle:active{transform:scale(.96);background:rgba(255,255,255,.16)!important}.menu-toggle-lines{width:20px;height:15px;display:flex;flex-direction:column;justify-content:space-between}.menu-toggle-lines i{display:block;height:2px;width:100%;border-radius:999px;background:#fff;transition:transform .22s ease,opacity .18s ease}.menu-toggle[aria-expanded="true"] .menu-toggle-lines i:nth-child(1){transform:translateY(6.5px) rotate(45deg)}.menu-toggle[aria-expanded="true"] .menu-toggle-lines i:nth-child(2){opacity:0}.menu-toggle[aria-expanded="true"] .menu-toggle-lines i:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
.mobile-nav{padding:0 max(6px,env(safe-area-inset-left)) env(safe-area-inset-bottom) max(6px,env(safe-area-inset-right));box-shadow:0 -8px 24px rgba(19,46,33,.07)}.mobile-nav a{position:relative;min-height:58px;justify-content:center;gap:3px;border-radius:12px;font-weight:720;transition:color .18s ease,background .18s ease}.mobile-nav .mobile-nav-icon{width:25px;height:25px;display:grid;place-items:center;border-radius:8px;font-size:18px;line-height:1;font-family:ui-rounded,"SF Pro Rounded","PingFang SC",sans-serif}.mobile-nav a.active{color:#10613c;background:#ecf8f0}.mobile-nav a.active .mobile-nav-icon{background:#d5f0df;color:#0d5e39}.mobile-nav .mobile-add{position:relative;align-self:center;width:54px;height:54px!important;min-width:54px;border:4px solid #f7f8f3;background:linear-gradient(145deg,#0a5d39,#147a4c)!important;box-shadow:0 12px 25px rgba(7,88,51,.28);transform:translateY(-18px);font-size:28px}.mobile-nav .mobile-add span{display:grid;place-items:center;width:100%;height:100%;font-weight:400;line-height:1}.mobile-nav .mobile-add.active{background:linear-gradient(145deg,#064c2f,#126d44)!important}.mobile-nav small{font-size:10px;margin-top:0}
@media(min-width:1001px){
  .sidebar{width:258px}.sidebar .brand{padding:28px 22px 23px}.sidebar .nav-list{padding:16px 13px}.sidebar-scroll{padding-bottom:10px}.nav-section{margin-bottom:9px}.nav-section-toggle{padding:12px 12px 8px}.nav-item{padding:10px 12px}.main-content{margin-left:258px}.topbar{padding:0 48px}.page-content{padding:36px 48px 78px}.hero{border-radius:26px}.metric-grid{gap:16px}.two-col{gap:18px}
}
@media(max-width:1000px){
  html.mobile-menu-open,body.mobile-menu-open{overflow:hidden!important;touch-action:auto!important}
  .sidebar{z-index:110;width:min(87vw,340px);inset:0 auto 0 0;height:100dvh;max-height:100dvh;padding:0 0 calc(9px + env(safe-area-inset-bottom));overflow:hidden!important;transform:translate3d(-105%,0,0);transition:transform .28s cubic-bezier(.2,.8,.2,1),box-shadow .28s ease;box-shadow:none;will-change:transform;touch-action:pan-y;background:linear-gradient(180deg,#063b24 0%,#0a5133 47%,#0b5b39 100%)}
  .sidebar.mobile-open{transform:translate3d(0,0,0);box-shadow:18px 0 46px rgba(0,0,0,.30)}
  .sidebar .brand{flex:0 0 auto;min-height:75px;padding:19px 18px 15px;border-bottom:1px solid rgba(255,255,255,.11)}
  .sidebar-scroll{display:block;flex:1 1 auto;min-height:0!important;height:0!important;overflow-y:scroll!important;overflow-x:hidden!important;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;padding:10px 10px 28px!important;scrollbar-width:thin;touch-action:pan-y}
  .sidebar-scroll:focus{outline:none}.sidebar .nav-list{padding:0!important}.sidebar-foot{margin:0 18px;flex:0 0 auto;padding:12px 7px 0}
  .mobile-menu-scrim{z-index:105;background:rgba(3,29,17,.58);backdrop-filter:blur(4px)}.mobile-menu-scrim.is-visible{display:block}
  .mobile-header{position:sticky;top:0;z-index:45;min-height:66px;height:calc(59px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 15px 0;background:linear-gradient(115deg,#063c25,#0e6341);box-shadow:0 4px 20px rgba(8,55,34,.14)}
  .mobile-header .brand{padding:0;gap:9px}.mobile-header .brand-mark{width:35px;height:35px;border-radius:12px;font-size:18px}.mobile-header-actions{gap:8px}.mobile-logout{min-height:39px;border-radius:11px;padding:6px 11px}.menu-toggle{width:45px;height:40px}
  .main-content{padding-bottom:82px}.page-content{padding:18px 14px 42px}.page-heading{margin-bottom:16px}.page-heading h1{font-size:24px}.page-heading p{font-size:12px;line-height:1.6}.card{border-radius:15px}.hero{border-radius:20px;padding:25px 23px}.hero h1{font-size:27px}.metric-card{border-radius:14px}.filter-bar,.heading-actions{gap:8px}
  .nav-section{margin-bottom:8px}.nav-section-toggle{min-height:44px;padding:12px 12px 8px;border:1px solid rgba(255,255,255,.06);border-radius:12px;background:rgba(255,255,255,.055);font-size:10px}.nav-section-toggle i{background:rgba(255,255,255,.09)}.nav-section-body{padding:2px 0 3px}.nav-item{min-height:48px;padding:10px 12px;margin:4px 0;border-radius:12px}.nav-item .nav-icon{width:29px;height:29px;border-radius:10px}.nav-item.active:after{right:10px}
  .mobile-nav{height:74px;padding-bottom:env(safe-area-inset-bottom);z-index:60}.mobile-nav a{min-width:50px;min-height:62px}.mobile-nav .mobile-add{transform:translateY(-20px)}
}
@media(max-width:620px){
  .mobile-header{padding-left:14px;padding-right:14px}.mobile-brand-text b{font-size:15px}.mobile-header .brand-mark{width:34px;height:34px}.mobile-logout{display:none!important}.menu-toggle{width:46px;height:42px}.page-content{padding:16px 12px 38px}.hero{padding:24px 21px}.hero p{font-size:14px;line-height:1.65}.metric-grid{gap:9px}.metric-card{padding:14px}.card{padding:17px}.card.table-card{padding:0}.mobile-nav a{font-size:17px}.mobile-nav small{font-size:9px}.mobile-nav .mobile-nav-icon{width:24px;height:24px}.mobile-nav .mobile-add{width:54px;min-width:54px;height:54px!important}.sidebar{width:min(90vw,340px)}.sidebar .brand{min-height:72px}.sidebar-foot{font-size:11px}
}
@media(max-width:370px){.mobile-nav{height:70px}.mobile-nav a{min-width:42px}.mobile-nav small{font-size:8px}.mobile-nav .mobile-add{width:50px;min-width:50px;height:50px!important;transform:translateY(-17px)}.mobile-header{min-height:62px}.mobile-header .brand-mark{width:32px;height:32px}.menu-toggle{width:42px;height:39px}}


/* R3.7.7 · mobile menu click-safe layer and resilient drawer motion. */
@media (max-width:1000px){
  .mobile-header{isolation:isolate;z-index:120!important;pointer-events:auto!important}
  .mobile-header-actions{position:relative;z-index:4;pointer-events:auto!important}
  .menu-toggle,[data-menu-toggle]{position:relative!important;z-index:9!important;display:inline-grid!important;pointer-events:auto!important;touch-action:manipulation!important;-webkit-user-select:none;user-select:none}
  .menu-toggle:before{content:"";position:absolute;inset:-8px;border-radius:16px;z-index:-1}
  .sidebar{z-index:310!important;display:flex!important;pointer-events:none!important}
  .sidebar.mobile-open{pointer-events:auto!important}
  .sidebar.mobile-open .sidebar-scroll{pointer-events:auto!important}
  .mobile-menu-scrim{z-index:300!important}
  .mobile-menu-scrim[hidden]{display:none!important}
  .mobile-menu-scrim.is-visible{display:block!important;pointer-events:auto!important}
  .sidebar-scroll{min-height:0!important;height:auto!important;max-height:none!important;flex:1 1 auto!important;overscroll-behavior:contain!important;-webkit-overflow-scrolling:touch!important}
  .sidebar.mobile-open{transform:translate3d(0,0,0)!important;visibility:visible!important}
  .sidebar:not(.mobile-open){visibility:hidden!important}
  body.mobile-menu-open .main-content,body.mobile-menu-open .mobile-nav{pointer-events:none!important}
  body.mobile-menu-open .mobile-header{pointer-events:auto!important}
}


/* R3.7.8 · native mobile top tool tray.
   It intentionally does not use the legacy side drawer, scrim, pointer-event
   gates or JavaScript state. A checkbox + label keeps the essential click path
   reliable in Android browsers with stale cached scripts. */
.mobile-top-tools-switch,.mobile-top-toolbar{display:none}
@media (max-width:1000px){
  .sidebar,[data-mobile-sidebar],.mobile-menu-scrim{display:none!important}
  html.mobile-menu-open,body.mobile-menu-open{overflow:auto!important;touch-action:auto!important}
  body.mobile-menu-open .main-content,body.mobile-menu-open .mobile-nav{pointer-events:auto!important}
  .mobile-top-tools-switch{display:block!important;position:fixed!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;clip-path:inset(50%)!important;z-index:-1!important}
  .mobile-header{position:sticky!important;top:0!important;z-index:1000!important;isolation:isolate!important}
  .mobile-header-actions{position:relative!important;z-index:2!important}
  .mobile-top-tools-toggle{cursor:pointer!important;user-select:none!important;-webkit-tap-highlight-color:transparent!important;touch-action:manipulation!important;position:relative!important;z-index:3!important}
  .mobile-top-tools-toggle:before{content:"";position:absolute;inset:-10px;border-radius:18px}
  #mobile-top-tools-switch:checked ~ .mobile-header .mobile-top-tools-toggle{background:rgba(255,255,255,.20)!important;border-color:rgba(255,255,255,.42)!important}
  #mobile-top-tools-switch:checked ~ .mobile-header .menu-toggle-lines i:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
  #mobile-top-tools-switch:checked ~ .mobile-header .menu-toggle-lines i:nth-child(2){opacity:0}
  #mobile-top-tools-switch:checked ~ .mobile-header .menu-toggle-lines i:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
  .mobile-top-toolbar{display:block!important;position:fixed!important;z-index:950!important;left:0!important;right:0!important;top:calc(59px + env(safe-area-inset-top))!important;max-height:0!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important;transform:translate3d(0,-12px,0)!important;transition:max-height .26s ease,opacity .18s ease,transform .26s cubic-bezier(.2,.8,.2,1)!important;background:linear-gradient(135deg,#063e27 0%,#0b6843 54%,#117b51 100%)!important;border-bottom:1px solid rgba(231,255,240,.23)!important;box-shadow:0 12px 30px rgba(3,38,23,.02)!important}
  #mobile-top-tools-switch:checked ~ .mobile-top-toolbar{max-height:calc(100dvh - 140px)!important;overflow-y:auto!important;overscroll-behavior:contain!important;-webkit-overflow-scrolling:touch!important;opacity:1!important;pointer-events:auto!important;transform:translate3d(0,0,0)!important;box-shadow:0 18px 42px rgba(3,38,23,.28)!important}
  .mobile-top-toolbar-inner{padding:13px 13px calc(18px + env(safe-area-inset-bottom));color:#effbf4}
  .mobile-top-toolbar-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 2px 12px}
  .mobile-top-toolbar-head span{display:block;color:#9edeb9;font-size:9px;font-weight:850;letter-spacing:1.2px}
  .mobile-top-toolbar-head b{display:block;margin-top:3px;font-size:15px;letter-spacing:.1px}
  .mobile-toolbar-close{display:inline-flex;align-items:center;justify-content:center;min-height:33px;padding:0 10px;border:1px solid rgba(230,255,240,.23);border-radius:10px;background:rgba(255,255,255,.10);color:#f6fffa;font-size:11px;font-weight:800;cursor:pointer;-webkit-tap-highlight-color:transparent}
  .mobile-tool-groups{display:grid;gap:10px}
  .mobile-tool-group{margin:0;padding:11px;border:1px solid rgba(229,255,239,.14);border-radius:15px;background:rgba(255,255,255,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.045)}
  .mobile-tool-group h2{margin:0 0 8px;color:#bae9cb;font-size:10px;font-weight:900;letter-spacing:1px}
  .mobile-tool-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
  .mobile-tool-links a{min-width:0;min-height:48px;display:flex;align-items:center;gap:8px;padding:8px 9px;border:1px solid rgba(233,255,242,.12);border-radius:11px;background:rgba(255,255,255,.06);color:#f2fff6;transition:transform .16s ease,background .16s ease,border-color .16s ease;-webkit-tap-highlight-color:transparent}
  .mobile-tool-links a:active{transform:scale(.98);background:rgba(255,255,255,.16)}
  .mobile-tool-links a.active{border-color:rgba(205,255,222,.72);background:#e5f8ec;color:#0c5635;box-shadow:0 6px 14px rgba(4,42,25,.17)}
  .mobile-tool-links a>span{width:26px;height:26px;flex:0 0 auto;display:grid;place-items:center;border-radius:8px;background:rgba(220,255,234,.13);font-size:16px;line-height:1;font-family:ui-rounded,"SF Pro Rounded","PingFang SC",sans-serif}
  .mobile-tool-links a.active>span{background:#caecd7;color:#0e6941}
  .mobile-tool-links b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1.2}
}
@media (max-width:390px){
  .mobile-top-toolbar-inner{padding-left:9px;padding-right:9px}
  .mobile-tool-group{padding:9px;border-radius:13px}
  .mobile-tool-links{gap:6px}
  .mobile-tool-links a{min-height:45px;padding:7px}
  .mobile-tool-links a>span{width:24px;height:24px;font-size:15px}
  .mobile-tool-links b{font-size:11px}
}


/* R3.7.9 · native mobile top toolbar (details/summary).
   This intentionally overrides all legacy drawer and checkbox rules. The
   visible top-right summary is the real native control; no hidden input or
   JavaScript event must succeed before the toolbar can appear. */
.mobile-tools-details{display:none}
@media (max-width:1000px){
  .mobile-top-tools-switch{display:none!important}
  .mobile-header .mobile-tools-details{display:block!important;position:relative!important;z-index:1010!important;line-height:1}
  .mobile-tools-details>summary{list-style:none!important;cursor:pointer!important}
  .mobile-tools-details>summary::-webkit-details-marker{display:none!important}
  .mobile-tools-details>summary::marker{display:none!important}
  .mobile-tools-summary{position:relative!important;display:inline-grid!important;place-items:center!important;width:46px!important;height:42px!important;margin:0!important;cursor:pointer!important;pointer-events:auto!important;touch-action:manipulation!important;-webkit-tap-highlight-color:transparent!important;z-index:1012!important}
  .mobile-tools-summary:focus-visible{outline:3px solid rgba(205,255,222,.8)!important;outline-offset:3px!important}
  .mobile-tools-details[open]>.mobile-tools-summary{background:rgba(255,255,255,.23)!important;border-color:rgba(229,255,238,.56)!important}
  .mobile-tools-details[open]>.mobile-tools-summary .menu-toggle-lines i:nth-child(1){transform:translateY(6.5px) rotate(45deg)!important}
  .mobile-tools-details[open]>.mobile-tools-summary .menu-toggle-lines i:nth-child(2){opacity:0!important}
  .mobile-tools-details[open]>.mobile-tools-summary .menu-toggle-lines i:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)!important}

  .mobile-tools-details>.mobile-top-toolbar{display:none!important;position:fixed!important;left:0!important;right:0!important;top:calc(59px + env(safe-area-inset-top))!important;z-index:1005!important;max-height:calc(100dvh - 132px)!important;overflow-y:auto!important;overscroll-behavior:contain!important;-webkit-overflow-scrolling:touch!important;background:linear-gradient(145deg,#063d26 0%,#0b6843 55%,#127a50 100%)!important;border-top:1px solid rgba(233,255,242,.20)!important;border-bottom:1px solid rgba(233,255,242,.24)!important;box-shadow:0 18px 38px rgba(2,34,19,.34)!important;pointer-events:auto!important;transform:none!important;opacity:1!important}
  .mobile-tools-details[open]>.mobile-top-toolbar{display:block!important;animation:mobileToolsDrop .16s ease-out both}
  @keyframes mobileToolsDrop{from{transform:translateY(-7px);opacity:.25}to{transform:translateY(0);opacity:1}}
  .mobile-top-toolbar-inner{padding:13px 12px calc(18px + env(safe-area-inset-bottom))!important;color:#effbf4!important}
  .mobile-top-toolbar-head{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:12px!important;margin:0 3px 11px!important}
  .mobile-top-toolbar-head span{display:block!important;color:#a8e3bd!important;font-size:9px!important;font-weight:850!important;letter-spacing:1.2px!important}
  .mobile-top-toolbar-head b{display:block!important;margin-top:4px!important;color:#f4fff7!important;font-size:15px!important;letter-spacing:.1px!important}
  .mobile-top-toolbar-head small{padding:5px 7px!important;border:1px solid rgba(229,255,238,.20)!important;border-radius:8px!important;background:rgba(255,255,255,.08)!important;color:#d8f4e3!important;font-size:9px!important;line-height:1.35!important;text-align:center!important}
  .mobile-tool-groups{display:grid!important;gap:9px!important}
  .mobile-tool-group{display:block!important;margin:0!important;padding:0!important;overflow:hidden!important;border:1px solid rgba(229,255,239,.16)!important;border-radius:14px!important;background:rgba(255,255,255,.075)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.045)!important}
  .mobile-tool-group>summary{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;min-height:43px!important;padding:0 12px!important;list-style:none!important;cursor:pointer!important;color:#d5f4df!important;font-size:11px!important;font-weight:900!important;letter-spacing:.65px!important;touch-action:manipulation!important;-webkit-tap-highlight-color:transparent!important}
  .mobile-tool-group>summary::-webkit-details-marker{display:none!important}.mobile-tool-group>summary::marker{display:none!important}
  .mobile-tool-group>summary i{width:25px!important;height:25px!important;display:grid!important;place-items:center!important;border-radius:8px!important;background:rgba(255,255,255,.09)!important;color:#d9f7e4!important;font-style:normal!important;font-size:16px!important;line-height:1!important;transition:transform .18s ease!important}
  .mobile-tool-group[open]>summary{background:rgba(5,58,34,.22)!important;border-bottom:1px solid rgba(229,255,239,.12)!important}
  .mobile-tool-group[open]>summary i{transform:rotate(180deg)!important}
  .mobile-tool-links{display:none!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important;padding:9px!important}
  .mobile-tool-group[open]>.mobile-tool-links{display:grid!important}
  .mobile-tool-links a{min-width:0!important;min-height:47px!important;display:flex!important;align-items:center!important;gap:8px!important;padding:8px 9px!important;border:1px solid rgba(233,255,242,.13)!important;border-radius:11px!important;background:rgba(255,255,255,.065)!important;color:#f4fff7!important;transition:transform .16s ease,background .16s ease,border-color .16s ease!important;-webkit-tap-highlight-color:transparent!important}
  .mobile-tool-links a:active{transform:scale(.98)!important;background:rgba(255,255,255,.16)!important}
  .mobile-tool-links a.active{border-color:rgba(205,255,222,.72)!important;background:#e5f8ec!important;color:#0c5635!important;box-shadow:0 6px 14px rgba(4,42,25,.17)!important}
  .mobile-tool-links a>span{width:26px!important;height:26px!important;flex:0 0 auto!important;display:grid!important;place-items:center!important;border-radius:8px!important;background:rgba(220,255,234,.13)!important;font-size:16px!important;line-height:1!important;font-family:ui-rounded,"SF Pro Rounded","PingFang SC",sans-serif!important}
  .mobile-tool-links a.active>span{background:#caecd7!important;color:#0e6941!important}
  .mobile-tool-links b{min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;font-size:12px!important;line-height:1.2!important}
}
@media (max-width:390px){
  .mobile-tools-summary{width:44px!important;height:40px!important}
  .mobile-tools-details>.mobile-top-toolbar{top:calc(57px + env(safe-area-inset-top))!important;max-height:calc(100dvh - 124px)!important}
  .mobile-top-toolbar-inner{padding-left:9px!important;padding-right:9px!important}
  .mobile-tool-group>summary{min-height:41px!important;padding:0 10px!important}
  .mobile-tool-links{gap:6px!important;padding:8px!important}
  .mobile-tool-links a{min-height:44px!important;padding:7px!important}
  .mobile-tool-links a>span{width:24px!important;height:24px!important;font-size:15px!important}
  .mobile-tool-links b{font-size:11px!important}
}


/* R3.8 · direct mobile category navigation.
   Categories are always visible beneath the header.  There is intentionally no
   mobile hamburger, drawer, overlay, hidden checkbox, or script-only control. */
.mobile-category-menu{display:none}
@media (max-width:1000px){
  .mobile-header-direct-nav{position:sticky!important;top:0!important;z-index:1000!important}
  .mobile-header-direct-nav .mobile-header-actions{margin-left:auto!important}
  .mobile-header-direct-nav .mobile-logout{display:inline-flex!important;align-items:center;justify-content:center;min-height:38px;padding:7px 12px!important;border-radius:11px!important;font-size:12px!important}
  .mobile-header-direct-nav .mobile-tools-details,.mobile-header-direct-nav .menu-toggle{display:none!important}
  .mobile-category-menu{display:block!important;position:relative!important;z-index:44!important;padding:10px 12px 11px!important;background:linear-gradient(180deg,#f7fbf8 0%,#f2f7f3 100%)!important;border-bottom:1px solid #d9e6dc!important;box-shadow:0 4px 14px rgba(10,63,39,.055)!important}
  .mobile-category-menu-head{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;margin:0 3px 8px!important}
  .mobile-category-menu-head>div{display:flex!important;align-items:baseline!important;gap:8px!important}
  .mobile-category-menu-head span{color:#2f7a57!important;font-size:9px!important;font-weight:900!important;letter-spacing:1.15px!important}
  .mobile-category-menu-head b{color:#164a34!important;font-size:13px!important;letter-spacing:.15px!important}
  .mobile-category-menu-head small{color:#728278!important;font-size:10px!important}
  .mobile-category-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;align-items:start!important}
  .mobile-category-card{display:block!important;min-width:0!important;overflow:hidden!important;border:1px solid #cfe0d4!important;border-radius:13px!important;background:#fff!important;box-shadow:0 3px 10px rgba(14,61,39,.04)!important}
  .mobile-category-card[open]{grid-column:1 / -1!important;border-color:#77bb95!important;box-shadow:0 10px 24px rgba(14,88,54,.12)!important}
  .mobile-category-card>summary{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:6px!important;min-height:48px!important;padding:8px 9px!important;list-style:none!important;cursor:pointer!important;color:#1b5139!important;touch-action:manipulation!important;-webkit-tap-highlight-color:transparent!important}
  .mobile-category-card>summary::-webkit-details-marker{display:none!important}
  .mobile-category-card>summary::marker{display:none!important}
  .mobile-category-card>summary:active{background:#f1f8f3!important}
  .mobile-category-card.is-current>summary{background:linear-gradient(135deg,#e3f7ea,#f7fcf8)!important}
  .mobile-category-summary-title{display:flex!important;align-items:center!important;gap:7px!important;min-width:0!important}
  .mobile-category-summary-title i{display:grid!important;place-items:center!important;flex:0 0 auto!important;width:25px!important;height:25px!important;border-radius:8px!important;background:#e4f4e9!important;color:#14613e!important;font-style:normal!important;font-size:14px!important;font-family:ui-rounded,"SF Pro Rounded","PingFang SC",sans-serif!important}
  .mobile-category-summary-title b{min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;font-size:12px!important;line-height:1.2!important}
  .mobile-category-summary-meta{display:flex!important;align-items:center!important;gap:3px!important;flex:0 0 auto!important}
  .mobile-category-summary-meta small{color:#7c8d82!important;font-size:9px!important;font-weight:750!important}
  .mobile-category-summary-meta em{display:grid!important;place-items:center!important;width:20px!important;height:20px!important;border-radius:7px!important;background:#f1f6f2!important;color:#3d7055!important;font-size:15px!important;font-style:normal!important;line-height:1!important;transition:transform .16s ease!important}
  .mobile-category-card[open] .mobile-category-summary-meta em{transform:rotate(180deg)!important;background:#d9f1e1!important;color:#14623f!important}
  .mobile-category-links{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important;padding:0 9px 10px!important;border-top:1px solid #e6eee8!important;background:linear-gradient(180deg,#fbfefc,#f5faf6)!important}
  .mobile-category-links a{display:flex!important;align-items:center!important;gap:7px!important;min-width:0!important;min-height:43px!important;margin-top:9px!important;padding:7px 8px!important;border:1px solid #dbe9df!important;border-radius:10px!important;background:#fff!important;color:#285640!important;-webkit-tap-highlight-color:transparent!important}
  .mobile-category-links a:active{transform:scale(.985)!important;background:#edf8f0!important}
  .mobile-category-links a.active{border-color:#8ecbaa!important;background:#dff4e7!important;color:#0e5a37!important;box-shadow:0 4px 9px rgba(25,105,63,.11)!important}
  .mobile-category-links a>span{display:grid!important;place-items:center!important;flex:0 0 auto!important;width:24px!important;height:24px!important;border-radius:7px!important;background:#edf6ef!important;color:#16633f!important;font-size:14px!important;font-family:ui-rounded,"SF Pro Rounded","PingFang SC",sans-serif!important}
  .mobile-category-links a.active>span{background:#c5e9d2!important;color:#0a5733!important}
  .mobile-category-links a b{min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;font-size:11px!important;line-height:1.2!important}
  /* Current content begins below the always-visible category cards. */
  .main-content{padding-bottom:82px!important}
}
@media (max-width:420px){
  .mobile-category-menu{padding-left:10px!important;padding-right:10px!important}
  .mobile-category-menu-head{margin-bottom:7px!important}
  .mobile-category-card>summary{min-height:46px!important;padding-left:8px!important;padding-right:7px!important}
  .mobile-category-summary-title{gap:6px!important}
  .mobile-category-summary-title i{width:23px!important;height:23px!important;font-size:13px!important}
  .mobile-category-summary-title b{font-size:11px!important}
  .mobile-category-summary-meta small{display:none!important}
  .mobile-category-links{gap:6px!important;padding:0 7px 8px!important}
  .mobile-category-links a{min-height:41px!important;margin-top:7px!important;padding:6px!important}
  .mobile-category-links a b{font-size:10px!important}
}
@media (min-width:1001px){.mobile-category-menu{display:none!important}}


/* R3.8.3 source marker: mobile navigation styling is intentionally embedded in base.html for cache-resilient deployment. */

/* R3.8.4 · unified daily work: outdoor inspection + indoor office and other. */
.daily-work-hero{margin-bottom:16px}.daily-work-type-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px;margin:0 0 17px}.daily-work-type-card{position:relative;overflow:hidden;display:grid;grid-template-columns:auto 1fr;gap:15px;padding:22px;border:1px solid #d5e7db;border-radius:18px;background:#fff;box-shadow:0 8px 22px rgba(16,67,42,.06)}.daily-work-type-card.outdoor{background:linear-gradient(135deg,#ffffff 0%,#f0faf3 100%);border-color:#bce0c9}.daily-work-type-card.indoor{background:linear-gradient(135deg,#ffffff 0%,#f3f7ff 100%);border-color:#cad9ee}.daily-work-type-card:before{content:"";position:absolute;inset:auto -45px -65px auto;width:160px;height:160px;border-radius:50%;background:rgba(26,116,68,.06)}.daily-work-type-card.indoor:before{background:rgba(50,91,155,.07)}.daily-work-type-icon{position:relative;z-index:1;display:grid;place-items:center;width:48px;height:48px;border-radius:15px;background:#dff3e6;color:#0b643c;font-size:25px;font-family:ui-rounded,"SF Pro Rounded","PingFang SC",sans-serif}.daily-work-type-card.indoor .daily-work-type-icon{background:#e3ecfb;color:#315d9f}.daily-work-type-card h2{margin:2px 0 5px;font-size:20px;color:#164a34}.daily-work-type-card p{margin:0;color:#5b7567;font-size:13px;line-height:1.65}.daily-work-type-card ul{grid-column:1/-1;display:grid;gap:4px;margin:0;padding:11px 0 0 18px;color:#416351;font-size:12px;line-height:1.5}.daily-work-type-card.indoor ul{color:#4b6685}.daily-work-type-actions{position:relative;z-index:1;grid-column:1/-1;display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:2px}.daily-work-type-actions .button{min-height:39px}.office-category-chips{position:relative;z-index:1;grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px;padding-top:2px}.office-category-chips span{padding:5px 8px;border:1px solid #d4e0f0;border-radius:999px;background:rgba(255,255,255,.76);color:#47648a;font-size:11px;font-weight:750}.daily-work-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.daily-work-summary-grid .task-summary.accent{border-color:#a4d8b8;background:#edf9f1}.daily-work-grid{margin-bottom:17px}.daily-report-side{background:linear-gradient(145deg,#0a5f3a,#14764a)}.daily-record-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.compact-table-card .card-head{padding:17px 18px 0}.compact-table-card .table-wrap{margin-top:9px}.office-work-form .office-tips{align-self:end;padding:10px 12px;border:1px solid #d9e7f2;border-radius:12px;background:#f7faff;color:#486483}.office-work-form .office-tips b{display:block;margin-bottom:3px;font-size:12px}.office-work-form .office-tips small{display:block;font-size:11px;line-height:1.5}.photo-upload-panel{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:16px;border:1px dashed #bbd4c3;border-radius:14px;background:#fbfefc}.photo-upload-panel .upload-button input{display:none}.stored-photo-card figcaption{padding:6px 8px;color:#527062;font-size:11px;font-weight:700}.source-type-heading{display:flex;align-items:center;justify-content:space-between;margin:13px 0 7px;padding:7px 9px;border-radius:9px;background:#edf7f0;color:#1a5d3c;font-size:12px}.source-type-heading:first-child{margin-top:0}.source-type-heading span{font-size:10px;color:#5f7d6c}.source-output{color:#3d6a50!important}.report-record-columns{align-items:start}.detail-text{white-space:pre-wrap;line-height:1.75}.danger-zone{display:flex;justify-content:flex-end;margin-top:18px}.button.danger{background:#a72f2f;color:#fff;border-color:#a72f2f}
@media(max-width:1000px){.daily-work-type-grid,.daily-record-columns{grid-template-columns:1fr}.daily-work-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.daily-work-type-card{padding:18px}.office-work-form .sample-side{display:flex!important;position:sticky;bottom:calc(76px + env(safe-area-inset-bottom));z-index:40;margin:0;padding:10px;border:1px solid #dcebe0;border-radius:14px;background:rgba(255,255,255,.96);box-shadow:0 10px 24px rgba(10,55,33,.12);backdrop-filter:blur(8px)}.office-work-form .sample-side .button{flex:1}.daily-work-hero{padding-bottom:24px}.report-record-columns{gap:13px}}
@media(max-width:560px){.daily-work-type-card{grid-template-columns:auto 1fr;gap:11px;padding:16px;border-radius:15px}.daily-work-type-icon{width:42px;height:42px;border-radius:13px;font-size:22px}.daily-work-type-card h2{font-size:18px}.daily-work-type-card p{font-size:12px}.daily-work-type-card ul{padding-top:6px;font-size:11px}.daily-work-type-actions{gap:7px}.daily-work-type-actions .button{flex:1;min-width:130px}.office-category-chips{gap:5px}.office-category-chips span{font-size:10px;padding:4px 7px}.daily-work-summary-grid{gap:9px}.daily-work-summary-grid .task-summary{padding:13px}.daily-work-summary-grid .task-summary b{font-size:21px}.daily-work-summary-grid .task-summary small{font-size:10px}.photo-upload-panel{padding:13px}.report-filter-card .report-filter{grid-template-columns:1fr!important}.report-record-columns .table-wrap{max-height:none}}

/* R3.8.5 · spatial workbench / outfall inspection / tech-blue visual system */
:root{
  --ink:#10233f;
  --muted:#63758e;
  --forest:#0b6fd9;
  --forest-deep:#061c43;
  --mint:#e7f3ff;
  --sand:#f4f8fd;
  --line:#d9e7f5;
  --card:#ffffff;
  --shadow:0 18px 48px rgba(8,50,109,.10);
}
body{background:linear-gradient(180deg,#f7fbff 0,#f2f7fc 100%)}
.sidebar{background:linear-gradient(180deg,#08265a 0%,#051839 100%)}
.brand-mark{background:#dceeff;color:#0756b3}.brand small,.sidebar-foot{color:#a9c6ef}.sidebar-foot small{color:#79a5dc}.nav-item{color:#b9d4f5}.nav-primary{background:linear-gradient(135deg,#1687ef,#0a58bc)}.topbar{background:rgba(247,251,255,.9)}
.eyebrow,.text-link,.actions a,.actions button,.text-button,.record-date{color:#0b6fd9}.button.primary{background:linear-gradient(135deg,#0d79e8,#0759bf)}.button.ghost{border-color:#cfdef0;color:#1c4f85}.hero{background:linear-gradient(118deg,#06275b,#0b61bc 63%,#19a0e6)}.hero .button.primary{background:#e5f3ff;color:#0657ae}.hero .eyebrow{color:#aee3ff}.hero p{color:#d9edff}.metric-card.accent{background:#eaf5ff;border-color:#bfddfb}.task-pin{background:#e8f4ff;color:#0b6fd9}.tag.success{background:#e5f8f2;color:#0b9167}.tag.neutral{background:#edf3fa;color:#4f647c}.site-callout{background:#f3f9ff;border-color:#c4e1fb}.site-callout>span{color:#0b6fd9}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{border-color:#2c8df0;box-shadow:0 0 0 3px rgba(44,141,240,.14)}

.spatial-heading{margin-bottom:16px}.spatial-heading p{max-width:760px}.spatial-map-layout{grid-template-columns:minmax(0,1fr) 348px;align-items:start}.spatial-map-card{min-height:650px;background:linear-gradient(180deg,#fff,#f5f9fe);border-color:#d4e5f7}.spatial-map-card .leaflet-map{height:634px}.spatial-workbench{position:sticky;top:96px;display:flex;flex-direction:column;gap:12px;background:linear-gradient(165deg,#082a63,#061d45);padding:14px;border:1px solid rgba(144,206,255,.24);box-shadow:0 18px 42px rgba(4,32,78,.18)}.spatial-workbench-head{padding:8px 8px 2px}.spatial-workbench .eyebrow{color:#8ed8ff}.spatial-workbench h2{font-size:19px;margin:0 0 7px}.spatial-workbench p{font-size:12px;margin:0;line-height:1.55;color:#bfd7f4}.location-command-card{display:grid;gap:10px;padding:12px;border:1px solid rgba(147,210,255,.26);border-radius:12px;background:rgba(255,255,255,.08)}.location-command-card b,.location-command-card small{display:block}.location-command-card small{font-size:10px;color:#bcd6f3;line-height:1.5;margin-top:4px}.location-command-actions{display:flex;gap:7px}.spatial-workbench .button.primary{background:linear-gradient(135deg,#14a7ef,#1373df)}.spatial-workbench .button.ghost{background:rgba(255,255,255,.93);border-color:transparent;color:#0c4b92}.workbench-section{border:1px solid rgba(153,212,255,.2);border-radius:12px;background:rgba(0,0,0,.12);overflow:hidden}.workbench-section>summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px;color:#fff}.workbench-section>summary::-webkit-details-marker{display:none}.workbench-section>summary span{display:flex;align-items:center;gap:8px}.workbench-section>summary i{font-style:normal;width:20px;height:20px;border-radius:7px;display:grid;place-items:center;background:#1176d6;color:#fff;font-weight:900}.workbench-section>summary em{font-style:normal;color:#8cd6ff;transition:.16s}.workbench-section[open]>summary em{transform:rotate(180deg)}.workbench-section-body{border-top:1px solid rgba(153,212,255,.16);padding:11px}.workbench-tip{font-size:10px!important;color:#b9d7f3!important;margin:0 0 10px!important}.map-add-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.map-point-form{margin-top:10px}.compact-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.compact-form-grid label{display:block;color:#d9ecff;font-weight:700;font-size:10px}.compact-form-grid input,.compact-form-grid select,.compact-form-grid textarea{display:block;width:100%;margin-top:4px;border:1px solid rgba(174,222,255,.28);border-radius:8px;padding:8px;background:rgba(255,255,255,.98);color:#18395f;font-size:11px}.compact-form-grid textarea{resize:vertical}.compact-span-2{grid-column:span 2}.map-click-coordinates{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;background:rgba(14,130,232,.2);border:1px dashed rgba(159,220,255,.55);padding:8px;border-radius:8px;color:#d8f2ff!important;font-size:10px!important}.outfall-extra{border:1px solid rgba(255,179,86,.45);border-radius:10px;background:rgba(255,149,26,.09);padding:9px}.outfall-extra-title{margin:0 0 8px}.outfall-extra-title b,.outfall-extra-title small{display:block}.outfall-extra-title small{color:#f6c98c;font-size:10px;margin-top:3px}.map-add-continue{display:block;color:#d5eafd;font-size:10px;margin:10px 0}.map-add-form-actions{display:flex;gap:8px}.workbench-guide{padding:12px}.workbench-guide>b{display:block;margin:2px 0 7px}.workbench-guide .button{margin-top:9px}.spatial-legend{display:flex;align-items:center;gap:7px;flex-wrap:wrap;max-width:680px}.spatial-legend b{margin:0 4px 0 0}.outfall-legend-icon,.location-legend-icon{display:inline-grid;place-items:center;width:15px;height:15px;border-radius:5px;color:#fff;font-style:normal;font-size:10px;font-weight:900;margin-right:3px}.outfall-legend-icon{background:#f06a23}.location-legend-icon{background:#167ee6;border-radius:50%}.map-symbol.outfall{background:linear-gradient(135deg,#f17d28,#dc3e1e);border-radius:8px;transform:rotate(0);width:30px;height:30px}.map-symbol.outfall span{transform:none;font-size:20px;line-height:1}.map-symbol.outfall.risk-high{box-shadow:0 0 0 4px rgba(224,55,33,.22),0 3px 8px rgba(0,0,0,.25)}.map-symbol.outfall.risk-medium{background:linear-gradient(135deg,#f39d27,#e66a19)}.map-symbol.current-location{background:#0a7be5;border-radius:50%;transform:rotate(0);box-shadow:0 0 0 6px rgba(10,123,229,.18),0 3px 8px rgba(0,0,0,.25);animation:location-pulse 1.8s ease-out infinite}.map-symbol.current-location span{transform:none;font-size:18px}@keyframes location-pulse{0%{box-shadow:0 0 0 0 rgba(10,123,229,.38),0 3px 8px rgba(0,0,0,.25)}100%{box-shadow:0 0 0 12px rgba(10,123,229,0),0 3px 8px rgba(0,0,0,.25)}}.popup-navigation{margin-top:8px;border-top:1px dashed #d8e4ef;padding-top:7px}.popup-navigation summary{cursor:pointer;color:#0b67c9;font-weight:800;font-size:11px}.popup-navigation-links{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:7px}.popup-navigation-links a{background:#eef7ff;color:#0961b9!important;border:1px solid #c9e3fb;border-radius:7px;text-align:center;padding:6px 3px;font-size:10px;font-weight:800}.popup-navigation-links a:hover{background:#dceeff}.popup-navigation small{font-size:9px;margin-top:5px}.popup-outfall{border-left:4px solid #f06a23;padding:5px 8px;background:#fff6ef;border-radius:0 7px 7px 0;margin-bottom:8px}.popup-outfall>span{background:#ffe1cc!important;color:#a54112!important;font-weight:800}.popup-outfall b{margin-top:4px}.popup-outfall small{font-size:10px}.map-add-cursor{cursor:crosshair}.map-add-cursor .leaflet-interactive{cursor:crosshair}

.point-directory-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:-4px 0 13px}.point-directory-tabs a{display:inline-flex;align-items:center;gap:7px;border:1px solid #d5e5f7;background:#fff;padding:9px 12px;border-radius:11px;color:#57708e;font-size:12px;font-weight:800}.point-directory-tabs a.active{background:#e9f4ff;border-color:#8fc6fa;color:#0860bd}.point-directory-tabs .outfall-tab i{font-style:normal;background:#f06a23;color:#fff;width:18px;height:18px;display:grid;place-items:center;border-radius:6px}.point-filter-bar{margin-top:0}.point-directory-table th{background:#f4f9ff;color:#5d7693}.outfall-row td{background:linear-gradient(90deg,rgba(255,139,33,.055),transparent 52%)}.point-name-cell{display:flex;gap:9px;align-items:flex-start}.point-kind-icon{width:27px;height:27px;display:grid;place-items:center;border-radius:9px;background:#ece6ff;color:#6f40ba;font-weight:900;font-size:15px;flex:0 0 auto}.point-kind-icon.outfall{background:#fff0e6;color:#e0571c}.point-kind-chip{display:inline-flex;padding:4px 7px;border-radius:99px;font-size:10px;font-weight:800}.point-kind-chip.routine{background:#eee8ff;color:#6941a6}.point-kind-chip.outfall{background:#fff0e3;color:#b84813}.risk-chip{display:inline-flex;padding:2px 6px;border-radius:99px;font-size:9px;font-weight:800}.risk-chip.normal{background:#e8f5ff;color:#0b68c5}.risk-chip.medium{background:#fff3d4;color:#a56800}.risk-chip.high{background:#fee8e6;color:#bb322c}.archive-note{color:#8b5d47}.outfall-form-block{background:#fff8f0;border:1px solid #ffd6b4;border-radius:11px;padding:12px}.outfall-form-head{margin-bottom:10px}.outfall-form-head b,.outfall-form-head small{display:block}.outfall-form-head small{font-size:11px;color:#8b6045;margin-top:3px}.outfall-inspection-callout{border:1px solid #ffd7b6;background:#fff8f0;border-radius:9px;padding:8px 10px;margin-top:8px}.outfall-inspection-callout b,.outfall-inspection-callout small{display:block}.outfall-inspection-callout b{color:#bd541e;font-size:11px}.outfall-inspection-callout small{color:#805d48;font-size:10px;line-height:1.5;margin-top:3px}

@media(max-width:1180px){.spatial-map-layout{grid-template-columns:minmax(0,1fr) 310px}.spatial-workbench{padding:11px}.compact-form-grid{grid-template-columns:1fr}.compact-span-2{grid-column:span 1}.popup-navigation-links{grid-template-columns:repeat(2,1fr)}}
@media(max-width:1000px){.spatial-map-layout{grid-template-columns:1fr}.spatial-workbench{position:static;order:2}.spatial-map-card{min-height:560px}.spatial-map-card .leaflet-map{height:544px}.spatial-workbench{display:grid;grid-template-columns:1fr 1fr}.spatial-workbench-head,.location-command-card,.workbench-guide{grid-column:1/-1}.workbench-section{height:max-content}.map-legend{bottom:18px;left:18px;max-width:calc(100% - 36px)}.point-directory-heading{flex-direction:column}.point-directory-heading .heading-actions{width:100%;flex-wrap:wrap}}
@media(max-width:620px){.spatial-workbench{display:flex;gap:10px;padding:10px}.spatial-map-card{padding:5px;min-height:500px}.spatial-map-card .leaflet-map{height:488px;border-radius:10px}.spatial-legend{font-size:9px;gap:4px;padding:7px 8px}.spatial-legend span{margin-right:2px}.map-filter-extended{display:grid!important;grid-template-columns:1fr 1fr;gap:7px}.map-filter-extended label{font-size:10px}.map-filter-extended select{min-width:0;width:100%}.spatial-heading .map-filter{width:100%}.compact-form-grid{grid-template-columns:1fr 1fr}.compact-span-2{grid-column:span 2}.location-command-actions .button{flex:1}.point-directory-tabs{overflow:auto;flex-wrap:nowrap;padding-bottom:3px}.point-directory-tabs a{white-space:nowrap}.point-filter-bar{flex-direction:column;align-items:stretch}.point-filter-bar form{display:grid;grid-template-columns:1fr 1fr;gap:7px}.point-filter-bar form select{width:100%;min-width:0}.point-filter-bar span{margin-left:0}.outfall-form-block .form-grid{grid-template-columns:1fr}.outfall-form-block .span-2{grid-column:span 1}.outfall-inspection-callout{margin-top:6px}.popup-navigation-links{grid-template-columns:repeat(4,1fr)}.popup-navigation-links a{font-size:9px;padding:5px 2px}}

/* R3.8.6 · standardized inspection-point catalogue, classified map symbols,
   outfall batch import and Maonan Station blue login branding. */
.import-type-guide{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:-5px 0 18px;padding:18px 20px;border-color:#cfe5fb;background:linear-gradient(115deg,#f8fcff,#edf7ff)}
.import-type-guide h2{margin:0 0 5px;color:#0a5fae}.import-type-guide p{margin:0;max-width:820px;line-height:1.7;color:#527293;font-size:12px}.import-card-highlight{border-color:#a9cff7;background:linear-gradient(150deg,#fff,#f0f8ff)}.outfall-import-card{border-color:#ffd1bc;background:linear-gradient(150deg,#fff,#fff6f0)}.outfall-import-card .import-icon{background:#fff0e6;color:#df571d}.import-card-highlight .import-icon{background:#e5f3ff;color:#0b67bf}
.type-legend{display:inline-grid;place-items:center;width:15px;height:15px;border-radius:5px;color:#fff;font-style:normal;font-size:9px;font-weight:900;margin-right:3px;background:#2679ce}.type-legend.national{background:#7d42c7}.type-legend.enterprise{background:#a76b16}.type-legend.black{background:#61506d}
.map-symbol.inspection{width:30px;height:30px;border-radius:9px;background:linear-gradient(135deg,#4593e9,#1667c8);box-shadow:0 3px 9px rgba(8,65,135,.28)}.map-symbol.inspection span{font-size:13px;transform:none;font-weight:900}.map-symbol.inspection.type-national{background:linear-gradient(135deg,#9a64dc,#6c32b2)}.map-symbol.inspection.type-provincial{background:linear-gradient(135deg,#3a9ccc,#12688f)}.map-symbol.inspection.type-municipal{background:linear-gradient(135deg,#25b39a,#087e69)}.map-symbol.inspection.type-river_chief{background:linear-gradient(135deg,#3d9ce0,#1671ba)}.map-symbol.inspection.type-enterprise{background:linear-gradient(135deg,#d09a39,#936018)}.map-symbol.inspection.type-wastewater_treatment{background:linear-gradient(135deg,#3796e6,#1761bb)}.map-symbol.inspection.type-urban_black_odor{background:linear-gradient(135deg,#7d6a89,#50425b)}.map-symbol.inspection.type-rural_black_odor{background:linear-gradient(135deg,#b79c65,#806637)}.map-symbol.inspection.type-rural_sewage{background:linear-gradient(135deg,#28a58a,#13715e)}
.point-kind-icon.type-routine,.point-kind-chip.type-routine{background:#e7f2ff;color:#1668c2}.point-kind-icon.type-outfall,.point-kind-chip.type-outfall{background:#fff0e6;color:#d54d1e}.point-kind-icon.type-national,.point-kind-chip.type-national{background:#f0e8ff;color:#6d39b6}.point-kind-icon.type-provincial,.point-kind-chip.type-provincial{background:#e4f6ff;color:#126e9d}.point-kind-icon.type-municipal,.point-kind-chip.type-municipal{background:#e4faf5;color:#087d68}.point-kind-icon.type-river_chief,.point-kind-chip.type-river_chief{background:#e8f5ff;color:#1671ba}.point-kind-icon.type-enterprise,.point-kind-chip.type-enterprise{background:#fff4dd;color:#916014}.point-kind-icon.type-wastewater_treatment,.point-kind-chip.type-wastewater_treatment{background:#e6f4ff;color:#1666bf}.point-kind-icon.type-urban_black_odor,.point-kind-chip.type-urban_black_odor{background:#eeeaf0;color:#584563}.point-kind-icon.type-rural_black_odor,.point-kind-chip.type-rural_black_odor{background:#f7efd9;color:#7e6337}.point-kind-icon.type-rural_sewage,.point-kind-chip.type-rural_sewage{background:#e3f7f0;color:#137662}.type-row-national td{background:linear-gradient(90deg,rgba(124,66,199,.055),transparent 55%)}.type-row-enterprise td{background:linear-gradient(90deg,rgba(167,107,22,.05),transparent 55%)}.type-row-urban_black_odor td,.type-row-rural_black_odor td{background:linear-gradient(90deg,rgba(97,80,109,.045),transparent 55%)}.inspection-badge.type-national{background:#f0e8ff;color:#6d39b6}.inspection-badge.type-enterprise{background:#fff4dd;color:#916014}.inspection-badge.type-urban_black_odor,.inspection-badge.type-rural_black_odor{background:#eeeaf0;color:#584563}
.login-blue-theme{background:radial-gradient(circle at 72% 14%,#d6efff 0,rgba(214,239,255,0) 28%),#edf6ff}.login-blue-theme .login-scene{background:linear-gradient(125deg,rgba(4,40,103,.93),rgba(8,107,193,.72)),url('https://images.unsplash.com/photo-1547683905-f686c993aae5?auto=format&fit=crop&w=1600&q=80') center/cover}.login-blue-theme .login-scene:after{content:'MAONAN';color:rgba(233,247,255,.16)}.login-blue-theme .login-panel{background:linear-gradient(145deg,rgba(255,255,255,.97),rgba(238,247,255,.98));box-shadow:-18px 0 50px rgba(8,75,151,.08)}.login-blue-theme .login-brand .brand-mark{background:linear-gradient(145deg,#087edb,#0d3d8d);color:#fff;box-shadow:0 9px 20px rgba(9,82,168,.2)}.login-blue-theme .login-brand b{color:#103b70}.login-blue-theme .login-brand small,.login-blue-theme .login-note{color:#6b86a7}.login-blue-theme .login-copy .eyebrow{color:#0870c8}.login-blue-theme .login-copy h1{color:#0c3267}.login-blue-theme .login-copy p{color:#5d7799}.login-blue-theme .login-form input{border-color:#c8ddf3;background:#fff}.login-blue-theme .login-form input:focus{border-color:#2388dc;box-shadow:0 0 0 3px rgba(35,136,220,.13)}.login-blue-theme .login-form .button.primary{background:linear-gradient(135deg,#0a76ce,#0d4598);box-shadow:0 10px 20px rgba(10,91,182,.18)}
@media(max-width:760px){.import-type-guide{display:block;padding:15px}.import-type-guide .button{margin-top:12px;width:100%}.map-filter-extended{grid-template-columns:1fr 1fr!important}.map-filter-extended label:last-of-type{grid-column:span 2}.spatial-legend{max-width:calc(100% - 20px)}.spatial-legend span{font-size:8px}.type-legend{transform:scale(.9)}}

/* R3.9 dual-subsystem visual system: technology blue, desktop + mobile */
:root{--r390-blue:#0b63d8;--r390-deep:#073b91;--r390-cyan:#10a8e8;--r390-soft:#eef6ff;--r390-line:#d8e7f7;--r390-ink:#12213a;--r390-muted:#6b7b91;--r390-danger:#df4d5d;--r390-success:#0b9a6d;}
.tech-blue-shell{background:linear-gradient(145deg,#f7fbff 0%,#eef6ff 48%,#f8fbff 100%);color:var(--r390-ink)}
.r390-sidebar{background:linear-gradient(180deg,#062d71 0%,#064ba9 58%,#0c70d7 100%)!important;border-right:none!important;box-shadow:8px 0 30px rgba(8,65,143,.14)}
.r390-sidebar .sidebar-brand{color:#fff!important}.r390-sidebar .sidebar-brand small,.r390-sidebar .sidebar-foot{color:rgba(235,246,255,.72)!important}.r390-sidebar .nav-item{color:rgba(240,248,255,.84)!important;border:1px solid transparent}.r390-sidebar .nav-item:hover,.r390-sidebar .nav-item.active{background:rgba(255,255,255,.14)!important;color:#fff!important;border-color:rgba(255,255,255,.12)!important}.r390-sidebar .nav-label{margin:20px 14px 7px;color:rgba(210,236,255,.6);font-size:11px;letter-spacing:.12em}.system-chip{margin:8px 14px 14px;padding:8px 10px;border-radius:10px;font-size:12px;background:rgba(255,255,255,.12);color:#fff}.system-chip-research{background:rgba(18,184,160,.25)}.system-chip-daily{background:rgba(29,139,255,.28)}
.r390-topbar{background:rgba(255,255,255,.9)!important;border-bottom:1px solid var(--r390-line)!important;backdrop-filter:blur(14px)}.switch-system-btn{border:1px solid #b8d7f7;background:#f4f9ff;color:#0755af;border-radius:9px;padding:8px 10px;font-size:12px;cursor:pointer}.switch-system-btn:hover{background:#e2f0ff}.r390-main{background:transparent}
.r390-hero{position:relative;overflow:hidden;min-height:205px;border-radius:22px;padding:36px 40px;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(125deg,#073a8d 0%,#0b6ed5 55%,#13a7e7 100%);color:#fff;box-shadow:0 18px 42px rgba(5,73,166,.18)}.r390-hero:before{content:"";position:absolute;width:360px;height:360px;border-radius:50%;right:-90px;top:-180px;border:1px solid rgba(255,255,255,.23);box-shadow:0 0 0 42px rgba(255,255,255,.05),0 0 0 84px rgba(255,255,255,.035)}.r390-hero h1{margin:5px 0 10px;font-size:32px;color:#fff}.r390-hero p{max-width:700px;margin:0;color:rgba(242,249,255,.88);line-height:1.75}.r390-hero .eyebrow{color:#bfe9ff}.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.r390-hero .button.primary{background:#fff;color:#0754af;border-color:#fff}.r390-hero .button.ghost{color:#fff;border-color:rgba(255,255,255,.5);background:rgba(255,255,255,.1)}.r390-hero-orb{position:relative;z-index:1;display:grid;place-items:center;min-width:130px;height:130px;border-radius:50%;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.28);font-size:58px;box-shadow:inset 0 0 24px rgba(255,255,255,.08)}.r390-hero-orb small{font-size:10px;letter-spacing:.14em;margin-top:-10px}.daily-hero{background:linear-gradient(125deg,#063c8a 0%,#0a6bc2 55%,#20a0dc 100%)}
.r390-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:18px 0}.r390-stat-grid>a{background:#fff;border:1px solid var(--r390-line);border-radius:16px;padding:18px 20px;text-decoration:none;color:var(--r390-ink);box-shadow:0 8px 22px rgba(13,83,160,.06);transition:.2s}.r390-stat-grid>a:hover{transform:translateY(-2px);border-color:#89c3fb}.r390-stat-grid b{display:block;color:var(--r390-blue);font-size:28px}.r390-stat-grid small{color:var(--r390-muted);margin-top:6px;display:block}
.r390-two-col{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.85fr);gap:16px;margin-bottom:16px}.r390-list{display:grid}.r390-list-row{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid #edf3fa;text-decoration:none;color:var(--r390-ink)}.r390-list-row:last-child{border-bottom:none}.r390-list-row:hover b{color:var(--r390-blue)}.r390-list-row>div{min-width:0;flex:1}.r390-list-row b,.r390-list-row small{display:block}.r390-list-row small{font-size:12px;color:var(--r390-muted);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.type-badge{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--r390-soft);color:var(--r390-blue);font-weight:700}.r390-steps{padding-left:20px;margin:12px 0}.r390-steps li{padding:8px 0}.r390-steps b,.r390-steps span{display:block}.r390-steps span{font-size:12px;color:var(--r390-muted);line-height:1.65;margin-top:2px}
.system-select-hero{display:flex;align-items:center;justify-content:space-between;padding:25px 30px;border-radius:20px;background:linear-gradient(125deg,#073a8d,#0e82dc);color:#fff;margin-bottom:18px}.system-select-hero h1{color:#fff;margin:6px 0}.system-select-hero p{color:#dcefff;max-width:700px}.system-select-mark{font-size:64px;opacity:.82}.system-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.system-choice-card{background:#fff;border:1px solid var(--r390-line);border-radius:20px;padding:26px;box-shadow:0 12px 30px rgba(12,87,165,.07)}.system-choice-card h2{margin:9px 0;color:#0b4d9d}.system-choice-card p{color:var(--r390-muted);line-height:1.8}.system-choice-card ul{padding-left:18px;color:#4e6380;line-height:1.85;font-size:14px;min-height:100px}.system-choice-icon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;font-size:24px;background:#eaf4ff;color:var(--r390-blue)}.system-choice-card.daily .system-choice-icon{background:#e6f9ff;color:#007ca9}
.r390-form{max-width:1020px;background:#fff;border:1px solid var(--r390-line);border-radius:18px;padding:24px;box-shadow:0 12px 28px rgba(11,83,159,.06)}.r390-form>label{display:block;margin-bottom:15px}.r390-form label{font-weight:600;color:#243854}.r390-form input,.r390-form textarea,.r390-form select{margin-top:6px;width:100%;box-sizing:border-box;border:1px solid #cbdced;border-radius:9px;padding:10px 11px;background:#fff;color:#1b2b42}.r390-form textarea{resize:vertical}.r390-result-toggle{display:flex;gap:20px;margin:18px 0;padding:13px 15px;background:#f5f9ff;border:1px solid #d8e8f9;border-radius:12px}.r390-result-toggle label{display:flex;align-items:center;gap:7px;margin:0}.r390-result-toggle input{width:auto;margin:0}.r390-unavailable-block{background:#fff5f5;border:1px solid #ffd8dd;padding:16px;border-radius:12px;margin:16px 0}.r390-unavailable-block h2{font-size:17px;margin:0 0 7px;color:#b13747}.r390-unavailable-block p{font-size:13px;color:#80515a}.r390-completed-block{margin-top:16px}.form-section-title{display:flex;gap:12px;align-items:flex-start;margin:24px 0 14px}.form-section-title>span{width:29px;height:29px;border-radius:50%;display:grid;place-items:center;background:#e6f2ff;color:#0870d2;font-weight:800;font-size:12px}.form-section-title h2{margin:0;font-size:18px}.form-section-title p{margin:4px 0 0;color:var(--r390-muted);font-size:13px}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.form-grid .full,.form-grid .compact-span-2{grid-column:1/-1}.readings-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.form-actions{display:flex;gap:10px;margin-top:22px}.r390-point-summary{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid #d8e8f8;background:#f7fbff;border-radius:13px;margin:16px 0}.r390-point-summary>span:first-child{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:#0a69d3;color:#fff}.r390-point-summary>div{flex:1}.r390-point-summary b,.r390-point-summary small{display:block}.r390-point-summary small{color:var(--r390-muted);font-size:12px;margin-top:3px}.r390-unavailable-result{padding:17px;border-radius:12px;background:#fff1f3;border:1px solid #ffd6db}.r390-unavailable-result b{font-size:18px;color:#c1394c}.r390-unavailable-result p{margin:8px 0;color:#643b42}.r390-unavailable-result small{color:#8a6670}
.r390-map-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px}.r390-map-side{display:grid;align-content:start;gap:14px}.r390-map-info{min-height:160px}.r390-map-legend{display:flex;flex-wrap:wrap;gap:8px 12px;padding:10px 12px}.r390-map-legend span{display:flex;align-items:center;gap:5px;font-size:11px;color:#52647d}.r390-map-legend i{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:10px;font-style:normal}.r390-map-marker{background:transparent!important;border:0!important}.r390-map-marker span{display:grid;place-items:center;width:32px;height:32px;border-radius:50% 50% 50% 0;background:var(--marker);color:#fff;border:2px solid #fff;box-shadow:0 3px 10px rgba(8,44,90,.35);font-weight:800;font-size:12px;transform:rotate(-45deg)}.r390-map-marker span::first-letter{transform:rotate(45deg)}
.r390-type-chip{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:3px 8px;font-size:11px;background:#e9f4ff;color:#1261ad}.r390-type-outfall{background:#fff0ec;color:#c6502c}.r390-type-national{background:#f4eefe;color:#7137af}.r390-type-provincial{background:#e9f6fb;color:#1677a8}.r390-type-municipal{background:#e9fbf5;color:#0b8872}.r390-type-river_chief{background:#edf7ff;color:#207bbb}.r390-type-enterprise{background:#fff5df;color:#9b681a}.r390-type-wastewater_treatment{background:#edf4ff;color:#1662b7}.r390-type-urban_black_odor,.r390-type-rural_black_odor{background:#f3f1f5;color:#62536c}.r390-type-rural_sewage{background:#e7f8f3;color:#16866f}
.r390-text-block{margin-top:16px;padding:15px;background:#f7fbff;border-radius:11px}.r390-text-block b{display:block;color:#26517f;margin-top:5px}.r390-text-block p{margin:5px 0 13px;white-space:pre-wrap;line-height:1.75;color:#3b506d}.permission-catalog{display:grid;grid-template-columns:1fr 1fr;gap:24px}.permission-catalog b,.permission-catalog small{display:block}.permission-catalog b{color:#0d5eaf;margin-bottom:7px}.permission-catalog small{line-height:1.7;color:#5f7188;font-size:12px}.permission-checks{display:flex;flex-wrap:wrap;gap:6px 10px}.permission-checks label{font-size:12px;white-space:nowrap}.permission-checks input{accent-color:var(--r390-blue)}.permission-table td{vertical-align:top}.permission-table td b,.permission-table td small{display:block}.permission-table td small{font-size:11px;color:var(--r390-muted);margin-top:3px}
.r390-login{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 18% 12%,#239bef 0,transparent 28%),radial-gradient(circle at 88% 75%,#1ac1df 0,transparent 25%),linear-gradient(145deg,#031a50,#0754b2 58%,#0d8ddb);padding:24px}.r390-login-card{position:relative;width:min(1040px,100%);min-height:590px;border:1px solid rgba(255,255,255,.22);border-radius:28px;overflow:hidden;background:linear-gradient(105deg,rgba(6,40,101,.9) 0%,rgba(7,57,137,.8) 47%,rgba(255,255,255,.96) 47.1%);display:grid;grid-template-columns:1.05fr .95fr;padding:54px;box-sizing:border-box;box-shadow:0 34px 80px rgba(0,20,70,.34)}.r390-login-brand{position:absolute;top:30px;left:38px;display:flex;align-items:center;gap:10px;color:#fff}.r390-login-brand>span{width:34px;height:34px;display:grid;place-items:center;border-radius:11px;background:rgba(255,255,255,.17)}.r390-login-brand b,.r390-login-brand small{display:block}.r390-login-brand small{font-size:10px;letter-spacing:.12em;opacity:.7;margin-top:2px}.r390-login-copy{align-self:center;color:#fff;padding-right:38px}.r390-login-copy .eyebrow{color:#9fdfff}.r390-login-copy h1{font-size:34px;line-height:1.3;margin:12px 0}.r390-login-copy p{color:#d0e7ff;line-height:1.85}.r390-login-form{align-self:center;padding:42px;background:#fff;border-radius:18px;box-shadow:0 14px 36px rgba(18,63,123,.13)}.r390-login-form label{display:block;font-size:13px;font-weight:700;color:#243a59;margin-bottom:18px}.r390-login-form input{display:block;width:100%;box-sizing:border-box;border:1px solid #cddcf0;border-radius:10px;padding:12px;margin-top:7px}.r390-login-form .full{width:100%;justify-content:space-between;margin-top:6px}.login-note{position:absolute;right:54px;bottom:26px;font-size:11px;color:#6d7d93}
.mobile-header-r390{display:none}
@media(max-width:1000px){.r390-sidebar,.r390-topbar{display:none!important}.r390-main{margin-left:0!important;padding-top:62px;padding-bottom:76px}.page-content{padding:14px!important}.mobile-header-r390{position:fixed;top:0;left:0;right:0;z-index:700;display:flex;align-items:center;justify-content:space-between;gap:8px;height:62px;padding:0 12px;background:linear-gradient(110deg,#063c8c,#0b6ece);color:#fff;box-shadow:0 4px 17px rgba(2,44,106,.24)}.mobile-header-r390 .brand{display:flex;gap:8px;align-items:center;color:#fff;text-decoration:none;min-width:0}.mobile-header-r390 .brand-mark{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;background:rgba(255,255,255,.16)}.mobile-header-r390 .brand b,.mobile-header-r390 .brand small{display:block}.mobile-header-r390 .brand b{font-size:14px}.mobile-header-r390 .brand small{font-size:9px;letter-spacing:.1em;opacity:.76}.mobile-tools-r390{position:relative;margin-left:auto}.mobile-tools-r390 summary{list-style:none;padding:7px 9px;border:1px solid rgba(255,255,255,.34);border-radius:8px;font-size:12px;cursor:pointer}.mobile-tools-r390 summary::-webkit-details-marker{display:none}.mobile-tools-r390 summary i{font-style:normal;margin-left:3px}.mobile-tools-panel-r390{position:absolute;right:0;top:38px;width:190px;padding:8px;background:#fff;border-radius:12px;box-shadow:0 12px 35px rgba(3,35,86,.26);display:grid}.mobile-tools-panel-r390 a{padding:10px;color:#23405e;text-decoration:none;font-size:13px;border-bottom:1px solid #edf3fa}.mobile-tools-panel-r390 a:last-child{border-bottom:none}.mobile-logout-r390{padding:8px 9px;border:0;border-radius:8px;background:rgba(255,255,255,.16);color:#fff;font-size:12px}.r390-bottom-nav{display:flex!important;z-index:700;background:#fff;border-top:1px solid #dceafa;box-shadow:0 -4px 18px rgba(14,73,138,.08)}.r390-bottom-nav a{color:#52708e}.r390-bottom-nav a.active{color:#0871d8}.r390-bottom-nav .mobile-add{background:linear-gradient(135deg,#0877dc,#16a7e1);color:#fff!important;box-shadow:0 6px 17px rgba(9,110,207,.32)}.r390-hero{min-height:0;padding:25px 20px;border-radius:16px}.r390-hero h1{font-size:25px}.r390-hero-orb{display:none}.r390-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.r390-stat-grid>a{padding:14px}.r390-stat-grid b{font-size:23px}.r390-two-col,.r390-map-layout,.system-choice-grid{grid-template-columns:1fr}.r390-map-layout{gap:12px}.r390-map-side{grid-template-columns:1fr}.leaflet-map{min-height:420px!important}.form-grid,.readings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.r390-form{padding:16px;border-radius:14px}.r390-result-toggle{display:grid;gap:9px}.system-select-hero{padding:20px}.system-select-mark{display:none}.system-choice-card{padding:20px}.permission-catalog{grid-template-columns:1fr}.permission-table{min-width:900px}.r390-login{padding:0;place-items:stretch}.r390-login-card{width:100%;border-radius:0;min-height:100vh;grid-template-columns:1fr;background:linear-gradient(180deg,rgba(5,48,118,.95) 0%,rgba(6,78,168,.86) 40%,rgba(255,255,255,.98) 40.1%);padding:92px 20px 30px}.r390-login-copy{align-self:start;padding:0}.r390-login-copy h1{font-size:26px}.r390-login-form{padding:24px;margin-top:18px}.login-note{position:static;text-align:center;margin:14px 0 0;color:#5d6c83}.r390-login-brand{left:20px;top:25px}.r390-list-row{align-items:flex-start}.r390-list-row .tag{white-space:nowrap}.table-wrap{overflow-x:auto}}
@media(max-width:520px){.form-grid,.readings-grid{grid-template-columns:1fr}.r390-stat-grid{grid-template-columns:1fr 1fr}.r390-hero h1{font-size:23px}.r390-point-summary{align-items:flex-start}.r390-point-summary .tag{margin-top:3px}.r390-login-copy p{font-size:13px}.system-choice-card ul{min-height:0}.r390-map-legend{max-height:130px;overflow:auto}.detail-grid{display:block!important}.side-sticky{position:static!important;margin-top:14px}}
/* R3.9.0 daily point management refinements */
.r390-inline-manager{margin:0 0 16px;border:1px solid rgba(31,112,255,.22);background:linear-gradient(135deg,rgba(14,91,205,.07),rgba(19,183,244,.04));}
.r390-inline-manager summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;padding:16px 18px;color:#0a57c7;font-weight:800;list-style:none;}
.r390-inline-manager summary::-webkit-details-marker{display:none}.r390-inline-manager summary small{font-weight:500;color:#56718e}.r390-point-create-form{padding:4px 18px 18px}.r390-row-actions{white-space:nowrap}.r390-row-actions .text-link{margin-right:12px}.card-footer-note{padding:12px 16px;color:#58708b;border-top:1px solid #e7eff8;font-size:.88rem}
@media(max-width:760px){.r390-inline-manager summary{align-items:flex-start;flex-direction:column}.r390-row-actions{display:flex;gap:10px;flex-wrap:wrap}.r390-row-actions .text-link{margin-right:0}.r390-point-create-form{padding:0 12px 14px}.card-footer-note{font-size:.82rem}}

/* R3.9.2 high-contrast and accessible field UX */
:root{--r392-ink:#102a43;--r392-muted:#486581;--r392-blue:#1266dc;--r392-deep:#073b74;--r392-border:#bed3ec;--r392-bg:#f4f8fc}
body,.main-content{color:var(--r392-ink)!important;background:var(--r392-bg)}
.page-heading h1{color:#082f62!important;font-size:clamp(25px,2.25vw,34px)!important;line-height:1.28}.page-heading p,.card p,.muted,small{color:#486581!important}.eyebrow{color:#1266dc!important;font-size:11px!important;letter-spacing:1.15px;font-weight:850}.card h2,.section-head h2{color:#102a43!important;font-size:20px!important}.card h3{color:#16395c!important;font-size:16px!important}.nav-item,.sidebar-foot,.user-name{font-size:14px!important}.nav-label{font-size:11px!important}.detail-list span,.reading-card span{font-size:12px!important;color:#486581!important}.detail-list b,.reading-card b{font-size:15px!important;color:#102a43!important}.tag{color:#0b3b70!important;background:#e8f2ff!important;border:1px solid #b9d8fb}.button.primary{background:#1266dc!important;color:#fff!important}.button.ghost{border-color:#86add8!important;color:#0b4d98!important;background:#fff!important}.button.ghost:hover{background:#e9f3ff!important}.text-link{color:#075fc7!important;font-weight:750}.danger-text,.danger-button{color:#b42318!important}.flash{font-size:14px!important}
.r392-form{display:grid;gap:15px}.r392-form label{color:#183b5b!important;font-size:13px!important;font-weight:750}.r392-form input,.r392-form select,.r392-form textarea{color:#102a43!important;background:#fff!important;border-color:#a8c5e4!important;font-size:15px!important}.r392-form input::placeholder,.r392-form textarea::placeholder{color:#6b86a0!important}.r392-point-summary{display:flex;gap:12px;align-items:center;padding:14px;border:1px solid #bcd6f4;background:linear-gradient(135deg,#eef7ff,#fff);border-radius:14px}.r392-point-summary>span:first-child{width:34px;height:34px;display:grid;place-items:center;border-radius:11px;background:#1266dc;color:#fff;font-weight:900}.r392-point-summary b{display:block;color:#102a43;font-size:16px}.r392-point-summary small{display:block;margin-top:4px}.r392-ocr-message{padding:9px 11px;margin:10px 0 0;border-radius:10px;background:#eaf4ff!important;color:#0b4d98!important;font-weight:700}.standard-meter-preview{margin:10px 0 0;border:1px solid #a8c5e4;border-radius:12px;overflow:hidden;background:#fff}.standard-meter-preview img{display:block;width:100%;max-height:330px;object-fit:contain;background:#102a43}.standard-meter-preview figcaption{padding:8px 10px;color:#245278;font-size:12px}.parameter-field span{color:#18466d!important;font-weight:800}.photo-upload-panel,.quick-test-card{background:#fff;border:1px solid #bcd3eb!important}.photo-upload-panel b,.quick-test-card b{color:#102a43!important;font-size:15px!important}.photo-choice{color:#0b4d98!important;background:#edf6ff!important;border:1px solid #9cc4ee!important;font-size:13px!important}.photo-preview-grid{min-height:4px}.r392-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:13px}.r392-photo-card{background:#fff;border:1px solid #b9d3ec;border-radius:13px;overflow:hidden;padding:9px}.r392-photo-card>a:first-child{display:block;background:#eaf2fb;border-radius:9px;overflow:hidden}.r392-photo-card img{width:100%;height:146px;object-fit:cover;display:block}.r392-photo-card>b{display:block;color:#102a43;font-size:13px;margin:8px 3px}.r392-photo-card>div{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.r392-photo-card form{display:inline;margin:0}.r392-photo-card .text-button{border:0;background:none;padding:0;font-weight:750;cursor:pointer}.r392-map-filter{display:flex;align-items:end;gap:12px;flex-wrap:wrap;padding:14px 16px;margin-bottom:14px}.r392-map-filter label{min-width:200px;color:#183b5b;font-size:13px;font-weight:750}.r392-map-filter select{width:100%;margin-top:4px}.r392-map-filter small{font-weight:750}.r392-map-shell{display:grid;grid-template-columns:minmax(0,1fr) 315px;gap:16px}.map-card{position:relative!important;overflow:hidden}.map-floating-actions{position:absolute;z-index:700;left:12px;bottom:12px;display:flex;gap:8px;flex-wrap:wrap}.r392-map-pin{width:28px;height:28px;background:var(--pin);border-radius:50% 50% 50% 0;transform:rotate(-45deg);display:grid;place-items:center;border:2px solid #fff;color:#fff;font-weight:900;box-shadow:0 3px 10px rgba(4,42,78,.36)}.r392-map-pin::first-letter{transform:rotate(45deg)}.r392-map-pin{font-size:14px}.site-name-label{background:#062e5d!important;color:#fff!important;border:1px solid #5db4ff!important;border-radius:6px!important;padding:3px 6px!important;box-shadow:0 2px 7px rgba(0,38,77,.36)!important;font-size:12px!important;font-weight:750!important}.site-name-label:before{border-top-color:#062e5d!important}.popup-card h2{font-size:17px!important;color:#102a43!important}.popup-navigation{margin-top:9px}.popup-navigation summary{cursor:pointer;color:#075fc7;font-weight:800}.popup-navigation div{display:flex;gap:7px;flex-wrap:wrap;padding-top:7px}.popup-navigation a{border:1px solid #9bc2ec;background:#eff7ff;border-radius:8px;padding:5px 8px;color:#075fc7;font-weight:750;text-decoration:none;font-size:12px}.popup-task{margin:8px 0;padding:7px 8px;border-radius:8px;background:#eaf4ff;color:#0b4d98;font-weight:750;font-size:12px}
@media(max-width:1000px){.r392-map-shell{grid-template-columns:1fr}.r392-map-shell>.map-side{display:block}.r392-map-filter{padding:12px}.r392-map-filter label{min-width:150px;flex:1}.r392-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.r392-photo-card img{height:125px}.map-floating-actions{left:9px;bottom:9px}.map-floating-actions .button{font-size:12px;padding:9px 10px}.leaflet-map{height:560px!important}}
@media(max-width:620px){.page-heading h1{font-size:25px!important}.page-heading p{font-size:14px!important}.card h2,.section-head h2{font-size:18px!important}.r392-map-filter{display:grid;grid-template-columns:1fr 1fr}.r392-map-filter small{grid-column:1/-1}.r392-map-filter .button{align-self:end}.r392-point-summary{align-items:flex-start}.r392-point-summary .tag{margin-left:auto;font-size:11px}.r392-gallery{grid-template-columns:1fr 1fr;gap:9px}.r392-photo-card{padding:7px}.r392-photo-card img{height:112px}.location-actions{gap:7px}.location-actions .button{font-size:12px!important}.quick-test-grid{grid-template-columns:1fr 1fr!important}.photo-upload-grid{grid-template-columns:1fr!important}.map-card{min-height:570px}.leaflet-map{height:554px!important}.site-name-label{font-size:11px!important;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
/* R3.9.3: stable daily-point state display and full editor */
.completion-person{display:block;margin-top:5px;color:#24506f;font-weight:650;font-size:.86rem;line-height:1.35}
.point-edit-shell{max-width:1080px;margin:0 auto 32px}
.r393-point-edit-form{margin-top:18px}
.r393-point-edit-form .inner-grid{margin-top:14px}
.r393-outfall-fields{border:1px solid #c9ddf2;border-radius:14px;background:#f8fbff;padding:12px 14px}
.r393-outfall-fields summary{cursor:pointer;font-size:1rem;font-weight:800;color:#0b4c88}
.r393-outfall-fields summary small{font-weight:600;color:#3d6685;margin-left:10px}
.r393-outfall-fields[open] summary{margin-bottom:12px}
@media(max-width:720px){.completion-person{font-size:.82rem}.point-edit-shell{margin-bottom:20px}.r393-outfall-fields{padding:11px}.r393-outfall-fields summary small{display:block;margin:5px 0 0}.r390-row-actions{gap:12px}}

/* R4.0 · spatial layer workspace — high-contrast, desktop and mobile friendly. */
.spatial-layer-control{margin:12px 0 0 12px!important;font-family:inherit!important;max-width:min(340px,calc(100vw - 34px));color:#14233a}
.spatial-layer-panel{overflow:hidden;border:1px solid #a7c9f9;border-radius:14px;background:#ffffff;box-shadow:0 15px 34px rgba(15,50,98,.24)}
.spatial-layer-panel>summary{display:flex;align-items:center;justify-content:center;min-width:76px;min-height:40px;padding:0 12px;list-style:none;cursor:pointer;background:#0b6fe8;color:#fff;font-weight:850;font-size:14px;letter-spacing:.2px}
.spatial-layer-panel>summary::-webkit-details-marker,.spatial-layer-panel>summary::marker{display:none}.spatial-layer-panel[open]>summary{background:#0759bb}
.spatial-layer-body{width:318px;max-height:min(66vh,570px);overflow:auto;padding:12px;background:#f7fbff}.spatial-layer-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.spatial-layer-head b{font-size:16px;color:#0c2e59}.spatial-layer-head a{color:#075fcb;font-size:13px;font-weight:800;text-decoration:none}.spatial-layer-tip{margin:7px 0 10px;color:#48617f;font-size:12px;line-height:1.5}
.spatial-folder-row,.spatial-layer-row{margin:6px 0;border:1px solid #c8dbf4;border-radius:10px;background:#fff;overflow:hidden}.spatial-folder-row>summary,.spatial-layer-row>summary{display:flex;align-items:center;gap:7px;min-height:37px;padding:0 8px;list-style:none;cursor:pointer}.spatial-folder-row>summary::-webkit-details-marker,.spatial-folder-row>summary::marker,.spatial-layer-row>summary::-webkit-details-marker,.spatial-layer-row>summary::marker{display:none}.spatial-folder-row>summary>i{margin-left:auto;color:#537399;font-style:normal;font-size:14px}.spatial-folder-row[open]>summary>i{transform:rotate(180deg)}.spatial-drag{color:#6885a7;cursor:grab;letter-spacing:-2px;font-size:16px;user-select:none}.spatial-visibility{display:flex;align-items:center;gap:7px;min-width:0;flex:1;color:#17365e;font-weight:780;font-size:13px}.spatial-visibility input{width:16px;height:16px;accent-color:#0b6fe8;flex:0 0 auto}.spatial-visibility span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spatial-visibility em{margin-left:auto;padding:1px 6px;border-radius:99px;background:#e7f0fc;color:#27609e;font-style:normal;font-size:11px}.spatial-layer-row>summary>i{margin-left:auto;color:#527499;font-size:11px;font-style:normal}.spatial-folder-children{padding:0 7px 7px 17px;border-top:1px solid #e2ecf8;background:#fcfeff}.spatial-layer-tools{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 11px;border-top:1px solid #e5edf8;color:#5c718c}.spatial-layer-tools a{color:#0b67d1;font-size:12px;font-weight:800;text-decoration:none}.spatial-layer-tools small{font-size:11px}.spatial-feature-list{margin:0;padding:4px 10px 8px 17px;list-style:none;background:#fbfdff}.spatial-feature-list li{padding:5px 0;border-bottom:1px dashed #dbe8f8}.spatial-feature-list li:last-child{border-bottom:0}.spatial-feature-list .spatial-visibility{font-size:12px;font-weight:650}.spatial-empty{padding:10px;color:#617895;font-size:12px;text-align:center}.is-dragging{opacity:.45}.is-drag-over{outline:2px dashed #0b6fe8;outline-offset:-3px}
.spatial-style-editor{position:absolute;z-index:1200;width:282px;margin:0;padding:0;overflow:hidden;border:1px solid #98bbed;border-radius:14px;background:#fff;box-shadow:0 18px 40px rgba(9,43,88,.33);color:#102b4d}.spatial-style-editor header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:12px 13px;background:linear-gradient(135deg,#0a62ce,#177ee9);color:#fff}.spatial-style-editor header span{display:block;color:#dcecff;font-size:9px;font-weight:900;letter-spacing:1.15px}.spatial-style-editor header b{display:block;max-width:205px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-size:14px}.spatial-style-editor header button{width:26px;height:26px;border:0;border-radius:8px;background:rgba(255,255,255,.16);color:#fff;font-size:20px;cursor:pointer}.spatial-style-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:12px}.spatial-style-grid label{display:grid;gap:4px;color:#315273;font-size:11px;font-weight:820}.spatial-style-grid input{width:100%}.spatial-style-grid input[type=color]{height:32px;padding:2px;border:1px solid #b9cde7;border-radius:7px;background:#fff}.spatial-style-grid input[type=range]{accent-color:#0b6fe8}.spatial-style-grid output{color:#0c3d75;font-weight:900;font-size:11px}.spatial-style-editor footer{display:flex;justify-content:flex-end;gap:8px;padding:10px 12px;border-top:1px solid #dbe7f4;background:#f8fbff}.spatial-feature-popup>b{display:block;color:#10386a;font-size:14px}.spatial-feature-popup>small{display:block;margin-top:3px;color:#617a99;font-size:11px}.spatial-popup-props{display:grid;gap:4px;margin:8px 0;padding:7px;border-radius:7px;background:#f1f6fd}.spatial-popup-props div{display:flex;justify-content:space-between;gap:10px;font-size:11px}.spatial-popup-props span{color:#5f7897}.spatial-popup-props b{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#173d6c}.spatial-feature-tooltip{padding:3px 6px!important;border:1px solid #94bbed!important;border-radius:7px!important;background:rgba(255,255,255,.92)!important;color:#123a68!important;box-shadow:0 3px 10px rgba(10,58,116,.17)!important;font-size:11px!important;font-weight:800!important}
.layer-manage-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr);gap:16px;margin-bottom:16px}.layer-upload-card h2,.layer-folder-card h2,.spatial-manage-tree h2{margin:5px 0 7px;color:#0b376d;font-size:21px}.layer-upload-card .muted{color:#526c89;line-height:1.65}.layer-upload-card code{padding:1px 4px;border-radius:4px;background:#e7f0fd;color:#075fca}.spatial-manage-tree{padding:18px}.section-title-row{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:13px}.section-title-row small{max-width:440px;color:#627997;font-size:12px;line-height:1.55;text-align:right}.spatial-manage-root{display:grid;gap:11px}.spatial-manage-folder{overflow:hidden;border:1px solid #bdd4f2;border-radius:13px;background:#fff}.spatial-manage-folder>summary{display:flex;align-items:center;gap:9px;min-height:48px;padding:0 14px;list-style:none;cursor:pointer;background:#f2f7ff;color:#12375f}.spatial-manage-folder>summary::-webkit-details-marker,.spatial-manage-folder>summary::marker{display:none}.spatial-manage-folder>summary span{color:#0b6fe8;font-size:16px}.spatial-manage-folder>summary b{font-size:15px}.spatial-manage-folder>summary small{margin-left:auto;color:#5a7391;font-size:12px}.spatial-manage-folder[open]>summary span{transform:rotate(180deg)}.spatial-folder-editor{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;border-top:1px solid #dce8f7;border-bottom:1px solid #dce8f7;background:#fbfdff}.inline-form{display:grid;grid-template-columns:1.1fr 1fr 1.2fr auto;align-items:center;gap:7px;flex:1}.inline-form input,.inline-form select{min-width:0}.text-danger{border:0;background:transparent;color:#bd2434;font-size:12px;font-weight:850;cursor:pointer}.spatial-folder-content{display:grid;gap:9px;padding:10px 12px;background:#f8fbff}.spatial-manage-layer{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:flex-start;padding:12px;border:1px solid #d2e1f4;border-radius:11px;background:#fff}.spatial-layer-meta b{display:block;color:#123d70;font-size:15px}.spatial-layer-meta small{display:block;margin-top:4px;color:#53708f;font-size:12px}.spatial-layer-meta p{margin:5px 0 0;color:#58718c;font-size:12px}.spatial-manage-layer details{grid-column:1/-1}.spatial-manage-layer summary{cursor:pointer;color:#0b66cf;font-size:13px;font-weight:800}.spatial-manage-layer form{margin-top:9px}
@media (max-width:900px){.layer-manage-grid{grid-template-columns:1fr}.section-title-row{align-items:flex-start;flex-direction:column}.section-title-row small{text-align:left}.inline-form{grid-template-columns:1fr 1fr}.spatial-folder-editor{align-items:stretch;flex-direction:column}.spatial-manage-layer{grid-template-columns:1fr}.spatial-manage-layer>form{justify-self:start}.spatial-layer-control{margin:8px 0 0 8px!important}.spatial-layer-body{width:min(305px,calc(100vw - 34px));max-height:56vh}.spatial-style-editor{width:min(282px,calc(100% - 22px))}.spatial-manage-folder>summary small{display:none}}

/* R4.0.4 explicit map-click point creation. Normal map mode remains non-destructive. */
.map-floating-actions-r404{display:flex;flex-wrap:wrap;gap:8px;align-items:center;max-width:min(96%,560px)}
.button.accent{background:#0b78d1;border-color:#0b78d1;color:#fff;box-shadow:0 8px 20px rgba(11,120,209,.20)}
.button.accent:hover{background:#075fa8;border-color:#075fa8;color:#fff}
.leaflet-container.map-add-cursor,.leaflet-container.map-add-cursor *{cursor:crosshair!important}
.map-add-mode-hint{position:absolute;z-index:620;left:50%;top:18px;transform:translateX(-50%);max-width:calc(100% - 48px);background:#073f73;color:#fff;padding:10px 15px;border-radius:12px;font-weight:800;font-size:13px;box-shadow:0 12px 28px rgba(2,54,102,.3);text-align:center;pointer-events:none}
.map-add-card{border:1px solid #9cccf4;background:linear-gradient(180deg,#f7fbff 0%,#fff 100%);box-shadow:0 15px 36px rgba(15,86,150,.12)}
.map-add-card h2{color:#063d70;margin-top:3px}.map-add-card label{color:#17466f;font-weight:700}.map-add-card input,.map-add-card select,.map-add-card textarea{border-color:#9cc8ee;background:#fff;color:#102f4c}.map-add-card input:focus,.map-add-card select:focus,.map-add-card textarea:focus{outline:3px solid rgba(40,142,232,.18);border-color:#248de0}
.map-add-coordinate{margin:0 0 14px;padding:10px 12px;border-radius:10px;background:#e7f3ff;border:1px solid #c6e2fb;color:#07518d;font-size:13px;line-height:1.55;font-weight:700}
.inline-check{display:flex!important;align-items:center;gap:8px;font-size:13px!important;margin:4px 0 13px}.inline-check input{width:16px;height:16px;accent-color:#087bd6}
.r404-map-add-pin{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#0b78d1;border:3px solid #fff;box-shadow:0 5px 14px rgba(4,77,140,.35);color:#fff;font:900 21px/1 Arial,sans-serif;padding-bottom:2px}
@media(max-width:900px){.map-floating-actions-r404{left:10px;right:10px;max-width:none}.map-floating-actions-r404 .button{min-height:38px}.map-add-mode-hint{top:10px;font-size:12px;padding:8px 11px}.map-add-card{margin-bottom:12px}.map-add-card .form-grid{grid-template-columns:1fr}.r392-map-shell .map-side{max-height:none}.map-add-card h2{font-size:20px}}


/* R4.0.5: point-search command bar and mobile map detail sheet. */
.r405-map-command-filter{position:relative;align-items:end!important}
.r405-map-command-filter .map-filter-select{min-width:180px}
.map-search-wrap{position:relative;flex:1 1 360px;min-width:280px;max-width:560px;z-index:805}
.map-search-wrap>label{display:block;color:#143f68;font-size:13px;font-weight:850;letter-spacing:.02em}
.map-search-input-row{display:flex;gap:8px;align-items:center;margin-top:4px}
.map-search-input-row input{min-width:0;flex:1;height:40px;padding:0 12px;border:1px solid #8ebde8;border-radius:10px;background:#fff;color:#0c2945;font-size:14px;font-weight:650;box-shadow:inset 0 1px 1px rgba(1,68,140,.04)}
.map-search-input-row input::placeholder{color:#6b87a2;font-weight:500}
.map-search-input-row input:focus{outline:3px solid rgba(18,115,220,.16);border-color:#0875d8}
.map-search-input-row .button{height:40px;white-space:nowrap}
.map-search-results{position:absolute;top:calc(100% + 6px);left:0;right:0;max-height:290px;overflow:auto;padding:6px;border:1px solid #9dcaf2;border-radius:12px;background:rgba(255,255,255,.99);box-shadow:0 16px 36px rgba(2,49,94,.22);z-index:1005}
.map-search-result{display:block;width:100%;padding:10px 11px;border:0;border-bottom:1px solid #e0effb;background:transparent;color:#123a60;text-align:left;cursor:pointer;border-radius:8px}
.map-search-result:last-child{border-bottom:0}.map-search-result:hover,.map-search-result:focus{outline:0;background:#eaf6ff}
.map-search-result span{display:block;color:#073f73;font-size:14px;font-weight:850;line-height:1.35}.map-search-result small{display:block;margin-top:3px;color:#55718a;font-size:12px;line-height:1.35}
.map-search-empty{padding:12px;color:#4d6a83;font-size:13px;font-weight:700;text-align:center}
.map-detail-close{display:none}
@media(max-width:900px){
  .r405-map-command-filter{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:10px!important;padding:12px!important}
  .r405-map-command-filter .map-filter-select{min-width:0!important;grid-column:1/-1}
  .r405-map-command-filter .map-search-wrap{grid-column:1/-1;min-width:0;max-width:none;width:100%}
  .r405-map-command-filter #group-wrap{grid-column:1/-1}
  .r405-map-command-filter #map-count{align-self:center;font-size:12px;white-space:nowrap}
  .map-search-results{max-height:45vh}
  .r390-map-info.r405-mobile-point-sheet{position:fixed!important;z-index:1600;left:10px;right:10px;bottom:max(12px,env(safe-area-inset-bottom));max-height:min(46dvh,430px);overflow:auto;margin:0!important;border:1px solid #74b9f1!important;border-radius:16px!important;background:#fff!important;box-shadow:0 14px 42px rgba(2,41,82,.34)!important}
  .r390-map-info.r405-mobile-point-sheet .map-detail-close{display:grid;place-items:center;position:absolute;right:10px;top:10px;width:30px;height:30px;border:1px solid #a6cbe8;border-radius:9px;background:#f6fbff;color:#075999;font-size:22px;line-height:1;cursor:pointer}
  .r390-map-info.r405-mobile-point-sheet h2{padding-right:42px}
  .r390-map-info.r405-mobile-point-sheet .hero-actions{padding-right:2px}
  .r392-map-shell .map-side{position:relative;z-index:1}
  .map-floating-actions-r404{bottom:10px!important;left:10px!important;right:10px!important;gap:6px!important}
  .map-floating-actions-r404 .button{min-height:38px!important;padding:8px 10px!important;font-size:12px!important}
}
@media(max-width:520px){
  .r405-map-command-filter{grid-template-columns:1fr!important}
  .r405-map-command-filter #load-map,.r405-map-command-filter #map-count{grid-column:1/-1;width:100%}
  .r405-map-command-filter #map-count{text-align:center;padding:3px 0}
  .map-search-input-row{gap:6px}.map-search-input-row .button{padding:8px 10px!important;font-size:12px!important}
  .map-search-input-row input{font-size:13px;padding:0 10px}
  .r390-map-info.r405-mobile-point-sheet{left:8px;right:8px;bottom:max(8px,env(safe-area-inset-bottom));max-height:52dvh;padding:14px!important}
  .r390-map-info.r405-mobile-point-sheet .detail-list.compact{display:grid;grid-template-columns:1fr;gap:8px}
}


/* R4.0.6: move field-command buttons outside the map viewport and make legends actionable. */
.r406-map-card{display:flex;flex-direction:column;gap:10px;min-height:0!important;overflow:visible!important;padding:8px!important;background:linear-gradient(180deg,#fff 0%,#f8fbff 100%)}
.r406-map-viewport{position:relative;min-height:0;overflow:hidden;border-radius:12px;border:1px solid #d6e7f6;background:#edf6ff}
.r406-map-viewport .leaflet-map{height:604px;border-radius:11px}
.r406-map-card .map-floating-actions{position:static!important}
.r406-map-external-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-height:44px;padding:2px 3px 0;order:2}
.r406-map-external-actions .button{min-height:38px;box-shadow:0 7px 16px rgba(8,84,161,.12)}
.r406-map-external-actions .button.ghost{border-color:#a7cbed;background:#fff;color:#0b4f92}
.r406-map-viewport .map-add-mode-hint{top:14px}
.r406-type-legend{display:flex;align-items:center;gap:6px;flex-wrap:wrap;max-width:calc(100% - 28px);padding:8px 10px;border:1px solid #d3e5f4;background:rgba(255,255,255,.96);backdrop-filter:blur(7px);box-shadow:0 8px 20px rgba(3,48,91,.18)}
.r406-type-legend .r406-legend-button{display:inline-flex;align-items:center;gap:4px;min-height:27px;margin:0;padding:4px 7px;border:1px solid transparent;border-radius:8px;background:transparent;color:#385b79;font-size:11px;font-weight:750;white-space:nowrap;transition:.15s}
.r406-type-legend .r406-legend-button:hover{background:#edf7ff;color:#075fb7}
.r406-type-legend .r406-legend-button:focus-visible{outline:3px solid rgba(11,121,216,.22);outline-offset:1px}
.r406-type-legend .r406-legend-button.is-active{border-color:#0a79d7;background:#e8f4ff;color:#075ba8;box-shadow:inset 0 0 0 1px rgba(10,121,215,.08)}
.r406-type-legend .r406-legend-button i{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;color:#fff;font-size:9px;font-style:normal;font-weight:900;flex:0 0 auto}
.r406-type-legend .r406-legend-button .r406-legend-all{background:#0a74cf}
@media(max-width:1000px){
  .r406-map-viewport .leaflet-map{height:560px!important}
  .r406-map-external-actions{padding:3px 2px 0}
  .r406-map-external-actions .button{flex:0 1 auto}
}
@media(max-width:620px){
  .r406-map-card{gap:8px;padding:5px!important;border-radius:13px}
  .r406-map-viewport{border-radius:10px}
  .r406-map-viewport .leaflet-map{height:440px!important;border-radius:9px}
  .r406-map-external-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:2px 1px 1px}
  .r406-map-external-actions .button{width:100%;min-height:40px;padding:8px 7px!important;font-size:12px!important}
  .r406-map-external-actions .button[hidden]{display:none!important}
  .r406-type-legend{left:8px!important;right:8px;bottom:8px;max-width:none;max-height:92px;overflow:auto;display:flex;flex-wrap:nowrap;gap:5px;padding:7px 8px;scrollbar-width:thin}
  .r406-type-legend .r406-legend-button{font-size:10px;min-height:26px;padding:4px 6px}
  .r406-type-legend .r406-legend-button i{width:17px;height:17px;font-size:8px}
  .r406-map-viewport .map-add-mode-hint{top:8px;font-size:11px;max-width:calc(100% - 20px)}
}


/* R4.5.9.7 — desktop sidebar scroll + compact navigation + perceived speed. */
@media (min-width:1001px){
  .sidebar.r390-sidebar,.r390-sidebar{height:100vh!important;max-height:100vh!important;overflow:hidden!important;display:flex!important;flex-direction:column!important;contain:layout paint style;}
  .r390-sidebar .sidebar-brand{flex:0 0 auto!important;padding:17px 18px 12px!important;min-height:0!important;}
  .r390-sidebar .sidebar-brand .brand-mark{width:31px!important;height:31px!important;border-radius:10px!important;}
  .r390-sidebar .sidebar-brand b{font-size:15px!important;line-height:1.18!important;}
  .r390-sidebar .sidebar-brand small{font-size:8px!important;letter-spacing:.08em!important;}
  .r390-sidebar .system-chip{flex:0 0 auto!important;margin:6px 14px 8px!important;padding:7px 9px!important;font-size:11px!important;}
  .r390-sidebar .main-nav,.r390-sidebar .r390-nav{flex:1 1 auto!important;min-height:0!important;height:auto!important;overflow-y:auto!important;overflow-x:hidden!important;padding:4px 11px 14px!important;overscroll-behavior:contain!important;scrollbar-gutter:stable!important;-webkit-overflow-scrolling:touch;}
  .r390-sidebar .main-nav::-webkit-scrollbar,.r390-sidebar .r390-nav::-webkit-scrollbar{width:8px;}
  .r390-sidebar .main-nav::-webkit-scrollbar-track,.r390-sidebar .r390-nav::-webkit-scrollbar-track{background:rgba(255,255,255,.06);border-radius:999px;}
  .r390-sidebar .main-nav::-webkit-scrollbar-thumb,.r390-sidebar .r390-nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.30);border-radius:999px;border:2px solid transparent;background-clip:content-box;}
  .r390-sidebar .main-nav:hover::-webkit-scrollbar-thumb,.r390-sidebar .r390-nav:hover::-webkit-scrollbar-thumb{background:rgba(255,255,255,.46);border:2px solid transparent;background-clip:content-box;}
  .r390-sidebar .nav-item{min-height:40px!important;padding:9px 11px!important;margin:2px 0!important;border-radius:10px!important;gap:10px!important;line-height:1.25!important;}
  .r390-sidebar .nav-label{margin:12px 12px 5px!important;font-size:10px!important;}
  .r390-sidebar .sidebar-foot{flex:0 0 auto!important;margin:0 18px 12px!important;padding:10px 7px 0!important;background:linear-gradient(180deg,rgba(5,31,75,0),rgba(5,31,75,.18));}
  .r390-sidebar .sidebar-foot small{display:block;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:3px;}
  .r390-sidebar .nav-item.is-pending{background:rgba(255,255,255,.20)!important;color:#fff!important;box-shadow:inset 3px 0 0 rgba(255,255,255,.58);}
  .page-content>.card,.page-content>.table-card,.page-content>.metric-grid,.page-content>.two-col,.page-content>.r390-two-col,.page-content>.r390-stat-grid{content-visibility:auto;contain-intrinsic-size:1px 520px;}
}
html.r4597-navigating body{cursor:progress;}
html.r4597-navigating .r390-main{transition:opacity .08s ease;opacity:.92;}
@media (prefers-reduced-motion:reduce){html.r4597-navigating .r390-main{transition:none!important;}}


/* R4.5.9.8 - daily inspection bulk action feedback polish */
.r4598-bulk-toolbar{border:1px solid rgba(22,119,255,.22)!important;box-shadow:0 12px 28px rgba(15,88,180,.07);gap:12px;align-items:center}
.r4598-bulk-toolbar select[name="action"]{font-weight:800;color:#0f376d}
.r4598-bulk-toolbar input[name="review_comment"]{min-width:220px;background:#fff}
.r4598-bulk-toolbar [data-bulk-submit]{font-weight:900}
@media(max-width:760px){.r4598-bulk-toolbar>div{display:grid!important;grid-template-columns:1fr!important;gap:8px}.r4598-bulk-toolbar input,.r4598-bulk-toolbar select,.r4598-bulk-toolbar button{width:100%;min-width:0}}

/* R4.5.9.30 research dashboard persistent announcement board */
.announcement-board-v45930{position:relative;overflow:hidden;background:linear-gradient(135deg,#ffffff 0%,#f5fbff 48%,#eaf6ff 100%);border:1px solid #cfe6ff;border-radius:22px;padding:20px 22px;margin:18px 0;box-shadow:0 18px 48px rgba(18,101,182,.10)}
.announcement-board-v45930:before{content:"";position:absolute;right:-80px;top:-85px;width:210px;height:210px;border-radius:50%;background:radial-gradient(circle,rgba(0,181,255,.22),rgba(0,118,255,0));pointer-events:none}.announcement-board-v45930 .announcement-board-head{position:relative;z-index:1;border-bottom:1px solid rgba(143,194,241,.55);padding-bottom:14px;margin-bottom:8px}.announcement-board-v45930 h2{font-size:22px;color:#073c7d}.announcement-board-v45930 .small-copy{margin:5px 0 0;color:#60758c;font-size:13px}.announcement-list-v45930{position:relative;z-index:1;display:grid;gap:8px;max-height:310px;overflow:auto;padding-right:4px}.announcement-list-v45930::-webkit-scrollbar{width:6px}.announcement-list-v45930::-webkit-scrollbar-thumb{background:#b9daf8;border-radius:999px}.announcement-board-v45930 .announcement-item{border:1px solid #e4f0ff;background:rgba(255,255,255,.86);border-radius:16px;padding:14px;box-shadow:0 8px 22px rgba(19,88,156,.045)}.announcement-board-v45930 .announcement-item.is-pinned{border-color:#b9ddff;background:linear-gradient(135deg,#fff,#f7fbff)}.announcement-board-v45930 .announcement-icon{width:36px;height:36px;border-radius:13px;background:linear-gradient(135deg,#e8f4ff,#d8ecff);color:#0876d9}.announcement-board-v45930 .announcement-item.priority-important .announcement-icon{background:#fff3d8;color:#a56a00}.announcement-board-v45930 .announcement-item.priority-urgent .announcement-icon{background:#ffe7e7;color:#c22323}.announcement-board-v45930 .announcement-title-row b{font-size:15px;color:#0d315c}.announcement-board-v45930 .announcement-item p{font-size:13px;color:#425d77;line-height:1.8}.announcement-board-v45930 .announcement-item small a{color:#1476d9;font-weight:800}.announcement-empty-v45930{display:flex;align-items:center;gap:14px;min-height:86px;background:rgba(255,255,255,.74);border:1px dashed #aed2f5;border-radius:18px;padding:16px;position:relative;z-index:1}.announcement-empty-v45930>span{width:44px;height:44px;display:grid;place-items:center;border-radius:16px;background:#ecf7ff;font-size:24px}.announcement-empty-v45930 b{color:#0c3b74}.announcement-empty-v45930 p{margin:5px 0 0;color:#668099;font-size:12px}.announcement-empty-v45930 .button{margin-left:auto;white-space:nowrap}.notice-persistent{background:linear-gradient(135deg,#e7f8ff,#eafcef);color:#0e6e77;border:1px solid #b9e9ee}
@media(max-width:760px){.announcement-board-v45930{margin:12px 0;padding:15px;border-radius:18px}.announcement-board-v45930 .announcement-board-head{align-items:flex-start;gap:8px}.announcement-board-v45930 h2{font-size:18px}.announcement-board-v45930 .small-copy{font-size:12px}.notice-persistent{font-size:10px;padding:5px 8px}.announcement-list-v45930{max-height:260px}.announcement-board-v45930 .announcement-item{grid-template-columns:32px minmax(0,1fr);padding:12px;border-radius:14px}.announcement-board-v45930 .announcement-icon{width:30px;height:30px;border-radius:11px;font-size:13px}.announcement-board-v45930 .announcement-title-row{gap:5px}.announcement-board-v45930 .announcement-title-row b{font-size:13px;line-height:1.35}.announcement-board-v45930 .announcement-item p{font-size:12px;line-height:1.7}.announcement-empty-v45930{align-items:flex-start;gap:10px;padding:12px;flex-wrap:wrap}.announcement-empty-v45930>span{width:36px;height:36px;border-radius:13px;font-size:20px}.announcement-empty-v45930 .button{margin-left:0;width:100%;justify-content:center}.dashboard-hero+.announcement-board-v45930{margin-top:12px}}

/* ===== END app.css ===== */

/* ===== BEGIN r429_platform_ux.css ===== */
/* R4.2.9 contrast, compact toolbars, map add popup and mobile safe-area refinements */
:root{--r429-nav-safe:max(76px,calc(72px + env(safe-area-inset-bottom,0px)));--r429-blue:#0b2f73;--r429-text:#0f172a;--r429-muted:#334155;--r429-card:#ffffff;--r429-border:rgba(15,23,42,.14)}
.card,.table-card,.modal-box,.filter-bar,.bulk-toolbar{color:var(--r429-text)}
.card small,.table-card small,.bulk-hint,.card-footer-note,.detail-list span{color:var(--r429-muted)!important}.sidebar .nav-label,.r390-nav .nav-label{color:rgba(255,255,255,.72)!important}.sidebar-foot small{color:rgba(255,255,255,.75)!important}.tag.neutral,.status-chip.neutral{color:#1f2937!important;background:#e5e7eb!important}.tag.warning,.status-chip.warning{color:#7c2d12!important;background:#ffedd5!important}.tag.success,.status-chip.success{color:#065f46!important;background:#d1fae5!important}.flash{color:#0f172a}.flash.error{color:#7f1d1d}.flash.success{color:#064e3b}
.r429-compact-toolbar,.bulk-toolbar,.filter-bar{gap:8px!important;padding:10px 12px!important;align-items:center}.r429-compact-toolbar input,.r429-compact-toolbar select,.bulk-toolbar input,.bulk-toolbar select,.filter-bar input,.filter-bar select{min-height:36px!important;padding:7px 10px!important;font-size:13px}.r429-compact-toolbar .button,.bulk-toolbar .button,.filter-bar .button{min-height:34px!important;padding:7px 12px!important}.bulk-controls{gap:8px!important;flex-wrap:wrap}.bulk-summary{gap:8px!important}.heading-actions,.hero-actions{gap:8px!important}.button.small{padding:6px 10px!important}.page-heading{gap:12px!important;margin-bottom:12px!important}.page-heading h1{font-size:clamp(24px,3vw,34px)!important}.page-heading p{max-width:920px;color:#334155!important}.table-wrap table th{color:#0f2a53!important;background:#eef5ff!important}.table-wrap table td{color:#111827!important}.text-link{color:#0757b8!important;font-weight:700}.danger-text{color:#b91c1c!important}
.map-command-filter,.r392-map-filter,.r428-map-filter{position:relative!important;z-index:2!important;display:grid!important;grid-template-columns:minmax(160px,210px) minmax(180px,260px) minmax(260px,1fr) auto auto!important;gap:10px!important;margin-bottom:10px!important}.map-search-wrap{position:relative!important}.map-search-results{position:static!important;max-height:180px!important;overflow:auto!important;margin-top:6px!important;box-shadow:none!important;border:1px solid var(--r429-border)!important}.r424-filter-help{grid-column:1/-1;margin:0!important;color:#475569!important}.map-card,.r406-map-card{position:relative;z-index:1}.leaflet-top,.leaflet-bottom{z-index:410!important}.r406-map-viewport{position:relative;overflow:hidden}.map-legend{max-width:calc(100% - 16px);overflow-x:auto;white-space:nowrap;background:rgba(255,255,255,.93)!important;color:#0f172a!important}
#spatial-layer-panel{z-index:20}.r423-layer-side{color:#102033!important}.r423-layer-tip,.r426-layer-personal-state{color:#334155!important}.r423-layer-row small{color:#475569!important}.r423-empty{color:#475569!important}.spatial-feature-popup{color:#111827}.spatial-popup-props span{color:#475569!important}.spatial-popup-props b{color:#111827!important}
.map-add-card{background:#ffffff!important;color:#0f172a!important}.r429-map-point-popup{position:absolute!important;left:16px!important;top:16px!important;right:auto!important;width:min(430px,calc(100% - 32px))!important;max-height:calc(100% - 32px)!important;overflow:auto!important;z-index:800!important;border:1px solid rgba(37,99,235,.25)!important;box-shadow:0 18px 40px rgba(15,23,42,.24)!important}.r429-map-point-popup::before{content:'地图选点属性设置';display:block;font-weight:900;color:#0b3b86;margin-bottom:6px;letter-spacing:.02em}.r429-map-point-popup[hidden]{display:none!important}.map-add-mode-hint{z-index:760!important}.r404-map-add-pin{background:#2563eb;color:white;border-radius:999px;width:30px;height:30px;display:grid;place-items:center;font-weight:900;border:3px solid white;box-shadow:0 8px 22px rgba(15,23,42,.35)}
.r427-layer-fab,.r423-mobile-layer-toggle{bottom:calc(var(--r429-nav-safe) + 18px)!important;z-index:850!important}.r423-map-side.is-mobile-open,#spatial-layer-panel.is-mobile-open{bottom:var(--r429-nav-safe)!important;max-height:calc(100vh - var(--r429-nav-safe) - 44px)!important}.mobile-nav,.r390-bottom-nav{z-index:900!important}.mobile-submit-bar,.r390-mobile-submit,.form-submit-bar,.sticky-submit{bottom:calc(var(--r429-nav-safe) + 8px)!important;z-index:820!important;box-shadow:0 -12px 28px rgba(15,23,42,.16)!important}.sampling-form .form-actions,.inspection-form .form-actions{padding-bottom:calc(var(--r429-nav-safe) + 18px)}
@media (max-width:900px){.map-command-filter,.r392-map-filter,.r428-map-filter{grid-template-columns:1fr!important;position:relative!important;max-height:none!important}.map-search-results{max-height:150px!important}.bulk-toolbar,.filter-bar{flex-direction:column!important;align-items:stretch!important}.bulk-controls,.bulk-summary{width:100%;justify-content:flex-start}.bulk-controls>*,.filter-bar>*{width:100%;max-width:none!important}.r406-map-viewport{min-height:62vh!important}.r429-map-point-popup{left:10px!important;right:10px!important;top:auto!important;bottom:calc(var(--r429-nav-safe) + 18px)!important;width:auto!important;max-height:58vh!important;border-radius:18px!important}.r427-layer-fab{right:14px!important;bottom:calc(var(--r429-nav-safe) + 82px)!important}.r423-mobile-layer-toggle{bottom:calc(var(--r429-nav-safe) + 84px)!important}.map-legend{bottom:calc(var(--r429-nav-safe) + 10px)!important}.page-content{padding-bottom:calc(var(--r429-nav-safe) + 28px)!important}.table-wrap{overflow:auto}.table-wrap table{min-width:760px}.mobile-tools-panel-r390 a{color:#0f172a!important;background:#f8fafc;border:1px solid rgba(37,99,235,.12)}}

/* R4.3.3 — bottom mobile subsystem switch becomes a direct switch action. */
.r390-bottom-nav .mobile-switch-form{display:flex;align-items:stretch;justify-content:center;margin:0;min-width:0;flex:1;}
.r390-bottom-nav .mobile-switch-form button{appearance:none;-webkit-appearance:none;border:0;background:transparent;color:inherit;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font:inherit;font-weight:800;cursor:pointer;}
.r390-bottom-nav .mobile-switch-form button span{font-size:18px;line-height:1;}
.r390-bottom-nav .mobile-switch-form button small{font-size:10px;line-height:1.1;}
.r390-bottom-nav .mobile-switch-form button:active{background:rgba(11,111,232,.08);}
@media(max-width:900px){
  .map-legend.r406-type-legend{top:52px!important;bottom:auto!important;}
}
.r390-bottom-nav .mobile-switch-form{color:#52708e;min-height:62px;}
@media(max-width:370px){.r390-bottom-nav .mobile-switch-form{min-height:58px;}}


/* R4.3.5 — mobile bottom bar proportion fix: direct subsystem switch looks like the other nav items. */
@media(max-width:1000px){
  .r390-bottom-nav{height:72px!important;min-height:72px!important;align-items:stretch!important;padding:0 max(6px,env(safe-area-inset-left)) env(safe-area-inset-bottom) max(6px,env(safe-area-inset-right))!important;}
  .r390-bottom-nav>a,.r390-bottom-nav>.mobile-switch-form{flex:1 1 0!important;min-width:0!important;min-height:58px!important;height:58px!important;display:flex!important;align-items:center!important;justify-content:center!important;}
  .r390-bottom-nav .mobile-switch-form{margin:0!important;color:#52708e!important;}
  .r390-bottom-nav .mobile-switch-form button{height:58px!important;min-height:58px!important;padding:0!important;border-radius:12px!important;background:transparent!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:3px!important;color:inherit!important;font-size:16px!important;line-height:1!important;}
  .r390-bottom-nav .mobile-switch-form button span,.r390-bottom-nav>a>span{font-size:18px!important;line-height:1!important;}
  .r390-bottom-nav .mobile-switch-form button small,.r390-bottom-nav>a>small{font-size:10px!important;line-height:1.1!important;font-weight:800!important;}
  .r390-bottom-nav .mobile-switch-form button:active{background:rgba(8,113,216,.08)!important;color:#0871d8!important;}
  .r390-bottom-nav .mobile-add{flex:0 0 58px!important;width:50px!important;min-width:50px!important;height:50px!important;min-height:50px!important;align-self:center!important;transform:translateY(-14px)!important;border-width:4px!important;border-radius:17px!important;font-size:26px!important;}
}
@media(max-width:370px){
  .r390-bottom-nav{height:68px!important;min-height:68px!important;}
  .r390-bottom-nav>a,.r390-bottom-nav>.mobile-switch-form,.r390-bottom-nav .mobile-switch-form button{height:54px!important;min-height:54px!important;}
  .r390-bottom-nav .mobile-add{width:48px!important;min-width:48px!important;height:48px!important;min-height:48px!important;transform:translateY(-12px)!important;}
}

/* ===== END r429_platform_ux.css ===== */

/* ===== BEGIN r430_project_task_migration.css ===== */
/* R4.3.0 project/task migration and compact management layout */
.r430-page-heading{gap:14px;align-items:flex-start}.compact-actions-r430{gap:8px;flex-wrap:wrap}.compact-actions-r430 .button{min-height:34px;padding:8px 12px}.r430-filter-card{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:10px;align-items:end;background:#fff;border:1px solid rgba(15,58,120,.10);border-radius:16px;padding:12px 14px;box-shadow:0 10px 24px rgba(9,39,82,.07);margin-bottom:12px}.r430-filter-card label{font-size:12px;color:#24507a;font-weight:800}.r430-filter-card input,.r430-filter-card select{margin-top:4px;min-height:34px;border:1px solid #c9d8ea;border-radius:10px;background:#fff;color:#153650}.r430-filter-card .filter-actions{display:flex;gap:8px;align-items:center}.r430-bulk-toolbar{border:1px solid rgba(35,105,190,.18);box-shadow:0 8px 22px rgba(9,39,82,.06);padding:10px 12px;margin:10px 0 12px}.r430-bulk-controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.r430-bulk-controls select,.r430-bulk-controls input[type=date]{height:34px;min-width:140px;border:1px solid #c5d7ec;border-radius:10px;background:#fff;color:#14324b}.r430-inline-check,.r430-checkbox{display:flex!important;align-items:center;gap:6px;color:#163b5a;font-weight:700;font-size:12px}.r430-inline-check input,.r430-checkbox input{width:16px;height:16px}.r430-table-card table th{white-space:nowrap;color:#183f65;background:#eef6ff}.r430-table-card table td{color:#172d42}.r430-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.r430-actions form{display:inline}.form-tip{font-size:12px;color:#466985;background:#f3f8ff;border:1px dashed #bfd3e8;border-radius:10px;padding:8px 10px}.tag.info{background:#e8f2ff;color:#135eb0;border:1px solid #b7d6fb}@media(max-width:760px){.r430-page-heading{display:block}.compact-actions-r430{margin-top:10px}.r430-filter-card{grid-template-columns:1fr;padding:10px}.r430-filter-card .filter-actions{justify-content:space-between}.r430-bulk-toolbar{position:relative;margin-bottom:10px}.r430-bulk-controls{display:grid;grid-template-columns:1fr;gap:8px}.r430-bulk-controls select,.r430-bulk-controls input[type=date]{width:100%;min-width:0}.r430-table-card .table-wrap{overflow-x:auto}.r430-table-card table{min-width:860px}.modal-box.wide{width:calc(100vw - 24px);max-height:calc(100vh - 96px);overflow:auto}.form-grid{grid-template-columns:1fr!important}.span-2{grid-column:auto!important}}

/* ===== END r430_project_task_migration.css ===== */

/* ===== BEGIN r428_map_mobile_ux.css ===== */
/* R4.2.8 — replacement point selection + mobile safe-area layout.
   All mobile floating controls stay above the persistent bottom navigation.
   Search suggestions expand inside the command bar instead of covering the map. */
.r428-map-filter .map-search-results{position:static!important;z-index:auto!important;margin-top:7px;max-height:248px;overscroll-behavior:contain}
.r428-map-filter .map-search-wrap{z-index:auto!important}
.r428-replacement-mode-hint{position:absolute;z-index:622;left:50%;top:64px;transform:translateX(-50%);max-width:calc(100% - 42px);padding:9px 13px;border:1px solid rgba(255,255,255,.7);border-radius:11px;background:rgba(127,67,10,.96);box-shadow:0 12px 27px rgba(87,46,4,.3);color:#fff;font-size:12px;font-weight:850;line-height:1.45;text-align:center;pointer-events:none}
.leaflet-container.r428-replacement-cursor,.leaflet-container.r428-replacement-cursor *{cursor:crosshair!important}
.r428-replacement-card{border:1px solid #f0c47b;background:linear-gradient(180deg,#fffaf0,#fff)}
.r428-replacement-card h2{color:#704109}
.r428-replacement-card>p{color:#6a542c;line-height:1.62}
.r428-replacement-status{margin:11px 0 14px!important;padding:10px 11px;border:1px solid #f3d493;border-radius:10px;background:#fff5db!important;color:#7d5007!important;font-weight:750!important;line-height:1.5!important}
.r428-replacement-card input[readonly]{background:#f6f8fa!important;color:#496073!important;cursor:not-allowed}
.r428-replacement-actions{margin-top:14px!important;flex-wrap:wrap}
.r428-replacement-actions .button{margin-top:0!important}
.r428-replacement-pin{display:grid;place-items:center;width:32px;height:32px;border:3px solid #fff;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:#d97706;color:#fff;box-shadow:0 6px 16px rgba(129,70,3,.38);font:900 19px/1 Arial,sans-serif}
.r428-replacement-pin::first-letter{transform:rotate(45deg)}

@media(max-width:1000px){
  /* Keep the fixed bottom navigation completely touchable. */
  .mobile-submit-panel{z-index:650!important;bottom:calc(88px + env(safe-area-inset-bottom))!important}
  .mobile-submit-spacer{height:168px!important}
  .r427-layer-fab{z-index:650!important;bottom:calc(88px + env(safe-area-inset-bottom))!important}
  .r423-layer-side{bottom:calc(84px + env(safe-area-inset-bottom))!important;max-height:min(calc(100dvh - 104px - env(safe-area-inset-bottom)),660px)!important}
  .r423-layer-side .r423-layer-tree{max-height:calc(min(100dvh - 104px - env(safe-area-inset-bottom),660px) - 192px)!important}
  .r428-map-filter .map-search-results{max-height:min(38dvh,260px)}
}
@media(max-width:620px){
  .mobile-submit-panel{left:8px!important;right:8px!important;bottom:calc(84px + env(safe-area-inset-bottom))!important;min-height:68px!important}
  .mobile-submit-spacer{height:156px!important}
  .r427-layer-fab{right:max(10px,env(safe-area-inset-right))!important;bottom:calc(84px + env(safe-area-inset-bottom))!important}
  .r423-layer-side{left:6px!important;right:6px!important;bottom:calc(78px + env(safe-area-inset-bottom))!important;max-height:calc(100dvh - 94px - env(safe-area-inset-bottom))!important}
  .r423-layer-side .r423-layer-tree{max-height:calc(100dvh - 290px - env(safe-area-inset-bottom))!important}
  .r428-map-replacement-hint{top:55px;max-width:calc(100% - 24px);font-size:11px;padding:8px 10px}
  .r428-replacement-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.r428-replacement-actions .button:last-child{grid-column:1/-1}
}

/* ===== END r428_map_mobile_ux.css ===== */

/* ===== BEGIN r437_mobile_permission_login.css ===== */
/* R4.3.7 — mobile/Android map viewport parity, permission-aware switch UI and saved-login polish. */
.r437-remember-row{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;margin:2px 0 14px!important;color:#d9ecff!important;font-size:12px!important;font-weight:750!important}
.r437-remember-row label{display:flex!important;align-items:center!important;gap:8px!important;margin:0!important;color:#d9ecff!important}
.r437-remember-row input[type=checkbox]{width:16px!important;height:16px!important;accent-color:#38bdf8!important;margin:0!important}.r437-remember-tip{color:#a9d4ff!important;font-size:11px!important;line-height:1.35!important;text-align:right!important}.r437-login-saved-badge{display:none;margin:-4px 0 12px;padding:8px 10px;border:1px solid rgba(125,211,252,.35);border-radius:10px;background:rgba(3,105,161,.18);color:#e0f2fe;font-size:12px;font-weight:750}.r437-login-saved-badge.show{display:block}.permission-help-r437{margin:8px 0 0!important;color:#48627c!important;line-height:1.55!important}.permission-empty-r437{display:block;margin-top:7px;color:#7f8fa1;font-size:12px}.permission-table .permission-checks{gap:7px}.permission-table .permission-checks label{min-width:88px}.permission-table .permission-checks label:has(input:not(:checked)){opacity:.78}.switch-system-btn[hidden],.mobile-switch-form[hidden]{display:none!important}.r390-bottom-nav.is-single-system{grid-template-columns:1fr 1fr 58px 1fr!important}.r390-bottom-nav.is-single-system .mobile-switch-form{display:none!important}
@media(max-width:900px){
  .r392-map-shell{display:block!important;grid-template-columns:1fr!important;gap:10px!important}.r392-map-shell .map-side{margin-top:12px!important}.map-card.r406-map-card{min-height:0!important;padding:6px!important;border-radius:16px!important}.r406-map-viewport{min-height:0!important;height:auto!important;overflow:visible!important;border-radius:14px!important}.r406-map-viewport .leaflet-map,#research-map.leaflet-map,#daily-map.leaflet-map{height:min(58dvh,520px)!important;min-height:330px!important;max-height:calc(100dvh - 300px)!important;border-radius:13px!important}.system-daily #daily-map.leaflet-map{height:min(58dvh,520px)!important;min-height:330px!important;max-height:calc(100dvh - 300px)!important}.system-research #research-map.leaflet-map{height:min(58dvh,520px)!important;min-height:330px!important;max-height:calc(100dvh - 300px)!important}.map-external-actions.r406-map-external-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;margin:8px 0 0!important}.map-external-actions.r406-map-external-actions .button{width:100%!important;min-height:42px!important}.map-external-actions.r406-map-external-actions .button[hidden]{display:none!important}.r406-map-viewport .map-legend.r406-type-legend,#daily-type-legend.map-legend,#research-type-legend.map-legend{position:relative!important;order:3!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;margin:8px 8px 6px!important;width:calc(100% - 16px)!important;max-width:none!important;max-height:56px!important;min-height:42px!important;padding:7px 8px!important;overflow-x:auto!important;overflow-y:hidden!important;display:flex!important;align-items:center!important;flex-wrap:nowrap!important;gap:6px!important;white-space:nowrap!important;border-radius:15px!important;background:rgba(255,255,255,.98)!important;box-shadow:0 10px 24px rgba(5,58,117,.16)!important;z-index:20!important}.r406-map-viewport .map-legend .r406-legend-button{flex:0 0 auto!important;margin:0!important;min-height:30px!important;line-height:1!important}.r423-mobile-layer-toggle{top:14px!important;right:14px!important;bottom:auto!important}.r427-layer-fab{bottom:calc(82px + env(safe-area-inset-bottom))!important;right:12px!important}.page-content{padding-bottom:calc(98px + env(safe-area-inset-bottom))!important}.r390-bottom-nav .mobile-add{width:50px!important;min-width:50px!important;height:50px!important;min-height:50px!important;border-radius:18px!important;transform:translateY(-12px)!important}.r390-bottom-nav>a,.r390-bottom-nav>.mobile-switch-form{min-height:54px!important;height:54px!important}.r390-bottom-nav .mobile-switch-form button{min-height:54px!important;height:54px!important;border-radius:12px!important}.r390-bottom-nav .mobile-switch-form button span,.r390-bottom-nav>a>span{font-size:18px!important}.r390-bottom-nav .mobile-switch-form button small,.r390-bottom-nav>a>small{font-size:10px!important}
}
@media(max-width:520px){
  .r406-map-viewport .leaflet-map,#research-map.leaflet-map,#daily-map.leaflet-map{height:min(54dvh,430px)!important;min-height:300px!important;max-height:calc(100dvh - 340px)!important}.system-daily #daily-map.leaflet-map{height:min(54dvh,430px)!important;min-height:300px!important;max-height:calc(100dvh - 340px)!important}.r406-map-viewport .map-legend.r406-type-legend,#daily-type-legend.map-legend,#research-type-legend.map-legend{max-height:52px!important;min-height:40px!important;margin:7px 7px 5px!important;width:calc(100% - 14px)!important}.map-external-actions.r406-map-external-actions{grid-template-columns:1fr 1fr!important}.map-external-actions.r406-map-external-actions .button{font-size:12px!important;min-height:40px!important;padding:8px 8px!important}.r437-remember-row{display:block!important}.r437-remember-tip{text-align:left!important;margin-top:5px!important}.permission-table .permission-checks{display:grid!important;grid-template-columns:1fr!important}.permission-table .permission-checks label{min-width:0!important}
}
@media(max-width:380px){.r406-map-viewport .leaflet-map,#research-map.leaflet-map,#daily-map.leaflet-map{height:min(50dvh,390px)!important;min-height:280px!important}.r390-bottom-nav .mobile-add{width:46px!important;min-width:46px!important;height:46px!important;min-height:46px!important}.r390-bottom-nav>a,.r390-bottom-nav>.mobile-switch-form,.r390-bottom-nav .mobile-switch-form button{height:52px!important;min-height:52px!important}}

/* ===== END r437_mobile_permission_login.css ===== */

/* ===== BEGIN r438_mobile_media_export.css ===== */
/* R4.3.8 — mobile/Android field form viewport, media upload preview and toolbar safe-area fixes */
html,body{max-width:100%;overflow-x:hidden;}
body.is-android-app .mobile-header-r390,
body.is-mobile-browser .mobile-header-r390{padding-top:max(10px,env(safe-area-inset-top));}
body.is-android-app .mobile-tools-r390 summary,
body.is-android-app .mobile-logout-r390{margin-top:2px;}
body.is-android-app .native-status-spacer{height:0;}
.r438-inline-export-links{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 14px;}
.r438-inline-export-links .button{min-height:34px;}
.r438-photo-preview-card{position:relative;min-width:0;margin:0;border:1px solid #d7e7dd;border-radius:12px;overflow:hidden;background:#f8fbf9;box-shadow:0 4px 12px rgba(20,55,35,.07);}
.r438-photo-preview-card a{display:block;aspect-ratio:1;background:#eef6f1;}
.r438-photo-preview-card img{display:block;width:100%;height:100%;object-fit:cover;}
.r438-photo-preview-card figcaption{padding:6px 8px;color:#456655;font-size:10px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:#fff;}
.r438-photo-remove{position:absolute;right:5px;top:5px;border:0;border-radius:999px;background:rgba(255,255,255,.96);color:#b91c1c;font-size:12px;font-weight:900;line-height:1;padding:6px 7px;box-shadow:0 2px 10px rgba(0,0,0,.16);}
.r438-photo-count{width:100%;margin-top:9px;color:#197044;font-size:11px;font-weight:800;}
.photo-upload-panel.is-r438-ready{border-color:#a7d4b7;background:linear-gradient(145deg,#ffffff,#f3fbf6);}
.photo-upload-panel.is-r438-ready b{color:#164b33;}
.photo-upload-actions .photo-choice,.photo-choice{touch-action:manipulation;-webkit-tap-highlight-color:transparent;}
.photo-choice.camera:before{content:'📷 ';font-size:12px;}
.photo-choice.album:before{content:'🖼 ';font-size:12px;}
@media (max-width: 860px){
  .main-content.r390-main{margin-left:0;width:100%;min-width:0;}
  .page-content{width:100%;max-width:100%;padding:14px 12px calc(96px + env(safe-area-inset-bottom));overflow-x:hidden;}
  .page-heading{display:block;margin-bottom:14px;}
  .page-heading h1{font-size:22px;line-height:1.2;}
  .page-heading p{font-size:12px;line-height:1.55;}
  .heading-actions{margin-top:10px;display:flex;flex-wrap:wrap;}
  .sampling-layout,.r392-form.sampling-layout{display:block;width:100%;max-width:100%;min-width:0;margin:0;}
  .sampling-layout>.card,.sample-main,.card{width:100%;max-width:100%;min-width:0;padding:14px;border-radius:15px;overflow:hidden;}
  .sampling-layout .card+.card,.sample-main+.sample-main{margin-top:12px;}
  .form-grid{display:grid!important;grid-template-columns:1fr!important;gap:11px!important;width:100%;}
  .span-2{grid-column:auto!important;}
  .form-grid label,.sampling-layout label{min-width:0;width:100%;}
  input,select,textarea{max-width:100%;}
  .section-head,.form-section-title,.r392-point-summary,.location-box{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap;min-width:0;}
  .section-head>div,.form-section-title>div,.r392-point-summary>div,.location-box>div:first-child{min-width:0;flex:1 1 220px;}
  .section-head h2,.form-section-title h2{font-size:17px;line-height:1.25;}
  .section-head p,.form-section-title p,.location-box small{font-size:11px;line-height:1.55;}
  .r392-point-summary{padding:10px;border-radius:13px;}
  .r392-point-summary .tag{width:auto;max-width:100%;white-space:normal;}
  .location-box{padding:12px;border-radius:13px;}
  .location-actions{width:100%;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;}
  .location-actions .button{width:100%;padding:8px 5px;font-size:11px;white-space:nowrap;}
  .location-manual{display:grid;grid-template-columns:1fr;gap:8px;}
  .parameter-grid,.quadrant-parameter-grid,.readings{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;}
  .parameter-field,.reading-card{min-width:0;}
  .ocr-workbench,.photo-upload-grid{display:grid!important;grid-template-columns:1fr!important;gap:12px;width:100%;}
  .ocr-upload,.photo-upload-panel{width:100%;min-width:0;min-height:auto;padding:13px;border-radius:13px;}
  .photo-upload-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px;width:100%;padding-top:10px;}
  .photo-choice{display:flex!important;width:100%;min-height:42px;align-items:center;justify-content:center;padding:9px 8px;font-size:12px;border-radius:10px;}
  .photo-preview-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:7px;width:100%;}
  .form-actions{position:sticky;bottom:calc(58px + env(safe-area-inset-bottom));z-index:35;display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:16px -4px 4px;padding:8px;background:rgba(247,250,248,.92);backdrop-filter:blur(12px);border:1px solid #dfeae2;border-radius:14px;}
  .form-actions .button{width:100%;min-height:42px;}
  .filter-bar,.bulk-toolbar{display:grid!important;grid-template-columns:1fr!important;gap:8px;align-items:stretch;}
  .filter-bar input,.filter-bar select,.filter-bar button,.bulk-toolbar select,.bulk-toolbar input,.bulk-toolbar button{width:100%;min-width:0;}
  .table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;}
  table{min-width:720px;}
  .detail-grid{display:block!important;}
  .detail-grid>aside{margin-top:12px;}
  .r392-gallery{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px;}
  .mobile-header-r390{top:0;padding-left:12px;padding-right:12px;min-height:calc(58px + env(safe-area-inset-top));align-items:center;}
  .mobile-tools-r390 summary,.mobile-logout-r390{min-height:36px;padding:8px 10px;border-radius:11px;}
  .mobile-tools-panel-r390{right:8px;left:8px;max-height:min(68vh,520px);overflow:auto;}
}
@media (max-width: 430px){
  .page-content{padding-left:10px;padding-right:10px;}
  .sampling-layout>.card,.sample-main,.card{padding:12px;}
  .location-actions{grid-template-columns:1fr 1fr;}
  .parameter-grid,.quadrant-parameter-grid,.readings{grid-template-columns:1fr 1fr!important;}
  .photo-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .photo-upload-actions{grid-template-columns:1fr!important;}
  .form-actions{grid-template-columns:1fr;bottom:calc(60px + env(safe-area-inset-bottom));}
  .mobile-header-r390 .brand b{font-size:14px;}
  .mobile-header-r390 .brand small{font-size:9px;}
}

/* ===== END r438_mobile_media_export.css ===== */

/* ===== BEGIN r439_mobile_media_nav_fix.css ===== */
/* R4.3.9 — mobile/Android photo chooser, preview/delete and bottom navigation viewport fit fixes */
html,body{max-width:100%;overflow-x:hidden;}
.photo-choice{position:relative!important;overflow:hidden!important;}
.photo-choice input[type=file],
.upload-button input[type=file],
.photo-action.replace input[type=file]{
  display:block!important;
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  opacity:0!important;
  pointer-events:auto!important;
  cursor:pointer!important;
  z-index:5!important;
}
.photo-choice.is-file-ready{cursor:pointer;}
.r439-photo-status{margin-top:8px;color:#0b6b45;font-size:12px;font-weight:800;line-height:1.45;}
.r439-preview-fallback{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:100%;margin-top:10px;}
.r439-preview-fallback figure{position:relative;margin:0;border:1px solid #d8e8f8;border-radius:11px;overflow:hidden;background:#f8fbff;aspect-ratio:1;}
.r439-preview-fallback img{width:100%;height:100%;object-fit:cover;display:block;}
.r439-preview-fallback button{position:absolute;right:5px;top:5px;border:0;border-radius:999px;padding:5px 7px;background:rgba(255,255,255,.96);color:#b91c1c;font-size:11px;font-weight:900;box-shadow:0 2px 8px rgba(0,0,0,.18);}
.r439-preview-fallback figcaption{position:absolute;left:0;right:0;bottom:0;padding:18px 6px 5px;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.7));font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
@media(max-width:1000px){
  :root{--r439-mobile-nav-h:74px;--r439-mobile-form-gap:92px;}
  body{padding-bottom:calc(var(--r439-mobile-nav-h) + env(safe-area-inset-bottom,0px));}
  .r390-main{padding-bottom:calc(var(--r439-mobile-nav-h) + env(safe-area-inset-bottom,0px))!important;}
  .page-content{width:100%!important;max-width:100%!important;overflow-x:hidden!important;padding-left:12px!important;padding-right:12px!important;padding-bottom:calc(118px + env(safe-area-inset-bottom,0px))!important;}
  .sampling-layout,#daily-inspection-form,#research-sampling-form,#inspection-form{width:100%!important;max-width:100%!important;min-width:0!important;overflow:visible!important;margin-left:0!important;margin-right:0!important;}
  .sampling-layout>.card,.sample-main,.card{max-width:100%!important;min-width:0!important;box-sizing:border-box!important;}
  .r392-form label,.form-grid label{max-width:100%!important;min-width:0!important;}
  .r392-form input,.r392-form select,.r392-form textarea,.form-grid input,.form-grid select,.form-grid textarea{width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important;}
  .quick-test-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;width:100%!important;}
  .quick-test-card{min-width:0!important;max-width:100%!important;padding:12px!important;border-radius:14px!important;}
  .quick-test-card .photo-choice{width:100%!important;min-height:42px!important;display:flex!important;align-items:center!important;justify-content:center!important;margin-top:8px!important;}
  .photo-upload-grid,.inspection-photo-sections{display:grid!important;grid-template-columns:1fr!important;gap:12px!important;width:100%!important;}
  .photo-upload-panel,.inspection-photo-panel{width:100%!important;max-width:100%!important;min-width:0!important;min-height:auto!important;padding:13px!important;border-radius:14px!important;}
  .photo-upload-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;width:100%!important;align-items:stretch!important;}
  .photo-choice,.upload-button{min-width:0!important;max-width:100%!important;white-space:normal!important;text-align:center!important;}
  .photo-preview-grid,.r438-photo-preview-grid,.r439-preview-fallback{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;}
  .ocr-workbench{width:100%!important;max-width:100%!important;overflow:hidden!important;}
  .ocr-upload.compact{width:100%!important;min-width:0!important;}
  .ocr-upload-header{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;align-items:stretch!important;}
  .ocr-upload-header .upload-actions,.upload-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;width:100%!important;margin-left:0!important;}
  .standard-meter-preview{max-width:100%!important;}
  .form-actions{position:sticky!important;bottom:calc(var(--r439-mobile-nav-h) + 8px + env(safe-area-inset-bottom,0px))!important;z-index:650!important;margin:16px 0 6px!important;border-radius:16px!important;}
  .mobile-nav.r390-bottom-nav{
    position:fixed!important;left:0!important;right:0!important;bottom:0!important;width:100vw!important;max-width:100vw!important;
    height:calc(var(--r439-mobile-nav-h) + env(safe-area-inset-bottom,0px))!important;
    min-height:calc(var(--r439-mobile-nav-h) + env(safe-area-inset-bottom,0px))!important;
    padding:6px max(8px,env(safe-area-inset-left,0px)) calc(6px + env(safe-area-inset-bottom,0px)) max(8px,env(safe-area-inset-right,0px))!important;
    box-sizing:border-box!important;display:grid!important;align-items:center!important;justify-items:center!important;gap:4px!important;overflow:visible!important;z-index:900!important;
    background:rgba(255,255,255,.98)!important;backdrop-filter:blur(14px)!important;border-top:1px solid #d9e9f8!important;
  }
  .mobile-nav.r390-bottom-nav.is-single-system{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 58px minmax(0,1fr)!important;}
  .mobile-nav.r390-bottom-nav:not(.is-single-system){grid-template-columns:minmax(0,1fr) minmax(0,1fr) 58px minmax(0,1fr) minmax(0,1fr)!important;}
  .mobile-nav.r390-bottom-nav>a,.mobile-nav.r390-bottom-nav>.mobile-switch-form{width:100%!important;min-width:0!important;max-width:72px!important;height:54px!important;min-height:54px!important;display:flex!important;align-items:center!important;justify-content:center!important;justify-self:center!important;}
  .mobile-nav.r390-bottom-nav>a:not(.mobile-add),.mobile-nav.r390-bottom-nav .mobile-switch-form button{flex-direction:column!important;border-radius:14px!important;background:transparent!important;border:0!important;color:#4d6a84!important;gap:2px!important;padding:4px 2px!important;}
  .mobile-nav.r390-bottom-nav>a.active{background:#eaf5ff!important;color:#0871d8!important;}
  .mobile-nav.r390-bottom-nav>a>span,.mobile-nav.r390-bottom-nav .mobile-switch-form button span{font-size:20px!important;line-height:1!important;}
  .mobile-nav.r390-bottom-nav>a>small,.mobile-nav.r390-bottom-nav .mobile-switch-form button small{font-size:10px!important;line-height:1.1!important;margin:2px 0 0!important;font-weight:800!important;white-space:nowrap!important;}
  .mobile-nav.r390-bottom-nav .mobile-add{width:52px!important;min-width:52px!important;max-width:52px!important;height:52px!important;min-height:52px!important;border-radius:17px!important;transform:translateY(-11px)!important;padding:0!important;box-shadow:0 10px 24px rgba(8,116,211,.28)!important;}
  .mobile-nav.r390-bottom-nav .mobile-add span{font-size:30px!important;line-height:1!important;}
  .mobile-nav.r390-bottom-nav .mobile-switch-form{margin:0!important;padding:0!important;}
  .mobile-nav.r390-bottom-nav .mobile-switch-form button{width:100%!important;height:54px!important;min-height:54px!important;box-sizing:border-box!important;font:inherit!important;}
}
@media(max-width:430px){
  :root{--r439-mobile-nav-h:72px;}
  .page-content{padding-left:10px!important;padding-right:10px!important;}
  .quick-test-grid{grid-template-columns:1fr!important;}
  .photo-upload-actions,.ocr-upload-header .upload-actions,.upload-actions{grid-template-columns:1fr!important;}
  .form-actions{grid-template-columns:1fr!important;}
  .mobile-nav.r390-bottom-nav>a,.mobile-nav.r390-bottom-nav>.mobile-switch-form{max-width:64px!important;}
  .mobile-nav.r390-bottom-nav .mobile-add{width:50px!important;min-width:50px!important;height:50px!important;min-height:50px!important;}
}
@media(max-width:360px){
  .mobile-nav.r390-bottom-nav>a>small,.mobile-nav.r390-bottom-nav .mobile-switch-form button small{font-size:9px!important;}
  .mobile-nav.r390-bottom-nav>a,.mobile-nav.r390-bottom-nav>.mobile-switch-form{max-width:58px!important;}
}

/* R4.3.9 hotfix: keep real file input clickable and keep bottom nav inside mobile viewport. */
@media(max-width:1000px){
  .mobile-nav.r390-bottom-nav{
    grid-auto-flow:column!important;
    grid-auto-columns:minmax(0,1fr)!important;
    justify-content:stretch!important;
    padding-left:max(6px,env(safe-area-inset-left,0px))!important;
    padding-right:max(6px,env(safe-area-inset-right,0px))!important;
    transform:none!important;
    contain:layout paint!important;
  }
  .mobile-nav.r390-bottom-nav[data-item-count="4"]{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 54px minmax(0,1fr)!important;}
  .mobile-nav.r390-bottom-nav[data-item-count="5"]{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 54px minmax(0,1fr) minmax(0,1fr)!important;}
  .mobile-nav.r390-bottom-nav>a,.mobile-nav.r390-bottom-nav>.mobile-switch-form{max-width:64px!important;overflow:hidden!important;}
  .mobile-nav.r390-bottom-nav .mobile-add{width:50px!important;min-width:50px!important;max-width:50px!important;height:50px!important;min-height:50px!important;transform:translateY(-9px)!important;}
  .mobile-nav.r390-bottom-nav .mobile-switch-form button{overflow:hidden!important;text-overflow:ellipsis!important;}
  .sampling-layout,.sample-main,.quick-test-card,.photo-upload-panel,.inspection-photo-panel,.card{overflow-wrap:anywhere;}
  textarea{resize:vertical!important;}
}
@media(max-width:360px){
  .mobile-nav.r390-bottom-nav[data-item-count="5"]{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 48px minmax(0,1fr) minmax(0,1fr)!important;}
  .mobile-nav.r390-bottom-nav .mobile-add{width:46px!important;min-width:46px!important;max-width:46px!important;height:46px!important;min-height:46px!important;}
}

/* ===== END r439_mobile_media_nav_fix.css ===== */

/* ===== BEGIN r441_android_upload_map_longpress.css ===== */
/* R4.4.1 · Android album upload, mobile map long-press point creation, and safe form layout */
@media (max-width: 900px){
  .r392-map-shell{
    display:block!important;
    width:100%!important;
    min-width:0!important;
  }
  .r392-map-shell>.map-card,
  .r392-map-shell>.map-side{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }
  .r392-map-shell>.map-side{
    margin-top:14px!important;
    display:block!important;
  }
  .map-add-card{
    width:100%!important;
    max-width:100%!important;
    margin:14px 0 0!important;
    box-sizing:border-box!important;
    border-radius:18px!important;
  }
  .map-add-card form,
  .map-add-card .form-grid,
  .map-add-card .hero-actions,
  .map-add-card .r431-coordinate-actions,
  .map-add-card .r431-coordinate-panel{
    width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
  }
  .map-add-card .form-grid{
    grid-template-columns:1fr!important;
  }
  .map-add-card input,
  .map-add-card select,
  .map-add-card textarea{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
  }
  .map-add-card .hero-actions,
  .map-add-card .r431-coordinate-actions{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:10px!important;
  }
  .map-add-card .button{
    width:100%!important;
    justify-content:center!important;
  }
  .r441-map-longpress-tip{
    display:block;
    margin:8px 0 0;
    padding:9px 11px;
    border-radius:12px;
    background:#eef7ff;
    color:#14528d;
    border:1px solid #c8e1ff;
    font-size:12px;
    line-height:1.55;
    font-weight:750;
  }
  .photo-choice.camera,
  .upload-button.camera{
    background:#edf7ff!important;
    border-color:#b9d7f5!important;
    color:#155a8f!important;
  }
  .photo-choice.camera::after,
  .upload-button.camera::after{
    content:'（安卓端将打开相册/文件选择）';
    display:block;
    margin-top:3px;
    font-size:10px;
    line-height:1.25;
    opacity:.75;
    font-weight:700;
  }
}

.r441-upload-status{
  margin-top:8px;
  color:#326143;
  font-size:12px;
  line-height:1.45;
  font-weight:750;
}
.r441-upload-error{
  margin-top:8px;
  color:#b42318;
  font-size:12px;
  line-height:1.45;
  font-weight:750;
}

/* ===== END r441_android_upload_map_longpress.css ===== */

/* ===== BEGIN r442_mobile_camera_watermark_layer_order.css ===== */
/* R4.4.2 · mobile camera upload, non-floating add-panel, download and layer order polish */
@media (max-width: 900px){
  /* 地图新增点位面板改为普通内容流，放在图例/地图操作区下方，不再悬浮遮挡地图。 */
  #daily-map-add-card,
  #research-map-add-card,
  #map-click-form,
  .map-add-card.r429-map-point-popup{
    position:static!important;
    left:auto!important;
    right:auto!important;
    top:auto!important;
    bottom:auto!important;
    transform:none!important;
    width:100%!important;
    max-width:100%!important;
    max-height:none!important;
    overflow:visible!important;
    margin:12px 0 0!important;
    border-radius:20px!important;
    box-shadow:0 10px 28px rgba(13,73,130,.10)!important;
    z-index:auto!important;
  }
  .map-add-card.r429-map-point-popup::before{display:none!important;}
  .r406-map-card .map-legend,
  .r406-map-card .r406-type-legend{
    position:relative!important;
    left:auto!important;
    right:auto!important;
    top:auto!important;
    bottom:auto!important;
    width:100%!important;
    max-width:100%!important;
    margin:10px 0 0!important;
    transform:none!important;
  }
  .r406-map-card .r406-map-external-actions,
  .r406-map-card .map-external-actions{
    margin-top:10px!important;
  }
  .r442-add-panel-slot{
    width:100%;
    max-width:100%;
    display:block;
  }
  .photo-upload-panel[data-r442-max="6"]::after{
    content:'最多上传 6 张，可拍照或从相册选择；提交前可预览和删除。';
    display:block;
    margin-top:8px;
    color:#42627d;
    font-size:12px;
    line-height:1.45;
    font-weight:700;
  }
  .photo-choice.camera,
  .upload-button.camera{
    background:#e9f7ff!important;
    color:#0a5a93!important;
    border-color:#a9d8f5!important;
  }
  .photo-choice.camera::after,
  .upload-button.camera::after{
    content:'（调用手机相机）'!important;
    display:block;
    margin-top:3px;
    font-size:10px;
    line-height:1.25;
    opacity:.75;
    font-weight:700;
  }
  .r442-upload-warning{
    margin-top:8px;
    padding:8px 10px;
    border-radius:12px;
    background:#fff7ed;
    border:1px solid #fed7aa;
    color:#9a3412;
    font-size:12px;
    line-height:1.45;
    font-weight:800;
  }
}

/* ===== END r442_mobile_camera_watermark_layer_order.css ===== */

/* ===== BEGIN r446_android_download_ui.css ===== */
/* R4.4.6 · premium blue-green UI polish and reliable mobile download affordance */
:root{
  --r446-ink:#062044;
  --r446-blue:#1169f5;
  --r446-cyan:#00c9e8;
  --r446-green:#14b880;
  --r446-soft:#f4f9ff;
  --r446-line:rgba(102,162,218,.28);
}
body.tech-blue-shell{
  background:
    radial-gradient(circle at 12% -4%,rgba(0,198,255,.18),transparent 34%),
    radial-gradient(circle at 88% 8%,rgba(31,105,255,.14),transparent 28%),
    linear-gradient(180deg,#f6fbff 0%,#eef6ff 52%,#f7fbff 100%)!important;
  color:var(--r446-ink);
}
.r390-sidebar{
  background:linear-gradient(180deg,#062a65 0%,#075fc3 52%,#06255c 100%)!important;
  border-right:1px solid rgba(255,255,255,.20)!important;
  box-shadow:18px 0 46px rgba(2,33,87,.18)!important;
}
.sidebar-brand .brand-mark,
.mobile-header-r390 .brand-mark{
  background:linear-gradient(135deg,#45d6ff,#0f75ff 55%,#12c78b)!important;
  box-shadow:0 14px 30px rgba(15,117,255,.24), inset 0 0 0 1px rgba(255,255,255,.28)!important;
}
.r390-main .topbar,
.mobile-header-r390{
  background:linear-gradient(135deg,rgba(255,255,255,.94),rgba(230,245,255,.86))!important;
  backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(92,163,226,.24)!important;
}
.mobile-header-r390{
  background:linear-gradient(135deg,#0759be 0%,#0786db 74%,#0ab895 100%)!important;
  box-shadow:0 16px 42px rgba(2,49,122,.22)!important;
}
.card,.sample-main,.sample-side,.daily-work-card,.r392-photo-card,.filter-card,.map-card,.r406-map-card{
  border:1px solid rgba(83,154,224,.22)!important;
  background:linear-gradient(180deg,rgba(255,255,255,.97),rgba(250,253,255,.93))!important;
  box-shadow:0 14px 34px rgba(8,55,120,.08)!important;
}
.page-heading h1,.section-head h2,.card h2{
  letter-spacing:.01em;
  color:#062d63!important;
}
.eyebrow{
  color:#0a6ce5!important;
  letter-spacing:.15em!important;
}
.button.primary,.button:not(.ghost),button.primary,.mobile-submit-panel button[type="submit"]{
  background:linear-gradient(135deg,#1169f5,#0496e6 58%,#0fb883)!important;
  border:0!important;
  color:#fff!important;
  box-shadow:0 14px 28px rgba(17,105,245,.22)!important;
}
.button.ghost,.switch-system-btn,.mobile-tools-r390 summary,.mobile-logout-r390{
  border-color:rgba(64,145,220,.38)!important;
  background:rgba(255,255,255,.72)!important;
  color:#084d93!important;
}
input,select,textarea{
  border-color:rgba(85,151,213,.34)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.72)!important;
}
input:focus,select:focus,textarea:focus{
  outline:0!important;
  border-color:#1a86ff!important;
  box-shadow:0 0 0 4px rgba(26,134,255,.12)!important;
}
.r392-gallery{gap:14px!important;}
.r392-photo-card{
  border-radius:18px!important;
  overflow:hidden!important;
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.r392-photo-card:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 42px rgba(6,51,110,.14)!important;
  border-color:rgba(17,105,245,.35)!important;
}
.r392-photo-card img{
  border-radius:14px!important;
  object-fit:cover!important;
}
.r392-photo-card .text-link[href*="watermark=1"]{
  display:inline-flex!important;
  align-items:center;
  gap:6px;
  padding:7px 10px!important;
  border-radius:999px!important;
  background:linear-gradient(135deg,#eaf7ff,#effdf7)!important;
  border:1px solid rgba(0,170,210,.22)!important;
  color:#075aa4!important;
  font-weight:850!important;
  text-decoration:none!important;
}
.r392-photo-card .text-link[href*="watermark=1"]::before{content:'⬇';font-size:12px;}
.r446-download-toast{
  position:fixed;
  left:50%;
  bottom:calc(92px + env(safe-area-inset-bottom));
  transform:translateX(-50%);
  z-index:99999;
  background:rgba(4,31,72,.92);
  color:#fff;
  border:1px solid rgba(118,231,255,.32);
  box-shadow:0 18px 46px rgba(0,0,0,.24);
  border-radius:999px;
  padding:11px 16px;
  font-size:13px;
  font-weight:850;
  max-width:calc(100vw - 36px);
  text-align:center;
}
@media(max-width:900px){
  .page-content{padding-left:14px!important;padding-right:14px!important;}
  .mobile-header-r390{padding-top:max(18px,env(safe-area-inset-top))!important;}
  .r390-bottom-nav{
    left:10px!important;right:10px!important;bottom:8px!important;width:auto!important;
    border-radius:24px!important;
    background:rgba(255,255,255,.94)!important;
    border:1px solid rgba(84,151,215,.24)!important;
    box-shadow:0 -8px 34px rgba(6,50,110,.13)!important;
  }
  .r390-bottom-nav .mobile-add{
    width:56px!important;height:56px!important;border-radius:18px!important;
    background:linear-gradient(135deg,#12a572,#0e7fe8)!important;
    box-shadow:0 12px 26px rgba(10,117,168,.24)!important;
  }
  .r392-photo-card .text-link{font-size:12px!important;}
  .r392-gallery{grid-template-columns:1fr 1fr!important;}
}
@media(max-width:520px){.r392-gallery{grid-template-columns:1fr!important;}}

/* ===== END r446_android_download_ui.css ===== */

/* ===== BEGIN r447_district_watermark_export.css ===== */
/* R4.4.7 · blue-green premium layout, light watermark affordances and district permission UI */
:root{--r447-blue:#0b6ff5;--r447-cyan:#16c6e8;--r447-teal:#10b98a;--r447-ink:#082943;--r447-soft:#f6fbff;--r447-line:rgba(72,148,218,.24)}
body.tech-blue-shell{background:radial-gradient(circle at 10% 0%,rgba(32,211,241,.15),transparent 32%),radial-gradient(circle at 90% 4%,rgba(16,185,138,.12),transparent 28%),linear-gradient(180deg,#f7fbff 0%,#eff7ff 50%,#f9fcff 100%)!important}
.card,.sample-main,.map-card,.table-card{border-color:var(--r447-line)!important;box-shadow:0 16px 42px rgba(8,57,122,.075)!important}
.r392-map-filter{display:grid!important;grid-template-columns:repeat(3,minmax(180px,1fr)) minmax(280px,2fr) auto auto!important;align-items:end;gap:14px!important}
.r392-map-filter .map-filter-select select{min-height:42px;border-radius:12px;background:#fff;font-weight:750;color:#0a3a66}
.r447-permission-summary{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:16px}.r447-permission-summary>div{padding:16px;border-radius:18px;background:linear-gradient(180deg,#f9fdff,#eef8ff);border:1px solid rgba(38,158,220,.18)}.r447-permission-summary small{display:block;color:#4d6880;margin-top:8px;line-height:1.55}.r447-region-checks label{background:linear-gradient(135deg,#eaf8ff,#eefdf6)!important;border-color:rgba(16,185,138,.25)!important}.r447-asset-form .form-grid{grid-template-columns:repeat(2,minmax(220px,1fr))}.r447-asset-form .full{grid-column:1/-1}
.r392-photo-card{position:relative}.r392-photo-card img{cursor:zoom-in;transition:transform .16s ease,filter .16s ease}.r392-photo-card img:hover{transform:scale(1.015);filter:saturate(1.06)}.r392-photo-card .text-link{border-radius:999px;padding:6px 9px;text-decoration:none}.r392-photo-card .text-link[href*="watermark=1"]{background:linear-gradient(135deg,#eefbff,#f6fff9)!important;border:1px solid rgba(25,182,214,.25)!important;color:#075b78!important}.r447-lightbox{position:fixed;inset:0;z-index:100000;background:rgba(4,18,35,.78);display:flex;align-items:center;justify-content:center;padding:20px}.r447-lightbox[hidden]{display:none}.r447-lightbox-inner{max-width:min(96vw,1180px);max-height:94vh;background:rgba(255,255,255,.96);border-radius:20px;box-shadow:0 24px 80px rgba(0,0,0,.32);padding:12px;position:relative}.r447-lightbox img{max-width:calc(96vw - 24px);max-height:calc(94vh - 74px);object-fit:contain;border-radius:14px;display:block}.r447-lightbox-close{position:absolute;top:12px;right:12px;border:0;border-radius:999px;background:rgba(8,33,62,.82);color:#fff;width:36px;height:36px;font-size:20px}.r447-lightbox-title{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:8px 44px 2px 4px;color:#092f57;font-weight:850}.r447-download-toast{position:fixed;left:50%;bottom:calc(96px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:100001;background:rgba(5,38,70,.94);color:#fff;border-radius:999px;padding:11px 16px;box-shadow:0 14px 42px rgba(0,0,0,.24);font-weight:850;font-size:13px;max-width:calc(100vw - 34px);text-align:center}
@media(max-width:900px){.r392-map-filter{grid-template-columns:1fr!important}.r447-permission-summary{grid-template-columns:1fr}.r447-asset-form .form-grid{grid-template-columns:1fr}.page-content{padding-left:13px!important;padding-right:13px!important}.r392-gallery{grid-template-columns:1fr!important}.filter-bar{display:grid!important;grid-template-columns:1fr!important}.r390-bottom-nav{padding-bottom:max(8px,env(safe-area-inset-bottom))!important}.map-side{width:100%!important}.map-add-card{margin-top:14px!important}}

/* ===== END r447_district_watermark_export.css ===== */

/* ===== BEGIN r448_research_map_landscape.css ===== */
/* R4.4.8 · research map default responsible-group scope and Android landscape layout */
.r448-scope-note{display:inline-flex;align-items:center;gap:6px;border-radius:999px;background:linear-gradient(135deg,rgba(15,118,224,.1),rgba(16,185,129,.12));color:#075985;font-weight:850;padding:7px 11px;border:1px solid rgba(34,173,216,.22)}
.system-research .r392-map-filter{grid-template-columns:repeat(3,minmax(180px,1fr)) minmax(260px,2fr) auto auto!important}.system-research .r392-map-filter #project-wrap,.system-research .r392-map-filter #group-wrap{min-width:220px}.system-research .map-filter-select select{font-size:15px}.system-research .map-search-wrap{min-width:260px}
@media (max-width: 1100px){.system-research .r392-map-filter{grid-template-columns:1fr 1fr!important}.system-research .map-search-wrap{grid-column:1/-1}.system-research .r392-map-filter>button,.system-research .r392-map-filter>small,.system-research .r392-map-filter>.r424-completion-key{grid-column:auto}}
@media (max-width: 720px){.system-research .r392-map-filter{grid-template-columns:1fr!important}.system-research .map-search-input-row{display:grid!important;grid-template-columns:1fr auto auto;gap:8px}.system-research .page-heading.map-heading h1{font-size:28px!important}.system-research .page-heading.map-heading p{font-size:14px;line-height:1.65}.system-research .r406-map-viewport{height:min(62vh,560px)!important}}
@media (orientation: landscape) and (max-height: 560px){
  body.tech-blue-shell{background:linear-gradient(120deg,#f6fbff 0%,#eef8ff 52%,#f8fffb 100%)!important}
  .mobile-header-r390{min-height:58px!important;padding:8px max(12px,env(safe-area-inset-left)) 8px max(12px,env(safe-area-inset-left))!important;gap:10px!important}.mobile-header-r390 .brand small{display:none!important}.mobile-header-r390 .brand b{font-size:16px!important}.mobile-tools-r390 summary,.mobile-logout-r390{height:38px!important;padding:0 14px!important;border-radius:14px!important}.mobile-tools-panel-r390{max-height:calc(100vh - 72px)!important;overflow:auto!important}
  .r390-main{padding-top:58px!important}.page-content{padding:10px max(10px,env(safe-area-inset-left)) calc(58px + env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))!important}.page-heading.map-heading{padding:10px 14px!important;margin-bottom:8px!important}.page-heading.map-heading .eyebrow,.page-heading.map-heading p{display:none!important}.page-heading.map-heading h1{font-size:24px!important;line-height:1.1!important;margin:0!important}.hero-actions .button{min-height:36px!important;padding:8px 12px!important}
  .r392-map-filter{padding:10px!important;border-radius:18px!important;margin-bottom:8px!important;display:grid!important;grid-template-columns:repeat(3,minmax(150px,1fr)) auto!important;gap:8px!important}.r392-map-filter label{font-size:12px!important}.r392-map-filter select,.r392-map-filter input{min-height:36px!important;border-radius:12px!important}.r392-map-filter .map-search-wrap{grid-column:1/-1!important}.r392-map-filter .r424-completion-key{display:none!important}
  .r392-map-shell{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(250px,330px)!important;gap:10px!important;align-items:start!important}.r406-map-viewport,.leaflet-map,#research-map,#daily-map,#map{height:calc(100vh - 202px)!important;min-height:280px!important;border-radius:18px!important}.map-external-actions{padding:8px!important;gap:8px!important;display:flex!important;flex-wrap:wrap!important}.map-external-actions .button{height:38px!important;min-height:38px!important;padding:7px 12px!important}.map-side{max-height:calc(100vh - 118px)!important;overflow:auto!important}.map-add-card,.r423-layer-side{border-radius:18px!important}.r390-bottom-nav{height:56px!important;padding:4px max(10px,env(safe-area-inset-right)) max(4px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))!important}.r390-bottom-nav a,.r390-bottom-nav button{min-height:46px!important}.r390-bottom-nav .mobile-add{width:54px!important;height:54px!important;transform:translateY(-10px)!important}.r390-bottom-nav .mobile-add span{font-size:28px!important}.sample-main,.card{border-radius:18px!important}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}.r392-gallery,.photo-grid{grid-template-columns:repeat(3,minmax(120px,1fr))!important}.submit-bar,.mobile-submit-bar{position:sticky!important;bottom:calc(58px + env(safe-area-inset-bottom))!important;z-index:30!important}
}
@media (orientation: landscape) and (max-height: 560px) and (max-width: 900px){.r392-map-shell{grid-template-columns:1fr!important}.map-side{max-height:none!important}.r406-map-viewport,.leaflet-map,#research-map,#daily-map,#map{height:calc(100vh - 218px)!important}.form-grid{grid-template-columns:1fr 1fr!important}}

/* ===== END r448_research_map_landscape.css ===== */

/* ===== BEGIN r451_user_daily_region_admin.css ===== */
/* R4.5.1 user admin + daily region permissions */
.r451-user-heading .heading-actions{display:flex;gap:10px;flex-wrap:wrap}.r451-user-card table{min-width:980px}.r451-mini-tags{display:flex;flex-wrap:wrap;gap:6px;max-width:320px}.r451-mini-tags span{display:inline-flex;align-items:center;border:1px solid rgba(12,111,189,.16);background:rgba(240,248,255,.86);color:#0d4f8f;border-radius:999px;padding:3px 8px;font-size:12px;white-space:nowrap}.r451-mini-tags.region-tags span{background:rgba(231,249,243,.9);border-color:rgba(13,148,136,.18);color:#0f766e}.r451-mini-tags em{font-style:normal;color:#94a3b8;font-size:12px}.r451-permission-field{border:1px solid rgba(15,118,110,.16);border-radius:18px;background:rgba(248,252,255,.9);padding:14px 16px;display:flex;flex-wrap:wrap;gap:10px 16px}.r451-permission-field legend{font-weight:800;color:#0f4d68;padding:0 8px}.r451-permission-field label{display:inline-flex;align-items:center;gap:6px;min-width:128px}.r451-permission-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.r451-permission-summary>div{background:linear-gradient(135deg,rgba(240,249,255,.95),rgba(236,253,245,.86));border:1px solid rgba(14,116,144,.12);border-radius:18px;padding:14px}.r451-permission-summary small{display:block;color:#64748b;margin-top:5px}.r451-permission-table .permission-checks{display:grid;grid-template-columns:repeat(2,minmax(120px,1fr));gap:8px}.r451-region-checks label{background:rgba(236,253,245,.82);border-radius:12px;padding:6px 8px}.sidebar-brand b,.mobile-header-r390 .brand b{letter-spacing:.02em}.daily-region-card{border-left:4px solid #14b8a6}
@media(max-width:900px){.r451-permission-summary{grid-template-columns:1fr}.r451-user-card .table-wrap,.r451-permission-table{overflow-x:auto}.r451-user-form{grid-template-columns:1fr}.r451-permission-field{border-radius:14px;padding:12px}.r451-permission-table .permission-checks{grid-template-columns:1fr}.r451-user-table{font-size:13px}.r451-user-heading .heading-actions .button{flex:1 1 42%}}

/* ===== END r451_user_daily_region_admin.css ===== */

/* ===== BEGIN r455_daily_photo_upload.css ===== */
/* R4.5.5 daily inspection photo upload refinements */
.r455-dual-upload,
.photo-upload-actions.r455-dual-upload{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
  margin-top:10px;
}
.photo-upload-actions .photo-choice,
.r455-dual-upload .photo-choice{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:9px 13px;
  border-radius:999px;
  font-weight:700;
  font-size:13px;
  line-height:1;
  cursor:pointer;
  user-select:none;
  border:1px solid rgba(15, 118, 110, .18);
  box-shadow:0 8px 18px rgba(15, 23, 42, .08);
  transition:transform .16s ease, box-shadow .16s ease, background .16s ease;
}
.photo-upload-actions .photo-choice:hover,
.r455-dual-upload .photo-choice:hover{ transform:translateY(-1px); box-shadow:0 12px 24px rgba(15,23,42,.12); }
.photo-choice.camera{ background:linear-gradient(135deg, #0ea5e9, #10b981); color:#fff; border-color:transparent; }
.photo-choice.album{ background:rgba(255,255,255,.92); color:#075985; border-color:rgba(14,165,233,.22); }
.photo-choice input[type=file], .upload-button input[type=file]{ position:absolute; inline-size:1px; block-size:1px; opacity:0; pointer-events:none; }
.r455-upload-tip{ margin-top:8px; font-size:12px; color:#64748b; }
.r455-upload-warning{ margin-top:8px; padding:8px 10px; border-radius:12px; color:#9a3412; background:#fff7ed; border:1px solid #fed7aa; font-size:12px; }
.r455-lightbox{ position:fixed; inset:0; z-index:99999; background:rgba(15,23,42,.72); display:flex; align-items:center; justify-content:center; padding:18px; backdrop-filter:blur(6px); }
.r455-lightbox[hidden]{ display:none !important; }
.r455-lightbox img{ max-width:min(96vw,1100px); max-height:88vh; border-radius:18px; background:#fff; box-shadow:0 30px 70px rgba(0,0,0,.35); }
.r455-lightbox button{ position:absolute; top:calc(env(safe-area-inset-top,0px) + 14px); right:18px; width:42px; height:42px; border:0; border-radius:50%; background:rgba(255,255,255,.94); font-size:24px; line-height:1; color:#0f172a; }
.photo-preview-grid{ width:100%; overflow-x:auto; }
.r438-photo-preview-card img{ cursor:zoom-in; }
@media (max-width: 720px){
  .r455-dual-upload,.photo-upload-actions.r455-dual-upload,.photo-upload-actions{ gap:8px; }
  .photo-upload-actions .photo-choice,.r455-dual-upload .photo-choice{ flex:1 1 calc(50% - 8px); min-width:120px; padding:10px 8px; }
  .quick-test-card .photo-upload-actions .photo-choice{ min-width:98px; }
  .photo-upload-panel,.inspection-photo-panel,.quick-test-card{ overflow:hidden; }
}

/* ===== END r455_daily_photo_upload.css ===== */

/* ===== BEGIN r456_record_edit_map_point.css ===== */

/* R4.5.6 — record edit photo retention and map point maintenance */
.r456-existing-photos{margin:18px 0 8px;padding:16px;border:1px solid rgba(31,111,235,.16);border-radius:18px;background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(238,248,255,.86));box-shadow:0 14px 34px rgba(15,54,100,.08)}
.r456-existing-photos h3{margin:0 0 4px;font-size:17px;color:#0f2f55}.r456-existing-photos p{margin:0 0 12px;color:#58708a;font-size:13px}
.r456-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:12px}.r456-photo-card{position:relative;border:1px solid rgba(26,98,165,.12);border-radius:16px;background:#fff;overflow:hidden;box-shadow:0 8px 18px rgba(12,43,76,.08)}
.r456-photo-card img{display:block;width:100%;height:108px;object-fit:cover;background:#eef5f8;cursor:zoom-in}.r456-photo-card figcaption{display:flex;justify-content:space-between;align-items:center;gap:6px;padding:8px 9px;color:#1f3b57;font-size:12px}.r456-photo-card label{display:flex;align-items:center;gap:4px;white-space:nowrap;color:#b42318;font-weight:700}.r456-photo-kind{display:inline-block;max-width:74px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.r456-photo-card.is-remove{opacity:.45;filter:grayscale(.6)}
.r456-map-hint{position:absolute;left:50%;top:12px;transform:translateX(-50%);z-index:600;background:rgba(255,255,255,.96);color:#0f3a5f;border:1px solid rgba(17,96,170,.18);box-shadow:0 12px 28px rgba(0,38,84,.18);border-radius:999px;padding:8px 14px;font-size:13px;font-weight:700;pointer-events:none}.r456-map-hint b{color:#0d8b76}.r456-map-moving .leaflet-container{cursor:crosshair!important}.r456-popup-tools{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px;padding-top:8px;border-top:1px dashed rgba(29,92,151,.18)}.r456-popup-tools button{border:0;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:800;cursor:pointer}.r456-move-point{background:#e8f7ff;color:#075985}.r456-delete-point{background:#fff1f2;color:#be123c}.r456-shift-tip{position:fixed;right:14px;bottom:84px;z-index:900;background:rgba(11,34,58,.92);color:#fff;border-radius:14px;padding:9px 12px;font-size:12px;box-shadow:0 12px 30px rgba(0,0,0,.22)}
@media(max-width:780px){.r456-existing-photos{border-radius:16px;padding:12px}.r456-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.r456-photo-card img{height:116px}.r456-map-hint{left:12px;right:12px;top:auto;bottom:12px;transform:none;text-align:center;border-radius:16px}.r456-shift-tip{left:12px;right:12px;bottom:72px;text-align:center}.r456-popup-tools{display:grid;grid-template-columns:1fr 1fr}.r456-popup-tools button{width:100%}}

/* ===== END r456_record_edit_map_point.css ===== */

/* ===== BEGIN r458_map_point_rename_readonly.css ===== */
.r458-feature-name-only{min-width:120px;padding:4px 2px;text-align:center}.r458-feature-name-only b{display:block;color:#0f172a;font-size:15px;line-height:1.45}.r458-popup-tools .r458-rename-point{background:linear-gradient(135deg,#0ea5e9,#14b8a6);color:#fff;border-color:transparent}.r458-popup-tools .r458-rename-point:hover{filter:brightness(1.04);transform:translateY(-1px)}.spatial-popup-props{display:none!important}#spatial-style-editor{display:none!important}

/* ===== END r458_map_point_rename_readonly.css ===== */

/* ===== BEGIN r4596_mobile_location_rename.css ===== */
.r4596-location-hero{display:flex;justify-content:space-between;gap:18px;align-items:center;background:linear-gradient(120deg,#075bb8,#0b7bdc 56%,#11a4d8);color:#fff;border-radius:24px;padding:26px 30px;margin-bottom:18px;box-shadow:0 18px 48px rgba(5,91,184,.18);overflow:hidden;position:relative}.r4596-location-hero:after{content:"";position:absolute;right:-70px;top:-80px;width:230px;height:230px;border-radius:50%;background:rgba(255,255,255,.13)}.r4596-location-hero h1{margin:0 0 8px;font-size:28px}.r4596-location-hero p{margin:0;color:rgba(255,255,255,.86);max-width:760px;line-height:1.7}.r4596-location-hero .eyebrow{color:#d9f2ff}.r4596-location-hero .button{position:relative;z-index:1}.r4596-location-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:18px}.r4596-location-card,.r4596-help-card,.r4596-rename-card{border-radius:22px}.r4596-gps-status{display:flex;gap:13px;align-items:center;border:1px solid #d5e9ff;background:#f4f9ff;border-radius:18px;padding:14px;margin-bottom:18px}.r4596-gps-status>span{width:42px;height:42px;border-radius:14px;background:#0871d8;color:#fff;display:grid;place-items:center;font-size:22px;box-shadow:0 10px 24px rgba(8,113,216,.22)}.r4596-gps-status b,.r4596-gps-status small{display:block}.r4596-gps-status small{color:#5b7085;margin-top:3px}.r4596-gps-status.ok{background:#eefdf7;border-color:#bee8d9}.r4596-gps-status.ok>span{background:#059669}.r4596-gps-status.error{background:#fff5f5;border-color:#f3c7c7}.r4596-gps-status.error>span{background:#dc2626}.r4596-gps-status.loading>span{animation:r4596pulse 1.2s infinite}@keyframes r4596pulse{50%{transform:scale(.92);opacity:.75}}.r4596-coordinate-panel{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;margin:14px 0;padding:14px;border:1px dashed #b9d9f7;border-radius:16px;background:#f8fbff}.r4596-coordinate-panel label{font-weight:800;font-size:12px}.r4596-coordinate-panel input{width:100%;margin-top:6px;border:1px solid #d7e6f5;border-radius:10px;padding:10px}.r4596-sticky-actions{position:sticky;bottom:calc(86px + env(safe-area-inset-bottom));background:rgba(255,255,255,.94);backdrop-filter:blur(10px);padding:12px;border:1px solid #e4eef8;border-radius:18px}.r4596-help-card h2{margin:0 0 12px}.r4596-help-card ol{padding-left:20px;line-height:1.9;color:#31506d}.r4596-help-card p{color:#667d92;line-height:1.7}.r4596-warning{background:#f4f9ff;border:1px solid #d8eaff;border-radius:16px;padding:14px;margin-bottom:14px}.r4596-warning p{margin:6px 0 0;color:#5b7288;line-height:1.6}.r4596-result{min-height:260px;white-space:pre-wrap;background:#06172b;color:#d9f2ff;border-radius:18px;padding:16px;overflow:auto}.r4596-admin-hero{background:linear-gradient(120deg,#063c75,#0871d8 58%,#0ea5e9)}
@media(max-width:900px){.r4596-location-hero{align-items:flex-start;flex-direction:column;padding:22px}.r4596-location-hero .button{width:100%}.r4596-location-layout{grid-template-columns:1fr}.r4596-help-card{display:none}.r4596-coordinate-panel{grid-template-columns:1fr}.r4596-coordinate-panel .button{width:100%}.r4596-sticky-actions{display:grid;grid-template-columns:1fr;bottom:calc(78px + env(safe-area-inset-bottom))}.r4596-location-hero h1{font-size:24px}}

/* ===== END r4596_mobile_location_rename.css ===== */

/* ===== BEGIN r4599_desktop_tables.css ===== */
/* R4.5.9.9 — desktop archive/list visual polish and sortable headers. */
@media (min-width: 900px){
  .main-content.r390-main{background:linear-gradient(135deg,#f3f9ff 0%,#eef7ff 44%,#f7fbff 100%);}
  .page-heading{align-items:flex-start;gap:22px;margin-bottom:22px;padding:20px 22px;border:1px solid rgba(112,177,255,.30);border-radius:24px;background:linear-gradient(135deg,rgba(255,255,255,.92),rgba(238,248,255,.82));box-shadow:0 18px 45px rgba(12,80,170,.08);}
  .page-heading h1{letter-spacing:-.04em;color:#073b86;text-shadow:0 1px 0 rgba(255,255,255,.7);}
  .page-heading p{max-width:920px;color:#34506f;line-height:1.75;}
  .filter-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;margin:16px 0 18px;padding:14px 16px;border:1px solid rgba(111,179,255,.28);border-radius:20px;background:rgba(255,255,255,.78);box-shadow:0 10px 30px rgba(9,92,190,.06);}
  .filter-bar input,.filter-bar select,.bulk-toolbar input,.bulk-toolbar select{height:42px;border:1px solid #b9dcff;border-radius:14px;background:#fff;box-shadow:0 2px 10px rgba(24,110,210,.04) inset;transition:border-color .16s ease,box-shadow .16s ease;}
  .filter-bar input:focus,.filter-bar select:focus,.bulk-toolbar input:focus,.bulk-toolbar select:focus{border-color:#1683ff;box-shadow:0 0 0 4px rgba(22,131,255,.12);outline:none;}
  .bulk-toolbar{border:1px solid rgba(126,212,168,.45);border-radius:22px;background:linear-gradient(135deg,#f4fff7,#effcff 72%,#fff);box-shadow:0 12px 32px rgba(21,141,97,.07);}
  .table-card{border:1px solid rgba(148,201,255,.42)!important;border-radius:24px!important;box-shadow:0 24px 60px rgba(7,61,125,.10)!important;overflow:hidden;background:rgba(255,255,255,.94)!important;}
  .table-card .table-wrap{border-radius:24px;overflow:auto;max-height:calc(100vh - 330px);}
  .table-card table{border-collapse:separate;border-spacing:0;width:100%;}
  .table-card thead th{position:sticky;top:0;z-index:3;background:linear-gradient(180deg,#eaf6ff 0%,#dff0ff 100%);color:#073d83;font-weight:800;border-bottom:1px solid #bfe0ff!important;box-shadow:0 1px 0 rgba(255,255,255,.8) inset;white-space:nowrap;}
  .table-card tbody td{border-bottom:1px solid rgba(203,226,247,.82);vertical-align:middle;}
  .table-card tbody tr{transition:background .15s ease,transform .15s ease,box-shadow .15s ease;}
  .table-card tbody tr:nth-child(even){background:rgba(246,251,255,.68);}
  .table-card tbody tr:hover{background:#eef8ff;box-shadow:inset 3px 0 0 #1683ff;}
  .table-card td b{color:#061f45;}
  .table-card td small{color:#49647f;line-height:1.6;}
  .table-card th.r4599-sortable{cursor:pointer;user-select:none;position:sticky;}
  .table-card th.r4599-sortable:hover{background:linear-gradient(180deg,#dff1ff 0%,#d2eaff 100%);color:#0056be;}
  .r4599-sort-icon{display:inline-flex;align-items:center;justify-content:center;margin-left:6px;width:18px;height:18px;border-radius:999px;background:rgba(22,131,255,.10);color:#0b76e0;font-size:12px;font-weight:900;vertical-align:middle;}
  .table-card th.r4599-sorted-asc,.table-card th.r4599-sorted-desc{color:#005bd1;background:linear-gradient(180deg,#d8efff 0%,#cce8ff 100%);}
  .r438-inline-export-links{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 14px;}
  .tag{box-shadow:0 4px 12px rgba(4,55,120,.08);}
}
@media (max-width: 899px){.r4599-sort-icon{display:none}.table-card th.r4599-sortable{cursor:pointer}}

/* ===== END r4599_desktop_tables.css ===== */

/* ===== BEGIN r45910_map_history.css ===== */
/* R4.5.9.10 — map point history link and history-filter page polish. */
.r45910-map-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.r45910-history-link{border-color:#9ed1ff!important;background:linear-gradient(135deg,#f7fbff,#edf7ff)!important;color:#075db8!important}.r45910-history-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 16px;padding:16px 18px;border:1px solid rgba(103,178,255,.34);border-radius:22px;background:linear-gradient(135deg,#f2f9ff,#ffffff 60%,#edf7ff);box-shadow:0 14px 36px rgba(16,101,198,.08)}.r45910-history-banner>div{display:grid;gap:3px}.r45910-history-banner span{font-size:12px;letter-spacing:.12em;color:#1683ff;font-weight:900;text-transform:uppercase}.r45910-history-banner b{font-size:20px;color:#063b82}.r45910-history-banner small{color:#4a6685}.popup-card .r45910-history-link{font-weight:800}@media (max-width:700px){.r45910-history-banner{align-items:stretch;flex-direction:column}.r45910-history-banner .button{width:100%;justify-content:center}.r45910-map-actions .button,.r45910-map-actions .status-chip{flex:1 1 46%;text-align:center;justify-content:center}}

/* ===== END r45910_map_history.css ===== */

/* ===== BEGIN r45911_mobile_map_sheet_upload_compress.css ===== */
/* R4.5.9.11 — mobile map bottom sheet + upload compression hints */
@media (max-width: 760px), (pointer: coarse) {
  .r45911-mobile-map-sheet {
    position: fixed;
    left: max(10px, env(safe-area-inset-left));
    right: max(10px, env(safe-area-inset-right));
    bottom: calc(84px + env(safe-area-inset-bottom));
    z-index: 4200;
    max-height: min(46dvh, 430px);
    display: flex;
    flex-direction: column;
    background: rgba(255, 255, 255, .98);
    border: 1px solid rgba(118, 182, 255, .55);
    border-radius: 22px;
    box-shadow: 0 18px 48px rgba(14, 74, 142, .28);
    overflow: hidden;
    transform: translateY(115%);
    opacity: 0;
    pointer-events: none;
    transition: transform .22s ease, opacity .22s ease;
    backdrop-filter: blur(14px);
  }
  .r45911-mobile-map-sheet.is-open { transform: translateY(0); opacity: 1; pointer-events: auto; }
  .r45911-mobile-map-sheet.is-collapsed { max-height: 58px; }
  .r45911-mobile-map-sheet.is-collapsed .r45911-mobile-map-sheet-body { display:none; }
  .r45911-mobile-map-sheet-head {
    display:flex; align-items:center; gap:10px; min-height:54px; padding:8px 12px 8px 16px;
    background: linear-gradient(135deg, rgba(232, 244, 255, .98), rgba(255,255,255,.96));
    border-bottom: 1px solid rgba(157, 205, 255, .45);
  }
  .r45911-mobile-map-sheet-grip { width:44px; height:5px; border-radius:999px; background:#9cc7ec; margin-right:2px; flex:0 0 auto; }
  .r45911-mobile-map-sheet-title { flex:1; min-width:0; font-weight:900; color:#073d78; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .r45911-mobile-map-sheet-close, .r45911-mobile-map-sheet-collapse {
    border:1px solid rgba(116, 177, 240, .62); background:#fff; color:#09539c; border-radius:999px;
    width:36px; height:36px; display:inline-grid; place-items:center; font-weight:900; box-shadow:0 6px 16px rgba(13,101,190,.12);
  }
  .r45911-mobile-map-sheet-body { padding:12px 14px 14px; overflow:auto; -webkit-overflow-scrolling:touch; }
  .r45911-mobile-map-sheet .popup-card { box-shadow:none; border:0; padding:0; min-width:0; }
  .r45911-mobile-map-sheet .popup-card h2,
  .r45911-mobile-map-sheet .popup-card b:first-child { font-size:18px; line-height:1.25; color:#052f63; }
  .r45911-mobile-map-sheet .detail-list,
  .r45911-mobile-map-sheet .popup-values { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
  .r45911-mobile-map-sheet .hero-actions,
  .r45911-mobile-map-sheet .popup-actions,
  .r45911-mobile-map-sheet .r45910-map-actions { display:grid; grid-template-columns:1fr; gap:9px; margin-top:12px; }
  .r45911-mobile-map-sheet a.button,
  .r45911-mobile-map-sheet button.button,
  .r45911-mobile-map-sheet .popup-primary,
  .r45911-mobile-map-sheet .popup-actions a { min-height:42px; justify-content:center; text-align:center; border-radius:14px; }
  .r45911-mobile-map-sheet .popup-navigation { margin-top:10px; max-height:120px; overflow:auto; }
  .r45911-map-sheet-mask {
    position: fixed; left:0; right:0; top:0; bottom:0; z-index:4190; background: transparent; display:none;
  }
  .r45911-map-sheet-mask.is-open { display:block; }
  .leaflet-container .leaflet-popup-content { max-height: 48dvh; overflow:auto; -webkit-overflow-scrolling:touch; }
  .leaflet-container .leaflet-popup-content-wrapper { border-radius:18px; }
  .r45911-upload-compress-toast {
    position:fixed; left:50%; bottom:calc(92px + env(safe-area-inset-bottom)); transform:translateX(-50%);
    z-index:5000; padding:10px 14px; border-radius:999px; background:rgba(6, 61, 124, .92); color:#fff;
    font-weight:800; font-size:13px; box-shadow:0 12px 30px rgba(0,0,0,.22); opacity:0; pointer-events:none; transition:opacity .18s ease;
  }
  .r45911-upload-compress-toast.is-show { opacity:1; }
}
@media (min-width: 761px) and (pointer: fine) {
  .r45911-mobile-map-sheet, .r45911-map-sheet-mask { display:none !important; }
}

/* ===== END r45911_mobile_map_sheet_upload_compress.css ===== */

/* ===== BEGIN r45913_apk_office_admin.css ===== */
/* R4.5.9.13 — APK upload fix + office archive visual polish */
.r45913-apk-grid{display:grid;grid-template-columns:minmax(320px,1fr) minmax(360px,1.15fr);gap:18px;align-items:start}.r45913-release-card,.r45913-upload-card{border:1px solid #cfe7ff;background:linear-gradient(135deg,#f7fbff,#f3fffd);box-shadow:0 18px 42px rgba(18,96,180,.08)}.r45913-release-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-top:12px}.r45913-release-kpis div{background:#fff;border:1px solid #dcedff;border-radius:16px;padding:12px}.r45913-release-kpis small{display:block;color:#5f7890;margin-bottom:6px}.r45913-release-kpis b{color:#063f82;font-size:18px;word-break:break-word}.r45913-sha code{word-break:break-all}.r45913-apk-form input[type=file]{border:1px dashed #88c6ff;background:#f7fbff;padding:16px}.r45913-flow{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:12px 0}.r45913-flow div{display:flex;align-items:center;gap:10px;padding:14px;border-radius:16px;background:#eef8ff;border:1px solid #cdeaff}.r45913-flow b{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#1677ff,#10b7c8);color:#fff}.apk-code{background:#081f3d;color:#dff7ff;border-radius:14px;padding:12px;overflow:auto}.r45913-office-heading h1,.r45913-apk-heading h1{letter-spacing:.03em}.r45913-filter-grid{display:grid;grid-template-columns:1.2fr repeat(5,minmax(150px,1fr));gap:10px;align-items:end}.r45913-filter-grid label{display:flex;flex-direction:column;gap:5px;font-size:13px;color:#385b78}.r45913-filter-grid input,.r45913-filter-grid select{min-height:42px;border:1px solid #b8dfff;border-radius:12px;padding:0 12px;background:#fff}.r45913-filter-grid .filter-actions{display:flex;gap:8px;align-items:center}.r45913-office-table table th{white-space:nowrap}.r45913-office-table table td small{display:block;color:#52708a;margin-top:4px;line-height:1.55}.r45913-office-table tbody tr:hover{background:linear-gradient(90deg,#f7fbff,#ffffff)}@media(max-width:900px){.r45913-apk-grid{grid-template-columns:1fr}.r45913-filter-grid{grid-template-columns:1fr 1fr}.r45913-filter-grid>input,.r45913-filter-grid .filter-actions{grid-column:1/-1}.r45913-office-table .table-wrap{overflow:auto}.r45913-office-table table{min-width:860px}}@media(max-width:560px){.r45913-filter-grid{grid-template-columns:1fr}}

/* ===== END r45913_apk_office_admin.css ===== */

/* ===== BEGIN r45914_apk_office_fix.css ===== */

/* R4.5.9.14 — APK update center and office record visual polish */
.r45914-result{display:flex;gap:14px;align-items:flex-start;padding:16px 18px;border-radius:18px;margin:0 0 16px;box-shadow:0 16px 36px rgba(15,60,130,.08)}
.r45914-result span{width:34px;height:34px;border-radius:12px;display:grid;place-items:center;color:#fff;font-weight:800}.r45914-result.success{background:#eefdf6;border:1px solid #b9f1d2}.r45914-result.success span{background:#13a35b}.r45914-result.error{background:#fff4f4;border:1px solid #ffd0d0}.r45914-result.error span{background:#d93025}.r45914-result b{display:block;color:#0e2347}.r45914-result small{display:block;color:#5f6f89;margin-top:4px}
.r45914-apk-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.9fr);gap:18px}.r45914-release-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.r45914-release-kpis div{background:linear-gradient(145deg,#f7fbff,#eef5ff);border:1px solid #dce9ff;border-radius:16px;padding:13px}.r45914-release-kpis i{font-style:normal;color:#2f73ff;margin-right:4px}.r45914-release-kpis small{display:block;color:#6b7890}.r45914-release-kpis b{display:block;color:#0c295f;margin-top:4px;word-break:break-all}.r45914-sha code{white-space:normal;word-break:break-all}.r45914-chip{background:#e8f1ff;color:#0b58c5;border-radius:999px;padding:6px 10px;font-weight:700}.r45914-upload-progress{background:#eef6ff;border:1px solid #cfe1ff;border-radius:14px;padding:12px 14px;color:#0c3d8a}.r45914-upload-progress div{height:8px;background:#d7e6ff;border-radius:999px;margin-top:10px;overflow:hidden}.r45914-upload-progress span{display:block;width:45%;height:100%;border-radius:999px;background:linear-gradient(90deg,#2878ff,#7fb2ff);animation:r45914bar 1.2s infinite alternate}@keyframes r45914bar{from{transform:translateX(-35%)}to{transform:translateX(160%)}}
.r45914-flow{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.r45914-flow div{background:#f7fbff;border:1px solid #dceaff;border-radius:16px;padding:14px}.r45914-flow b{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:10px;background:#0b63ce;color:white;margin-right:8px}.r45914-office-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:0 0 16px}.r45914-office-summary>div{display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,#f8fbff,#eef6ff);border:1px solid #dce9ff;border-radius:18px;padding:16px;box-shadow:0 12px 28px rgba(33,90,180,.08)}.r45914-office-summary span{width:40px;height:40px;border-radius:14px;display:grid;place-items:center;background:#0b63ce;color:#fff}.r45914-office-summary b{display:block;color:#102b5f}.r45914-office-summary small{display:block;color:#63728a}.r45914-office-filter{border-top:4px solid #2f73ff}.r45914-office-table table th{white-space:nowrap}.r45914-office-table tbody tr:hover{background:#f7fbff}
@media(max-width:900px){.r45914-apk-grid,.r45914-office-summary{grid-template-columns:1fr}.r45914-release-kpis,.r45914-flow{grid-template-columns:1fr 1fr}}@media(max-width:560px){.r45914-release-kpis,.r45914-flow{grid-template-columns:1fr}}

/* ===== END r45914_apk_office_fix.css ===== */

/* ===== BEGIN r45915_mobile_nearest_ui.css ===== */
/* R4.5.9.15 */
:root{--r45915-blue:#0b72dd;--r45915-deep:#063d8a;--r45915-cyan:#11b8d8;--r45915-green:#16b981;}
.photo-choice,.upload-button,.photo-action.replace,.file-picker{position:relative!important;overflow:hidden!important;isolation:isolate!important;contain:paint!important;}
.photo-choice input[type=file],.upload-button input[type=file],.photo-action.replace input[type=file],.file-picker input[type=file]{position:absolute!important;left:0!important;top:0!important;right:0!important;bottom:0!important;width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;opacity:0!important;z-index:2!important;cursor:pointer!important;}
.section-index,.form-section-title>span,.r45915-card-icon,.photo-upload-icon{background:linear-gradient(135deg,var(--r45915-blue),var(--r45915-cyan))!important;color:#fff!important;box-shadow:0 10px 24px rgba(8,113,216,.18)!important;}
.brand-mark{background:linear-gradient(135deg,#0b72dd,#12c3bb)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.38),0 12px 26px rgba(5,105,202,.24)!important;}
.card,.sample-main,.quick-test-card,.photo-upload-panel,.inspection-photo-panel{border-color:rgba(136,195,255,.55)!important;box-shadow:0 12px 32px rgba(7,75,138,.06)!important;}
.r392-form input,.r392-form select,.r392-form textarea,.form-grid input,.form-grid select,.form-grid textarea{scroll-margin-bottom:150px;border-color:#cbe2fb!important;background:#fff!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.85)!important;}
.r392-form input:focus,.r392-form select:focus,.r392-form textarea:focus,.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{outline:none!important;border-color:#0b72dd!important;box-shadow:0 0 0 4px rgba(11,114,221,.12)!important;}
.location-box,.coordinate-source-card{border-color:#cce7ff!important;background:linear-gradient(135deg,#f7fbff,#eef9ff)!important;}.parameter-field{background:linear-gradient(180deg,#ffffff,#f6fbff)!important;border-color:#d2e8ff!important;}.parameter-field span:first-child,.parameter-label{color:#063d8a!important;}
.r45915-nearest-note{display:flex;align-items:flex-start;gap:10px;margin:10px 0 12px;padding:12px 14px;border:1px solid #bee6d6;border-radius:15px;background:linear-gradient(135deg,#f0fff8,#f5fbff);color:#0c513c;font-weight:800;line-height:1.55;}.r45915-nearest-note small{display:block;color:#537084;font-weight:700;margin-top:2px;}
.r45915-quick-hero{display:flex;align-items:center;gap:16px;padding:24px 26px;border:1px solid #bee1ff;border-radius:26px;background:linear-gradient(135deg,#eaf6ff,#f7fcff 48%,#e9fff8);box-shadow:0 16px 42px rgba(7,91,180,.10);margin-bottom:18px;}.r45915-quick-icon{width:58px;height:58px;display:grid;place-items:center;border-radius:20px;background:linear-gradient(135deg,#0871d8,#11b8d8);color:#fff;font-size:28px;box-shadow:0 14px 30px rgba(8,113,216,.22);}.r45915-quick-hero h1{margin:4px 0 6px;font-size:30px;color:#063d8a}.r45915-quick-hero p{margin:0;color:#45637d;line-height:1.75;}.r45915-quick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.r45915-quick-card{border-radius:24px!important;padding:24px!important;display:flex;flex-direction:column;gap:12px;}.r45915-quick-card h2{margin:2px 0 0;color:#063d8a}.r45915-quick-card p{margin:0;color:#5a7187;line-height:1.75;flex:1}.r45915-card-icon{width:52px;height:52px;border-radius:18px;display:grid;place-items:center;font-size:24px}.r45915-wide-card{grid-column:span 2;}a[aria-disabled=true]{opacity:.55;pointer-events:none;}
@media(max-width:900px){.page-content{padding-bottom:calc(150px + env(safe-area-inset-bottom,0px))!important;}.form-actions,.mobile-submit-panel,.r4596-sticky-actions{z-index:760!important;}.mobile-submit-panel{bottom:calc(78px + env(safe-area-inset-bottom,0px))!important;left:10px!important;right:10px!important;width:auto!important;border-radius:20px!important;}.r45915-quick-hero{padding:20px;align-items:flex-start}.r45915-quick-icon{width:50px;height:50px;border-radius:17px}.r45915-quick-hero h1{font-size:23px}.r45915-quick-grid{grid-template-columns:1fr}.r45915-wide-card{grid-column:auto}.r45915-quick-card{padding:20px!important;border-radius:22px!important;}label,.quick-test-card,.photo-upload-panel{scroll-margin-bottom:170px;}.r392-form input,.r392-form select,.r392-form textarea,.form-grid input,.form-grid select,.form-grid textarea{min-height:46px;font-size:16px!important;}textarea{min-height:92px;}.sampling-layout{gap:14px!important;}}

/* ===== END r45915_mobile_nearest_ui.css ===== */

/* ===== BEGIN r45916_field_options_nearest_ui.css ===== */
/* R4.5.9.16 unified field option library, mobile safe layout and blue visual polish */
.r45916-admin-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:20px}.r45916-admin-card{background:linear-gradient(135deg,#ffffff,#f3fbff)!important;border:1px solid #c6e3ff!important}.r45916-admin-card .card-head{border-bottom:1px solid #d8ecff;margin-bottom:16px;padding-bottom:12px}.r45916-icon{display:inline-flex;width:38px;height:38px;border-radius:14px;align-items:center;justify-content:center;background:linear-gradient(135deg,#1677ff,#11c5c7);color:#fff;font-weight:900;margin-right:10px;box-shadow:0 12px 24px rgba(12,116,210,.18)}.r45916-admin-form{background:linear-gradient(135deg,#f8fcff,#eef9ff);border:1px solid #d7ebff;border-radius:18px;padding:14px;margin:12px 0 16px}.r45916-option-title{margin:18px 0 8px;color:#063d8a;font-size:16px}.r45916-option-table input,.r45916-option-table select{min-height:36px;border-radius:10px;border:1px solid #c9e4ff;padding:6px 10px;background:#fff}.r45916-option-select-wrap{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;margin-top:6px}.r45916-option-select,.r45916-option-other{width:100%;min-height:44px;border-radius:14px;border:1px solid #b8dbff;background:#fff;padding:0 12px;font-size:15px;color:#082b5a}.r45916-option-select:focus,.r45916-option-other:focus{outline:none;border-color:#1677ff;box-shadow:0 0 0 4px rgba(22,119,255,.12)}.mobile-tools-panel-r390 #fs-native-update-panel-entry{font-weight:900;color:#075cbd;background:linear-gradient(135deg,#eef8ff,#e9fffc);border:1px solid #bfe4ff;border-radius:14px;text-align:center}.sampling-layout label,.form-grid label{position:relative}.sampling-layout input,.sampling-layout select,.sampling-layout textarea,.form-grid input,.form-grid select,.form-grid textarea{max-width:100%;box-sizing:border-box}.photo-choice,.upload-button,.photo-action.replace,.file-picker{position:relative!important;overflow:hidden!important;z-index:1!important}.photo-choice input[type=file],.upload-button input[type=file],.photo-action.replace input[type=file],.file-picker input[type=file]{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;opacity:0!important;cursor:pointer!important;z-index:2!important} .sample-main,.card,.r392-point-summary{border-radius:22px!important}.button.primary{background:linear-gradient(135deg,#1677ff,#12bfc3)!important;border:0!important}@media(max-width:768px){.page-content{padding-bottom:120px}.sampling-layout{gap:14px}.sample-main{padding:16px!important}.form-grid{grid-template-columns:1fr!important}.form-grid .span-2{grid-column:auto!important}.r392-form input,.r392-form select,.r392-form textarea,.form-grid input,.form-grid select,.form-grid textarea{min-height:46px;font-size:16px!important}.location-actions,.form-actions{display:grid!important;grid-template-columns:1fr 1fr;gap:8px}.location-actions .button,.form-actions .button{width:100%}.r45916-admin-grid{gap:14px}.table-wrap{overflow:auto}.r45916-admin-form{padding:12px}.mobile-tools-panel-r390{max-height:72vh;overflow:auto}} 

/* ===== END r45916_field_options_nearest_ui.css ===== */

/* ===== BEGIN r45931_research_notice_permission_switch.css ===== */

.announcement-board-v45931{margin:22px 0;border:1px solid rgba(56,189,248,.32);background:linear-gradient(135deg,#f8fdff 0%,#ecfbff 55%,#f8fdff 100%);border-radius:24px;padding:24px;box-shadow:0 18px 42px rgba(14,116,144,.10)}
.announcement-board-v45931 .announcement-board-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:16px}
.announcement-board-v45931 h2{margin:.2rem 0;color:#063f8c;font-size:24px}.announcement-board-v45931 .small-copy{color:#4b6686;margin:4px 0 0}.notice-persistent{display:inline-flex;align-items:center;border-radius:999px;padding:8px 14px;background:#e0f2fe;color:#0369a1;font-weight:800;white-space:nowrap}.announcement-list-v45931{display:grid;gap:12px;max-height:260px;overflow:auto;padding-right:4px}.announcement-item{display:grid;grid-template-columns:44px 1fr;gap:14px;padding:16px;border-radius:18px;background:#fff;border:1px solid rgba(147,197,253,.45);box-shadow:0 8px 24px rgba(59,130,246,.08)}.announcement-item.priority-urgent{border-color:#fecaca;background:linear-gradient(135deg,#fff 0%,#fff1f2 100%)}.announcement-item.priority-important{border-color:#fde68a;background:linear-gradient(135deg,#fff 0%,#fffbeb 100%)}.announcement-icon{width:44px;height:44px;border-radius:14px;background:linear-gradient(135deg,#0ea5e9,#2563eb);color:#fff;display:grid;place-items:center;font-weight:900}.announcement-title-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.announcement-title-row b{font-size:17px;color:#082f69}.announcement-body p{white-space:pre-wrap;margin:8px 0;color:#28415f;line-height:1.65}.announcement-body small{color:#64748b}.announcement-empty-v45931{display:flex;align-items:center;gap:16px;border-radius:18px;background:#fff;border:1px dashed #93c5fd;padding:18px;color:#334155}.announcement-empty-v45931>span{font-size:28px}.switch-system-btn{cursor:pointer}.research-hero + .announcement-board-v45931{margin-top:22px}@media(max-width:760px){.announcement-board-v45931{margin:14px 0;padding:16px;border-radius:18px}.announcement-board-v45931 .announcement-board-head{flex-direction:column}.announcement-list-v45931{max-height:210px}.announcement-item{grid-template-columns:36px 1fr;padding:12px}.announcement-icon{width:36px;height:36px;border-radius:12px}.announcement-board-v45931 h2{font-size:20px}.notice-persistent{font-size:12px;padding:6px 10px}.announcement-empty-v45931{align-items:flex-start;flex-direction:column}}

/* R4.5.9.32: force research dashboard notice visibility */
.announcement-board-v45931{display:block!important;visibility:visible!important;opacity:1!important}.research-hero+.announcement-board-v45931{margin-top:22px!important;margin-bottom:22px!important}

/* ===== END r45931_research_notice_permission_switch.css ===== */

/* ===== BEGIN r45933_switch_daily_fix.css ===== */
/* R4.5.9.33 final switch and research task queue polish */
.switch-system-btn{text-decoration:none!important;display:inline-flex!important;align-items:center;justify-content:center;gap:6px;border:1px solid #b8d7f7;background:#f4f9ff;color:#0755af;border-radius:10px;padding:8px 12px;font-size:12px;font-weight:900;line-height:1;box-shadow:0 6px 16px rgba(37,99,235,.08)}
.switch-system-btn:hover{background:#e2f0ff;color:#06468f;transform:translateY(-1px)}
.mobile-nav.r390-bottom-nav>a.mobile-switch-form{flex-direction:column!important;text-decoration:none!important;color:#52708e!important;gap:2px!important;font-weight:800!important;border-radius:14px!important;min-height:54px!important;height:54px!important;padding:4px 2px!important;box-sizing:border-box!important;}
.mobile-nav.r390-bottom-nav>a.mobile-switch-form span{font-size:20px!important;line-height:1!important;display:block!important;}
.mobile-nav.r390-bottom-nav>a.mobile-switch-form small{font-size:10px!important;line-height:1.1!important;margin:2px 0 0!important;font-weight:800!important;white-space:nowrap!important;}
.mobile-nav.r390-bottom-nav>a.mobile-switch-form:active{background:rgba(8,113,216,.08)!important;color:#0871d8!important;}
.r45933-task-note{margin:8px 0 0;color:#64748b;font-size:12px;line-height:1.5}.r45933-task-note b{color:#0755af}.announcement-board-v45931{display:block!important;visibility:visible!important;opacity:1!important;}

/* ===== END r45933_switch_daily_fix.css ===== */

/* ===== BEGIN r45935_mobile_map_point_edit_tools.css ===== */
/* R4.5.9.35 — mobile / Android map point edit tools */
@media (max-width: 900px), (pointer: coarse) {
  .r45935-mobile-point-tools {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 9px;
    margin: 12px 0 2px;
    padding: 10px;
    border-radius: 16px;
    background: linear-gradient(135deg, rgba(230,244,255,.96), rgba(255,255,255,.98));
    border: 1px solid rgba(37, 99, 235, .16);
    box-shadow: 0 8px 22px rgba(15, 76, 129, .10);
  }
  .r45935-mobile-point-tools button {
    min-height: 42px;
    border: 0;
    border-radius: 14px;
    font-size: 14px;
    font-weight: 800;
    letter-spacing: .02em;
    color: #0f3d73;
    background: #eef6ff;
    box-shadow: inset 0 0 0 1px rgba(43, 108, 176, .18);
  }
  .r45935-mobile-point-tools button:active { transform: translateY(1px); }
  .r45935-mobile-point-tools .r45935-rename { background: #e7f0ff; color: #1555a7; }
  .r45935-mobile-point-tools .r45935-move { background: #ecfdf5; color: #047857; }
  .r45935-mobile-point-tools .r45935-delete { background: #fff1f2; color: #be123c; }
  .r45935-map-edit-hint {
    position: fixed;
    left: max(12px, env(safe-area-inset-left));
    right: max(12px, env(safe-area-inset-right));
    bottom: calc(78px + env(safe-area-inset-bottom));
    z-index: 2400;
    padding: 13px 14px;
    border-radius: 18px;
    background: rgba(9, 33, 68, .94);
    color: #fff;
    box-shadow: 0 16px 40px rgba(2, 20, 45, .32);
    display: none;
  }
  .r45935-map-edit-hint.is-show { display: block; }
  .r45935-map-edit-hint b { display: block; margin-bottom: 4px; font-size: 15px; }
  .r45935-map-edit-hint small { display: block; color: rgba(255,255,255,.78); line-height: 1.45; }
  .r45935-map-edit-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 9px;
    margin-top: 11px;
  }
  .r45935-map-edit-actions button {
    min-height: 40px;
    border: 0;
    border-radius: 13px;
    font-weight: 900;
  }
  .r45935-map-edit-actions .save { background: #39d98a; color: #052f23; }
  .r45935-map-edit-actions .cancel { background: rgba(255,255,255,.16); color: #fff; box-shadow: inset 0 0 0 1px rgba(255,255,255,.24); }
  .r45935-dragging-marker .r392-map-pin,
  .r45935-dragging-marker .r392-type-pin {
    transform: scale(1.18);
    filter: drop-shadow(0 10px 16px rgba(0,0,0,.35));
  }
  .leaflet-container.r45935-map-moving { cursor: grab; }
}
@media (max-width: 430px) {
  .r45935-mobile-point-tools { grid-template-columns: 1fr; }
}

/* ===== END r45935_mobile_map_point_edit_tools.css ===== */

/* ===== BEGIN r45936_mobile_menu_region_scope.css ===== */
/* R4.5.9.36 Mobile / Android function-fold compact controls */
@media (max-width: 820px){
  .mobile-tools-r390{position:relative;z-index:1200}
  .mobile-tools-panel-r390{
    width:min(78vw, 288px)!important;
    max-height:68vh!important;
    overflow:auto!important;
    padding:8px!important;
    border-radius:18px!important;
    box-shadow:0 18px 42px rgba(5,47,98,.22)!important;
  }
  .mobile-tools-panel-r390 a,
  .mobile-tools-panel-r390 button,
  .mobile-tools-panel-r390 .button{
    min-height:38px!important;
    padding:8px 12px!important;
    margin:0!important;
    border-radius:12px!important;
    font-size:15px!important;
    line-height:1.2!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    text-align:left!important;
    box-sizing:border-box!important;
    box-shadow:none!important;
  }
  .mobile-tools-panel-r390 #fs-native-update-panel-entry,
  .mobile-tools-panel-r390 .r45936-compact-tool,
  .mobile-tools-panel-r390 [data-r45936-compact="1"]{
    font-size:14px!important;
    min-height:36px!important;
    padding:7px 10px!important;
    border-radius:12px!important;
    justify-content:center!important;
    color:#075cbd!important;
    background:linear-gradient(135deg,#f0f8ff,#e9fffc)!important;
    border:1px solid #bfe4ff!important;
    font-weight:800!important;
  }
  .mobile-tools-panel-r390 .r45936-tools-row{
    display:grid!important;
    grid-template-columns:1fr 1fr;
    gap:8px;
    margin-top:8px;
    padding-top:8px;
    border-top:1px solid rgba(151,197,236,.5);
  }
  .mobile-tools-panel-r390 .r45936-tools-row a,
  .mobile-tools-panel-r390 .r45936-tools-row button{width:100%!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
}

/* ===== END r45936_mobile_menu_region_scope.css ===== */

/* ===== BEGIN r45937_mobile_menu_fold_close_fix.css ===== */
/* R4.5.9.38 safe mobile function fold: compact, scrollable, no blocking backdrop */
@media (max-width: 820px){
  .mobile-tools-r390{position:relative!important;z-index:2600!important;}
  .mobile-tools-r390 summary{position:relative!important;z-index:2602!important;touch-action:manipulation!important;}
  .r45937-menu-backdrop{display:none!important;pointer-events:none!important;}
  .mobile-tools-r390[open] .mobile-tools-panel-r390{
    position:fixed!important;
    z-index:2603!important;
    top:calc(68px + env(safe-area-inset-top))!important;
    right:8px!important;
    bottom:calc(92px + env(safe-area-inset-bottom))!important;
    width:min(64vw, 264px)!important;
    max-width:264px!important;
    min-width:208px!important;
    max-height:calc(100dvh - 170px - env(safe-area-inset-top) - env(safe-area-inset-bottom))!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch!important;
    padding:7px!important;
    border-radius:18px!important;
    background:rgba(255,255,255,.98)!important;
    border:1px solid rgba(179,217,247,.92)!important;
    box-shadow:0 16px 42px rgba(4,43,91,.22)!important;
    display:flex!important;
    flex-direction:column!important;
    gap:6px!important;
    pointer-events:auto!important;
    transform:translateZ(0)!important;
  }
  .mobile-tools-panel-r390 a,
  .mobile-tools-panel-r390 button,
  .mobile-tools-panel-r390 .button{
    width:100%!important;
    max-width:100%!important;
    min-height:34px!important;
    height:auto!important;
    padding:7px 10px!important;
    margin:0!important;
    border-radius:13px!important;
    font-size:14px!important;
    line-height:1.16!important;
    letter-spacing:0!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    box-sizing:border-box!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    text-align:left!important;
    flex:0 0 auto!important;
    touch-action:manipulation!important;
  }
  .mobile-tools-panel-r390 a[hidden],
  .mobile-tools-panel-r390 button[hidden],
  .mobile-tools-panel-r390 a:empty,
  .mobile-tools-panel-r390 button:empty{display:none!important;}
  .mobile-tools-panel-r390 .r45936-tools-row{display:none!important;}
  .mobile-tools-panel-r390 .r45938-tools-row,
  .mobile-tools-panel-r390 .r45937-tools-row{
    position:sticky!important;
    bottom:0!important;
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:6px!important;
    margin-top:4px!important;
    padding:7px 0 1px!important;
    background:linear-gradient(180deg,rgba(255,255,255,.70),rgba(255,255,255,.98) 38%)!important;
    border-top:1px solid rgba(172,210,241,.58)!important;
    flex:0 0 auto!important;
  }
  .mobile-tools-panel-r390 .r45938-tools-row a,
  .mobile-tools-panel-r390 .r45938-tools-row button,
  .mobile-tools-panel-r390 .r45937-tools-row a,
  .mobile-tools-panel-r390 .r45937-tools-row button,
  .mobile-tools-panel-r390 .r45938-compact-tool,
  .mobile-tools-panel-r390 .r45937-compact-tool{
    min-height:30px!important;
    padding:5px 6px!important;
    border-radius:12px!important;
    font-size:12px!important;
    line-height:1.12!important;
    justify-content:center!important;
    text-align:center!important;
    color:#075cbd!important;
    background:linear-gradient(135deg,#edf8ff,#e9fffb)!important;
    border:1px solid #bfe5ff!important;
    box-shadow:none!important;
    font-weight:850!important;
    white-space:nowrap!important;
  }
}
@media (max-width: 380px){
  .mobile-tools-r390[open] .mobile-tools-panel-r390{
    right:6px!important;
    width:min(68vw, 245px)!important;
    min-width:200px!important;
    top:calc(64px + env(safe-area-inset-top))!important;
    bottom:calc(88px + env(safe-area-inset-bottom))!important;
  }
  .mobile-tools-panel-r390 a,
  .mobile-tools-panel-r390 button,
  .mobile-tools-panel-r390 .button{font-size:13px!important;min-height:32px!important;padding:6px 9px!important;}
  .mobile-tools-panel-r390 .r45938-tools-row a,
  .mobile-tools-panel-r390 .r45938-tools-row button{font-size:11.5px!important;min-height:29px!important;}
}

/* ===== END r45937_mobile_menu_fold_close_fix.css ===== */

/* ===== BEGIN r45939_mobile_menu_sheet_fix.css ===== */
/* R4.5.9.39 Mobile function menu sheet fix: reliable, visible, blurred background, no freeze */
@media (max-width: 820px){
  html.r45939-menu-open, body.r45939-menu-open{overflow:hidden!important;}
  details.mobile-tools-r390.r45939-enhanced[open] .mobile-tools-panel-r390,
  details.mobile-tools-r390.r45939-enhanced .mobile-tools-panel-r390{
    display:none!important;
    visibility:hidden!important;
    pointer-events:none!important;
  }
  .r45939-menu-backdrop{
    position:fixed!important;
    inset:0!important;
    z-index:2147482500!important;
    background:rgba(5,32,72,.18)!important;
    -webkit-backdrop-filter:blur(8px) saturate(120%)!important;
    backdrop-filter:blur(8px) saturate(120%)!important;
    opacity:0!important;
    pointer-events:none!important;
    transition:opacity .16s ease!important;
  }
  html.r45939-menu-open .r45939-menu-backdrop,
  body.r45939-menu-open .r45939-menu-backdrop{
    opacity:1!important;
    pointer-events:auto!important;
  }
  .r45939-menu-sheet{
    position:fixed!important;
    z-index:2147482600!important;
    top:calc(74px + env(safe-area-inset-top))!important;
    right:max(10px, env(safe-area-inset-right))!important;
    width:min(74vw, 304px)!important;
    max-width:304px!important;
    min-width:222px!important;
    max-height:calc(100dvh - 166px - env(safe-area-inset-top) - env(safe-area-inset-bottom))!important;
    display:none!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior:contain!important;
    box-sizing:border-box!important;
    padding:9px!important;
    border-radius:22px!important;
    background:rgba(255,255,255,.98)!important;
    border:1px solid rgba(186,222,247,.95)!important;
    box-shadow:0 18px 54px rgba(6,40,88,.28)!important;
    transform:translateZ(0)!important;
    touch-action:pan-y!important;
  }
  html.r45939-menu-open .r45939-menu-sheet,
  body.r45939-menu-open .r45939-menu-sheet{display:block!important;}
  .r45939-menu-title{
    position:sticky!important;top:-9px!important;z-index:2!important;
    display:flex!important;align-items:center!important;justify-content:space-between!important;gap:8px!important;
    padding:8px 8px 9px!important;margin:-9px -9px 7px!important;
    background:linear-gradient(180deg,rgba(255,255,255,.99),rgba(255,255,255,.92))!important;
    border-bottom:1px solid rgba(187,220,246,.82)!important;
    color:#083b7a!important;font-weight:900!important;font-size:14px!important;letter-spacing:.04em!important;
  }
  .r45939-menu-title button{
    width:30px!important;height:30px!important;min-height:30px!important;border-radius:999px!important;border:1px solid #c7e6ff!important;
    background:#f3fbff!important;color:#075cbd!important;font-size:18px!important;line-height:1!important;padding:0!important;
  }
  .r45939-menu-list{display:grid!important;grid-template-columns:1fr!important;gap:6px!important;}
  .r45939-menu-item{
    width:100%!important;box-sizing:border-box!important;min-height:36px!important;
    display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:8px!important;
    padding:8px 11px!important;border-radius:14px!important;border:1px solid rgba(194,221,244,.75)!important;
    background:linear-gradient(135deg,#fff,#f6fbff)!important;color:#153250!important;
    font-size:14px!important;font-weight:760!important;line-height:1.15!important;text-decoration:none!important;text-align:left!important;
    white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
    box-shadow:0 1px 0 rgba(255,255,255,.8) inset!important;
    touch-action:manipulation!important;
  }
  .r45939-menu-item:active{transform:scale(.985)!important;background:#edf7ff!important;}
  .r45939-menu-icon{width:20px!important;min-width:20px!important;text-align:center!important;color:#0874d8!important;font-weight:900!important;opacity:.9!important;}
  .r45939-menu-actions{
    position:sticky!important;bottom:-9px!important;z-index:3!important;
    display:grid!important;grid-template-columns:1fr 1fr!important;gap:7px!important;
    margin:8px -9px -9px!important;padding:8px 9px 9px!important;
    background:linear-gradient(180deg,rgba(255,255,255,.72),rgba(255,255,255,.99) 34%)!important;
    border-top:1px solid rgba(183,220,247,.82)!important;
  }
  .r45939-menu-actions .r45939-menu-item{
    min-height:32px!important;padding:6px 7px!important;font-size:12px!important;font-weight:900!important;
    justify-content:center!important;text-align:center!important;color:#075cbd!important;
    background:linear-gradient(135deg,#edf8ff,#e9fffb)!important;border-color:#bfe5ff!important;
  }
  .r45939-menu-actions .r45939-menu-icon{display:none!important;}
}
@media (max-width: 380px){
  .r45939-menu-sheet{right:8px!important;width:min(78vw, 286px)!important;min-width:216px!important;top:calc(70px + env(safe-area-inset-top))!important;}
  .r45939-menu-item{font-size:13.2px!important;min-height:34px!important;padding:7px 10px!important;}
  .r45939-menu-actions .r45939-menu-item{font-size:11.5px!important;min-height:30px!important;}
}

/* ===== END r45939_mobile_menu_sheet_fix.css ===== */
