:root{--navy:#07172e;--navy2:#0b2342;--blue:#1674d1;--gold:#ffc85a;--ink:#13243a;--muted:#66778d;--line:#e1e9f2;--paper:#f4f7fb;--teal:#21b6b1;--red:#e94c58;--green:#25a66a;--shadow:0 12px 32px rgba(10,35,68,.09)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,Segoe UI,Arial,sans-serif;line-height:1.5}.topbar{background:#06152a;color:#fff;min-height:88px;padding:17px clamp(18px,4vw,60px);display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid rgba(255,255,255,.12)}.brand,.top-actions,.footer-brand{display:flex;align-items:center;gap:14px}.crest{width:52px;height:59px;clip-path:polygon(50% 0,92% 14%,88% 67%,50% 100%,12% 67%,8% 14%);background:linear-gradient(145deg,#f9d575,#a97819);color:#07172e;display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:900;font-size:13px;line-height:1.1;text-align:center;border:1px solid #fff}.crest small{font-size:7px;letter-spacing:.8px}.brand h1{font-size:clamp(14px,2vw,19px);letter-spacing:.07em;margin:2px 0}.brand p{margin:0;color:#a9bad0;font-size:12px}.eyebrow{font-size:10px;letter-spacing:.16em;font-weight:800;color:#94a9c3}.top-actions{font-size:10px;letter-spacing:.12em;color:#d7e2f0}.live-dot{height:8px;width:8px;border-radius:50%;background:#45d79c;box-shadow:0 0 0 4px #45d79c22}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:11px 17px;border-radius:10px;text-decoration:none;border:1px solid transparent;font-weight:750;font-size:12px;cursor:pointer;transition:transform .18s,filter .18s;background:none;color:inherit}.btn:hover{transform:translateY(-1px);filter:brightness(1.04)}.btn-outline{color:#fff;border-color:#60748e}.btn-gold{background:var(--gold);color:#16243a;box-shadow:0 7px 18px #ffc85a26}.btn-glass{border-color:#ffffff5c;color:white;background:#ffffff0d}.btn-dark{background:var(--navy2);color:#fff}.btn-outline-dark{border-color:#c4d2e1;color:var(--navy2)}.btn-danger-outline{border-color:#efb5bb;color:#b52b3b}.full{width:100%}.hero{background:radial-gradient(ellipse at 78% 25%,#174a79 0,#0c2c50 31%,transparent 57%),linear-gradient(115deg,#06152b,#0a2341 67%,#092b4e);color:#fff;padding:clamp(35px,5vw,70px) clamp(20px,5vw,72px);display:grid;grid-template-columns:1.02fr .98fr;gap:25px;overflow:hidden;min-height:350px}.hero-copy{max-width:620px;position:relative;z-index:1}.pill{display:inline-block;border:1px solid #77a8d45a;background:#ffffff0c;color:#bcd9f7;padding:7px 11px;border-radius:99px;font-size:10px;font-weight:800;letter-spacing:.12em}.hero h2{font-size:clamp(39px,5vw,65px);line-height:1.03;letter-spacing:-.04em;margin:21px 0 14px}.hero h2 em{font-style:normal;color:var(--gold)}.hero p{max-width:490px;color:#c1d0e1;font-size:15px}.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:25px}.hero-art{min-height:250px;position:relative;overflow:hidden}.ring{position:absolute;border:1px solid #64b5ef45;border-radius:50%;aspect-ratio:1;left:50%;top:45%;transform:translate(-50%,-50%)}.ring1{width:min(90%,350px)}.ring2{width:min(65%,250px);border-style:dashed}.road{position:absolute;left:6%;top:45%;width:92%;height:48px;background:#263c55;border:2px solid #59748f;border-radius:50%;transform:rotate(-20deg);box-shadow:0 0 40px #40a7ff20}.road:before,.road:after{content:"";position:absolute;top:50%;left:0;right:0;border-top:2px dashed #d5dbe2;transform:translateY(-50%)}.pin{position:absolute;width:44px;height:44px;border-radius:14px 14px 14px 3px;transform:rotate(-45deg);display:grid;place-items:center;font-size:26px;font-weight:900;box-shadow:0 8px 22px #0005}.pin: first-letter{transform:rotate(45deg)}.pin-a{top:23%;left:22%;background:var(--gold);color:#0b1d33}.pin-b{bottom:18%;right:16%;background:#1682e6;color:white}.art-label{position:absolute;background:#ffffff12;border:1px solid #ffffff29;border-radius:9px;padding:9px 13px;font-size:9px;letter-spacing:.12em;color:#a9c6e7}.art-label b{font-size:12px;color:white}.label-a{top:13%;right:11%}.label-b{bottom:18%;left:8%}.art-bottom{position:absolute;bottom:0;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:9px;letter-spacing:.16em;color:#9bb8d7}.main-wrap{max-width:1440px;margin:auto;padding:28px clamp(16px,4vw,56px) 45px}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:-4px}.stat-card{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:15px;padding:19px;box-shadow:var(--shadow);min-width:0}.stat-icon{width:43px;height:43px;flex-shrink:0;display:grid;place-items:center;border-radius:13px;background:#e6f1ff;color:#176ac0;font-size:22px;font-weight:900}.stat-icon.amber{background:#fff4d9;color:#b87900}.stat-icon.teal{background:#dff8f5;color:#0b8f88}.stat-icon.violet{background:#eee9ff;color:#7253c7}.stat-label{display:block;font-size:9px;font-weight:850;letter-spacing:.1em;color:#708197}.stat-card strong{display:block;font-size:25px;line-height:1.35;color:#12243c}.stat-card small{display:block;color:#8b98a8;font-size:10px}.section-block{margin-top:48px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:19px}.eyebrow.blue{color:#1471ca}.section-heading h2,.info-panel h2{font-size:clamp(22px,2.7vw,30px);letter-spacing:-.035em;margin:5px 0 4px;color:#10233b}.section-heading p,.info-panel p{margin:0;color:var(--muted);font-size:12px}.status-key{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:10px;color:#61738a}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-left:8px}.status-dot.open{background:var(--green)}.status-dot.caution{background:#e4a322}.status-dot.closed{background:var(--red)}.advisory-list{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.empty-state{grid-column:1/-1;background:white;border:1px dashed #cdd9e6;padding:23px;border-radius:13px;color:#687b90;font-size:12px}.advisory-card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:17px;box-shadow:0 6px 20px #17345108}.advisory-card h3{margin:10px 0 5px;font-size:15px}.advisory-card p{margin:0;color:#68798d;font-size:12px;white-space:pre-wrap}.advisory-meta{display:flex;justify-content:space-between;gap:8px;font-size:10px;color:#8996a6}.state-chip{border-radius:99px;padding:5px 8px;font-size:9px;font-weight:850;letter-spacing:.06em}.state-chip.open{background:#e0f7eb;color:#157b4b}.state-chip.diversion{background:#fff1cf;color:#966300}.state-chip.closed{background:#ffe5e7;color:#b52735}.search-box{display:flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:0 12px;min-width:200px;color:#6d8298}.search-box input{border:0;outline:0;background:transparent;padding:11px 0;width:100%;font:inherit;font-size:12px}.route-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.route-card{background:#fff;border:1px solid #dfe7f0;border-radius:15px;overflow:hidden;box-shadow:0 7px 24px #1734510a;transition:transform .2s,box-shadow .2s;min-width:0}.route-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.route-card-top{background:linear-gradient(120deg,#0b2b50,#10568d);color:white;display:flex;align-items:center;gap:12px;padding:15px}.route-number{width:39px;height:39px;border-radius:12px;display:grid;place-items:center;background:var(--gold);color:#09213d;font-size:19px;font-weight:900;flex-shrink:0}.route-card h3{font-size:13px;line-height:1.3;margin:0;flex:1}.route-card-top .arrow{font-size:20px;color:#a9d6ff}.route-preview{height:132px;position:relative;background:linear-gradient(135deg,#d5e6f5,#83b4d9 45%,#326f98);overflow:hidden;display:flex;align-items:center;justify-content:center}.route-preview:before{content:"";position:absolute;width:150%;height:42px;background:#465b6c;border:2px solid #8fa7b6;transform:rotate(-14deg);box-shadow:0 0 0 7px #ffffff40}.route-preview:after{content:"";position:absolute;left:0;right:0;top:50%;border-top:2px dashed #fff;transform:rotate(-14deg)}.route-land{position:absolute;inset:0;background:linear-gradient(180deg,#ffffff25,transparent 45%),radial-gradient(ellipse at 20% 100%,#38865a88 0 18%,transparent 19%),radial-gradient(ellipse at 85% 0,#3c986c77 0 25%,transparent 26%)}.play-button{position:relative;z-index:1;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;border:2px solid white;background:#06172edb;color:white;font-size:20px;cursor:pointer;box-shadow:0 4px 18px #0003}.route-card-bottom{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:13px 15px}.route-direction{font-size:11px;font-weight:700;color:#4c6078}.route-view{border:0;background:#eaf3ff;color:#1469bb;border-radius:8px;padding:8px 10px;font-size:10px;font-weight:800;cursor:pointer;white-space:nowrap}.map-tag{font-size:9px;letter-spacing:.12em;font-weight:850;color:#176ec0;background:#e4f1ff;border-radius:99px;padding:8px 10px}.map-layout{display:grid;grid-template-columns:1fr 245px;gap:14px}.map-layout #map{height:400px;border:1px solid #d6e0eb;border-radius:14px;z-index:0;overflow:hidden;background:#e5edf5}.map-side{background:#fff;border:1px solid var(--line);border-radius:14px;padding:19px}.map-side h3{margin:0 0 15px;font-size:14px}.map-side p{font-size:11px;color:#66778d;display:flex;align-items:center;gap:10px}.legend-pin{display:inline-block;width:12px;height:12px;border-radius:50% 50% 50% 0;transform:rotate(-45deg)}.blue-pin{background:#1674d1}.gold-pin{background:#e8aa29}.legend-line{display:inline-block;width:20px;border-top:3px dashed #1674d1}.notice-box{margin:19px 0;background:#fff7e5;border:1px solid #f4dfaa;border-radius:10px;padding:12px}.notice-box b{font-size:11px;color:#8b5a00}.notice-box p{display:block;margin:5px 0 0;font-size:10px;line-height:1.6}.two-panels{display:grid;grid-template-columns:1fr 1fr;gap:16px}.info-panel{display:flex;gap:15px;background:#fff;border:1px solid var(--line);border-radius:15px;padding:23px;box-shadow:0 7px 24px #17345108}.panel-icon{width:43px;height:43px;border-radius:12px;background:#e4f1ff;color:#1669b9;display:grid;place-items:center;font-weight:900;font-size:20px;flex-shrink:0}.gold-icon{background:#fff1d1;color:#a56a00}.info-panel h2{font-size:20px}.compact-list{margin-top:12px;display:grid;gap:8px}.compact-item{background:#f6f9fc;border-radius:8px;padding:9px 10px;font-size:11px}.compact-item b{display:block;color:#243b56}.compact-item span{color:#77899d}.muted{color:#7c8b9e;font-size:11px}.safety-list{padding-left:17px;margin:12px 0 0;color:#586c83;font-size:11px}.safety-list li{margin:7px 0}.share-strip{margin-top:42px;background:linear-gradient(110deg,#0a2442,#104b7d);color:#fff;border-radius:16px;padding:24px 27px;display:flex;align-items:center;gap:17px}.share-symbol{width:47px;height:47px;border:1px solid #ffffff3d;border-radius:14px;display:grid;place-items:center;font-size:25px;color:var(--gold);flex-shrink:0}.share-strip h2{font-size:18px;margin:0 0 4px}.share-strip p{font-size:11px;color:#c0d2e5;margin:0}.share-strip .btn{margin-left:auto;flex-shrink:0}footer{background:#06152a;color:#fff;padding:24px clamp(18px,4vw,60px);display:flex;justify-content:space-between;align-items:center;gap:20px}.small-crest{width:39px;height:44px;font-size:10px}.small-crest small{font-size:6px}.footer-brand b{display:block;font-size:11px;letter-spacing:.08em}.footer-brand span{display:block;font-size:9px;color:#9bb0c9;margin-top:4px}.footer-note{font-size:10px;color:#9bb0c9;text-align:right;max-width:400px}.modal{display:none;position:fixed;inset:0;z-index:9999;align-items:center;justify-content:center;padding:18px}.modal.open{display:flex}.modal-backdrop{position:absolute;inset:0;background:#041020d9;backdrop-filter:blur(5px)}.modal-card{position:relative;z-index:1;background:#fff;border-radius:18px;padding:27px;width:min(100%,620px);max-height:92vh;overflow:auto;box-shadow:0 25px 80px #0004}.modal-card h2{margin:7px 0;font-size:24px}.modal-close{position:absolute;right:15px;top:12px;border:0;background:#eef3f8;border-radius:50%;width:34px;height:34px;font-size:23px;cursor:pointer;color:#243b56}.video-card video{display:block;width:100%;max-height:58vh;background:#06152a;border-radius:10px;margin-top:16px}.video-note{font-size:10px;color:#75859a}.admin-card{width:min(100%,700px)}.prototype-warning{background:#fff5d9;border:1px solid #f2d88c;padding:13px;border-radius:10px;margin:16px 0}.prototype-warning b{font-size:12px;color:#8a5c00}.prototype-warning p{font-size:11px;color:#705d35;margin:4px 0 0}.admin-form{border-top:1px solid var(--line);padding-top:16px;margin-top:17px;display:grid;gap:12px}.admin-form h3{font-size:15px;margin:0}.admin-form label{display:grid;gap:6px;font-size:11px;font-weight:750;color:#3c5068}.admin-form input,.admin-form select,.admin-form textarea{width:100%;border:1px solid #d5e0eb;border-radius:8px;padding:10px;font:inherit;font-size:12px;color:#13243a;background:white}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.admin-bottom{display:flex;gap:9px;flex-wrap:wrap;margin-top:17px}.form-message{font-size:11px;color:#167449;min-height:16px}.leaflet-popup-content-wrapper{border-radius:10px}.leaflet-popup-content{font-size:12px}.leaflet-container{font-family:inherit}.leaflet-control-attribution{font-size:9px!important}@media(max-width:950px){.hero{grid-template-columns:1fr .75fr}.stats-grid{grid-template-columns:repeat(2,1fr)}.route-grid{grid-template-columns:repeat(2,1fr)}.advisory-list{grid-template-columns:repeat(2,1fr)}.map-layout{grid-template-columns:1fr}.map-side{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.map-side h3,.notice-box,.map-side .btn{grid-column:1/-1}}@media(max-width:650px){.topbar{align-items:flex-start}.top-actions{gap:8px;font-size:0}.top-actions .btn{font-size:11px;padding:9px}.brand{gap:9px}.crest{width:42px;height:49px}.brand h1{font-size:12px}.brand p{font-size:10px}.hero{grid-template-columns:1fr;padding-top:35px}.hero-art{min-height:200px}.hero h2{font-size:44px}.stats-grid{gap:9px}.stat-card{padding:13px;gap:9px}.stat-icon{width:35px;height:35px}.stat-card strong{font-size:21px}.stat-label{font-size:8px}.section-heading{align-items:flex-start;flex-direction:column}.status-key{font-size:9px}.route-grid,.advisory-list,.two-panels{grid-template-columns:1fr}.route-preview{height:150px}.map-layout #map{height:330px}.map-side{display:block}.share-strip{align-items:flex-start;flex-wrap:wrap;padding:20px}.share-strip .btn{margin-left:0}.share-strip>div:nth-child(2){flex:1;min-width:180px}footer{align-items:flex-start;flex-direction:column}.footer-note{text-align:left}.form-row{grid-template-columns:1fr}.modal-card{padding:22px 17px}.search-box{width:100%}}

/* Dasara festive official header: logos and portrait use supplied originals */
.festival-header{position:relative;isolation:isolate;display:grid;grid-template-columns:112px 112px minmax(320px,1fr) 190px 210px;align-items:center;gap:14px;min-height:230px;padding:16px clamp(14px,2.2vw,34px);color:#fff;background:#061a3b url('assets/dasara-festival-header.jpg') center 48%/cover no-repeat;border-bottom:4px solid #d9a83b;box-shadow:0 8px 26px #0005;overflow:hidden}
.festival-header:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(2,13,37,.75),rgba(3,17,43,.5) 28%,rgba(4,20,48,.82) 52%,rgba(2,13,37,.55));}
.festival-header:after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:linear-gradient(90deg,#ffd76a,#a96e1b,#fff0b0,#c58a25);}
.header-emblem{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;position:relative;z-index:1;text-align:center;min-width:0}
.header-emblem img{width:100%;max-width:98px;height:112px;object-fit:contain;filter:drop-shadow(0 4px 8px #0008)}
.header-emblem span{font-size:9px;line-height:1.25;font-weight:900;letter-spacing:.04em;text-shadow:0 2px 4px #000}
.header-ntr img{max-width:104px}
.festival-title{position:relative;z-index:1;text-align:center;padding:12px 10px;background:linear-gradient(90deg,transparent,rgba(2,13,36,.58) 12%,rgba(2,13,36,.78) 50%,rgba(2,13,36,.58) 88%,transparent);text-shadow:0 3px 8px #000}
.agency-line{font-size:clamp(10px,1.1vw,14px);font-weight:900;letter-spacing:.12em;color:#ffe09a;margin-bottom:4px}
.dasara-word{font-family:Georgia,serif;font-size:clamp(24px,3vw,42px);font-weight:900;letter-spacing:.13em;color:#ffcf65;text-shadow:0 2px 0 #6d3c0b,0 0 18px #ffb72f99}
.festival-title h1{font-size:clamp(22px,3vw,42px);line-height:1.03;letter-spacing:.015em;margin:2px 0 8px;color:#fff;font-weight:950}
.festival-title h1 span{color:#ffdc7d;font-size:.82em}
.festival-title p{display:inline-block;margin:0;padding:7px 16px;border:1px solid #f3c85c;border-radius:999px;background:#082a60d9;font-size:clamp(10px,1.1vw,14px);font-weight:650;color:#fff}
.cp-block{position:relative;z-index:1;align-self:stretch;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;min-width:0;padding-top:0}
.cp-block img{display:block;width:100%;height:154px;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 4px 8px #0009)}
.cp-caption{width:100%;text-align:center;display:flex;flex-direction:column;gap:2px;padding:6px 4px 0;background:linear-gradient(0deg,rgba(2,12,31,.92),rgba(2,12,31,.15));text-shadow:0 2px 4px #000}
.cp-caption strong{font-size:clamp(9px,.9vw,12px);line-height:1.25;color:#ffdc7d;text-transform:none}
.cp-caption span{font-size:10px;line-height:1.15;color:#fff}
.header-admin{position:absolute;right:16px;top:12px;z-index:2}.header-admin .btn{padding:8px 12px;font-size:10px;background:#081e3ac9;border-color:#f0cb72}
/* Ensure the page below the new banner remains in its existing layout */
@media(max-width:850px){.festival-header{grid-template-columns:76px 76px minmax(0,1fr) 128px;gap:7px;min-height:190px;padding:12px 10px}.header-emblem img{height:82px}.header-emblem span{font-size:7px}.cp-block img{height:118px}.cp-caption span{font-size:8px}.header-admin{top:5px;right:6px}.header-admin .btn{padding:5px 8px;font-size:9px}.festival-title{padding:16px 2px 6px}.festival-title p{padding:5px 8px}.agency-line{letter-spacing:.04em}}
@media(max-width:560px){.festival-header{grid-template-columns:58px minmax(0,1fr) 82px;gap:6px;min-height:170px;padding:8px 7px}.header-ap{grid-column:1;grid-row:1}.header-ntr{display:none}.festival-title{grid-column:2;grid-row:1;padding:18px 0 4px}.cp-block{grid-column:3;grid-row:1}.header-emblem img{height:66px}.header-emblem span{font-size:6px}.cp-block img{height:84px}.cp-caption strong{font-size:7px}.cp-caption span{font-size:7px}.dasara-word{font-size:19px}.festival-title h1{font-size:19px}.festival-title h1 span{font-size:.76em}.agency-line{font-size:7px}.festival-title p{font-size:8px;line-height:1.2;border-radius:8px;padding:4px 5px}.header-admin{top:auto;bottom:5px;right:6px}.header-admin .btn{font-size:8px;padding:4px 6px}}

/* Secure admin starter */
.header-admin a{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
.admin-page{max-width:980px;margin:32px auto;padding:0 18px 40px}.admin-page .admin-panel{background:#fff;border:1px solid #dfe7f0;border-radius:16px;padding:24px;margin:18px 0;box-shadow:0 8px 24px #1734510a}.admin-page h1{color:#fff}.admin-page label{display:grid;gap:6px;font-size:12px;font-weight:750;color:#3c5068}.admin-page input,.admin-page select,.admin-page textarea{width:100%;border:1px solid #d5e0eb;border-radius:8px;padding:11px;font:inherit;font-size:13px;color:#13243a;background:white}.admin-page .admin-form{display:grid;gap:12px}.admin-page .form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.admin-page .message{padding:12px;border-radius:9px;background:#edf7ff;color:#174f85;font-size:12px}.admin-page .record{padding:12px;border:1px solid #e1e9f2;border-radius:9px;margin:8px 0}.admin-page .record button{margin-top:8px}@media(max-width:600px){.admin-page .form-row{grid-template-columns:1fr}}

/* Official awareness/news carousel */
.festival-header{background:linear-gradient(115deg,rgba(4,20,48,.98),rgba(7,42,82,.96) 58%,rgba(11,28,54,.98));border-bottom:5px solid var(--gold)}
.dasara-word{color:var(--gold)!important;letter-spacing:.09em}
.news-section{overflow:hidden}
.news-live{font-size:10px;letter-spacing:.12em;font-weight:800;color:#0c5e42;display:flex;align-items:center;gap:8px}
.news-live i{display:inline-block;width:8px;height:8px;border-radius:50%;background:#1ca66b}
.news-scroller{display:flex;gap:18px;overflow-x:auto;padding:5px 2px 18px;scroll-snap-type:x mandatory;scrollbar-width:thin}
.news-card{flex:0 0 min(310px,82vw);border:1px solid var(--line);border-radius:16px;background:#fff;overflow:hidden;box-shadow:var(--shadow);scroll-snap-align:start;cursor:pointer;text-align:left;padding:0;color:inherit;transition:transform .2s,box-shadow .2s}
.news-card:hover{transform:translateY(-3px);box-shadow:0 16px 35px #09284a1c}
.news-card img{display:block;width:100%;height:178px;object-fit:cover;background:#e6edf5}
.news-card-copy{padding:16px}
.news-card-category{font-size:10px;letter-spacing:.1em;font-weight:850;color:#94670a;text-transform:uppercase}
.news-card h3{margin:8px 0;font-size:17px;line-height:1.35;color:#0b2342}
.news-card p{margin:0;color:var(--muted);font-size:13px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.news-card time{display:block;margin-top:12px;color:#78889b;font-size:11px}
.news-modal-card{max-width:760px}
.news-modal-card>img{display:block;width:100%;max-height:360px;object-fit:cover;border-radius:12px;margin:12px 0 18px}
.news-modal-body{white-space:pre-wrap;line-height:1.8}
@media(max-width:700px){.news-card{flex-basis:82vw}.news-card img{height:155px}.news-modal-card{padding:20px}}

/* Heavy Vehicle Routes are shown as a dedicated section when its menu is selected. */
.dcp-block{padding-top:0}
.officer-photo-placeholder{width:84px;height:84px;border-radius:12px;border:2px solid #e3bd62;background:linear-gradient(145deg,#e9f1fb,#b8cbe0);color:#14355b;display:grid;place-items:center;font-size:22px;font-weight:900;letter-spacing:.06em}
.dcp-block .cp-caption{max-width:210px}
.awareness-thumb{display:block;position:relative;height:178px;background:linear-gradient(145deg,#0a2341,#1a5488);overflow:hidden}
.awareness-thumb img{height:100%;width:100%;object-fit:cover}
.awareness-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:#ffc85a;color:#07172e;box-shadow:0 4px 18px #0005}
.awareness-video-card{display:block}
@media(max-width:1050px){.festival-header{grid-template-columns:90px 90px minmax(240px,1fr) 150px;}.dcp-block{grid-column:4;grid-row:2;}.festival-title{grid-column:3;grid-row:1/3}.cp-block:not(.dcp-block){grid-column:4;grid-row:1}.header-emblem{grid-row:1/3}.header-admin{top:8px;right:8px}}
@media(max-width:700px){.festival-header{grid-template-columns:68px 68px 1fr;gap:8px;padding:10px;min-height:0}.header-emblem img{height:48px}.header-emblem span{font-size:6px}.festival-title{grid-column:1/-1;grid-row:2;padding:12px 4px}.cp-block:not(.dcp-block){grid-column:3;grid-row:1}.dcp-block{grid-column:1/-1;grid-row:3;flex-direction:row;justify-content:center;gap:10px;padding:8px}.dcp-block .officer-photo-placeholder{width:58px;height:58px}.dcp-block .cp-caption{max-width:230px}.header-admin{top:6px;right:6px}.header-admin .btn{font-size:9px;padding:5px 7px}.news-card{flex-basis:82vw}.awareness-thumb{height:155px}}

/* DGP official profile strip */
.dgp-profile-strip{display:flex;align-items:center;justify-content:center;gap:18px;padding:14px 20px;background:linear-gradient(100deg,#07172e,#123768);border-bottom:2px solid #d5a83d;color:#fff}
.dgp-profile-strip img{height:100px;width:86px;object-fit:cover;object-position:top center;border:2px solid #e8c76a;border-radius:8px;box-shadow:0 3px 12px #0005}
.dgp-profile-strip div{display:flex;flex-direction:column;gap:4px}
.dgp-profile-strip .dgp-eyebrow{font-size:10px;letter-spacing:.12em;color:#f4d47b;font-weight:800}
.dgp-profile-strip strong{font-size:18px;font-weight:900}
.dgp-profile-strip div span:last-child{font-size:13px;color:#e5edfa}
@media(max-width:560px){.dgp-profile-strip{padding:9px 12px;gap:12px}.dgp-profile-strip img{height:70px;width:60px}.dgp-profile-strip strong{font-size:14px}.dgp-profile-strip div span:last-child{font-size:11px}}


/* Homepage redesign: reference-inspired official banner, leadership portraits in one row, and full navigation */
.festival-header{grid-template-columns:110px 110px minmax(300px,1fr) repeat(3,minmax(112px,150px));gap:10px;min-height:260px;padding:18px 22px 14px;background-position:center 48%;}
.festival-header:before{background:linear-gradient(90deg,rgba(2,13,37,.78),rgba(3,17,43,.52) 24%,rgba(4,20,48,.68) 52%,rgba(2,13,37,.28));}
.festival-title{padding:12px 5px;background:linear-gradient(90deg,transparent,rgba(2,12,31,.52),transparent);}
.dasara-word{font-size:clamp(28px,3.3vw,48px);letter-spacing:.04em;}
.festival-title h1{font-size:clamp(20px,2.3vw,34px);line-height:1.08;}
.festival-title h1 span{font-size:.94em;}
.festival-title p{border-radius:5px;background:#ffd66c;color:#09244b;border:0;font-weight:850;}
.cp-block img{height:150px;object-fit:contain;object-position:center bottom;}
.cp-caption{min-height:48px;justify-content:center;padding:5px 3px;background:linear-gradient(0deg,rgba(2,12,31,.94),rgba(2,12,31,.5));}
.cp-caption strong{font-size:clamp(8px,.8vw,11px);}
.cp-caption span{font-size:9px;}
.dgp-profile-strip{display:none!important;}
.portal-nav{display:flex;align-items:stretch;justify-content:space-between;gap:0;background:linear-gradient(90deg,#061a38,#092c58,#061a38);border-bottom:3px solid #e6bd51;box-shadow:0 5px 16px #07172e25;overflow-x:auto;scrollbar-width:thin;}
.portal-nav a{flex:1 0 auto;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px 13px;color:#f4f7ff;text-decoration:none;font-weight:800;font-size:12px;border-right:1px solid #ffffff20;white-space:nowrap;}
.portal-nav a:hover,.portal-nav a.active{background:linear-gradient(135deg,#ffe28a,#e6b842);color:#10294b;}
.portal-nav a:first-child{min-width:120px;}
.notice-ticker{display:flex;align-items:center;gap:18px;min-height:46px;margin:12px 18px 0;padding:7px 12px;background:#fff;border:1px solid #e0e8f2;border-radius:10px;box-shadow:0 4px 14px #07172e0a;overflow:hidden;white-space:nowrap;color:#182b45;font-size:12px;font-weight:750;}
.notice-ticker strong{background:#c9152d;color:#fff;padding:8px 13px;border-radius:6px;flex:0 0 auto;}
.notice-ticker i{width:7px;height:7px;background:#d51e37;border-radius:50%;flex:0 0 auto;}
.main-wrap{max-width:1580px;padding-top:22px;}
.stats-grid{margin-top:0;}
.section-block{scroll-margin-top:12px;}
.journey-panel{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(420px,2fr);align-items:center;gap:14px;background:linear-gradient(110deg,#fff,#f4f8ff);border:1px solid #dce6f3;border-radius:15px;padding:18px 20px;box-shadow:var(--shadow);}
.journey-heading{display:flex;align-items:center;gap:12px;}
.journey-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:#e7f2ff;font-size:25px;}
.journey-heading h2{margin:0;font-size:21px;}
.journey-heading p{margin:3px 0 0;color:var(--muted);font-size:12px;}
.journey-form{display:grid;grid-template-columns:1fr 1fr auto;align-items:end;gap:10px;}
.journey-form label{display:flex;flex-direction:column;gap:5px;font-size:11px;font-weight:800;color:#334a67;}
.journey-form input{width:100%;min-width:0;padding:12px 13px;border:1px solid #d7e1ee;border-radius:9px;background:#fff;font:inherit;}
.btn-blue{background:#0769df;color:#fff;box-shadow:0 4px 10px #0769df30;white-space:nowrap;}
.journey-panel>small{grid-column:2;color:#718198;font-size:10px;}
.news-section{margin-top:26px;}
.news-section .section-heading h2{font-size:clamp(22px,2.3vw,30px);}
.empty-state{max-width:100%;}
#routes .section-heading h2,#advisories .section-heading h2{font-size:clamp(22px,2.3vw,30px);}
footer{scroll-margin-top:10px;}
@media(max-width:1100px){.festival-header{grid-template-columns:76px 76px minmax(220px,1fr) repeat(3,minmax(86px,110px));gap:6px;padding:14px 10px;min-height:215px}.header-emblem img{height:82px}.cp-block img{height:115px}.cp-caption span{font-size:8px}.portal-nav a{padding:12px 10px;font-size:11px}.journey-panel{grid-template-columns:1fr}.journey-panel>small{grid-column:1}.journey-form{grid-template-columns:1fr 1fr auto}}
@media(max-width:760px){.festival-header{grid-template-columns:55px minmax(0,1fr) repeat(3,minmax(58px,76px));gap:4px;min-height:178px;padding:10px 6px}.header-ap{grid-column:1;grid-row:1}.header-ntr{display:flex;grid-column:1;grid-row:2;align-self:start}.festival-title{grid-column:2;grid-row:1 / span 2;padding:18px 2px 4px}.festival-title .agency-line{font-size:8px;letter-spacing:.03em}.dasara-word{font-size:clamp(17px,4vw,27px)}.festival-title h1{font-size:clamp(13px,3vw,20px)}.festival-title p{font-size:8px;padding:5px 6px}.cp-block{grid-row:1 / span 2;align-self:center}.cp-block img{height:84px}.cp-caption{min-height:35px;padding:3px 1px}.cp-caption strong{font-size:7px}.cp-caption span{font-size:6.5px}.header-admin{top:4px;right:4px}.header-admin .btn{font-size:8px;padding:4px 6px}.portal-nav a{font-size:10px;padding:10px}.notice-ticker{margin:8px 8px 0;gap:10px;font-size:10px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.stat-card{padding:12px;gap:9px}.stat-icon{width:34px;height:34px;font-size:18px}.journey-form{grid-template-columns:1fr}.journey-panel{padding:14px}.journey-panel>small{grid-column:1}.main-wrap{padding:18px 12px 32px}}
@media(max-width:430px){.festival-header{grid-template-columns:42px minmax(0,1fr) repeat(3,minmax(46px,58px));min-height:154px;padding:8px 4px}.header-emblem img{height:54px}.header-emblem span{font-size:5px}.header-ntr img{height:48px}.cp-block img{height:66px}.cp-caption strong{font-size:6px}.cp-caption span{font-size:5.5px}.festival-title h1{font-size:12px}.festival-title p{font-size:7px}.agency-line{font-size:7px}.dasara-word{font-size:16px}.portal-nav a{font-size:9px;padding:9px}.stat-label{font-size:8px}.stat-card strong{font-size:22px}}


/* Final preview refinements: three equally sized officer cards */
.festival-header{grid-template-columns:100px 100px minmax(300px,1fr) repeat(3,minmax(135px,170px));gap:12px;}
.cp-block{width:100%;min-width:0;align-self:stretch;display:flex;flex-direction:column;justify-content:flex-end;}
.cp-block img{width:100%;height:132px;object-fit:cover;object-position:center top;}
.cp-caption{box-sizing:border-box;min-height:49px;justify-content:flex-start;}
.cp-caption strong{min-height:15px;}
.dcp-block .cp-caption{max-width:none;}
@media(max-width:1050px){.festival-header{grid-template-columns:72px 72px minmax(220px,1fr) repeat(3,minmax(105px,1fr));gap:7px;padding:12px 10px}.cp-block img{height:110px}.cp-caption strong{font-size:9px}.cp-caption span{font-size:8px}}
@media(max-width:700px){.festival-header{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:10px}.header-ap{grid-column:1;grid-row:1}.header-ntr{display:flex;grid-column:2;grid-row:1}.festival-title{grid-column:1/-1;grid-row:2;padding:10px 4px}.cp-block:not(.dcp-block){grid-column:auto;grid-row:3}.dcp-block{grid-column:auto;grid-row:3;flex-direction:column;justify-content:flex-end;gap:0;padding:0}.cp-block img{height:100px;width:100%;object-fit:cover}.cp-caption{min-height:52px;padding:5px 3px}.cp-caption strong{font-size:8px}.cp-caption span{font-size:7px}.header-admin{top:6px;right:6px}}
@media(max-width:420px){.festival-header{grid-template-columns:repeat(3,minmax(0,1fr))}.header-emblem img{height:45px}.header-emblem span{font-size:6px}.cp-block img{height:78px}.cp-caption strong{font-size:7px}.cp-caption span{font-size:6px}.festival-title h1{font-size:18px}.dasara-word{font-size:21px}}
/* Admin record management controls */
.record-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.record-actions button{border:1px solid #c8d7e8;border-radius:7px;padding:6px 10px;background:#fff;color:#12365c;font-weight:700;cursor:pointer}.record-actions button.danger{border-color:#efc1c1;color:#a21b2b}.admin-page .record{overflow-wrap:anywhere}

/* Officer portraits: equal-sized frames while showing the full original photo */
.festival-header .cp-block img{
  display:block;
  width:100%;
  height:132px;
  object-fit:contain !important;
  object-position:center center !important;
  background:linear-gradient(180deg,#eaf2fa,#d9e4ef);
}
.festival-header .cp-block{min-width:0;}
.festival-header .cp-caption{width:100%;min-height:49px;}
@media(max-width:1050px){.festival-header .cp-block img{height:110px;}}
@media(max-width:700px){.festival-header .cp-block img{height:100px;object-fit:contain !important;}}
@media(max-width:420px){.festival-header .cp-block img{height:78px;object-fit:contain !important;}}

.record-state{display:inline-block;margin-left:6px;padding:2px 7px;border-radius:99px;font-size:11px;font-weight:800}.record-state.is-published{color:#116b43;background:#e0f7eb}.record-state.is-unpublished{color:#8a5c00;background:#fff1cf}

/* Separate, app-like portal sections and dedicated news/photo gallery */
.portal-view{display:none;animation:portalViewIn .22s ease both}
.portal-view.is-active{display:block}
@keyframes portalViewIn{from{opacity:.72;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
.portal-nav{position:relative;z-index:20;flex-wrap:nowrap}
.portal-nav a{cursor:pointer}
.page-intro{padding:4px 0 0}
.page-intro h2{margin:6px 0 5px;color:#10233b;font-size:clamp(24px,3vw,34px);letter-spacing:-.035em}
.page-intro p{margin:0;color:var(--muted);font-size:13px;max-width:900px}
.page-heading{margin-top:6px;padding:2px 0 4px}
.home-highlights{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}
.home-column{min-width:0;background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:var(--shadow)}
.home-column .section-heading{align-items:start;min-height:106px;margin-bottom:10px}
.home-column .section-heading h2{font-size:clamp(18px,2vw,24px)}
.home-column .section-heading p{max-width:310px;line-height:1.5}
.text-link{border:0;background:#eaf3ff;color:#1168b8;border-radius:8px;padding:9px 11px;font:inherit;font-size:11px;font-weight:800;white-space:nowrap;cursor:pointer}
.text-link:hover{background:#dbeeff}
.home-scroller{gap:12px;padding-bottom:10px}
.home-scroller .news-card{flex-basis:min(300px,92%)}
.safety-banner{display:flex;gap:15px;align-items:center;padding:20px 22px;background:linear-gradient(110deg,#fff,#eef6ff);border:1px solid #dbe7f4;border-radius:16px;box-shadow:var(--shadow)}
.safety-banner-icon{display:grid;place-items:center;width:44px;height:44px;flex-shrink:0;background:#e0f7eb;color:#137c4a;border-radius:13px;font-size:23px;font-weight:900}
.safety-banner h2{margin:0 0 5px;font-size:17px;color:#10233b}
.safety-banner p{margin:0;font-size:12px;color:var(--muted)}
.safety-banner .btn{margin-left:auto;flex-shrink:0}
.journey-panel-standalone{margin-top:12px;grid-template-columns:minmax(220px,.8fr) minmax(420px,2fr)}
.parking-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.parking-card{display:flex;align-items:flex-start;gap:14px;background:white;border:1px solid var(--line);border-radius:14px;padding:20px;box-shadow:var(--shadow);min-width:0}
.parking-card h3{margin:0 0 5px;font-size:16px;color:#0b2342}
.parking-card p{margin:0;white-space:pre-wrap;color:var(--muted);font-size:13px}
.contact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.contact-card{background:white;border:1px solid var(--line);border-radius:15px;padding:22px;box-shadow:var(--shadow)}
.contact-card h3{margin:8px 0 5px;font-size:18px}
.contact-card p{font-size:13px;color:var(--muted)}
.news-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:stretch}
.news-grid .news-card{width:100%;min-width:0;flex:none;display:flex;flex-direction:column;scroll-snap-align:unset}
.news-grid .news-card-copy{flex:1;display:flex;flex-direction:column;align-items:stretch}
.news-grid .news-card p{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.news-card{font-family:inherit}
.news-card h3{overflow-wrap:anywhere;white-space:normal}
.news-card-copy .card-read-more{display:block;margin-top:auto;padding-top:12px;color:#1268b5;font-size:11px;font-weight:850}
.news-post-card .news-thumb{flex-shrink:0}
.news-thumb .photo-count{position:absolute;right:10px;bottom:10px;background:#06172edb;color:white;padding:6px 9px;border-radius:99px;font-size:10px;font-weight:800}
.thumb-placeholder{height:100%;display:grid;place-items:center;color:#ffe08b;letter-spacing:.12em;font-weight:900}
.route-video-preview{width:100%;border:0;padding:0;cursor:pointer}
.route-play-button{z-index:2;display:grid;place-items:center;width:50px;height:50px;background:#06172ee8;color:white;border:2px solid white;border-radius:50%;box-shadow:0 5px 18px #0004;font-size:19px}
.route-preview-label{position:absolute;z-index:2;bottom:10px;left:10px;background:#06172edb;color:white;border-radius:6px;padding:5px 8px;font-size:10px;font-weight:800}
.news-modal-card{width:min(100%,900px);max-height:92vh;overflow-y:auto;overscroll-behavior:contain}
.news-gallery-wrap{margin-top:14px;border-radius:13px;overflow:hidden;background:#081a2d;border:1px solid #dbe4ee}
.news-gallery-track{display:flex;gap:0;width:100%;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#d9ad40 #14273d}
.news-gallery-item{flex:0 0 100%;width:100%;margin:0;scroll-snap-align:start;scroll-snap-stop:always;background:#07172e;display:flex;flex-direction:column;align-items:stretch}
.news-gallery-item img{display:block;width:100%;height:min(56vh,520px);object-fit:contain;background:#07172e}
.news-gallery-item figcaption{padding:8px 12px;background:#0b2342;color:#e9f0f8;font-size:11px;text-align:center}
.news-gallery-hint{font-size:11px;color:#65778c;margin:8px 0 4px}
.news-gallery-controls{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
.news-gallery-controls .btn{padding:8px 10px;font-size:11px}
.news-modal-card h2{overflow-wrap:anywhere;white-space:pre-wrap;line-height:1.35;margin-top:12px}
.news-modal-summary{font-size:15px;font-weight:700;line-height:1.8;color:#264360;white-space:pre-wrap}
.news-modal-body{font-size:15px;color:#2d4057;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.9;padding-bottom:10px}
.news-card time{line-height:1.5}
.upload-preview{display:grid;gap:8px}
.upload-preview-title{font-size:11px;color:#526b84;font-weight:800}
.photo-preview-list{display:flex;flex-wrap:wrap;gap:10px}
.photo-preview-item{position:relative;width:100px;display:flex;flex-direction:column;gap:4px;color:#68798d;font-size:10px}
.photo-preview-item img{width:100px;height:75px;object-fit:cover;border:1px solid var(--line);border-radius:8px;background:#e8eef5}
.photo-preview-item button{position:absolute;right:4px;top:4px;width:23px;height:23px;border:0;border-radius:50%;background:#b92738;color:white;font-weight:900;font-size:17px;line-height:1;cursor:pointer}
.picked-file-chip{align-self:flex-start;background:#eef6ff;border:1px solid #d5e6fb;border-radius:8px;padding:8px 10px;font-size:11px;color:#214c78;overflow-wrap:anywhere;max-width:100%}
.field-help{display:block;color:#73859a;font-weight:500;font-size:10px;line-height:1.5}
@media(max-width:1050px){.home-highlights{grid-template-columns:1fr}.home-column .section-heading{min-height:0}.news-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.journey-panel-standalone{grid-template-columns:1fr}.contact-grid{grid-template-columns:1fr}}
@media(max-width:700px){.home-column{padding:13px}.home-column .section-heading{flex-direction:column;align-items:flex-start;gap:11px}.home-scroller .news-card{flex-basis:min(300px,88vw)}.safety-banner{align-items:flex-start;flex-wrap:wrap;padding:16px}.safety-banner>div:nth-child(2){flex:1;min-width:190px}.safety-banner .btn{margin-left:0;width:100%}.news-grid,.parking-grid{grid-template-columns:1fr}.news-grid .news-card{width:100%}.journey-panel-standalone{grid-template-columns:1fr}.news-gallery-item img{height:45vh}.news-modal-card{width:100%;max-height:94vh;padding:19px 14px}.news-gallery-controls{gap:5px}.news-gallery-controls .btn{font-size:10px;padding:7px 8px}.news-modal-body,.news-modal-summary{font-size:14px}}
@media(max-width:500px){.portal-nav a{flex:0 0 auto}.page-intro h2{font-size:24px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.news-gallery-controls .btn{max-width:42%;white-space:normal}.news-gallery-controls .muted{font-size:10px;text-align:center}.news-gallery-item img{height:38vh}}


/* Bilingual official logos: high contrast, equal visual size, no transparent whitespace */
.festival-header .header-emblem{
  width:100%; min-width:0; align-self:center; justify-self:stretch;
  gap:8px; padding:3px 1px; box-sizing:border-box;
}
.festival-header .header-emblem img{
  display:block; box-sizing:border-box; flex:0 0 auto;
  width:100px; height:104px; max-width:100px; max-height:104px;
  object-fit:contain !important; object-position:center center;
  padding:5px; background:linear-gradient(180deg,#fff,#edf3f8);
  border:2px solid #e9c15a; border-radius:12px;
  filter:drop-shadow(0 4px 8px #0008);
}
.festival-header .header-emblem span{
  display:flex; flex-direction:column; align-items:center; justify-content:flex-start;
  gap:3px; width:100%; max-width:100%; font-size:8px; line-height:1.25;
  font-weight:800; letter-spacing:0; text-align:center; overflow-wrap:anywhere;
}
.festival-header .header-emblem span b{
  display:block; font-size:clamp(7px,.63vw,9px); line-height:1.25; font-weight:900;
  letter-spacing:.015em; overflow-wrap:anywhere;
}
.festival-header .header-emblem span small{
  display:block; color:#f9dfa0; font-size:clamp(7px,.6vw,9px); line-height:1.35;
  font-weight:800; letter-spacing:0; text-shadow:0 2px 4px #000;
}
footer .footer-brand{align-items:center;gap:14px;min-width:0}
footer .footer-logo{
  display:block; flex:0 0 60px; box-sizing:border-box;
  width:60px; height:60px; object-fit:contain;
  padding:4px; background:linear-gradient(180deg,#fff,#edf3f8);
  border:2px solid #e9c15a; border-radius:12px;
  box-shadow:0 3px 12px #0005;
}
footer .footer-brand-copy{display:flex;flex-direction:column;gap:3px;min-width:0}
footer .footer-brand b{font-size:11px;letter-spacing:.065em;line-height:1.35;color:#fff}
footer .footer-brand .footer-telugu{font-size:12px;letter-spacing:0;line-height:1.5;color:#ffdf8a;margin-top:4px}
footer .footer-brand span{font-size:9px;line-height:1.45;color:#b9cadf;margin-top:0}
footer .footer-note{display:flex;flex-direction:column;gap:5px;max-width:460px;line-height:1.65}
footer .footer-note span{display:block}
@media(max-width:1100px){
  .festival-header .header-emblem img{width:88px;height:92px;max-width:88px;max-height:92px}
  .festival-header .header-emblem span b{font-size:8px}
  .festival-header .header-emblem span small{font-size:8px}
}
@media(max-width:700px){
  .festival-header .header-emblem{grid-row:1;align-self:start;gap:5px;padding-top:4px}
  .festival-header .header-ap{grid-column:1;grid-row:1;display:flex!important}
  .festival-header .header-ntr{grid-column:2;grid-row:1;display:flex!important}
  .festival-header .header-emblem img{width:82px;height:84px;max-width:82px;max-height:84px;padding:4px;border-radius:10px}
  .festival-header .header-emblem span{font-size:7px;white-space:normal}
  .festival-header .header-emblem span b,.festival-header .header-emblem span small{font-size:7px}
  .festival-header .festival-title{grid-column:1/-1;grid-row:2}
  footer{align-items:flex-start;flex-direction:column}
  footer .footer-note{text-align:left;max-width:none;width:100%}
}
@media(max-width:420px){
  .festival-header .header-emblem img{width:68px;height:72px;max-width:68px;max-height:72px;padding:3px}
  .festival-header .header-emblem span b,.festival-header .header-emblem span small{font-size:6.5px}
  footer .footer-logo{flex-basis:52px;width:52px;height:52px}
  footer .footer-brand b{font-size:10px}
  footer .footer-brand .footer-telugu{font-size:11px}
}

/* Whole-site English / Telugu language switch */
.language-switch{display:inline-flex;align-items:center;gap:0;padding:3px;border:1px solid #d2a94b;border-radius:999px;background:#07172ee8;box-shadow:0 3px 12px #0002;white-space:nowrap}
.language-switch button{appearance:none;border:0;border-radius:999px;background:transparent;color:#edf4ff;padding:6px 10px;font:inherit;font-size:10px;font-weight:850;letter-spacing:.02em;line-height:1.2;cursor:pointer}
.language-switch button.is-active{background:linear-gradient(135deg,#ffe28a,#e6b842);color:#10294b;box-shadow:0 1px 4px #0002}
.language-switch button:focus-visible{outline:2px solid #fff;outline-offset:2px}
.header-admin{display:flex;align-items:center;gap:8px}
.top-actions .language-switch{flex-shrink:0}
html[data-language="en"] [lang="te"],html[data-language="te"] [lang="en"]{display:none!important}
@media(max-width:700px){.header-admin{gap:4px}.header-admin .language-switch button{padding:4px 6px;font-size:8px}.header-admin .language-switch{padding:2px}.header-admin .btn{font-size:8px;padding:4px 6px}}
@media(max-width:560px){.topbar{align-items:flex-start;flex-wrap:wrap}.topbar>.top-actions{margin-left:auto}.top-actions .btn{padding:7px 9px;font-size:10px}.top-actions .language-switch button{padding:5px 8px}}

/* Preview fix: show published Heavy Vehicle Routes both on the home page and on its dedicated section. */
.home-routes-block{min-width:0}
.home-route-grid .route-card{min-width:0}
.route-load-status{font-size:11px;color:#647890;margin:0 0 12px;min-height:16px}
.route-video-missing{cursor:default}
@media(max-width:650px){.home-route-grid{grid-template-columns:1fr}.home-routes-block .section-heading{align-items:flex-start}}

/* Parking map links and richer traffic advisory metadata */
.parking-card{align-items:flex-start;}
.parking-card-content{min-width:0;flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:7px;}
.parking-location-title{display:inline-flex;align-items:center;gap:7px;color:#0b2342;font-size:16px;font-weight:850;text-decoration:none;line-height:1.35;overflow-wrap:anywhere;}
.parking-location-title:hover{text-decoration:underline;color:#0769df;}
.parking-card-content p{margin:0;}
.parking-coordinates{color:#6c7c91;font-size:11px;}
.maps-link{display:inline-flex;align-items:center;justify-content:center;gap:6px;margin-top:5px;padding:8px 11px;border:1px solid #c7dcf4;border-radius:8px;background:#edf6ff;color:#075eb8;text-decoration:none;font-size:12px;font-weight:800;}
.maps-link:hover{background:#dceeff;text-decoration:none;}
.no-map-link{margin-top:4px;color:#7a899b;font-size:11px;}
.advisory-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:12px;}
.advisory-footer small{color:#718198;font-size:11px;}
.advisory-validity{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px;}
.advisory-validity span{padding:5px 8px;background:#f3f6fa;border-radius:7px;color:#3b5068;font-size:11px;font-weight:700;}
.advisory-direction{margin:10px 0 0!important;color:#364e69!important;font-size:12px!important;}
.priority-chip{display:inline-flex;align-items:center;padding:4px 8px;border-radius:99px;font-size:10px;font-weight:850;letter-spacing:.03em;}
.priority-normal{background:#edf3fb;color:#445a73;}
.priority-important{background:#fff0c9;color:#805800;}
.priority-urgent{background:#ffe0e2;color:#a30e25;}
@media(max-width:700px){.parking-grid{grid-template-columns:1fr}.advisory-footer{align-items:flex-start;flex-direction:column;gap:7px}}

/* Requested correction: Madam's header portrait uses the same filled frame as the other officers. */
.festival-header .dcp-block img {
  object-fit: cover !important;
  object-position: center top !important;
}

/* Large, admin-managed traffic highlights slider immediately below the header. */
.traffic-highlights-banner {
  width: 100%;
  padding: 20px clamp(14px, 3.2vw, 48px) 16px;
  color: #fff;
  background: linear-gradient(115deg, #06152b 0%, #0a2a4d 58%, #0b3158 100%);
  border-bottom: 3px solid #e8bd54;
}
.traffic-highlights-inner { max-width: 1600px; margin: 0 auto; }
.traffic-highlights-banner[hidden] { display: none !important; }
.traffic-highlights-heading {
  display: flex; align-items: center; justify-content: space-between; gap: 18px;
  margin: 0 0 14px;
}
.traffic-highlights-heading .eyebrow { color: #ffd778; }
.traffic-highlights-heading h2 {
  margin: 4px 0 4px; color: #fff; font-size: clamp(21px, 2.2vw, 31px);
  line-height: 1.25; letter-spacing: -.025em;
}
.traffic-highlights-heading h2 span { color: #ffd36b; font-size: .72em; letter-spacing: .04em; }
.traffic-highlights-heading p { margin: 0; color: #c7d8ea; font-size: clamp(11px, 1vw, 14px); }
.traffic-highlights-controls { display: flex; flex-shrink: 0; gap: 9px; }
.traffic-highlights-controls button {
  width: 44px; height: 44px; display: grid; place-items: center;
  border: 1px solid #e5bd59; border-radius: 50%; background: #ffffff12; color: #fff;
  font-size: 25px; font-weight: 800; cursor: pointer;
}
.traffic-highlights-controls button:hover, .traffic-highlights-controls button:focus-visible {
  background: #ffd36b; color: #07172e; outline: 2px solid #ffd36b; outline-offset: 2px;
}
.traffic-highlights-track {
  display: flex; align-items: stretch; gap: 12px; width: 100%; overflow-x: auto;
  padding: 3px 2px 10px; scroll-snap-type: x mandatory; scroll-behavior: smooth;
  overscroll-behavior-x: contain; scrollbar-color: #e8bd54 #193856; scrollbar-width: thin;
  -webkit-overflow-scrolling: touch;
}
.traffic-highlight-slide {
  appearance: none; position: relative; display: block; flex: 0 0 min(96vw, 1500px);
  height: clamp(340px, 43vw, 680px); min-width: 0; padding: 0; overflow: hidden;
  border: 2px solid #e8bd54; border-radius: 16px; background: #06152b; color: #fff;
  box-shadow: 0 10px 30px #0005; scroll-snap-align: start; cursor: pointer; text-align: left;
}
.traffic-highlight-slide img {
  display: block; width: 100%; height: 100%; object-fit: cover; object-position: center;
  background: #06152b;
}
.traffic-highlight-slide:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.traffic-highlight-overlay {
  position: absolute; inset: auto 0 0; display: flex; flex-direction: column; gap: 5px;
  padding: clamp(14px, 2.4vw, 28px); background: linear-gradient(transparent, #031226eb 20%, #031226f5);
}
.traffic-highlight-overlay small { color: #ffda79; font-size: 10px; letter-spacing: .12em; font-weight: 850; }
.traffic-highlight-overlay strong { color: #fff; font-size: clamp(17px, 2vw, 27px); line-height: 1.35; overflow-wrap: anywhere; }
.traffic-highlight-overlay span { color: #d2e0ef; font-size: 12px; }
.traffic-highlight-number {
  position: absolute; top: 13px; right: 13px; padding: 7px 10px; border-radius: 99px;
  color: #07172e; background: #ffda79; font-size: 11px; font-weight: 900;
}
.traffic-highlights-empty {
  flex: 0 0 100%; min-height: 190px; display: flex; flex-direction: column; justify-content: center;
  gap: 9px; padding: 26px; border: 1px dashed #7896b4; border-radius: 14px;
  background: #ffffff08; color: #c6d8ea; font-size: 13px;
}
.traffic-highlights-empty strong { color: #ffda79; font-size: 20px; }
.traffic-highlights-footer {
  display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px;
  margin-top: 7px; color: #a9bfd7; font-size: 10px; letter-spacing: .03em;
}
.traffic-highlights-footer span:first-child { color: #ffda79; font-weight: 850; }
@media (max-width: 700px) {
  .traffic-highlights-banner { padding: 15px 12px 12px; }
  .traffic-highlights-heading { align-items: flex-start; gap: 9px; }
  .traffic-highlights-heading h2 { font-size: 20px; }
  .traffic-highlights-heading h2 span { display: block; margin-top: 2px; font-size: .67em; }
  .traffic-highlights-heading p { max-width: 290px; font-size: 11px; line-height: 1.5; }
  .traffic-highlights-controls { gap: 5px; }
  .traffic-highlights-controls button { width: 35px; height: 35px; font-size: 20px; }
  .traffic-highlights-track { gap: 11px; }
  .traffic-highlight-slide { flex-basis: 96vw; height: clamp(280px, 75vw, 470px); border-radius: 12px; }
  .traffic-highlight-overlay { padding: 13px; }
  .traffic-highlight-overlay strong { font-size: 18px; }
  .traffic-highlight-overlay span { font-size: 11px; }
  .traffic-highlights-footer { font-size: 9px; }
}
@media (prefers-reduced-motion: reduce) {
  .traffic-highlights-track { scroll-behavior: auto; }
}

/* Traffic Highlights on Home: photo-only display, no card title or text overlay. */
.traffic-highlight-overlay, .traffic-highlight-number { display: none !important; }
.traffic-highlights-footer { display: none !important; }

/* Admin control for homepage traffic photo slider. */
#trafficHighlightsSettingsForm .checkbox-row { display:flex; flex-direction:row; align-items:center; gap:10px; }
#trafficHighlightsSettingsForm .checkbox-row input { width:18px; height:18px; flex:0 0 auto; accent-color:#d8a82f; }


/* Final user-requested refinement: all three official portrait frames use the same proportions. */
.festival-header .cp-block img {
  display:block;
  width:100% !important;
  height:132px !important;
  object-fit:cover !important;
  object-position:center center !important;
  aspect-ratio:1.28 / 1;
  background:#e9f1f8;
}
@media(max-width:1050px){.festival-header .cp-block img{height:110px !important;}}
@media(max-width:700px){.festival-header .cp-block img{height:100px !important;}}
@media(max-width:420px){.festival-header .cp-block img{height:78px !important;}}

/* Traffic Highlights: preserve every uploaded image's intrinsic aspect ratio (including 9:16 portrait photos). */
.traffic-highlight-slide {
  flex:0 0 min(96vw, 1500px);
  object-fit:contain;
}
.traffic-highlight-slide img {
  width:100% !important;
  height:100% !important;
  object-fit:contain !important;
  object-position:center center !important;
  background:#06152b;
}

/* Final user-requested officer portrait framing: equal frames, full original photos visible. */
.festival-header .cp-block {
  align-self: stretch;
  min-width: 0;
}
.festival-header .cp-block img {
  display: block;
  width: 100% !important;
  height: 190px !important;
  object-fit: contain !important;
  object-position: center center !important;
  aspect-ratio: auto !important;
  background: #eaf1f8;
  flex: 0 0 auto;
}
.festival-header .cp-caption {
  width: 100%;
  min-height: 49px;
  box-sizing: border-box;
}
@media (max-width: 1050px) {
  .festival-header .cp-block img { height: 150px !important; }
}
@media (max-width: 700px) {
  .festival-header .cp-block img { height: 125px !important; }
}
@media (max-width: 420px) {
  .festival-header .cp-block img { height: 105px !important; }
}

/* Mobile responsive refinement based on the phone preview: keep all navigation items visible without horizontal clipping. */
@media (max-width: 700px) {
  html, body {
    max-width: 100%;
    overflow-x: hidden;
  }

  .portal-nav {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
    width: 100%;
    max-width: 100%;
    overflow: hidden;
    flex-wrap: wrap;
    gap: 0;
  }

  .portal-nav a,
  .portal-nav a:first-child {
    display: flex;
    flex: 0 0 auto !important;
    width: 100%;
    min-width: 0 !important;
    max-width: 100%;
    box-sizing: border-box;
    justify-content: center;
    align-items: center;
    gap: 6px;
    padding: 11px 6px;
    font-size: 11px;
    line-height: 1.3;
    white-space: normal;
    text-align: center;
    overflow-wrap: anywhere;
    border-right: 1px solid #ffffff20;
    border-bottom: 1px solid #ffffff20;
  }

  .portal-nav a span {
    min-width: 0;
    white-space: normal;
    overflow-wrap: anywhere;
    text-align: center;
  }

  .main-wrap,
  .portal-view,
  .page-intro,
  .section-block,
  .home-column,
  .home-highlights {
    min-width: 0;
    max-width: 100%;
  }

  .page-intro h2,
  .section-heading h2,
  .info-panel h2 {
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: normal;
    line-height: 1.32;
  }

  .stats-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .stat-card {
    min-width: 0;
    padding: 12px;
    gap: 9px;
  }

  .stat-card > div,
  .stat-card strong {
    min-width: 0;
    overflow-wrap: anywhere;
  }
}

@media (max-width: 380px) {
  .portal-nav a,
  .portal-nav a:first-child {
    font-size: 10px;
    padding: 10px 4px;
    gap: 4px;
  }

  .stat-card {
    padding: 10px 8px;
  }
}


/* Combined mobile fix: keep Traffic Highlights within phone width and show the full uploaded photo. */
@media (max-width: 700px) {
  .traffic-highlights-banner,
  .traffic-highlights-inner,
  .traffic-highlights-track {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }
  .traffic-highlights-track {
    gap: 8px;
    padding: 3px 2px 10px;
  }
  .traffic-highlight-slide {
    flex: 0 0 100%;
    width: 100%;
    min-width: 0;
    height: auto;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    overflow: hidden;
    background: #06152b;
  }
  .traffic-highlight-slide img {
    display: block;
    max-width: 100%;
    height: auto;
    object-fit: contain !important;
    object-position: center center !important;
    background: #06152b;
  }
}


/* Mobile Traffic Highlights: make the slider height follow the currently visible photo.
   Landscape photos therefore do not leave the portrait-photo height as a blank gap below. */
@media (max-width: 700px) {
  #trafficHighlightsTrack.traffic-highlights-track {
    align-items: flex-start !important;
    overflow-y: hidden !important;
    transition: height 160ms ease;
  }
  #trafficHighlightsTrack .traffic-highlight-slide {
    align-self: flex-start !important;
  }
}


/* Public traffic complaints: mobile-friendly, private submission UI */
.complaint-notice{display:flex;flex-direction:column;gap:5px;margin:14px 0 22px;padding:15px 17px;border:1px solid #f0d68f;background:#fff7df;border-radius:13px;color:#745721;font-size:12px;line-height:1.7}
.complaint-notice strong{font-size:13px;color:#784d00}
.complaint-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:18px;align-items:start}
.complaint-form,.complaint-side .contact-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:22px;box-shadow:var(--shadow)}
.complaint-form{display:grid;gap:15px}
.complaint-form label,.complaint-status-form label{display:grid;gap:7px;font-size:12px;font-weight:750;color:#354b64}
.complaint-form input:not([type=checkbox]),.complaint-form select,.complaint-form textarea,.complaint-status-form input{width:100%;min-width:0;border:1px solid #d2deeb;border-radius:9px;background:#fff;padding:11px 12px;font:inherit;font-size:13px;color:#142942}
.complaint-form textarea{resize:vertical;line-height:1.6}
.complaint-form small{font-size:10px;line-height:1.6;color:#75869a;font-weight:500}
.complaint-form .complaint-consent{display:flex;flex-direction:row;align-items:flex-start;gap:9px;font-weight:600;line-height:1.6}
.complaint-consent input{margin-top:3px;flex:0 0 auto;accent-color:#176ec0}
.complaint-honeypot{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}
.complaint-photo-preview{display:flex;gap:8px;flex-wrap:wrap}.complaint-photo-preview img{width:88px;height:88px;object-fit:cover;border-radius:9px;border:1px solid #d4dfeb}
.complaint-status-message{font-size:12px;line-height:1.7;color:#156846;overflow-wrap:anywhere;min-height:0}.complaint-side{display:grid;gap:14px;min-width:0}.complaint-side .contact-card{box-shadow:none}.complaint-side .contact-card ol{padding-left:20px;font-size:12px;color:#586c83;line-height:1.8}.complaint-side .contact-card p{line-height:1.7}.complaint-status-form{display:grid;gap:10px;margin-top:12px}.complaint-status-form label{margin:0}
.footer-note .site-visits-note{align-self:flex-end;display:inline-flex;align-items:center;gap:5px;padding:7px 10px;border:1px solid #dcb75a80;border-radius:99px;color:#ffe09a;background:#ffffff08;font-weight:650;white-space:nowrap}
.footer-note .site-visits-note b{color:#fff;font-variant-numeric:tabular-nums}
@media(max-width:850px){.complaint-layout{grid-template-columns:1fr}.complaint-side{grid-template-columns:1fr 1fr}.complaint-side .contact-card:last-child{grid-column:1/-1}}
@media(max-width:540px){.complaint-form,.complaint-side .contact-card{padding:15px}.complaint-side{grid-template-columns:1fr}.complaint-side .contact-card:last-child{grid-column:auto}.footer-note .site-visits-note{align-self:flex-end;white-space:normal}}


/* Admin-only private citizen report review */
.complaints-admin-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:14px 0}.admin-complaints-list{display:grid;gap:14px}.admin-complaint-card{border:1px solid #d9e3ee;border-radius:13px;padding:16px;background:#fbfdff}.admin-complaint-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.admin-complaint-head strong{display:block;color:#0c3157;font-size:13px;overflow-wrap:anywhere}.admin-complaint-head span{display:block;color:#49627e;font-size:11px;margin-top:4px}.admin-complaint-head small{color:#72839a;font-size:10px;text-align:right}.admin-complaint-description{font-size:12px;line-height:1.7;white-space:pre-wrap;color:#20364f;overflow-wrap:anywhere}.admin-complaint-photos{display:flex;gap:8px;flex-wrap:wrap}.admin-complaint-photos img{width:110px;height:100px;object-fit:contain;background:#eef3f8;border:1px solid #ccd9e7;border-radius:8px}.admin-complaint-controls{display:grid;grid-template-columns:1fr;gap:10px;margin-top:14px}.admin-complaint-controls label{display:grid;gap:6px;font-size:11px;font-weight:750;color:#3c5068}.admin-complaint-controls select,.admin-complaint-controls textarea{width:100%;border:1px solid #d5e0eb;border-radius:8px;padding:10px;font:inherit;font-size:12px;color:#13243a;background:white}.admin-complaint-controls .message{font-size:11px}

/* Private traffic complaint controls: separate Admin-only notes from explicitly approved public feedback. */
.complaint-status-message{white-space:pre-line}
.complaint-public-verify{background:#f0f6fd;border:1px solid #d6e5f5;border-radius:9px;padding:11px 12px}
.complaint-public-verify span{display:flex;align-items:flex-start;gap:8px;line-height:1.6}
.complaint-public-verify input{width:auto!important;flex:0 0 auto;margin-top:2px;accent-color:#1268b3}
.complaint-public-verify small{color:#60778f;font-size:10px;line-height:1.6;font-weight:500}
.admin-complaint-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.btn-delete-complaint{border:1px solid #c53535!important;background:#fff5f5!important;color:#b51e2b!important}
.btn-delete-complaint:hover{background:#ffe5e5!important}
@media(max-width:540px){.admin-complaint-actions{display:grid;grid-template-columns:1fr}.admin-complaint-actions .btn{width:100%}}
