:root{--navy:#132c54;--navy2:#0c1d39;--blue:#2e68b2;--sky:#eaf3fb;--gold:#c9962d;--cream:#fbfaf7;--ink:#172033;--muted:#687386;--line:#dbe2ea;--ok:#18794e;--warn:#9a6700;--bad:#b42318;--white:#fff;--shadow:0 12px 28px rgba(19,44,84,.09);font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--ink);background:var(--cream)}*{box-sizing:border-box}body{margin:0;background:var(--cream)}a{color:var(--blue)}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}.muted{color:var(--muted)}.small{font-size:.84rem}.error{color:var(--bad)}.success{color:var(--ok)}
.login-body{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,var(--navy2),var(--navy) 55%,#355d8e)}.login-card{width:min(940px,100%);display:grid;grid-template-columns:1.15fr .85fr;background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 28px 70px rgba(0,0,0,.28)}.login-hero{padding:54px;background:linear-gradient(165deg,rgba(19,44,84,.96),rgba(12,29,57,.98));color:#fff;position:relative}.login-hero:after{content:"";position:absolute;inset:auto -70px -90px auto;width:300px;height:300px;border:32px double rgba(201,150,45,.22);border-radius:50%}.brand-mark{display:inline-grid;place-items:center;width:62px;height:62px;border-radius:18px;background:linear-gradient(135deg,var(--gold),#f0d98d);color:var(--navy2);font-size:29px;font-weight:900;box-shadow:inset 0 0 0 5px rgba(255,255,255,.35)}.login-form{padding:54px;display:flex;flex-direction:column;justify-content:center}.login-form h1{margin:0 0 8px}.field{display:grid;gap:7px;margin:13px 0}.field label{font-size:.88rem;font-weight:700}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:11px;padding:11px 12px;background:#fff}.field textarea{min-height:90px;resize:vertical}.btn{border:0;border-radius:10px;padding:10px 14px;background:var(--navy);color:#fff;font-weight:700}.btn:hover{filter:brightness(1.08)}.btn.secondary{background:#eef2f7;color:var(--navy)}.btn.danger{background:var(--bad)}.btn.gold{background:var(--gold);color:#182238}.btn.small-btn{padding:7px 10px;font-size:.85rem}.button-row{display:flex;gap:9px;flex-wrap:wrap;align-items:center}
.shell{min-height:100vh;display:grid;grid-template-columns:265px 1fr}.sidebar{background:linear-gradient(180deg,var(--navy2),var(--navy));color:#fff;padding:22px 16px;position:sticky;top:0;height:100vh;overflow:auto}.sidebar .brand{display:flex;gap:12px;align-items:center;padding:4px 8px 22px;border-bottom:1px solid rgba(255,255,255,.13)}.sidebar .brand h2{font-size:1rem;margin:0}.sidebar .brand p{font-size:.75rem;margin:4px 0 0;color:#bfd0e4}.nav-group{margin-top:20px}.nav-title{text-transform:uppercase;font-size:.68rem;letter-spacing:.12em;color:#92a9c4;padding:0 10px 7px}.nav-btn{width:100%;display:flex;align-items:center;gap:11px;padding:10px 11px;margin:3px 0;border:0;border-radius:10px;background:transparent;color:#dce7f5;text-align:left}.nav-btn:hover,.nav-btn.active{background:rgba(255,255,255,.13);color:#fff}.nav-icon{width:25px;text-align:center}.main{min-width:0}.topbar{height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:16px;padding:0 24px;position:sticky;top:0;z-index:10}.topbar .search{flex:1;max-width:700px}.topbar input{width:100%;border:1px solid var(--line);border-radius:12px;padding:10px 13px}.profile{margin-left:auto;text-align:right}.content{padding:24px;max-width:1550px;margin:auto}.page-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:20px}.page-head h1{font-size:1.65rem;margin:0 0 5px}.page-head p{margin:0;color:var(--muted)}
.grid{display:grid;gap:16px}.kpi-grid{grid-template-columns:repeat(5,minmax(150px,1fr))}.two-col{grid-template-columns:1.15fr .85fr}.three-col{grid-template-columns:repeat(3,1fr)}.card{background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow);padding:18px}.card h3{margin:0 0 12px}.kpi{position:relative;overflow:hidden}.kpi:after{content:"";position:absolute;width:80px;height:80px;border-radius:50%;background:var(--sky);right:-20px;top:-20px}.kpi .value{font-size:2rem;font-weight:800;color:var(--navy);position:relative;z-index:1}.kpi .label{font-size:.83rem;color:var(--muted);position:relative;z-index:1}.kpi.bad .value{color:var(--bad)}.kpi.warn .value{color:var(--warn)}.kpi.ok .value{color:var(--ok)}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px}.table{width:100%;border-collapse:collapse;background:#fff;min-width:720px}.table th,.table td{padding:11px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.table th{font-size:.76rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:#f7f9fb;position:sticky;top:0}.table tr:last-child td{border-bottom:0}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:.76rem;font-weight:800;background:#eef2f7;color:var(--navy)}.badge.open,.badge.normal{background:#e8f1fc;color:#245a95}.badge.completed,.badge.active,.badge.verified,.badge.passed{background:#e7f6ee;color:var(--ok)}.badge.high,.badge.overdue,.badge.failed{background:#fff0e8;color:#a14200}.badge.emergency,.badge.low-stock{background:#feeceb;color:var(--bad)}.progress{height:8px;background:#edf0f4;border-radius:99px;overflow:hidden}.progress span{display:block;height:100%;background:var(--blue);border-radius:99px}.toolbar{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:14px}.toolbar input,.toolbar select{border:1px solid var(--line);border-radius:9px;padding:8px 10px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:11px}.form-grid .full{grid-column:1/-1}.modal-backdrop{position:fixed;inset:0;background:rgba(8,18,35,.68);display:grid;place-items:center;padding:18px;z-index:100}.modal{background:#fff;border-radius:16px;width:min(740px,100%);max-height:92vh;overflow:auto;padding:21px;box-shadow:0 24px 70px rgba(0,0,0,.35)}.modal h2{margin-top:0}.toast-area{position:fixed;right:18px;bottom:18px;z-index:200;display:grid;gap:9px}.toast{background:#172033;color:#fff;padding:12px 15px;border-radius:10px;box-shadow:var(--shadow);max-width:360px}.toast.error-toast{background:var(--bad)}.chart-bars{display:grid;gap:10px}.bar-row{display:grid;grid-template-columns:115px 1fr 40px;gap:10px;align-items:center;font-size:.86rem}.bar-track{height:14px;border-radius:99px;background:#edf0f4;overflow:hidden}.bar-fill{height:100%;background:var(--blue);border-radius:99px}.timeline{display:grid;gap:10px}.timeline-item{border-left:3px solid var(--gold);padding:4px 0 4px 12px}.status-dot{width:9px;height:9px;border-radius:50%;display:inline-block;background:var(--ok);margin-right:6px}.health-list{display:grid;gap:10px}.health-row{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding-bottom:9px}.health-row:last-child{border-bottom:0}
.public-page{min-height:100vh;background:linear-gradient(180deg,#eaf3fb,#fbfaf7 45%);padding:22px}.public-wrap{max-width:820px;margin:auto}.public-header{background:var(--navy);color:#fff;padding:22px;border-radius:18px 18px 0 0;display:flex;gap:16px;align-items:center}.public-card{background:#fff;border:1px solid var(--line);border-radius:0 0 18px 18px;padding:22px;box-shadow:var(--shadow)}.action-cards{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin:18px 0}.action-card{border:2px solid var(--line);border-radius:14px;padding:18px;background:#fff;text-align:left}.action-card.active{border-color:var(--blue);background:var(--sky)}.offline-banner{background:#fff4ce;color:#6d4b00;border:1px solid #f1ce6f;padding:10px;border-radius:9px;margin-bottom:12px}.checklist{display:grid;gap:8px}.check-item{display:flex;gap:9px;align-items:flex-start;padding:9px;border:1px solid var(--line);border-radius:9px}.qr-box{background:#fff;border:8px double var(--gold);border-radius:18px;padding:12px;text-align:center;color:var(--navy);font-weight:800}
@media(max-width:1100px){.kpi-grid{grid-template-columns:repeat(3,1fr)}.two-col{grid-template-columns:1fr}.shell{grid-template-columns:82px 1fr}.sidebar .brand h2,.sidebar .brand p,.nav-title,.nav-btn span:not(.nav-icon){display:none}.sidebar .brand{justify-content:center}.nav-btn{justify-content:center}.sidebar{padding-inline:10px}}
@media(max-width:700px){.login-card{grid-template-columns:1fr}.login-hero{padding:28px}.login-form{padding:28px}.shell{display:block}.sidebar{position:fixed;left:0;right:0;bottom:0;top:auto;height:67px;z-index:50;display:flex;padding:7px 9px;overflow-x:auto}.sidebar .brand,.nav-title{display:none}.nav-group{display:flex;margin:0}.nav-btn{width:58px;min-width:58px;height:52px;margin:0}.main{padding-bottom:72px}.topbar{padding:0 13px;height:62px}.profile{display:none}.content{padding:15px}.page-head{display:block}.page-head .button-row{margin-top:12px}.kpi-grid{grid-template-columns:repeat(2,1fr)}.three-col,.form-grid{grid-template-columns:1fr}.action-cards{grid-template-columns:1fr}.card{padding:14px}.bar-row{grid-template-columns:90px 1fr 35px}}
@media print{.sidebar,.topbar,.button-row,.toolbar,.no-print{display:none!important}.shell{display:block}.content{padding:0}.card{box-shadow:none;break-inside:avoid}.table-wrap{overflow:visible}.table{min-width:0}.page{display:block!important}}

/* Near-final v9 BAPS Chicago visual system */
:root{--maroon:#761d2b;--gold2:#e0bd72}.brand-logo{width:48px;height:48px;object-fit:contain;background:#fff;border-radius:50%;padding:5px;box-shadow:0 0 0 3px rgba(224,189,114,.5)}.login-logo{width:92px;height:92px;object-fit:contain;background:#fff;border-radius:50%;padding:8px;box-shadow:0 8px 24px #0005}.login-body{background:linear-gradient(90deg,rgba(6,18,38,.88),rgba(16,44,82,.62)),url('/static/images/chicago-mandir-night.jpg') center/cover fixed}.login-hero{background:linear-gradient(165deg,rgba(16,44,82,.84),rgba(72,19,30,.86));overflow:hidden}.login-hero:before{content:"";position:absolute;inset:0;background:url('/static/images/chicago-haveli.jpg') center/cover;opacity:.14}.login-hero>*{position:relative;z-index:1}.sidebar{background:linear-gradient(180deg,#081b35 0%,#102c52 52%,#621a29 125%)}.sidebar:before{content:"";display:block;position:absolute;inset:0;background-image:radial-gradient(circle at 20% 10%,rgba(224,189,114,.09),transparent 28%);pointer-events:none}.main{background:linear-gradient(180deg,#f7f8fb,#fbfaf7)}.command-hero{min-height:310px;border-radius:24px;padding:34px;display:flex;justify-content:space-between;align-items:center;color:#fff;background:linear-gradient(90deg,rgba(8,27,53,.96),rgba(8,27,53,.72),rgba(118,29,43,.62)),url('/static/images/chicago-mandir-night.jpg') center/cover;box-shadow:0 18px 44px rgba(16,44,82,.22);margin-bottom:18px;overflow:hidden}.command-hero h1{font-family:Georgia,serif;font-size:clamp(2rem,4vw,3.5rem);margin:.2rem 0 .6rem}.command-hero p{font-size:1.08rem;max-width:720px;color:#eef4fb}.command-hero>img{width:135px;height:135px;object-fit:contain;background:#fff;border-radius:50%;padding:12px;box-shadow:0 10px 30px #0005}.eyebrow{font-size:.72rem;letter-spacing:.15em;font-weight:900;color:var(--gold)}.btn.glass{background:#ffffff1f;color:#fff;border:1px solid #ffffff55;backdrop-filter:blur(8px)}.kpi-grid.expanded{grid-template-columns:repeat(7,minmax(125px,1fr))}.kpi.smart{border-top:3px solid var(--gold);background:linear-gradient(150deg,#fff,#fff8e8)}.photo-ribbon{display:grid;grid-template-columns:1fr 1fr 1.35fr;gap:16px;margin:16px 0}.photo-ribbon figure{position:relative;margin:0;min-height:230px;border-radius:18px;overflow:hidden;box-shadow:var(--shadow)}.photo-ribbon img{width:100%;height:100%;object-fit:cover;position:absolute}.photo-ribbon figcaption{position:absolute;left:0;right:0;bottom:0;padding:30px 16px 14px;background:linear-gradient(transparent,#000b);color:#fff;font-weight:800}.smart-asset-promo{padding:25px;border-radius:18px;color:#fff;background:linear-gradient(145deg,var(--navy),var(--maroon));box-shadow:var(--shadow)}.smart-asset-promo h2{font-family:Georgia,serif;margin:7px 0}.asset-summary{margin-bottom:16px}.summary-value{font-size:2.4rem;font-weight:900;color:var(--navy)}.smart-panel{background:linear-gradient(145deg,#fff,#fff7df);border-color:#ecd9a8}.doc-count{display:inline-grid;place-items:center;min-width:30px;height:30px;border-radius:50%;background:#e8f1fc;color:var(--navy);font-weight:900}.modal{width:min(1180px,100%)}.asset-modal-head{display:flex;align-items:center;justify-content:space-between;border-radius:15px;padding:20px;color:#fff;background:linear-gradient(100deg,var(--navy),var(--maroon))}.asset-modal-head h2{margin:4px 0}.asset-modal-head p{margin:0}.asset-modal-head img{width:70px;height:70px;object-fit:contain;background:#fff;border-radius:50%;padding:6px}.asset-tabs{display:flex;gap:8px;margin:14px 0}.asset-tabs button,.asset-tabs a{border:0;border-radius:99px;padding:8px 12px;background:#eef2f7;text-decoration:none;color:var(--navy);font-weight:700}.asset-tabs .active{background:var(--navy);color:#fff}.card.flat{box-shadow:none}.nameplate-drop,.ocr-result{border:1px dashed #c9a25b;border-radius:12px;padding:13px;background:#fffaf0}.ocr-result{margin-top:13px}.smart-doc-center,.manufacturer-pm{margin-top:18px;border:1px solid var(--line);border-radius:16px;padding:17px;background:#fff}.section-head{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:12px}.section-head h3{margin:3px 0}.recommendation{display:flex;justify-content:space-between;gap:18px;padding:14px;border:1px solid var(--line);border-left:5px solid var(--gold);border-radius:11px;margin:9px 0;background:#fff}.recommendation.applied{border-left-color:var(--ok);background:#f1fbf5}.recommendation.rejected{opacity:.65}.public-logo{width:66px;height:66px;object-fit:contain;background:#fff;border-radius:50%;padding:6px}.public-page{background:linear-gradient(rgba(238,244,250,.9),rgba(251,250,247,.96)),url('/static/images/chicago-mandir-day.jpg') center/cover fixed}.public-header{background:linear-gradient(100deg,var(--navy),var(--maroon))}.app-footer{padding:18px 24px;color:var(--muted);font-size:.78rem;text-align:center}.badge.official{background:#fff4d5;color:#7b5700}.badge.proposed{background:#fff4d5;color:#7b5700}.badge.applied{background:#e7f6ee;color:var(--ok)}
@media(max-width:1300px){.kpi-grid.expanded{grid-template-columns:repeat(4,1fr)}}@media(max-width:900px){.photo-ribbon{grid-template-columns:1fr}.photo-ribbon figure{min-height:210px}.command-hero>img{display:none}}@media(max-width:700px){.command-hero{padding:23px;min-height:260px}.kpi-grid.expanded{grid-template-columns:repeat(2,1fr)}.section-head,.recommendation{display:block}.recommendation .button-row{margin-top:10px}}

/* Near-final v9 AI floor-plan importer */
.floorplan-layout{grid-template-columns:minmax(360px,.9fr) minmax(600px,1.5fr);align-items:start;margin-top:16px}.floorplan-preview{position:relative;display:inline-block;width:100%;max-height:720px;overflow:auto;border:1px solid var(--line);border-radius:13px;background:#eef2f7}.floorplan-preview>img{display:block;width:100%;height:auto}.floor-marker{position:absolute;min-width:24px;min-height:22px;padding:1px 4px;border:2px solid #d49d22;border-radius:6px;background:rgba(255,245,190,.78);color:#5e3d00;font-size:.7rem;font-weight:900;overflow:hidden;box-shadow:0 2px 8px #0003}.floor-marker:hover{z-index:4;transform:scale(1.1);background:#ffe59a}.floor-marker.created{border-color:var(--ok);background:rgba(220,249,232,.84);color:#0e5a38}.floorplan-pdf{width:100%;height:700px;border:1px solid var(--line);border-radius:13px;background:#f7f9fb}.analysis-note{margin-top:12px;padding:12px;border-left:4px solid var(--gold);background:#fff8e5;border-radius:9px}.floor-candidate-table{max-height:680px}.floor-candidate-table .table{min-width:980px}.floor-candidate-table input,.floor-candidate-table select{width:100%;min-width:110px;border:1px solid var(--line);border-radius:8px;padding:7px 8px;background:#fff}.floor-candidate-table .fp-name{min-width:220px}.floor-candidate-table .fp-code{min-width:130px}.floor-candidate-table input:disabled,.floor-candidate-table select:disabled{background:#eef2f5;color:#5f6874}.floor-actions{position:sticky;bottom:0;margin-top:12px;padding:12px;background:rgba(255,255,255,.94);border-top:1px solid var(--line);backdrop-filter:blur(8px)}.badge.review-required,.badge.uploaded,.badge.analyzing{background:#fff4d5;color:#7b5700}.badge.locations-created{background:#e7f6ee;color:var(--ok)}.badge.analysis-failed{background:#feeceb;color:var(--bad)}.badge.warn{background:#fff0e8;color:#a14200}@media(max-width:1200px){.floorplan-layout{grid-template-columns:1fr}.floorplan-preview,.floorplan-pdf{max-height:560px;height:560px}}@media(max-width:700px){.floorplan-preview,.floorplan-pdf{height:420px}.floor-candidate-table{max-height:520px}}


/* Near-final v9 campus location and asset map */
.campus-cards{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:12px;margin:16px 0}.campus-card{display:grid;gap:5px;text-align:left;padding:15px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(145deg,#fff,#f7f9fc);color:var(--navy);box-shadow:var(--shadow)}.campus-card span{font-size:.82rem;color:var(--muted)}.campus-card:hover,.campus-card.active{border-color:var(--gold);background:linear-gradient(145deg,#fff8e8,#fff)}.location-toolbar input{min-width:280px;flex:1}.location-toolbar select{max-width:260px}.location-root td{background:#fff8e8;font-weight:700}.count-pill{border:0;border-radius:999px;background:#e8f1fc;color:var(--navy);min-width:34px;padding:5px 10px;font-weight:900}.location-modal-head{display:flex;align-items:center;justify-content:space-between;border-radius:15px;padding:20px;color:#fff;background:linear-gradient(100deg,var(--maroon),var(--navy))}.location-modal-head h2{margin:4px 0}.location-modal-head p{margin:0}.location-modal-head img{width:70px;height:70px;object-fit:contain;background:#fff;border-radius:50%;padding:6px}.breadcrumbs{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin:13px 0}.crumb{border:0;border-radius:999px;padding:6px 10px;background:#eef2f7;color:var(--navy);font-weight:700}.location-qr-mini{display:flex;align-items:center;gap:16px;padding:12px;border:1px solid var(--line);border-radius:13px;background:#fffaf0;margin-bottom:13px}.location-qr-mini img{width:126px;height:126px;background:#fff;border:5px double var(--gold);border-radius:12px;padding:6px}@media(max-width:1150px){.campus-cards{grid-template-columns:repeat(3,1fr)}}@media(max-width:700px){.campus-cards{grid-template-columns:repeat(2,1fr)}.location-toolbar input,.location-toolbar select{min-width:100%;max-width:none}.location-modal-head img{display:none}.location-qr-mini{display:block}.location-qr-mini img{margin-bottom:10px}}

/* Near-Final v9.0 — BAPS Chicago AI operations experience */
:root{--saffron:#d89c2b;--maroon2:#8d2436;--deep:#07192f;--glass:rgba(255,255,255,.13)}
body{background:radial-gradient(circle at 90% 0,#edf5ff 0,transparent 28%),linear-gradient(180deg,#f6f8fb,#fbfaf7)}
.sidebar{width:auto;box-shadow:14px 0 42px rgba(7,25,47,.12);isolation:isolate}.sidebar:after{content:"";position:absolute;inset:auto 0 0;height:240px;background:linear-gradient(transparent,rgba(118,29,43,.42)),url('/static/images/chicago-haveli.jpg') center/cover;opacity:.25;z-index:-1}.nav-btn{position:relative;transition:.2s ease}.nav-btn.active:before{content:"";position:absolute;left:0;width:4px;height:24px;border-radius:0 8px 8px 0;background:var(--gold2);box-shadow:0 0 14px rgba(224,189,114,.7)}.nav-btn.intelligence-nav{border:1px solid rgba(224,189,114,.18);background:linear-gradient(90deg,rgba(224,189,114,.10),transparent)}
.topbar{height:76px;background:rgba(255,255,255,.9);backdrop-filter:blur(20px);box-shadow:0 7px 22px rgba(19,44,84,.05)}.top-actions{display:flex;align-items:center;gap:8px}.quick-action,.domain-chip{border:1px solid var(--line);border-radius:999px;padding:9px 12px;background:#fff;color:var(--navy);font-weight:800;font-size:.82rem;text-decoration:none;white-space:nowrap}.quick-action:hover,.domain-chip:hover{border-color:var(--gold);background:#fffaf0}.quick-action.gold-ring{border-color:var(--gold);box-shadow:inset 0 0 0 2px #fff3ca}.domain-chip{color:var(--maroon);background:#fff8ea}.mobile-menu{display:none;border:0;background:transparent;font-size:1.3rem}.mobile-quickbar{display:none}
.content{padding:28px}.card{transition:transform .18s ease,box-shadow .18s ease}.card:hover{box-shadow:0 18px 38px rgba(19,44,84,.11)}.command-hero{background-image:linear-gradient(90deg,rgba(7,25,47,.97),rgba(7,25,47,.72),rgba(118,29,43,.52)),url('/static/images/chicago-campus-panorama.jpg');background-position:center;background-size:cover}.command-hero:after,.smart-locate-hero:after{content:"";position:absolute;right:-70px;bottom:-110px;width:350px;height:350px;border:32px double rgba(224,189,114,.13);border-radius:50%;pointer-events:none}.command-hero{position:relative}.command-hero>*{position:relative;z-index:1}.ai-dashboard-brief{display:flex;align-items:center;justify-content:space-between;gap:18px;border-left:6px solid var(--gold);background:linear-gradient(100deg,#fffdf7,#f7fbff)}.ai-dashboard-brief h3{margin:5px 0 0;font-family:Georgia,serif;font-size:1.25rem}.kpi-grid.expanded{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.smart-locate-hero{position:relative;min-height:330px;border-radius:26px;padding:36px;display:flex;justify-content:space-between;align-items:center;overflow:hidden;color:#fff;background:linear-gradient(90deg,rgba(7,25,47,.97),rgba(13,42,78,.72),rgba(118,29,43,.60)),url('/static/images/chicago-campus-panorama.jpg') center/cover;box-shadow:0 20px 55px rgba(7,25,47,.24);margin-bottom:18px}.smart-locate-hero>*{position:relative;z-index:1}.smart-locate-hero h1{font-family:Georgia,serif;font-size:clamp(2rem,4vw,3.7rem);margin:.25rem 0 .75rem}.smart-locate-hero p{max-width:780px;color:#edf4fc;font-size:1.08rem;line-height:1.55}.smart-locate-hero>img{width:138px;height:138px;object-fit:contain;background:#fff;border-radius:50%;padding:12px;box-shadow:0 15px 40px #0006}.smart-locate-grid{grid-template-columns:repeat(3,1fr);margin-top:16px}.locate-card{position:relative;overflow:hidden;min-height:300px;padding:26px}.locate-card:before{content:"";position:absolute;inset:0 0 auto;height:5px;background:linear-gradient(90deg,var(--navy),var(--gold),var(--maroon))}.locate-card h2{font-family:Georgia,serif;margin:10px 0}.locate-card p{color:var(--muted);line-height:1.55}.locate-icon{width:58px;height:58px;display:grid;place-items:center;border-radius:18px;background:linear-gradient(145deg,var(--navy),var(--maroon));color:#fff;font-size:1.6rem;box-shadow:0 10px 25px rgba(19,44,84,.2)}.camera-input{display:none}.operations-brief{background:linear-gradient(145deg,#fff,#fffaf0)}.brief-headline{font-size:1.1rem;line-height:1.55;font-weight:700;color:var(--navy)}.ai-alert{display:grid;gap:3px;padding:11px 13px;margin:8px 0;border-radius:11px;border-left:5px solid var(--warn);background:#fff7e8}.ai-alert span{font-size:.84rem;color:var(--muted)}.ai-alert.emergency{border-left-color:var(--bad);background:#fff0ef}.ai-alert.high{border-left-color:#d6721a}.ai-clear{padding:13px;border-radius:11px;background:#ecf9f1;color:var(--ok);font-weight:800}.telegram-flow{display:grid;gap:10px;margin:14px 0}.telegram-flow>div{display:grid;gap:4px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#f8fafc}.telegram-flow span{font-size:.86rem;color:var(--muted)}
.location-match-head{padding:18px;border-radius:14px;background:linear-gradient(100deg,var(--navy),var(--maroon));color:#fff}.location-match-head h2{margin:4px 0}.location-match-head p{margin:4px 0;color:#eff4fa}.best-location-match{display:grid;grid-template-columns:130px 1fr;gap:20px;align-items:center;padding:20px;margin:15px 0;border:1px solid #ead5a2;border-radius:16px;background:linear-gradient(145deg,#fff9e8,#fff)}.best-location-match>div{display:grid;place-items:center;padding:15px;border-radius:50%;aspect-ratio:1;background:linear-gradient(145deg,var(--navy),var(--maroon));color:#fff}.match-score{font-size:2rem;font-weight:900}.best-location-match h2{margin:0 0 5px}.file-button{display:inline-flex!important;position:relative;overflow:hidden}.file-button input{position:absolute;inset:0;opacity:0;cursor:pointer}.camera-card{background:linear-gradient(145deg,#fff,#f1f7ff)}.gps-card{background:linear-gradient(145deg,#fff,#f3fbf6)}.qr-card{background:linear-gradient(145deg,#fff,#fff8e8)}

@media(max-width:1250px){.top-actions .domain-chip{display:none}.smart-locate-grid{grid-template-columns:1fr 1fr}.smart-locate-grid .qr-card{grid-column:1/-1}}
@media(max-width:900px){.top-actions{display:none}.smart-locate-grid{grid-template-columns:1fr}.smart-locate-grid .qr-card{grid-column:auto}.smart-locate-hero>img{display:none}.ai-dashboard-brief{display:block}.ai-dashboard-brief .button-row{margin-top:12px}}
@media(max-width:700px){body{padding-bottom:72px}.mobile-menu{display:block}.sidebar{top:0;bottom:0;left:-290px;right:auto;width:270px;height:100vh;display:block;padding:18px;transition:left .25s ease;z-index:120}.nav-open .sidebar{left:0}.nav-open:after{content:"";position:fixed;inset:0;background:#06152cb0;z-index:110}.sidebar .brand{display:flex}.sidebar .brand h2,.sidebar .brand p,.nav-title,.nav-btn span:not(.nav-icon){display:block}.sidebar .nav-group{display:block;margin-top:16px}.sidebar .nav-btn{width:100%;height:auto;justify-content:flex-start}.mobile-quickbar{position:fixed;display:grid;grid-template-columns:repeat(5,1fr);left:0;right:0;bottom:0;height:68px;background:rgba(255,255,255,.96);backdrop-filter:blur(16px);border-top:1px solid var(--line);z-index:90;padding:6px 8px max(6px,env(safe-area-inset-bottom))}.mobile-quickbar button{border:0;background:transparent;color:var(--navy);display:grid;place-items:center;gap:1px;font-size:1.1rem}.mobile-quickbar span{font-size:.67rem;font-weight:800}.mobile-quickbar .mobile-ticket{margin-top:-20px;width:58px;height:58px;justify-self:center;border-radius:50%;background:linear-gradient(145deg,var(--gold),#f2d791);box-shadow:0 8px 24px #0003}.main{padding-bottom:0}.content{padding:14px}.smart-locate-hero{padding:24px;min-height:315px}.smart-locate-hero h1{font-size:2rem}.best-location-match{grid-template-columns:1fr}.best-location-match>div{width:120px;justify-self:center}.topbar{padding:0 12px}.topbar .search{min-width:0}.topbar #languageSelect{max-width:96px}.app-footer{padding-bottom:22px}}
.login-domain{display:grid;grid-template-columns:auto 1fr;column-gap:8px;align-items:center;margin:18px 0;padding:12px;border:1px solid #e9d6a7;border-radius:12px;background:#fffaf0;color:var(--navy)}.login-domain small{grid-column:2;color:var(--muted)}
.ai-ticket-preview{margin:12px 0;padding:14px;border:1px solid #e8d29f;border-radius:13px;background:linear-gradient(145deg,#fffaf0,#f4f9ff)}.ai-ticket-preview h3{margin:3px 0}
.badge.sent{background:#e7f6ee;color:var(--ok)}.badge.retry-scheduled,.badge.pending,.badge.sending,.badge.waiting-for-setup{background:#fff7df;color:#8a5b00}.badge.cancelled{background:#eef2f7;color:var(--muted)}

/* v9.0.4 responsive and accessibility refinement */
button:disabled{cursor:wait;opacity:.7}button,input,select,textarea,a{touch-action:manipulation}:focus-visible{outline:3px solid rgba(46,104,178,.35);outline-offset:2px}
.login-form form{width:100%}.login-submit{min-height:44px}.login-help{line-height:1.45}.nav-btn,.quick-action,.mobile-quickbar button{min-height:44px}.content,.grid>*{min-width:0}.table-wrap{width:100%;max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-gutter:stable}.table td{line-height:1.4}.modal-backdrop,.modal{overscroll-behavior:contain}.modal-open{overflow:hidden}.toolbar input{min-width:220px}.toolbar select,.toolbar input,.topbar input,.topbar select{min-height:42px}.public-card>.btn,.public-card form>.btn{min-height:44px}
@media(max-width:700px){
  .login-body{display:block;min-height:100dvh;padding:16px;background-attachment:scroll}.login-card{margin:0 auto;border-radius:20px;overflow:visible}.login-hero{padding:28px 28px 24px;min-height:auto;border-radius:20px 20px 0 0}.login-logo{width:72px;height:72px}.login-hero h1{font-size:1.8rem;margin-bottom:8px}.login-hero h2{font-size:1.2rem;margin-top:0}.login-hero p{line-height:1.45}.login-form{padding:28px;border-radius:0 0 20px 20px}.login-form h1{font-size:1.75rem}.login-submit{width:100%}
  .topbar{gap:8px}.topbar .search input{font-size:16px}.topbar #languageSelect{width:82px;padding-inline:6px}.page-head h1{font-size:1.45rem}.page-head p{line-height:1.45}.card{border-radius:13px}.toolbar{display:grid;grid-template-columns:1fr 1fr}.toolbar input{min-width:0;grid-column:1/-1}.toolbar .btn{min-height:44px}.table-wrap{margin-inline:-14px;border-left:0;border-right:0;border-radius:0}.table th,.table td{padding:10px}.table th{position:static}
  .modal-backdrop{align-items:end;padding:0}.modal{width:100%;max-height:92dvh;border-radius:20px 20px 0 0;padding:18px 16px calc(18px + env(safe-area-inset-bottom))}.modal .button-row .btn{flex:1;min-width:135px;min-height:44px}.toast-area{left:12px;right:12px;bottom:82px}.toast{max-width:none}.health-row{align-items:flex-start}.health-row b{text-align:right;overflow-wrap:anywhere}.kpi .value{font-size:1.65rem}.public-card form>.btn{width:100%}
}
@media(max-width:420px){.login-body{padding:0}.login-card,.login-hero,.login-form{border-radius:0}.login-hero{padding:24px}.login-form{padding:24px}.kpi-grid,.kpi-grid.expanded,.campus-cards{grid-template-columns:1fr 1fr}.toolbar{grid-template-columns:1fr}.toolbar input{grid-column:auto}}

/* Approved recent BAPS Chicago photography — internal publication. */
.login-body{background-image:linear-gradient(90deg,rgba(6,18,38,.91),rgba(16,44,82,.42)),url('/static/images/baps-chicago-diwali-2025.jpg')}
.login-hero:before{background-image:url('/static/images/baps-chicago-unity-2025.jpg');opacity:.17}
.command-hero{background-image:linear-gradient(90deg,rgba(8,27,53,.97),rgba(8,27,53,.73),rgba(118,29,43,.48)),url('/static/images/baps-chicago-diyas-2025.jpg')}
.knowledge-photo{min-height:170px;border-radius:14px;margin-bottom:14px;background:linear-gradient(90deg,rgba(8,27,53,.9),rgba(8,27,53,.28)),url('/static/images/baps-chicago-heritage-2026.jpg') center/cover;color:#fff;padding:24px;display:flex;align-items:flex-end}
.knowledge-photo h3{margin:0;font-family:Georgia,serif;font-size:1.5rem}.knowledge-photo p{margin:5px 0 0;color:#f8eed8}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
