/* Northern Section — emerald, limestone and brushed brass. */
:root{--lux-forest:#123e35;--lux-brass:#b79b63;--lux-paper:#f6f4ee;--lux-shadow:0 12px 36px #153e3510;--ink:#193c32;--muted:#697970}
.app-shell{background:radial-gradient(ellipse at 90% 0,#e9e3d2,transparent 55%),#f5f3ed}
.app-header{height:auto;padding:20px 30px 15px;gap:14px 24px;isolation:isolate;background-color:#123e35;background-image:linear-gradient(100deg,#0b2c2799,#123e35f5 55%,#123e35),url(/images/calm-camp.webp);background-size:cover,60%;background-position:center,left 65%;box-shadow:0 6px 24px #0c2e271c}
.app-header:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:repeating-radial-gradient(ellipse at 105% -100%,transparent 0 58px,#d5be870b 59px 60px,transparent 61px 94px)}
.app-header:after{height:2px;background:linear-gradient(90deg,transparent,#b59a60 25%,#eedcb2 65%,#a98a50)}
.app-header .brand{gap:15px}.app-header .brand h1{font-size:26px;font-weight:800;letter-spacing:-.6px;color:#fffaf0;line-height:1.45}
.app-header .brand p{font-size:11px;color:#cedbd4;letter-spacing:0}
.app-header .brand-icon{width:58px;height:58px;flex-shrink:0;border-radius:18px;background:linear-gradient(135deg,#e1c79026,#ffffff04);border:1px solid #dbc18a66;color:#eed8a7;box-shadow:inset 0 0 0 5px #ffffff04,0 6px 18px #0002}
.app-header .developer-credit-header{border:0;margin-top:5px;padding:0;gap:6px}.app-header .developer-credit-header>span{color:#b8cbc1}.app-header .developer-credit-header>strong{color:#e8d4aa}
.app-header .header-identity{padding:9px 14px;border-radius:12px;background:linear-gradient(90deg,#ffffff03,#ffffff09);border:1px solid #d1bc8a30;border-inline-start:3px solid #c9ac73}
.app-header .header-actions>.btn-cream{background:linear-gradient(125deg,#f1e4c5,#d8bd86);border:1px solid #efddba;color:#163d32;box-shadow:0 5px 16px #071f2422}
.app-header .header-actions>.btn{min-height:46px;border-radius:12px}.app-header .header-import{background:#ffffff08;border-color:#ffffff33}
.toolbar{margin:0;padding:15px 24px;background:#fffdf9;border-bottom:1px solid #deddd2;box-shadow:0 4px 15px #23473804}
.search{background:#f7f7f2;border:1px solid #e1e5db;box-shadow:inset 0 1px 3px #18392f03}.search:focus-within{background:#fff;border-color:#aa966b;box-shadow:0 0 0 3px #b79b6318}
.view-tabs{background:#efeee7;border-color:#e4e1d7;border-radius:12px}.view-tabs button.active{background:linear-gradient(130deg,#28584a,#143f34);box-shadow:0 3px 8px #17403426}
.filter{background:#fffefa;border-color:#e3e1d5}.export-btn{background:#f3eee2;border-color:#e4d8bd;color:#6c572d}
.workspace{padding:20px;gap:18px}.sidebar,.map-stage{border-radius:22px;box-shadow:var(--lux-shadow);border:1px solid #dddcd0}.sidebar{background:#fffefa}
.sidebar-camp-photo{height:120px;background-position:center 63%;border-bottom:2px solid #bda16b;position:relative}
.sidebar-camp-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#153b3520,transparent)}
.sidebar-heading{padding:18px 20px 13px}.sidebar-heading h2{font-size:20px;color:#173f33}.eyebrow{color:#89754f}
.mini-stats{gap:9px;margin-inline:16px}.mini-stats>div{background:linear-gradient(130deg,#eaf1e9,#f5f8f0);border-color:#dce6d8;border-radius:13px;padding:12px 10px}.mini-stats>div:last-child{background:linear-gradient(130deg,#f1eadb,#fcf9f1);border-color:#e7dcc4}.mini-stats b{font-size:23px;color:#214d3e;font-variant-numeric:tabular-nums}
.camp-item{border-color:#e5e6dc;border-radius:14px;padding:15px 12px;background:#fff;box-shadow:0 2px 5px #203e3004}.camp-item:hover{border-color:#bba472;background:#fcfaf3;box-shadow:0 5px 16px #2443350d}.camp-item-icon{background:linear-gradient(145deg,#edf3e9,#f9faf4);border-color:#dce5d5;border-radius:13px;color:#426e50}.camp-item-text>span{color:#244c3b;font-size:14px}
.map-stage{border:5px solid #fffdf7;outline:1px solid #deded3}.map-title{background:#fffef7f2;border:1px solid #ded5bf;border-radius:12px;box-shadow:0 5px 18px #153b3214}.map-tools button,.basemap-control{border:1px solid #e1dac7;background:#fffef8;box-shadow:0 5px 16px #153b3214}
.table-workspace{background:transparent;padding:22px}.table-panel{border-radius:21px;border-color:#e0ded2;box-shadow:var(--lux-shadow)}.table-title{padding:23px 26px;background:linear-gradient(105deg,#eee8d8,#fffdf8 70%);border-color:#e7e0d0}.table-title h2{color:#1c4535;font-size:25px}.table-title .eyebrow{color:#897448}.table-scroll th{background:#f2f3ec;color:#566b59;padding-block:15px}.table-scroll td{padding-block:18px}.table-scroll tbody tr:hover td{background:#faf7ed}
.owner-card{border-radius:18px;box-shadow:0 6px 22px #163b3010}.owner-card-header{background:linear-gradient(120deg,#2d5b48,#103b31);border-bottom:2px solid #c8ac72}.owner-card-body{background:radial-gradient(ellipse at 0 0,#c4a26313,transparent 75%)}
.modal{border-radius:22px;box-shadow:0 25px 80px #0a2b3233}.modal-header{background:linear-gradient(110deg,#eee9da,#fffdf7);border-bottom:1px solid #e3dfd1}.modal-header h2{color:#214a39}.modal-backdrop{background:#092a256e;backdrop-filter:blur(5px)}.modal-footer{background:#f4f3eb}
.btn-primary,.identity-submit{background:linear-gradient(115deg,#2b5d49,#123f33);box-shadow:0 5px 14px #153e351a}.btn-primary:hover,.identity-submit:hover{background:linear-gradient(115deg,#346d55,#1a4f40)}
.form-grid input,.form-grid select,.form-grid textarea{border-color:#dddccd;border-radius:11px}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{border-color:#aa966b;box-shadow:0 0 0 3px #b79b631a}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:3px solid #b79b63;outline-offset:3px}
.btn,.camp-item,.view-tabs button,.icon-btn,.theme-toggle{transition:background .18s,border-color .18s,box-shadow .18s}
/* An editorial entrance using the existing camp photograph. */
.identity-page{background:#f5f2e9}.identity-art{background-image:linear-gradient(180deg,#0b302b40,#123b32b8 60%,#092b27ef),url(/images/calm-camp.webp);background-size:cover;background-position:center;align-items:flex-end;justify-content:flex-start;padding:clamp(35px,5vw,85px)}
.identity-art:after{content:"";position:absolute;inset:24px;border:1px solid #e3cf9c55;border-radius:22px;pointer-events:none}.identity-brand{max-width:480px;padding-bottom:35px}.identity-brand .eyebrow{color:#ebd6a8;font-size:12px;letter-spacing:0;border:1px solid #dec89866;background:#153e3566;padding:7px 14px;border-radius:30px;display:inline-block}.identity-brand h1{font-size:clamp(34px,3.6vw,54px);color:#fffaf0;line-height:1.55;margin:20px 0 15px}.identity-brand p{font-size:19px;color:#f0ede1;line-height:2;max-width:360px}
.identity-panel{background:radial-gradient(ellipse at 90% 5%,#e9dec347,transparent 65%),#f7f5ee;padding:65px 38px}.identity-card{max-width:430px;background:#fffefb;border:1px solid #e6e0d1;border-radius:25px;padding:36px;box-shadow:0 20px 65px #263e300b}.identity-card .eyebrow{color:#8a7447;font-size:11px}.identity-card h2{font-size:31px;color:#163e32;margin-top:12px}.identity-intro{color:#6f796c;font-size:13px;line-height:2;margin-bottom:27px}.identity-fields input{height:50px;background:#fbfbf7;border-color:#dedfd3;border-radius:12px}.identity-submit{border-radius:12px;min-height:50px;justify-content:center}.access-private-note{text-align:center;line-height:1.8}.identity-panel footer.developer-credit-login{border:0;margin-top:16px}.identity-panel footer.developer-credit-login>strong{color:#826735}
html[data-theme="dark"] .app-header{background-image:linear-gradient(100deg,#071e1bba,#102e27f5 60%,#102e27),url(/images/calm-camp.webp)}
html[data-theme="dark"] .app-shell{background:radial-gradient(ellipse at 90% 0,#243b2d,transparent 55%),#101c19}
html[data-theme="dark"] .map-stage{border-color:#233c30;outline-color:#3c5140}html[data-theme="dark"] .identity-art{background-image:linear-gradient(180deg,#082b2755,#0b2a24cc 65%,#061e1bf2),url(/images/calm-camp.webp)}
html[data-theme="dark"] .identity-panel{background:radial-gradient(ellipse at 90% 5%,#b79b6312,transparent 65%),#101e19}html[data-theme="dark"] .identity-card{background:#172820;border-color:#3e4e3b;box-shadow:0 20px 65px #0002}html[data-theme="dark"] .identity-panel footer.developer-credit-login>strong{color:#e3cb97}
html[data-theme="dark"] .map-title,html[data-theme="dark"] .map-tools button,html[data-theme="dark"] .basemap-control{background:#1c3229;color:#dce7d7;border-color:#4a5943}
@media(min-width:1600px){.workspace{padding:26px;gap:24px}.app-header{padding-inline:36px}}
@media(max-width:1180px) and (min-width:761px){.app-header{padding:17px 20px 13px}.app-header .brand h1{font-size:23px}.workspace{padding:16px;gap:14px}.identity-card{padding:27px}.identity-panel{padding-inline:25px}}
@media(max-width:760px){
 .app-header{padding:14px 15px 11px;gap:10px;background-size:cover,100%}.app-header .brand{gap:10px}.app-header .brand h1{font-size:21px}.app-header .brand-icon{width:43px;height:43px;border-radius:13px}.app-header .brand p{font-size:9px}.app-header .developer-credit-header{margin-top:3px}.app-header .header-identity{padding:7px 10px}.app-header .header-actions>.btn{min-height:44px}.toolbar{padding:10px 12px;gap:8px}
 .workspace{padding:0;display:block}.map-stage{border:0;outline:0;border-radius:0;box-shadow:none}.sidebar{border-radius:19px;border:1px solid #d4c7a8}.sidebar-camp-photo{height:70px}.sidebar-heading{padding:12px 15px 9px}.sidebar-heading h2{font-size:18px}.mini-stats>div{padding:8px 10px}.mini-stats b{font-size:19px}.camp-item{padding:11px 10px}.camp-item-text>span{font-size:13px}.mobile-list-toggle{background:linear-gradient(110deg,#285a47,#143e33);border-color:#c7ad76;box-shadow:0 6px 24px #0b352e38}
 .table-workspace{padding:16px 12px}.table-panel{border:0;border-radius:0;box-shadow:none}.table-title{padding:0 3px 14px;background:transparent}.table-title h2{font-size:21px}.table-scroll tbody tr{border-color:#e0dccd;border-radius:16px;box-shadow:0 4px 15px #193c3007}.table-scroll tbody tr:before{background:#b99b5e;width:42px}.table-scroll tbody tr:hover td{background:transparent}
 .identity-page{display:block}.identity-art{display:none}.identity-panel{padding:66px 18px 24px;min-height:100dvh;justify-content:center}.mobile-camp-photo{height:125px;width:100%;max-width:430px;border-radius:22px 22px 0 0;border-bottom:2px solid #bda16b;background-position:center 62%;margin:0}.identity-card{max-width:430px;padding:27px 23px;border-radius:0 0 22px 22px;border-top:0}.identity-card h2{font-size:27px}.identity-intro{font-size:12px;margin-bottom:22px}.identity-fields input{font-size:16px}.identity-panel footer.developer-credit-login{margin-top:10px;padding-top:6px}.modal{border-radius:18px}.modal-header{padding:17px 18px}
}
@media(max-width:359px){.app-header .brand h1{font-size:18px}.app-header .brand-icon{width:36px;height:38px}.app-header .brand{gap:8px}.identity-panel{padding-inline:12px}.identity-card{padding:24px 19px}}
@media(max-height:740px) and (max-width:760px){.app-header{padding-block:10px 8px;gap:7px}.sidebar-camp-photo{display:none}.mobile-camp-photo{height:90px}.identity-panel{justify-content:flex-start}}
@media(prefers-reduced-motion:reduce){.btn,.camp-item,.view-tabs button,.icon-btn,.theme-toggle{transition:none}}
