:root{font-family:Arial,Helvetica,sans-serif;color:#19352e;background:#f5f7f4;font-synthesis:none;scroll-behavior:smooth}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,.button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #e6a849;outline-offset:4px}header,main,footer{max-width:1240px;margin:auto}.header{height:106px;display:flex;align-items:center;justify-content:space-between;padding:0 36px;gap:30px}.brand{display:flex;gap:12px;align-items:center;font-size:26px;font-weight:800;letter-spacing:-1px}.brand-icon{color:#387960;font-size:43px}.brand-light{font-weight:400;color:#718278}.brand small{display:block;font-size:9px;letter-spacing:2.1px;margin-top:6px}.header nav{display:flex;gap:27px;font-size:13px}.clock{font-size:12px;color:#63786e}main{padding:0 36px}.hero{position:relative;min-height:435px;background:#e5ebe0;border-radius:18px;overflow:hidden}.hero-copy{position:relative;z-index:2;padding:45px 44px 65px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:bold;color:#597668;margin:0 0 18px}h1{font-size:58px;line-height:1.05;letter-spacing:-2.5px;margin:0 0 20px}h1 span{color:#467b61}.hero-copy>p:not(.eyebrow){font-size:14px;color:#576b5e;line-height:1.7}.button,button[type=submit]{display:inline-flex;align-items:center;gap:45px;background:#265c45;color:white;border:0;border-radius:7px;padding:14px 20px;font-size:13px}.hero-copy .button{margin-top:16px}.city{position:absolute;right:0;bottom:0;width:53%;height:100%;overflow:hidden;background:linear-gradient(150deg,transparent,#c8d8c2)}.sun{position:absolute;width:140px;height:140px;border-radius:50%;background:#f8ebc3;top:52px;right:85px}.river{position:absolute;bottom:0;height:34%;width:100%;background:repeating-linear-gradient(176deg,#aecbc0 0px,#aecbc0 14px,#b6d0c4 15px,#b6d0c4 17px);opacity:.9}.island{position:absolute;background:#91aa87;width:110%;height:110px;bottom:80px;transform:rotate(-9deg);border-radius:70% 0 0 0}.bridge{position:absolute;bottom:139px;left:18px;width:105%;height:18px;background:#638475;transform:rotate(-6deg);z-index:1;border-top:5px solid #e7ead8;display:flex;justify-content:space-around}.bridge:before{content:'';position:absolute;border:6px solid #6c8b79;border-bottom:0;border-radius:50% 50% 0 0;bottom:11px;width:76%;height:100px;left:12%}.bridge i{width:5px;height:82px;background:#789585;transform:translateY(-78px)}.city-label{position:absolute;right:30px;top:27px;font-size:9px;letter-spacing:2px;color:#718575}.hero-bottom{position:absolute;bottom:0;z-index:3;display:flex;justify-content:space-between;width:100%;padding:16px 30px;background:#ffffff55;font-size:10px;color:#466353;letter-spacing:1px}.catalog{padding:48px 0}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}.section-heading .eyebrow{margin-bottom:10px}h2{font-size:28px;letter-spacing:-.8px;margin:0}.count{font-size:14px;vertical-align:middle;background:#e5ece3;border-radius:8px;padding:6px 10px;margin-left:6px}.search{display:flex;gap:9px;border:1px solid #dce3d9;background:white;padding:12px 15px;border-radius:8px}.search input{border:0;background:transparent;font-size:12px;min-width:190px}.filters{display:flex;align-items:center;gap:9px;margin:25px 0}.filters button,.secondary{border:1px solid #d8e0d5;background:transparent;padding:10px 15px;border-radius:6px;font-size:12px;color:#506757}.filters .active{background:#244e3c;border-color:#244e3c;color:white}.filters>span{margin-left:auto;font-size:11px;color:#809084}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.card{padding:0;text-align:left;border:1px solid #e0e6dd;border-radius:12px;overflow:hidden;background:#fff;color:inherit;transition:transform .2s,box-shadow .2s}.card:hover{transform:translateY(-4px);box-shadow:0 10px 24px #29483112}.preview{height:174px;background:radial-gradient(ellipse at 60% 90%,#b9c6af,transparent 65%),#e2e8de;position:relative;display:flex;align-items:center;justify-content:center}.tone-1{background:linear-gradient(140deg,#e8e3d6,#c7caba)}.tone-2{background:linear-gradient(140deg,#dce6e7,#afc5c2)}.tone-3{background:linear-gradient(140deg,#dce0d6,#bfcbb6)}.badge{position:absolute;top:13px;left:13px;border-radius:5px;padding:6px 9px;font-size:9px;background:#ffffffc4;color:#5f6d61}.camera-symbol{font-size:46px;color:#718875;opacity:.5}.preview-label{position:absolute;bottom:18px;font-size:8px;letter-spacing:2px;color:#778775}.card-body{padding:20px}.district{font-size:9px;text-transform:uppercase;letter-spacing:1.5px;color:#718571}h3{font-size:18px;margin:9px 0}.card p{font-size:12px;color:#7b887e;line-height:1.5;min-height:36px;margin:0 0 18px}.card-link{display:block;border-top:1px solid #edf0ea;padding-top:13px;color:#476e54;font-size:11px}.about{display:flex;gap:28px;align-items:center;border-top:1px solid #dce3d8;padding:35px 0 45px}.about-symbol{font-size:50px;color:#64856b}.about h2{font-size:23px}.about .eyebrow{margin-bottom:10px}.about p:not(.eyebrow){font-size:13px;color:#768477;max-width:550px;line-height:1.7}.about-note{font-size:12px;line-height:1.8;color:#69806c;border-left:2px solid #bccdb7;padding-left:23px;max-width:260px;margin-left:auto}footer{border-top:1px solid #dce3d8;display:flex;justify-content:space-between;padding:25px 36px 35px;font-size:11px;color:#7b887b}.footer-brand{font-size:15px;font-weight:bold;color:#3d5e45}dialog{width:min(900px,94vw);border:0;border-radius:15px;padding:24px;background:#f5f7f4;color:#19352e}dialog::backdrop{background:#10261ed9}.viewer-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}.viewer-head .eyebrow{margin-bottom:8px}.video-wrap{position:relative;aspect-ratio:16/9;background:#12231b;border-radius:8px;overflow:hidden;display:flex;align-items:center;justify-content:center}video{width:100%;height:100%}#player-message{position:absolute;padding:25px;text-align:center;color:#e0e9df;max-width:480px;pointer-events:none;line-height:1.7}#viewer-description{font-size:14px;line-height:1.6}.admin{padding-top:25px;padding-bottom:50px}.admin h1{font-size:38px;letter-spacing:-1px;margin-top:25px}.admin p{line-height:1.7}.notice,.success{padding:15px;background:#e6ecdf;border-radius:8px}.success{background:#d7efda}.editor{display:grid;grid-template-columns:1fr 1fr;gap:18px;border:1px solid #d3dfcc;border-radius:10px;padding:22px;margin:24px 0}.editor label{display:flex;flex-direction:column;gap:8px;font-size:12px}.editor input,.editor select{padding:12px;border:1px solid #c8d4c2;border-radius:5px;min-width:0;background:white}.editor legend{padding:0 10px;font-weight:bold}.actions{display:flex;gap:10px;flex-wrap:wrap}.editor .actions{grid-column:1/-1}[hidden]{display:none!important}@media(max-width:850px){.clock{display:none}.header{padding:0 22px;height:90px}main{padding:0 22px}.hero-copy{padding:35px 28px 65px}h1{font-size:48px}.city{opacity:.45;width:60%}.cards{grid-template-columns:repeat(2,1fr)}.filters>span{display:none}.about-note{display:none}.header nav{gap:15px}.section-heading{align-items:flex-start}.search input{min-width:0;width:160px}}@media(max-width:560px){.header{height:auto;min-height:100px;flex-wrap:wrap;gap:15px;padding:20px}.brand{font-size:23px}.header nav{width:100%;justify-content:space-between;font-size:12px}main{padding:0 16px}.hero-copy{padding:32px 24px 65px}h1{font-size:43px}.hero-copy>p:not(.eyebrow){font-size:12px}.city{width:70%;opacity:.25}.hero-bottom{font-size:8px;padding:16px}.section-heading{flex-direction:column}.search{width:100%}.search input{width:100%}h2{font-size:25px}.cards{grid-template-columns:1fr}.preview{height:190px}.catalog{padding:34px 0}.about{gap:16px}.about-symbol{display:none}footer{padding:24px 16px;gap:20px;flex-wrap:wrap}.editor{grid-template-columns:1fr;padding:15px}.admin h1{font-size:30px}.viewer-head h2{font-size:21px}}
.login-page{min-height:65vh;display:flex;justify-content:center;align-items:center}.login-panel{background:white;border:1px solid #dce3d9;border-radius:16px;padding:34px;width:min(100%,460px)}.login-panel h1{font-size:32px;margin-top:0}.login-panel .back{display:inline-block;margin-top:24px;font-size:13px}.stack{display:flex;flex-direction:column;gap:20px}.stack label,.user-form label{display:flex;flex-direction:column;gap:9px;font-size:13px}.stack input,.user-form input{padding:12px;border:1px solid #c8d4c2;border-radius:6px;min-width:0;max-width:100%;background:white}.stack button{justify-content:center}.admin-top{display:flex;justify-content:space-between;align-items:center;gap:20px}.admin-top .actions{align-items:center}.admin-tabs{display:flex;gap:10px;flex-wrap:wrap;margin:24px 0}.admin-tabs a{padding:12px 17px;background:#e8eee5;border-radius:7px;font-size:13px}.admin-tabs .selected{background:#265c45;color:white}.admin-panel{background:#fff;border:1px solid #dce3d9;padding:24px;border-radius:12px;margin:24px 0}.admin-panel h2{font-size:21px}.user-form{display:flex;gap:18px;align-items:end;flex-wrap:wrap;margin-top:20px}.user-form label{flex:1;min-width:180px}.user-form button{white-space:nowrap}.user-actions{display:flex;align-items:end;gap:20px;flex-wrap:wrap}.user-actions .user-form{flex:1}.table-wrap{overflow:auto;max-height:65vh;border:1px solid #dce3d9;border-radius:8px;background:white;margin:20px 0}table{border-collapse:collapse;width:100%;font-size:12px}th,td{text-align:left;padding:13px;border-bottom:1px solid #e5eae1;vertical-align:top}th{position:sticky;top:0;background:#e6ecdf;white-space:nowrap}td{min-width:110px}.wrap-text,.audit-password{overflow-wrap:anywhere;max-width:240px}.audit-password{display:block;margin-top:10px;white-space:pre-wrap;font-family:monospace}.muted{color:#73816e;font-size:12px}.log-heading{margin-top:35px}.pagination{margin:22px 0}@media(max-width:560px){.login-panel{padding:22px}.login-panel h1{font-size:27px}.admin-tabs a{padding:11px;font-size:12px}.admin-panel{padding:17px}.admin-top{align-items:flex-start;flex-wrap:wrap}.user-form{flex-direction:column;align-items:stretch;width:100%}.user-form label{min-width:0}.user-actions{align-items:stretch;flex-direction:column}}

.camera-preview{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;pointer-events:none}.has-preview .camera-preview{opacity:1}.has-preview .camera-symbol{visibility:hidden}.has-preview .preview-label{background:#19352ec9;color:white;border-radius:4px;padding:5px 8px}.preview .badge{z-index:1}

.field-help{font-size:11px;color:#63745e;line-height:1.5;max-width:320px}.form-error{flex-basis:100%;order:2;color:#8c3027;background:#fff0ec;padding:12px;border-radius:6px;margin:0}
