.backend-readiness-gate-module__OE0uSG__page{background:radial-gradient(circle at 20% 10%,#2b6fff21,#0000 36%),linear-gradient(#f7f9fc 0%,#eef2f7 100%);place-items:center;min-height:100svh;padding:24px;display:grid}.backend-readiness-gate-module__OE0uSG__card{color:#151d2d;text-align:center;background:#fffffff5;border:1px solid #141f3317;border-radius:24px;width:min(100%,430px);padding:28px;box-shadow:0 24px 70px #141f331f}.backend-readiness-gate-module__OE0uSG__card strong{margin-bottom:8px;font-size:1.15rem;display:block}.backend-readiness-gate-module__OE0uSG__card p{color:#687386;margin:0;line-height:1.55}.backend-readiness-gate-module__OE0uSG__card button{color:#fff;min-height:44px;font:inherit;cursor:pointer;background:#151d2d;border:0;border-radius:12px;margin-top:20px;padding:0 18px;font-weight:800}.backend-readiness-gate-module__OE0uSG__card button:focus-visible{outline-offset:3px;outline:3px solid #2b6fff59}
:root{--ink:#17231f;--muted:#708079;--line:#e4eae6;--surface:#fff;--canvas:#f3f6f4;--green:#168a5b;--green-dark:#0b6842;--green-soft:#e8f6ef;--blue:#3373f1;--blue-soft:#eaf1ff;--amber:#e9a43b;--red:#db6262}*{box-sizing:border-box;margin:0;padding:0}html,body{min-height:100%}body{background:var(--canvas);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-family:Segoe UI,Noto Sans,Helvetica Neue,Arial,sans-serif;font-size:16px;line-height:1.5}button,input,select,textarea{font:inherit}button{color:inherit}.app-shell{grid-template-columns:224px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--line);z-index:20;background:#fbfcfb;flex-direction:column;height:100vh;padding:26px 18px 20px;display:flex;position:sticky;top:0}.brand{letter-spacing:-.5px;align-items:center;gap:10px;padding:0 8px 30px;font-size:20px;font-weight:800;display:flex}.brand-mark{color:#fff;background:var(--green);border-radius:10px;place-items:center;width:30px;height:30px;display:grid;box-shadow:0 6px 16px #168a5b38}.brand-ai{color:var(--green);margin-left:3px}.sidebar nav{gap:6px;display:grid}.nav-item{cursor:pointer;color:#77827d;text-align:left;background:0 0;border:0;border-radius:10px;align-items:center;gap:12px;width:100%;padding:12px 14px;display:flex}.nav-item span{text-align:center;width:21px;font-size:21px}.nav-item b{font-size:13px;font-weight:600}.nav-item:hover,.nav-item.active{color:var(--green-dark);background:var(--green-soft)}.system-card{border:1px solid var(--line);background:#fff;border-radius:12px;margin-top:auto;margin-bottom:14px;padding:14px}.system-title{align-items:center;gap:8px;font-size:11px;font-weight:800;display:flex}.pulse,.online{background:#20b874;border-radius:50%;width:7px;height:7px;display:inline-block;box-shadow:0 0 0 4px #20b8741d}.system-card>p{color:var(--muted);margin:7px 0 10px 15px;font-size:10px}.service-row{color:var(--muted);border-top:1px solid #eef1ef;justify-content:space-between;margin-top:7px;padding-top:8px;font-size:10px;display:flex}.service-row strong{color:var(--green);font-weight:700}.profile{border:0;border-top:1px solid var(--line);text-align:left;cursor:pointer;background:0 0;grid-template-columns:34px minmax(0,1fr) 18px;align-items:center;gap:9px;width:100%;min-width:0;padding:10px 4px;display:grid;overflow:hidden}.avatar{color:#fff;background:#243b33;border-radius:50%;flex:0 0 34px;place-items:center;width:34px;min-width:34px;height:34px;font-size:10px;font-weight:700;display:grid;overflow:hidden}.profile-copy{min-width:0;overflow:hidden}.profile b,.profile small{text-overflow:ellipsis;white-space:nowrap;max-width:100%;display:block;overflow:hidden}.profile b{margin-bottom:3px;font-size:11px}.profile small{color:var(--muted);font-size:9px}.profile-menu{width:18px;color:var(--muted);text-align:center}.workspace{min-width:0;padding:0 30px 34px;overflow-x:hidden}.topbar{justify-content:space-between;align-items:center;gap:20px;height:94px;display:flex}.eyebrow{letter-spacing:1.15px;color:#9aa59f;margin-bottom:6px;font-size:9px;font-weight:800}.eyebrow.green{color:var(--green)}.eyebrow.blue{color:var(--blue)}.topbar h1{letter-spacing:-.6px;font-size:23px}.top-actions{align-items:center;gap:10px;display:flex}.location-button{background:var(--surface);border:1px solid var(--line);cursor:pointer;text-align:left;border-radius:12px;align-items:center;gap:10px;min-width:190px;padding:9px 12px;display:flex;box-shadow:0 3px 12px #1f3b2d08}.location-button span:nth-child(2){flex:1}.location-button small,.location-button b{display:block}.location-button small{color:var(--muted);font-size:9px}.location-button b{margin-top:3px;font-size:11px}.location-icon{color:var(--green);font-size:20px}.icon-button{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:12px;width:40px;height:40px;font-size:20px;position:relative}.notification-dot{background:var(--red);border:2px solid #fff;border-radius:50%;width:6px;height:6px;position:absolute;top:8px;right:9px}.content-grid{grid-template-columns:minmax(620px,1fr) 326px;align-items:start;gap:18px;width:100%;min-width:0;max-width:1440px;margin:0 auto;display:grid}.content-grid>*{min-width:0}.main-column{gap:16px;min-width:0;max-width:100%;display:grid}.card{background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 7px 30px #223f3008}.card-header{justify-content:space-between;align-items:center;gap:15px;padding:18px 20px 15px;display:flex}.card-header h2,.assistant-header h2{letter-spacing:-.2px;font-size:15px}.card-header p{color:var(--muted);margin-top:4px;font-size:9px}.card-header.compact{padding-bottom:12px}.segmented{background:#f2f5f3;border-radius:8px;padding:3px;display:flex}.segmented button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:7px 12px;font-size:10px;font-weight:700}.segmented button.active{color:var(--ink);background:#fff;box-shadow:0 1px 5px #162c211a}.stats-row{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(3,96px) minmax(130px,1fr);align-items:center;gap:10px;padding:12px 20px;display:grid}.stats-row>div:not(.occupancy){align-items:center;gap:9px;display:flex}.stats-row b,.stats-row small{display:block}.stats-row small{color:var(--muted);margin-top:2px;font-size:9px}.stat-dot{border-radius:6px;width:9px;height:26px}.stat-dot.available,.legend i.available{background:var(--green)}.stat-dot.occupied,.legend i.occupied{background:#cdd5d1}.stat-dot.ev,.legend i.ev{background:var(--blue)}.occupancy{border-left:1px solid var(--line);padding-left:16px}.occupancy>span{justify-content:space-between;align-items:center;display:flex}.occupancy>span b{font-size:11px}.occupancy>div{background:#edf1ef;border-radius:6px;height:5px;margin-top:7px;overflow:hidden}.occupancy i{background:var(--green);border-radius:inherit;height:100%;display:block}.parking-map{background-color:#f7f9f8;background-image:linear-gradient(#e9eeeb 1px,#0000 1px),linear-gradient(90deg,#e9eeeb 1px,#0000 1px);background-size:24px 24px;height:350px;padding:69px 25px 48px;position:relative;overflow:hidden}.parking-map:before{content:"";z-index:1;background:#e7ece9;border-right:1px dashed #bdc8c2;width:25px;position:absolute;top:69px;bottom:48px;left:0}.zones{z-index:2;grid-template-columns:repeat(3,1fr);gap:34px;height:100%;display:grid;position:relative}.zone{min-width:0;position:relative}.zone-title{justify-content:space-between;align-items:center;margin-bottom:7px;display:flex}.zone-title b{letter-spacing:.8px;font-size:9px}.zone-title span{color:var(--muted);font-size:8px}.slot-grid{grid-template-columns:repeat(3,1fr);gap:34px 7px;display:grid;position:relative}.slot-grid:after{content:"LỐI ĐI NỘI KHU";z-index:0;color:#a0aca6;letter-spacing:.7px;background:#e7ece9;border-top:1px dashed #bdc8c2;border-bottom:1px dashed #bdc8c2;place-items:center;height:34px;font-size:6px;display:grid;position:absolute;top:67px;left:0;right:0}.parking-slot{z-index:1;min-width:0;height:67px;color:var(--green-dark);cursor:pointer;background:#fff;border:1px solid #a6d5bf;border-radius:7px;transition:all .18s;position:relative}.parking-slot:hover{transform:translateY(-2px);box-shadow:0 6px 12px #214d3620}.parking-slot.occupied{color:#94a19b;background:#edf1ef;border-color:#d8deda}.parking-slot.ev{color:var(--blue);background:#f5f8ff;border-color:#91b5ff}.parking-slot.accessible{color:#8555bd;border-color:#c8a8ee}.parking-slot.selected{border-width:2px;box-shadow:0 0 0 3px #168a5b25}.parking-slot b{font-size:10px;position:absolute;bottom:5px;left:6px}.slot-type{font-size:16px}.parking-slot em{z-index:3;color:#fff;background:var(--green-dark);border-radius:4px;width:max-content;padding:3px 6px;font-size:6px;font-style:normal;position:absolute;bottom:-17px;left:50%;transform:translate(-50%)}.parking-slot.my-car{border-color:var(--green-dark);background:#e8f6ef}.map-label{z-index:3;color:#5f6d67;font-size:8px;font-weight:800;position:absolute}.map-label span{background:var(--green);color:#fff;border-radius:50%;place-items:center;width:24px;height:24px;margin-right:5px;font-size:14px;display:inline-grid}.entrance{top:10px;left:25px}.elevator{top:12px;right:26px}.elevator span{background:#35433e}.road{z-index:1;color:#9aa59f;letter-spacing:.7px;background:#e8ece9;border-top:1px dashed #c0cbc5;border-bottom:1px dashed #c0cbc5;justify-content:center;align-items:center;gap:50px;height:31px;font-size:7px;font-weight:700;display:flex;position:absolute;left:0;right:0}.road-top{top:39px}.road-bottom{justify-content:space-around;bottom:0}.road i{color:#a9b4ae;font-size:16px;font-style:normal}.cross-aisles{z-index:1;pointer-events:none;position:absolute;inset:0}.cross-aisles>i{background:#e7ece9;border-left:1px dashed #bdc8c2;border-right:1px dashed #bdc8c2;width:34px;position:absolute;top:69px;bottom:48px;transform:translate(-50%)}.cross-aisles>i:first-child{left:34%}.cross-aisles>i:last-child{left:66%}.cross-aisles span{color:#9ca8a2;letter-spacing:.8px;white-space:nowrap;font-size:6px;font-style:normal;font-weight:700;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-90deg)}.route-path{--route-start-x:6%;--route-start-y:16%;pointer-events:none;z-index:4;color:var(--blue);filter:drop-shadow(0 2px 3px #3373f13b);position:absolute;inset:0}.route-origin{left:var(--route-start-x);top:var(--route-start-y);color:#fff;background:var(--blue);width:22px;height:22px;box-shadow:0 0 0 2px var(--blue);border:3px solid #fff;border-radius:50%;place-items:center;font-size:12px;display:grid;position:absolute;transform:translate(-50%,-50%)}.route-horizontal{left:var(--route-top-left);top:var(--route-start-y);width:var(--route-top-width);border-top:3px dashed var(--blue);position:absolute}.route-vertical{left:var(--route-aisle-x);top:var(--route-start-y);height:calc(var(--route-lane-y) - var(--route-start-y));border-left:3px dashed var(--blue);position:absolute}.route-final{left:var(--route-final-left);top:var(--route-lane-y);width:var(--route-final-width);border-top:3px dashed var(--blue);position:absolute}.route-turn{left:var(--route-aisle-x);top:var(--route-lane-y);border:2px solid var(--blue);background:#fff;border-radius:50%;width:9px;height:9px;position:absolute;transform:translate(-3px,-3px)}.route-destination{left:var(--route-target-x);top:var(--route-lane-y);color:#fff;background:var(--blue);min-width:29px;height:29px;box-shadow:0 0 0 2px var(--blue);border:3px solid #fff;border-radius:50%;place-items:center;padding:0 5px;font-size:8px;animation:.45s ease-out route-arrival;display:grid;position:absolute;transform:translate(-45%,-50%)}@keyframes route-arrival{0%{opacity:0;transform:translate(-45%,-50%)scale(.65)}}.legend{border-top:1px solid var(--line);min-height:38px;color:var(--muted);justify-content:center;gap:22px;padding:10px 20px;font-size:8px;display:flex}.legend span{align-items:center;gap:5px;display:flex}.legend i{border-radius:2px;width:8px;height:8px}.legend i.accessible{background:#a271dc}.slot-list{align-content:start;height:327px;padding:12px 18px;display:grid;overflow:auto}.slot-list button{border:0;border-bottom:1px solid var(--line);text-align:left;cursor:pointer;background:0 0;grid-template-columns:90px 60px 1fr 85px;align-items:center;padding:11px;font-size:10px;display:grid}.slot-list button.active{background:var(--green-soft)}.slot-list em{justify-self:end;font-style:normal;font-weight:700}.slot-list em.available{color:var(--green)}.slot-list em.occupied{color:#9aa59f}.lower-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.deterministic{color:var(--green);background:var(--green-soft);border-radius:20px;padding:5px 8px;font-size:8px;font-weight:700}.preference-row{grid-template-columns:1fr 1fr;gap:9px;padding:0 20px 13px;display:grid}.preference-row button{border:1px solid var(--line);text-align:left;cursor:pointer;background:#fafcfb;border-radius:9px;padding:11px 9px 10px 35px;position:relative}.preference-row button.selected{background:var(--green-soft);border-color:#9bcdb5}.preference-row span{position:absolute;top:14px;left:10px}.preference-row b,.preference-row small{display:block}.preference-row small{color:var(--muted);margin-top:3px;font-size:8px}.primary-button,.secondary-button{cursor:pointer;border:0;border-radius:9px;min-height:36px;padding:8px 14px;font-size:10px;font-weight:700}.primary-button{background:var(--green);color:#fff}.primary-button:hover{background:var(--green-dark)}.recommend-card>.primary-button{justify-content:space-between;align-items:center;width:calc(100% - 40px);margin:0 20px;display:flex}.secondary-button{border:1px solid var(--line);background:#fff}.secondary-button.full{width:100%}.recommend-result{background:#f7faf8;border-radius:10px;align-items:center;gap:10px;margin:13px 20px 17px;padding:10px;display:flex}.score-ring{border:3px solid var(--green);text-align:center;border-radius:50%;place-content:center;width:50px;height:50px;display:grid}.score-ring b{font-size:11px}.score-ring small{color:var(--green);font-size:7px}.recommend-result strong{color:var(--green-dark);font-size:9px}.recommend-result p{color:var(--muted);margin-top:4px;font-size:8px}.distance{color:var(--blue);font-size:15px}.route-steps{padding:0 20px 10px;list-style:none}.route-steps li{align-items:center;gap:10px;padding-bottom:10px;display:flex;position:relative}.route-steps li:not(:last-child):after{content:"";border-left:1px dashed #aab8b1;height:12px;position:absolute;top:21px;left:10px}.route-steps i{background:var(--blue-soft);width:21px;height:21px;color:var(--blue);border-radius:50%;flex:0 0 21px;place-items:center;font-size:8px;font-style:normal;font-weight:800;display:grid}.route-steps b,.route-steps small{display:block}.route-steps b{font-size:9px}.route-steps small{color:var(--muted);margin-top:3px;font-size:8px}.action-row{grid-template-columns:1fr 1fr;gap:8px;padding:0 20px 17px;display:grid}.session-banner{color:#fff;background:#153b2c;border-radius:14px;align-items:center;gap:11px;min-height:58px;padding:9px 12px;display:flex;box-shadow:0 8px 22px #0e4e3230}.session-icon{color:#153b2c;background:#76e3ac;border-radius:9px;place-items:center;width:34px;height:34px;font-weight:900;display:grid}.session-banner div{flex:1}.session-banner small,.session-banner b{display:block}.session-banner small{color:#a7d7c0;letter-spacing:.8px;font-size:7px}.session-banner b{margin-top:4px;font-size:11px}.session-banner button{color:#153b2c;cursor:pointer;background:#fff;border:0;border-radius:7px;padding:8px 10px;font-size:9px;font-weight:700}.session-banner button.text-button{color:#fff;background:0 0}.assistant-card{flex-direction:column;width:100%;min-width:0;height:calc(100vh - 32px);min-height:630px;max-height:760px;display:flex;position:sticky;top:16px;overflow:hidden}.assistant-header{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:16px;display:flex}.assistant-header>div:nth-child(2){flex:1}.assistant-header p{color:var(--muted);margin-top:4px;font-size:8px}.assistant-header p span{background:#20b874;border-radius:50%;width:6px;height:6px;margin-right:4px;display:inline-block}.assistant-header button{cursor:pointer;background:0 0;border:0}.agent-avatar{color:#fff;background:linear-gradient(145deg,#13774f,#26a570);border-radius:10px;place-items:center;width:34px;height:34px;font-size:10px;font-weight:800;display:grid;position:relative}.agent-avatar .online{box-shadow:none;border:2px solid #fff;position:absolute;bottom:-2px;right:-2px}.conversation{background:#fcfdfc;flex:1;min-height:0;padding:14px 16px;overflow-y:auto}.date-separator{color:#a3ada8;letter-spacing:.7px;text-align:center;align-items:center;gap:8px;margin-bottom:15px;font-size:7px;display:flex}.date-separator span{background:var(--line);flex:1;height:1px}.message{max-width:88%;margin-bottom:12px}.message.user{margin-left:auto}.message p{background:#eef4f0;border-radius:4px 11px 11px;padding:10px 11px;font-size:10px;line-height:1.55}.message.user p{color:#fff;background:var(--green);border-radius:11px 4px 11px 11px}.message small{color:#a2ada7;margin:4px 3px 0;font-size:7px;display:block}.message.user small{text-align:right}.quick-actions{flex-wrap:wrap;gap:5px;padding:0 13px 10px;display:flex}.quick-actions button{border:1px solid var(--line);color:#52625b;cursor:pointer;background:#fff;border-radius:16px;padding:6px 8px;font-size:8px}.quick-actions button:hover{border-color:var(--green);color:var(--green)}.chat-input{background:#fff;border:1px solid #d8e0dc;border-radius:11px;align-items:center;gap:4px;margin:0 12px 9px;padding:5px;display:flex;box-shadow:0 3px 12px #173c280a}.chat-input input{border:0;outline:0;flex:1;min-width:0;padding:8px 5px;font-size:10px}.chat-input button{color:#617169;cursor:pointer;background:#eff3f1;border:0;border-radius:8px;width:29px;height:29px}.chat-input button:last-child{background:var(--green);color:#fff}.chat-input button.listening{color:#fff;background:var(--red);animation:1s infinite alternate listening}@keyframes listening{to{box-shadow:0 0 0 5px #db626222}}.agent-note{border-top:1px solid var(--line);color:#849089;background:#fafbfa;padding:8px 13px 11px;font-size:7px;line-height:1.4}.agent-note span{color:var(--green)}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#10251db8;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:20px;width:min(420px,100%);padding:28px;position:relative;box-shadow:0 30px 80px #0a201799}.modal h2{font-size:21px}.modal>p:not(.eyebrow){color:var(--muted);margin-top:8px;font-size:11px;line-height:1.5}.modal-close{cursor:pointer;background:0 0;border:0;font-size:24px;position:absolute;top:14px;right:18px}.modal label{color:var(--muted);gap:7px;margin-top:22px;margin-bottom:15px;font-size:10px;display:grid}.modal select{border:1px solid var(--line);background:#fff;border-radius:8px;padding:10px}.modal>.primary-button{width:100%}.first-vehicle-dialog .vehicle-plate-field{color:var(--ink);font-weight:700}.first-vehicle-dialog .vehicle-plate-input{border:1px solid var(--line);width:100%;color:var(--ink);font:inherit;text-transform:uppercase;background:#fff;border-radius:8px;padding:10px}.first-vehicle-dialog .vehicle-plate-input:focus{outline:2px solid var(--green);outline-offset:2px;border-color:var(--green)}.first-vehicle-dialog .vehicle-plate-input:disabled{color:var(--muted);background:var(--green-soft);cursor:not-allowed}.first-vehicle-dialog .vehicle-charge-option{color:var(--ink);align-items:center;gap:9px;margin:8px 0 16px;font-size:10px;display:flex}.first-vehicle-dialog .vehicle-charge-option input[type=checkbox]{width:15px;height:15px;accent-color:var(--green);margin:0}.first-vehicle-dialog .vehicle-charge-option input[type=checkbox]:disabled{cursor:not-allowed}.first-vehicle-dialog .form-error{color:#7c2727;background:#fff0f0;border:1px solid #efc6c6;border-radius:8px;margin:0 0 14px;padding:9px 10px;font-size:10px;line-height:1.45}.first-vehicle-dialog .primary-button:disabled,.first-vehicle-dialog .primary-button:disabled:hover{color:var(--muted);background:var(--green-soft);cursor:not-allowed}.simulator-panel{background:#fff;border-radius:20px;width:min(610px,100%);max-height:calc(100vh - 40px);padding:24px;overflow:auto}.sim-header{justify-content:space-between;align-items:flex-start;margin-bottom:20px;display:flex}.sim-header h2{font-size:20px}.sim-header p:not(.eyebrow){color:var(--muted);margin-top:5px;font-size:10px}.sim-header button{cursor:pointer;background:0 0;border:0;font-size:24px}.sim-slots{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px;display:grid}.sim-slots button{border:1px solid var(--line);text-align:left;cursor:pointer;background:#fafcfb;border-radius:9px;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:10px;display:grid}.sim-slots button:disabled{opacity:.45}.sim-slots span{border-radius:50%;width:8px;height:8px}.sim-slots span.available{background:var(--green)}.sim-slots span.occupied{background:#a9b2ae}.sim-slots b{font-size:9px}.sim-slots small{color:var(--muted);font-size:7px}.event-log{background:#f5f8f6;border-radius:12px;margin-top:18px;padding:15px}.event-log h3{margin-bottom:10px;font-size:11px}.event-log p{color:var(--muted);padding:6px 0;font-size:9px}.event-log p span{background:var(--green);border-radius:50%;width:6px;height:6px;margin-right:8px;display:inline-block}@media (max-width:1160px){.app-shell{grid-template-columns:72px minmax(0,1fr)}.sidebar{padding:25px 10px 14px}.brand{padding-inline:10px}.brand>span:last-child,.nav-item b,.system-card,.profile-copy,.profile-menu{display:none}.nav-item{justify-content:center;padding:12px}.profile{justify-content:center;display:flex;overflow:visible}.content-grid{grid-template-columns:minmax(560px,1fr) 300px}.workspace{padding-inline:20px}}@media (max-width:1080px){.content-grid{flex-direction:column;display:flex}.assistant-card{order:initial;height:600px;max-height:none;position:relative;top:auto}.parking-map{height:350px}.main-column,.assistant-card{width:100%;max-width:100%}}@media (max-width:680px){.app-shell{padding-bottom:64px;display:block}.sidebar{border-right:0;border-top:1px solid var(--line);background:#fff;flex-direction:row;align-items:center;width:100%;height:64px;padding:7px 12px;position:fixed;top:auto;bottom:0}.brand,.profile{display:none}.sidebar nav{grid-template-columns:repeat(3,1fr);width:100%}.nav-item{flex-direction:column;gap:2px;padding:4px}.nav-item span{font-size:18px}.nav-item b{font-size:8px;display:block}.workspace{padding:0 12px 20px}.topbar{align-items:flex-start;height:auto;padding:18px 2px}.topbar h1{font-size:18px}.top-actions .icon-button{display:none}.location-button{min-width:0;padding:8px}.location-button span:nth-child(2){display:none}.content-grid{min-width:0}.assistant-card{height:530px;min-height:0}.lower-grid{grid-template-columns:1fr}.stats-row{grid-template-columns:repeat(3,1fr)}.occupancy{display:none}.parking-map{height:760px;padding:72px 14px 48px}.parking-map:before{width:14px;top:72px}.zones{grid-template-columns:1fr;gap:34px}.slot-grid{grid-template-columns:repeat(3,1fr);gap:34px 7px}.parking-slot{height:67px}.zone-title{margin-bottom:5px}.map-label.elevator{display:none}.road{gap:12px}.cross-aisles>i{border:1px dashed #bdc8c2;border-left:0;border-right:0;width:auto;height:26px;bottom:auto;right:14px;transform:none;left:14px!important}.cross-aisles>i:first-child{top:35%}.cross-aisles>i:last-child{top:65%}.cross-aisles span{transform:translate(-50%,-50%)}.route-path{--route-start-y:8%;--route-top-left:var(--route-mobile-top-left)!important;--route-top-width:var(--route-mobile-top-width)!important;--route-aisle-x:var(--route-mobile-aisle-x)!important;--route-lane-y:var(--route-mobile-lane-y)!important;--route-final-left:var(--route-mobile-final-left)!important;--route-final-width:var(--route-mobile-final-width)!important;--route-target-x:var(--route-mobile-target-x)!important}.legend{flex-wrap:wrap;gap:10px}.slot-list button{grid-template-columns:70px 45px 1fr 65px}.session-banner{flex-wrap:wrap}.session-banner div{min-width:180px}.sim-slots{grid-template-columns:repeat(2,1fr)}}button,input,select,textarea,label,p,small{line-height:1.45}.nav-item b{font-size:14px}.profile b{font-size:13px}.profile small{font-size:11px}.eyebrow{font-size:11px;line-height:1.35}.topbar h1{font-size:26px}.location-button small{font-size:11px}.location-button b{font-size:13px}.card-header h2,.assistant-header h2{font-size:18px}.card-header p{font-size:11px}.stats-row b{font-size:19px}.stats-row small{font-size:11px}.primary-button,.secondary-button{min-height:40px;font-size:12px}.deterministic{font-size:10px}.preference-row b{font-size:12px}.preference-row small{font-size:10px}.candidate-list>p,.candidate-list b,.candidate-list span{font-size:11px}.selected-slot-detail small{font-size:10px}.selected-slot-detail strong{font-size:12px}.selected-slot-detail>span{font-size:11px}.route-contract-copy,.structured-result{font-size:11px;line-height:1.6}.reservation-banner small,.session-banner small{font-size:10px}.reservation-banner b,.session-banner b{font-size:13px}.reservation-banner button,.session-banner button,.assistant-header p{font-size:11px}.message p{font-size:13px;line-height:1.6}.message small{font-size:10px}.date-separator{font-size:9px}.chat-loading{font-size:11px}.quick-actions button{padding:7px 10px;font-size:11px}.chat-input input{font-size:13px}.agent-note{font-size:11px;line-height:1.5}.page-alert{font-size:12px;line-height:1.5}.map-legend,.live-map-indicator,.map-slot b{font-size:10px}.map-slot-badge{font-size:8px}.location-picker-section h3,.slot-location-form>label{font-size:12px}.location-choice-grid button,.slot-location-options button{font-size:10px}.slot-location-controls input,.slot-location-controls button{font-size:12px}.location-validation,.location-api-error,.location-pending,.location-confirmation-outcome{font-size:11px}.content-grid{grid-template-columns:minmax(620px,1fr) 360px}.wrong-parking-report-dialog{overscroll-behavior:contain;scrollbar-gutter:stable;width:min(560px,100vw - 28px);max-height:calc(100dvh - 28px);overflow-y:auto}.wrong-parking-report-form{gap:14px;margin-top:16px;display:grid}.wrong-parking-report-form>p{color:var(--muted);font-size:13px;line-height:1.6}.wrong-parking-report-form label{color:var(--ink);gap:7px;margin:0;font-size:12px;font-weight:700;display:grid}.wrong-parking-report-form select,.wrong-parking-report-form input,.wrong-parking-report-form textarea{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:9px;padding:11px 12px;font-size:13px}.wrong-parking-report-form textarea{resize:vertical;min-height:116px}.wrong-parking-report-form label small{color:var(--muted);justify-self:end;font-size:10px;font-weight:400}.wrong-parking-report-form .primary-button{width:100%}.report-submit-dock{z-index:3;padding:12px 28px max(16px, env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff2;border-top:1px solid #dbe8e1;margin:2px -28px -28px;position:sticky;bottom:-28px}.wrong-parking-report-form button:disabled{opacity:.5;cursor:not-allowed}.report-error{color:#7c2727;background:#fff0f0;border:1px solid #efc6c6;border-radius:8px;padding:10px 12px;font-size:12px}.report-success{color:var(--green-dark);background:var(--green-soft);border:1px solid #9bcdb5;border-radius:12px;gap:10px;margin-top:20px;padding:18px;display:grid}.report-success b{font-size:17px}.report-success p{font-size:13px}.report-success button{margin-top:5px}@media (max-width:640px){.modal-backdrop{align-items:start;padding:8px}.wrong-parking-report-dialog{border-radius:16px;width:100%;max-height:calc(100dvh - 16px);padding:20px 16px 16px}.report-submit-dock{padding:10px 16px max(12px, env(safe-area-inset-bottom));margin:2px -16px -16px;bottom:-16px}}.admin-topbar>div>p:last-child{font-size:12px}.admin-top-actions a{font-size:11px}.admin-error,.admin-operation-notice{font-size:12px}.admin-metrics small{font-size:11px}.admin-metrics span{font-size:10px}.admin-section-heading h2{font-size:19px}.admin-section-heading>span{font-size:11px}.zone-density-grid article>div:first-child{font-size:13px}.zone-density-grid small,.admin-filters label,.admin-operations label{font-size:11px}.admin-filters select,.admin-operations select,.admin-operations input{font-size:12px}.admin-filters>span{font-size:11px}.admin-empty,.admin-event-list b{font-size:12px}.admin-event-list span,.admin-event-list small,.admin-event-list time{font-size:10px}.admin-report-list{display:grid}.admin-report-row{border:0;border-top:1px solid var(--line);width:100%;min-height:72px;color:var(--ink);text-align:left;cursor:pointer;background:0 0;grid-template-columns:minmax(180px,.8fr) minmax(240px,1.5fr) 90px 150px;align-items:center;gap:16px;padding:13px 4px;display:grid}.admin-report-row:hover,.admin-report-row:focus-visible{outline:2px solid var(--green);outline-offset:-2px;background:#f4f8f6}.admin-report-row>div{gap:4px;display:grid}.admin-report-list b{font-size:13px}.admin-report-list small,.admin-report-list time{color:var(--muted);font-size:10px}.admin-report-list p{font-size:12px;line-height:1.55}.admin-report-list time{text-align:right}.admin-report-refresh{align-items:center;gap:10px;display:flex}.admin-report-refresh>span{color:var(--muted);font-size:11px;font-weight:700}.admin-report-refresh label{color:var(--muted);gap:3px;font-size:9px;font-weight:700;display:grid}.admin-report-refresh select{border:1px solid var(--line);background:#fff;border-radius:7px;padding:6px 8px;font-size:11px}.report-status{border-radius:999px;width:max-content;padding:4px 7px;font-size:9px;font-weight:800}.report-status.status-open{color:#8c2525;background:#ffe5e5}.report-status.status-resolved{color:#216544;background:#dff3e8}.admin-drawer-backdrop{z-index:120;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#10251d73;justify-content:flex-end;display:flex;position:fixed;inset:0}.report-detail-drawer{width:min(560px,100%);height:100%;color:var(--ink);background:#fff;padding:24px;position:relative;overflow-y:auto;box-shadow:-18px 0 50px #10251d40}.report-detail-drawer>header{border-bottom:1px solid var(--line);justify-content:space-between;padding-bottom:15px;padding-right:36px;display:flex}.report-detail-drawer>header h2{margin-top:3px;font-size:22px}.report-detail-drawer>header p:last-child{color:var(--muted);margin-top:5px;font-size:12px}.report-detail-drawer .modal-close{top:15px;right:20px}.drawer-refresh-row{color:var(--muted);justify-content:space-between;align-items:center;padding:12px 0;font-size:11px;display:flex}.drawer-refresh-row button{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:7px;padding:6px 9px}.report-drawer-error{color:#7c2727;background:#fff0f0;border:1px solid #efc6c6;border-radius:9px;margin-bottom:12px;padding:11px;font-size:12px;line-height:1.5}.report-drawer-empty{color:var(--muted);text-align:center;padding:28px 10px}.report-detail-list{gap:12px;display:grid}.report-detail-list article{border:1px solid var(--line);background:#fbfdfc;border-radius:12px;gap:9px;padding:15px;display:grid}.report-detail-heading{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.report-detail-heading>div{gap:4px;display:grid}.report-detail-heading b{font-size:14px}.report-detail-heading code{color:var(--muted);overflow-wrap:anywhere;font-size:9px}.report-detail-list time{color:var(--muted);font-size:10px}.report-detail-list article>p{font-size:12px;line-height:1.55}.resolution-note{background:#edf6f1;border-radius:8px;padding:9px}.report-detail-list label{color:var(--muted);gap:5px;font-size:10px;font-weight:700;display:grid}.report-detail-list textarea{border:1px solid var(--line);resize:vertical;border-radius:8px;min-height:68px;padding:8px}.report-detail-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.danger-button{color:#fff;cursor:pointer;background:#a62c2c;border:0;border-radius:9px;min-height:40px;padding:8px 12px;font-size:11px;font-weight:800}.danger-button:disabled,.report-detail-actions button:disabled{opacity:.5;cursor:not-allowed}.report-evidence-image{object-fit:contain;border:1px solid var(--line);background:#eef4f1;border-radius:10px;width:100%;max-height:360px}.delete-confirm-backdrop{z-index:130;background:#101515b8;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.delete-confirm-dialog{background:#fff;border-radius:16px;gap:14px;width:min(430px,100%);padding:22px;display:grid;box-shadow:0 24px 70px #0008}.delete-confirm-dialog h3{font-size:19px}.delete-confirm-dialog>p{color:#782828;font-size:12px;line-height:1.55}.delete-confirm-dialog dl{gap:7px;display:grid}.delete-confirm-dialog dl>div{grid-template-columns:90px 1fr;gap:8px;font-size:11px;display:grid}.delete-confirm-dialog dt{color:var(--muted)}.delete-confirm-dialog dd{overflow-wrap:anywhere;font-weight:700}.delete-confirm-dialog>div{grid-template-columns:1fr 1fr;gap:8px;display:grid}@media (max-width:1080px){.content-grid{display:flex}}@media (max-width:680px){.topbar h1{font-size:21px}.parking-summary{grid-template-columns:repeat(2,1fr)}.admin-report-row{grid-template-columns:1fr;gap:7px}.admin-report-list time{text-align:left}.admin-report-refresh{flex-direction:column;align-items:flex-end}.report-detail-drawer{padding:20px 15px}.report-detail-actions,.delete-confirm-dialog>div{grid-template-columns:1fr}}.admin-shell{background:#f2f5f3;min-height:100vh;padding:28px clamp(16px,3vw,42px) 48px}.admin-topbar{justify-content:space-between;align-items:center;gap:24px;max-width:1540px;margin:0 auto 20px;display:flex}.admin-topbar h1{margin-top:4px;font-size:clamp(22px,3vw,34px)}.admin-topbar>div>p:last-child{color:var(--muted);margin-top:7px;font-size:10px}.admin-top-actions{align-items:center;gap:10px;display:flex}.admin-top-actions .secondary-button{width:auto;min-width:120px}.admin-top-actions a{color:#fff;background:var(--green-dark);border-radius:9px;padding:10px 14px;font-size:9px;font-weight:800;text-decoration:none}.admin-error,.admin-operation-notice{color:#7c2727;background:#fff0f0;border:1px solid #efc6c6;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;max-width:1540px;margin:0 auto 14px;padding:11px 14px;font-size:10px;display:flex}.admin-error button,.admin-events .admin-section-heading>button{color:inherit;cursor:pointer;background:0 0;border:1px solid;border-radius:7px;padding:7px 10px;font-size:8px;font-weight:800}.admin-operation-notice{color:var(--green-dark);background:var(--green-soft);border-color:#9bcdb5}.admin-loading{max-width:1540px;min-height:300px;color:var(--muted);place-items:center;margin:0 auto;font-size:12px;display:grid}.admin-metrics{grid-template-columns:repeat(6,minmax(115px,1fr)) minmax(190px,1.4fr);gap:10px;max-width:1540px;margin:0 auto 16px;display:grid}.admin-metrics article{border:1px solid var(--line);background:#fff;border-radius:14px;flex-direction:column;justify-content:center;min-height:100px;padding:16px;display:flex;box-shadow:0 8px 24px #163d2e0a}.admin-metrics small{color:var(--muted);text-transform:uppercase;letter-spacing:.6px;font-size:8px;font-weight:800}.admin-metrics b{color:var(--green-dark);margin-top:8px;font-size:25px}.admin-metrics span{color:var(--muted);margin-top:3px;font-size:8px}.admin-metrics .last-updated b{font-size:13px;line-height:1.4}.zone-density-card,.admin-main-grid,.admin-events{max-width:1540px;margin:0 auto 16px}.zone-density-card{padding:18px}.admin-section-heading{justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px;display:flex}.admin-section-heading h2{margin-top:3px;font-size:16px}.admin-section-heading>span{color:var(--muted);font-size:8px}.zone-density-grid{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.zone-density-grid article{border:1px solid var(--line);background:#fafcfb;border-radius:10px;padding:13px}.zone-density-grid article>div:first-child{justify-content:space-between;font-size:10px;display:flex}.zone-density-grid strong{color:var(--green-dark)}.zone-density-grid small{color:var(--muted);margin-top:7px;font-size:8px;display:block}.density-track{background:#dde5e1;border-radius:20px;height:7px;margin-top:10px;overflow:hidden}.density-track i{background:linear-gradient(90deg, var(--green), #e6a43c);border-radius:inherit;height:100%;display:block}.admin-main-grid{grid-template-columns:minmax(0,1fr);align-items:start;gap:16px;display:grid}.admin-map-column{gap:12px;min-width:0;display:grid}.admin-filters{grid-template-columns:repeat(3,minmax(130px,1fr)) auto;align-items:end;gap:10px;padding:13px;display:grid}.admin-filters label,.admin-operations label{color:var(--muted);gap:6px;font-size:8px;font-weight:800;display:grid}.admin-filters select,.admin-operations select,.admin-operations input{border:1px solid var(--line);width:100%;min-width:0;color:var(--ink);background:#fff;border-radius:8px;padding:9px 10px;font-size:9px}.admin-filters>span{color:var(--green-dark);background:var(--green-soft);text-align:center;border-radius:8px;padding:10px;font-size:9px;font-weight:800}.admin-map-column .api-parking-map{height:600px}.admin-empty{color:var(--muted);text-align:center;background:#f7faf8;border-radius:9px;padding:18px;font-size:9px}.admin-operations{padding:18px;position:sticky;top:16px}.admin-operations form{border-top:1px solid var(--line);gap:10px;padding:14px 0;display:grid}.admin-operations form h3{font-size:11px}.admin-operations button{width:100%}.admin-operations button:disabled,.admin-filters select:disabled{opacity:.5;cursor:not-allowed}.admin-scenario-actions{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:8px;padding-top:14px;display:grid}.admin-events{padding:18px}.admin-event-list{display:grid}.admin-event-list article{border-top:1px solid var(--line);grid-template-columns:10px minmax(150px,1.1fr) minmax(180px,1fr) 150px;align-items:center;gap:10px;min-height:58px;padding:10px 4px;display:grid}.admin-event-list article>div{gap:4px;display:grid}.admin-event-list b{font-size:10px}.admin-event-list span,.admin-event-list small,.admin-event-list time{color:var(--muted);font-size:8px}.admin-event-list time{text-align:right}.event-status{background:#9aa7a0;border-radius:50%;width:8px;height:8px}.event-status.available{background:var(--green)}.event-status.reserved{background:#f4a62a}.event-status.occupied{background:#7e8b85}@media (max-width:1200px){.admin-metrics{grid-template-columns:repeat(4,1fr)}.admin-main-grid{grid-template-columns:1fr}.admin-operations{position:static}}@media (max-width:760px){.admin-shell{padding:18px 12px 30px}.admin-topbar{flex-direction:column;align-items:flex-start}.admin-top-actions{flex-wrap:wrap;width:100%}.admin-metrics{grid-template-columns:repeat(2,1fr)}.admin-metrics .last-updated{grid-column:1/-1}.zone-density-grid{grid-template-columns:repeat(2,1fr)}.admin-filters{grid-template-columns:1fr}.admin-map-column .api-parking-map{height:560px}.admin-event-list article{grid-template-columns:10px 1fr}.admin-event-list article>div:nth-of-type(2),.admin-event-list time{text-align:left;grid-column:2}}.live-map-indicator{color:var(--green-dark);background:var(--green-soft);text-transform:uppercase;letter-spacing:.7px;border-radius:20px;align-items:center;gap:6px;padding:6px 9px;font-size:8px;font-weight:800;display:inline-flex}.live-map-indicator i{background:var(--green);border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #20b8741f}.parking-summary{grid-template-columns:repeat(4,82px) minmax(130px,1fr)}.stat-dot.reserved{background:#f4a62a}.api-parking-map{background-color:#eef2f0;background-image:linear-gradient(#e3e9e6 1px,#0000 1px),linear-gradient(90deg,#e3e9e6 1px,#0000 1px);background-size:24px 24px;height:640px;padding:0;overflow:auto hidden}.api-parking-map:before{display:none}.map-card{min-width:0;max-width:100%;overflow:hidden}.map-viewport{width:100%;min-width:900px;height:100%;position:relative}.map-network,.map-slot-layer{width:100%;height:100%;position:absolute;inset:0}.map-network{overflow:visible}.map-zone-surfaces rect{fill:#f9fbfa;stroke:#cbd5d0;stroke-width:1px;stroke-dasharray:5 4;vector-effect:non-scaling-stroke}.map-road-surfaces path{fill:none;stroke:#d9dfdc;stroke-width:20px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.map-road-surfaces .zone-ring{stroke:#d5dcd8}.map-road-surfaces .elevator-road{stroke-width:18px}.map-shared-road-markings path{fill:none;stroke:#9eaaa4;stroke-width:1.25px;stroke-dasharray:7 7;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.map-edges path{fill:none;vector-effect:non-scaling-stroke}.map-edges .road-centreline{stroke:#9eaaa4;stroke-width:1.25px;stroke-dasharray:7 7}.map-edges .slot-connector{stroke:#bac5bf;stroke-width:1px;stroke-dasharray:3 3}.map-edges .pedestrian-path{stroke:#8ba99a;stroke-dasharray:2 3}.map-core-nodes circle{fill:#61736a;stroke:#fff;stroke-width:.45px;vector-effect:non-scaling-stroke}.map-core-nodes text{fill:#3e554b;letter-spacing:.055em;paint-order:stroke;stroke:#eef2f0;stroke-width:.22px;stroke-linejoin:round;font-size:1.8px;font-weight:900}.map-core-nodes .map-gate-label{fill:#28533f;letter-spacing:.035em;font-size:1.65px}.map-zone-labels text{fill:#536960;letter-spacing:.13em;paint-order:stroke;stroke:#eef2f0;stroke-width:.24px;stroke-linejoin:round;font-size:2px;font-weight:900}.map-route-glow{stroke:#fff;stroke-width:7px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.map-route-line{stroke:var(--blue);stroke-width:3.5px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:9 5;vector-effect:non-scaling-stroke;animation:1s linear infinite route-dash}.map-route marker path{fill:var(--blue)}@keyframes route-dash{to{stroke-dashoffset:-3.8px}}.current-location-node circle{fill:var(--blue);stroke:#fff;stroke-width:1px;vector-effect:non-scaling-stroke;filter:drop-shadow(0 2px 3px #1f63ea66)}.current-location-node text{fill:#fff;font-size:2.8px;font-weight:900}.map-slot-layer{pointer-events:none}.map-slot{z-index:2;pointer-events:auto;width:54px;height:52px;color:var(--green-dark);cursor:pointer;background:#fff;border:2px solid #8ac5a9;border-radius:8px;grid-template-columns:14px 1fr auto;align-items:center;padding:5px 6px;transition:transform .16s,box-shadow .16s;display:grid;position:absolute;transform:translate(-50%,-50%);box-shadow:0 3px 9px #153b2c20}.map-slot:hover,.map-slot:focus-visible{z-index:8;outline:2px solid var(--blue);outline-offset:2px;transform:translate(-50%,-50%)scale(1.14)}.map-slot b{font-size:9px;line-height:1;position:static}.map-slot-signal{color:#fff;background:var(--green);border-radius:4px;place-items:center;width:14px;height:26px;font-size:9px;font-weight:900;display:grid}.map-slot-features{min-width:8px;color:var(--blue);font-size:9px;line-height:1}.map-slot.status-reserved{color:#7a4a00;background:#fff7e8;border-color:#e6a43c}.map-slot.status-reserved .map-slot-signal{background:#f4a62a}.map-slot.status-occupied{color:#66736d;background:#e6ebe8;border-color:#b9c2bd}.map-slot.status-occupied .map-slot-signal{background:#7e8b85}.map-slot.is-ev{border-bottom:3px solid var(--blue)}.map-slot.is-accessible{box-shadow:inset 0 0 0 1px #9866cf,0 2px 7px #153b2c17}.map-slot.is-recommended{z-index:4;box-shadow:0 0 0 3px #f2bf3eaa,0 4px 10px #7d5c0c2e}.map-slot.is-selected{z-index:5;outline:3px solid var(--green);outline-offset:2px;outline-color:#1d78d0;box-shadow:0 0 0 5px #1d78d038,0 5px 16px #1d78d055}.map-slot.is-reservation{z-index:6;box-shadow:0 0 0 3px #f4a62a,0 5px 12px #965e0938}.map-slot.is-parked{z-index:7;box-shadow:0 0 0 3px var(--green-dark), 0 5px 12px #153b2c42}.map-slot.is-current-location:after{content:"⌖";color:#fff;background:var(--blue);border:2px solid #fff;border-radius:50%;place-items:center;width:16px;height:16px;font-size:8px;display:grid;position:absolute;top:-10px;right:-8px;box-shadow:0 2px 5px #1f63ea55}.map-slot.has-open-reports{z-index:9;border-color:#c93434;box-shadow:0 0 0 2px #fff,0 0 0 4px #c93434,0 4px 12px #7c27272e}.map-slot-report-warning{color:#fff;background:#b92525;border:2px solid #fff;border-radius:11px;justify-content:center;align-items:center;gap:2px;min-width:22px;height:22px;padding:0 4px;font-size:8px;font-weight:900;display:flex;position:absolute;top:-12px;right:-11px;box-shadow:0 2px 6px #7c272755}.map-slot-report-warning>span{font-size:10px}.map-slot.has-pending-observations{z-index:8;box-shadow:0 0 0 2px #fff,0 0 0 4px #dd8a19,0 4px 12px #8c5b1838}.map-slot-observation-warning{color:#3b2600;background:#ffc75d;border:2px solid #fff;border-radius:11px;justify-content:center;align-items:center;gap:2px;min-width:22px;height:22px;padding:0 4px;font-size:8px;font-weight:900;display:flex;position:absolute;top:-12px;left:-11px;box-shadow:0 2px 6px #8c5b1855}.map-slot-badge{color:#604500;text-transform:uppercase;background:#ffe391;border-radius:3px;width:max-content;padding:2px 5px;font-size:6px;font-weight:900;position:absolute;bottom:-13px;left:50%;transform:translate(-50%)}.map-slot-badge.reservation{color:#fff;background:#d98400;bottom:-19px}.map-slot-badge.parked{color:#fff;background:var(--green-dark);bottom:-27px}@media (prefers-reduced-motion:reduce){.map-slot{transition:none}.map-slot:hover,.map-slot:focus-visible{transform:translate(-50%,-50%)}}.map-legend{border-top:1px solid var(--line);min-height:48px;color:var(--muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 16px;padding:10px 18px;font-size:8px;display:flex}.map-legend span{align-items:center;gap:5px;display:inline-flex}.map-legend i{color:#fff;border-radius:4px;place-items:center;min-width:17px;height:17px;font-size:8px;font-style:normal;font-weight:900;display:inline-grid}.map-legend i.available{background:var(--green)}.map-legend i.reserved{background:#f4a62a}.map-legend i.occupied{background:#7e8b85}.map-legend i.ev,.map-legend i.route,.map-legend i.location{background:var(--blue)}.map-legend i.accessible{background:#9866cf}.map-legend i.recommended{color:#634b00;background:#ffe391}.loading-card{min-height:420px;color:var(--muted);place-items:center;font-size:12px;display:grid}.page-alert{color:#7c2727;background:#fff0f0;border:1px solid #efc6c6;border-radius:10px;max-width:1440px;margin:0 auto 12px;padding:10px 14px;font-size:10px}.structured-result,.route-contract-copy{min-height:57px;color:var(--muted);overflow-wrap:anywhere;background:#f7faf8;border-radius:10px;margin:13px 20px 17px;padding:12px;font-size:8px;line-height:1.55}.structured-result b{color:var(--green-dark);margin-bottom:4px;font-size:9px;display:block}.location-choice-grid{grid-template-columns:repeat(3,1fr);gap:7px;max-height:320px;margin-top:18px;display:grid;overflow:auto}.location-choice-grid button{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#f8faf9;border-radius:7px;padding:8px;font-size:8px}.location-choice-grid button:hover,.location-choice-grid button:focus-visible{border-color:var(--green);background:var(--green-soft)}.location-choice-grid button[aria-pressed=true]{color:var(--green-dark);border-color:var(--green);background:var(--green-soft);box-shadow:0 0 0 2px #168a5b1c}.location-picker{width:min(620px,100vw - 28px);max-height:min(760px,100vh - 28px);overflow:auto}.location-picker-section{margin-top:18px}.location-picker-section h3,.slot-location-form>label{color:var(--ink);margin-bottom:8px;font-size:9px;font-weight:800;display:block}.location-picker .location-choice-grid{margin-top:0}.slot-location-form{margin-top:20px}.slot-location-controls{grid-template-columns:1fr auto;gap:8px;display:grid}.slot-location-controls input{border:1px solid var(--line);min-width:0;color:var(--ink);text-transform:uppercase;background:#fff;border-radius:8px;padding:10px 11px;font-size:10px}.slot-location-controls input:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-color:var(--blue)}.slot-location-controls button{color:#fff;background:var(--green);cursor:pointer;border:0;border-radius:8px;padding:9px 12px;font-size:9px;font-weight:800}.slot-location-controls button:disabled,.location-picker button:disabled{opacity:.5;cursor:not-allowed}.slot-location-options{border:1px solid var(--line);background:#f8faf9;border-radius:9px;grid-template-columns:repeat(5,1fr);gap:5px;max-height:190px;margin-top:7px;padding:6px;display:grid;overflow:auto}.slot-location-options button{color:var(--ink);cursor:pointer;background:#fff;border:1px solid #0000;border-radius:6px;padding:7px 5px;font-size:8px}.slot-location-options button:hover,.slot-location-options button.active,.slot-location-options button[aria-selected=true]{color:var(--green-dark);border-color:var(--green);background:var(--green-soft)}.slot-location-options>p{color:var(--muted);text-align:center;grid-column:1/-1;padding:12px;font-size:9px}.location-validation,.location-api-error{color:#8b2d2d;margin-top:8px;font-size:9px}.location-pending{color:var(--green-dark);margin-top:12px;font-size:9px;font-weight:800}.location-confirmation-outcome{min-height:48px;color:var(--green-dark);background:var(--green-soft);border:1px solid #9bcdb5;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:10px 13px;font-size:9px;line-height:1.5;display:flex}.location-confirmation-outcome>div{gap:2px;display:grid}.location-confirmation-outcome>div span{color:var(--muted)}.location-confirmation-outcome.matching button{color:#fff;background:var(--green);cursor:pointer;border:0;border-radius:7px;flex:none;padding:8px 10px;font-size:9px;font-weight:800}.location-confirmation-outcome.matching button:disabled{opacity:.48;cursor:not-allowed}.location-confirmation-outcome.mismatch{color:#7c2727;background:#fff0f0;border-color:#efc6c6}.reservation-banner{color:#4f3500;background:#fff5dc;border:1px solid #efd18a;border-radius:14px;align-items:center;gap:11px;min-height:58px;padding:9px 12px;display:flex;box-shadow:0 8px 22px #805b1020}.reservation-banner .session-icon{color:#fff;background:#d99008}.reservation-banner div{flex:1}.reservation-banner small,.reservation-banner b{display:block}.reservation-banner small{color:#8d6b25;letter-spacing:.8px;font-size:7px}.reservation-banner b{margin-top:4px;font-size:11px}.reservation-banner button{color:#fff;cursor:pointer;background:#b77400;border:0;border-radius:7px;padding:8px 10px;font-size:9px;font-weight:800}.three-options{grid-template-columns:repeat(3,1fr)}.candidate-list{gap:6px;min-height:64px;margin:13px 20px;display:grid}.candidate-list>p{color:var(--muted);background:#f7faf8;border-radius:9px;padding:12px;font-size:8px;line-height:1.5}.candidate-list button{border:1px solid var(--line);color:var(--ink);text-align:left;cursor:pointer;background:#fafcfb;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:9px 10px;display:flex}.candidate-list button.selected{border-color:var(--green);background:var(--green-soft);box-shadow:0 0 0 2px #168a5b1c}.candidate-list b{font-size:9px}.candidate-list span{color:var(--muted);font-size:7px}.selected-slot-detail{background:var(--green-soft);border:1px solid #9bcdb5;border-radius:10px;grid-template-columns:1fr 1fr;gap:8px 12px;margin:0 20px 13px;padding:12px;display:grid}.selected-slot-detail>div{gap:3px;display:grid}.selected-slot-detail small{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;font-size:7px}.selected-slot-detail b{font-size:14px}.selected-slot-detail strong{color:var(--green-dark);font-size:10px}.selected-slot-detail>span{color:var(--muted);grid-column:1/-1;font-size:8px}.selected-slot-detail.status-reserved{background:#fff7e8;border-color:#e6a43c}.selected-slot-detail.status-reserved strong{color:#9a6100}.selected-slot-detail.status-occupied{background:#eef1ef;border-color:#b9c2bd}.selected-slot-detail.status-occupied strong{color:#66736d}.workflow-actions{grid-template-columns:1fr 1fr;gap:8px;padding:0 20px 17px;display:grid}.workflow-stack{gap:8px;padding:0 20px 17px;display:grid}.workflow-actions button:disabled,.workflow-stack button:disabled,.reservation-banner button:disabled,.session-banner button:disabled{opacity:.48;cursor:not-allowed}.chat-loading{color:var(--muted);align-items:center;gap:4px;margin:4px 0 12px;font-size:8px;display:flex}.chat-loading i{background:var(--green);border-radius:50%;width:5px;height:5px;animation:.8s ease-in-out infinite alternate chat-pulse}.chat-loading i:nth-child(2){animation-delay:.15s}.chat-loading i:nth-child(3){animation-delay:.3s}.chat-loading span{margin-left:4px}@keyframes chat-pulse{to{opacity:.3;transform:translateY(-2px)}}.tool-summary{overflow-wrap:anywhere;color:#617169;border-top:1px solid var(--line);background:#f5f8f6;padding:7px 13px;font-size:7px}.agent-retry{color:#6c4800;cursor:pointer;background:#fff7e5;border:1px solid #e2a72f;border-radius:8px;margin:8px 13px 0;padding:8px 10px;font-size:9px;font-weight:800}.agent-retry:disabled{opacity:.5;cursor:not-allowed}@media (max-width:680px){.parking-summary{grid-template-columns:repeat(2,1fr)}.parking-summary .occupancy{display:none}.api-parking-map{height:560px;padding:0}.map-legend{justify-content:flex-start}.location-choice-grid{grid-template-columns:repeat(2,1fr)}.slot-location-controls{grid-template-columns:1fr}.slot-location-options{grid-template-columns:repeat(3,1fr)}.three-options{grid-template-columns:1fr}.reservation-banner{flex-wrap:wrap}}body .selected-slot-detail small{font-size:10px}body .selected-slot-detail strong{font-size:12px}body .selected-slot-detail>span{font-size:11px}body .route-contract-copy,body .structured-result{font-size:11px;line-height:1.6}body .chat-loading{font-size:11px}body .agent-note{font-size:11px;line-height:1.5}body .page-alert{font-size:12px;line-height:1.5}body .map-legend,body .live-map-indicator,body .map-slot b{font-size:10px}body .map-slot-badge{font-size:8px}body .location-picker-section h3,body .slot-location-form>label{font-size:12px}body .location-choice-grid button,body .slot-location-options button{font-size:10px}body .slot-location-controls input,body .slot-location-controls button{font-size:12px}body .location-validation,body .location-api-error,body .location-pending,body .location-confirmation-outcome{font-size:11px}body .parking-summary{grid-template-columns:repeat(4,minmax(105px,auto)) minmax(150px,1fr)}body .admin-topbar>div>p:last-child{font-size:12px}body .admin-top-actions a{font-size:11px}body .admin-error,body .admin-operation-notice{font-size:12px}body .admin-metrics small{font-size:11px}body .admin-metrics span{font-size:10px}body .admin-section-heading h2{font-size:19px}body .admin-section-heading>span{font-size:11px}body .zone-density-grid article>div:first-child{font-size:13px}body .zone-density-grid small,body .admin-filters label,body .admin-operations label{font-size:11px}body .admin-filters select,body .admin-operations select,body .admin-operations input{font-size:12px}body .admin-filters>span{font-size:11px}body .admin-empty,body .admin-event-list b{font-size:12px}body .admin-event-list span,body .admin-event-list small,body .admin-event-list time{font-size:10px}@media (max-width:680px){body .parking-summary{grid-template-columns:repeat(2,1fr)}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.chat-app-shell{min-height:100dvh;color:var(--ink);background:linear-gradient(180deg, #edf7f1 0, var(--canvas) 180px);flex-direction:column;display:flex}.chat-app-header{z-index:20;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffffff2;border-bottom:1px solid #dce7e1;justify-content:space-between;align-items:center;gap:12px;min-height:68px;padding:10px 14px;display:flex;position:sticky;top:0}.chat-brand{align-items:center;gap:9px;display:flex}.chat-brand strong{letter-spacing:-.4px;font-size:17px}.chat-brand strong span{color:var(--green);margin-left:2px;font-size:10px}.chat-location-button{min-width:0;max-width:65%;color:var(--ink);text-align:left;cursor:pointer;background:#fff;border:1px solid #d5e2db;border-radius:12px;align-items:center;gap:8px;padding:7px 9px;display:flex}.chat-location-button>span:last-child{min-width:0;display:grid}.chat-location-button small{color:var(--muted);font-size:9px}.chat-location-button b{text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.chat-workspace{flex-direction:column;flex:1;width:100%;min-height:calc(100dvh - 68px);display:flex}.chat-conversation{flex-direction:column;flex:1;gap:12px;width:100%;max-width:760px;margin:0 auto;padding:18px 14px 132px;display:flex}.conversation-intro{border-bottom:1px solid #dce7e1;align-items:center;gap:11px;padding:4px 2px 12px;display:flex}.conversation-intro h1{font-size:18px}.conversation-intro p{color:var(--muted);margin-top:2px;font-size:11px}.conversation-system-status,.conversation-alert,.conversation-notice{border-radius:12px;padding:11px 13px;font-size:12px;line-height:1.55}.conversation-system-status,.conversation-notice{color:#315f4b;background:#e8f5ee;border:1px solid #c7e4d5}.conversation-alert{color:#7c2727;background:#fff0f0;border:1px solid #efc6c6}.conversation-priority-dock{z-index:12;overscroll-behavior:contain;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#f8fcf9f2;border:1px solid #cfddd6;border-radius:18px;gap:8px;max-height:min(54dvh,470px);margin:-4px -5px 4px;padding:8px;display:grid;position:sticky;top:76px;overflow-y:auto;box-shadow:0 10px 28px #153b2c24}.chat-message{gap:7px;max-width:92%;display:grid}.chat-message.message-user{margin-left:auto}.message-card{background:#fff;border:1px solid #dce7e1;border-radius:5px 16px 16px;padding:12px 14px;box-shadow:0 5px 18px #173c2809}.message-user .message-card{color:#fff;border-color:var(--green);background:var(--green);border-radius:16px 5px 16px 16px}.message-card p{font-size:14px;line-height:1.6}.message-card small{color:var(--muted);margin-top:5px;font-size:10px;display:block}.message-user .message-card small{color:#d9f4e7;text-align:right}.agent-message-content>:first-child{margin-top:0}.agent-message-content>:last-child{margin-bottom:0}.agent-message-content p{margin:.35rem 0;font-size:14px;line-height:1.6}.agent-message-content ul,.agent-message-content ol{margin:.45rem 0;padding-left:1.25rem}.agent-message-content li+li{margin-top:.2rem}.agent-message-content table{border-collapse:collapse;width:100%;max-width:100%;font-size:.88em;display:block;overflow-x:auto}.agent-message-content th,.agent-message-content td{text-align:left;white-space:nowrap;border:1px solid #cddbd4;padding:.35rem .5rem}.agent-message-content th{font-weight:700}.conversation-actions{gap:7px;display:grid}.conversation-action{color:#244638;text-align:left;cursor:pointer;background:#fff;border:1px solid #cddbd4;border-radius:12px;justify-content:space-between;align-items:center;gap:10px;min-height:46px;padding:9px 12px;font-size:13px;font-weight:750;display:flex}.conversation-action small{color:#64756d;font-size:9px;font-weight:600}.conversation-action.action-primary{color:#fff;border-color:var(--green);background:var(--green)}.conversation-action.action-primary small{color:#dff5e9}.conversation-action.action-danger{color:#842f2f;background:#fff5f5;border-color:#e6b8b8}.conversation-action:disabled{color:#68746e;cursor:not-allowed;opacity:.82;background:#eef1ef;border-style:dashed}.conversation-action:focus-visible,.chat-location-button:focus-visible,.conversation-state-card button:focus-visible,.location-picker button:focus-visible,.wrong-parking-report-dialog button:focus-visible{outline-offset:2px;outline:3px solid #1d78d0}.conversation-state-card{background:#fff8e8;border:1px solid #e6cf98;border-radius:16px;grid-template-columns:auto minmax(0,1fr);gap:10px 12px;padding:14px;display:grid;box-shadow:0 7px 20px #6b4d1012}.conversation-state-card.session-state-card{color:#fff;background:#153b2c;border-color:#153b2c}.state-card-icon{color:#704900;background:#ffe4a3;border-radius:10px;place-items:center;width:36px;height:36px;font-weight:900;display:grid}.session-state-card .state-card-icon{color:#153b2c;background:#76e3ac}.conversation-state-card small{color:#8d6b25;letter-spacing:.7px;font-size:9px}.session-state-card small{color:#a7d7c0}.conversation-state-card h2{margin-top:2px;font-size:15px}.conversation-state-card p{color:#735f31;margin-top:3px;font-size:11px}.session-state-card p{color:#b8d8c9}.conversation-state-card>button,.state-card-actions{grid-column:1/-1}.conversation-state-card button{color:#fff;cursor:pointer;background:#a56a00;border:0;border-radius:10px;min-height:40px;padding:8px 12px;font-size:12px;font-weight:750}.session-state-card button{color:#153b2c;background:#fff}.state-card-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.session-state-card button.danger-text-button{color:#fff;background:0 0;border:1px solid #7ba591}.conversation-state-card button:disabled{opacity:.55;cursor:not-allowed}.adjacent-slot-observation{background:#fff;border:1px solid #c9ddd2;border-radius:14px;padding:11px}.adjacent-slot-observation>header{justify-content:space-between;gap:8px;display:flex}.adjacent-slot-observation>header div{gap:2px;display:grid}.adjacent-slot-observation>header b{color:#244638;font-size:12px}.adjacent-slot-observation>header small{color:var(--muted);font-size:9px}.adjacent-observation-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:9px;display:grid}.adjacent-observation-grid article{background:#f8fbf9;border:1px solid #dce7e1;border-radius:10px;gap:7px;min-width:0;padding:8px;display:grid}.adjacent-observation-grid article>div:first-child{gap:1px;display:grid}.adjacent-observation-grid strong{text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.adjacent-observation-grid small,.adjacent-observation-grid p{color:var(--muted);font-size:9px;line-height:1.4}.adjacent-observation-grid article>div:last-of-type{grid-template-columns:1fr 1fr;gap:5px;display:grid}.adjacent-observation-grid button{color:#285643;cursor:pointer;background:#fff;border:1px solid #bcd5c8;border-radius:8px;min-height:34px;padding:5px 6px;font-size:10px;font-weight:750}.adjacent-observation-grid button:last-child{color:#7b3636;border-color:#e0baba}.adjacent-observation-grid button:disabled{opacity:.5;cursor:not-allowed}.contribution-card{background:linear-gradient(135deg,#fff 0%,#f2fbf7 100%);padding:16px;overflow:hidden}.contribution-invitation{grid-template-columns:auto 1fr;gap:12px;display:grid}.contribution-icon,.reward-summary-icon{color:#fff;background:linear-gradient(135deg, var(--green), #36a66f);border-radius:12px;place-items:center;width:38px;height:38px;display:grid}.contribution-card h2,.reward-summary-card h2{color:#204536;font-size:15px}.contribution-card p{color:#52685e;margin-top:5px;font-size:12px;line-height:1.55}.contribution-meta{color:#566b61;flex-wrap:wrap;gap:6px;margin-top:10px;font-size:10px;display:flex}.reward-pill{color:#684500;background:#fff2ca;border:1px solid #e4b552;border-radius:999px;width:fit-content;padding:4px 8px;font-size:10px;font-weight:800}.contribution-actions,.contribution-answer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px;display:grid}.contribution-actions button,.contribution-answer-grid button{border:1px solid var(--green);color:#fff;background:var(--green);cursor:pointer;border-radius:11px;min-height:44px;padding:9px 12px;font-weight:750}.contribution-actions .secondary-button,.contribution-answer-grid .secondary-button{color:#315746;background:#fff}.contribution-answer-grid{grid-template-columns:repeat(2,1fr)}.contribution-answer-grid .secondary-button{grid-column:1/-1}.contribution-question header{justify-content:space-between;gap:12px;display:flex}.contribution-question header small{color:var(--muted);font-size:10px}.contribution-progress{color:#684500;background:#fff2ca;border-radius:999px;flex:none;place-items:center;width:42px;height:28px;font-weight:900;display:grid}.contribution-result{background:#f2fbf7;border:1px solid #b8dbc9;border-radius:12px;margin-top:12px;padding:12px}.contribution-result button{min-height:44px;margin-top:10px}.reward-summary-card{background:linear-gradient(135deg,#f0faf5,#fffaf0);border:1px solid #c7dfd3;border-radius:16px;padding:16px;box-shadow:0 7px 20px #153b2c12}.reward-summary-card header{align-items:center;gap:10px;display:flex}.reward-summary-card small{color:var(--green-dark);letter-spacing:.7px;font-size:9px}.reward-summary-grid{grid-template-columns:repeat(3,1fr);gap:7px;margin-top:13px;display:grid}.reward-summary-grid div{background:#fff9;border:1px solid #dce9e2;border-radius:10px;gap:2px;padding:9px;display:grid}.reward-summary-grid strong{color:var(--green-dark);font-size:19px}.reward-summary-grid span,.reward-daily-progress{color:#62736b;font-size:9px}.reward-daily-progress{margin-top:9px}.reward-condition{color:#674b0e;background:#fff7df;border:1px solid #e8c878;border-radius:9px;padding:9px 10px}.observation-detail-panel{margin-top:12px;padding:18px}.observation-detail-panel header{justify-content:space-between;display:flex}.observation-detail-panel dl{grid-template-columns:repeat(2,1fr);gap:8px;margin:12px 0;display:grid}.observation-detail-panel dl div{border:1px solid var(--line);border-radius:8px;padding:8px}.observation-detail-panel dt{color:var(--muted);font-size:9px}.observation-detail-panel dd{margin-top:3px;font-size:11px;font-weight:700}.observation-detail-panel textarea{min-height:72px}.observation-row{border-left:3px solid #dd8a19}.contribution-card button:focus-visible,.observation-detail-panel button:focus-visible{outline-offset:2px;outline:3px solid #1d78d0}.admin-slot-detail{background:linear-gradient(145deg,#fff 0%,#f3faf6 100%);border:1px solid #b8d9c9;margin-top:12px;padding:18px}.admin-slot-detail header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.admin-detail-close{flex:none;min-height:40px}.admin-slot-detail dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0;display:grid}.admin-slot-detail dl div{border:1px solid var(--line);background:#fff;border-radius:9px;padding:9px}.admin-slot-detail dt{color:var(--muted);font-size:9px}.admin-slot-detail dd{overflow-wrap:anywhere;margin-top:3px;font-size:11px;font-weight:800}.admin-slot-issue-actions{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.admin-slot-status-control{grid-template-columns:minmax(180px,1fr) auto;align-items:end;gap:10px;display:grid}.admin-slot-status-control label{color:var(--muted);gap:5px;font-size:9px;font-weight:700;display:grid}.admin-slot-status-control select,.admin-slot-status-control button,.admin-slot-issue-actions button{min-height:44px}.admin-slot-guard{color:#714300;background:#fff7e7;border:1px solid #edc980;border-radius:8px;margin-top:10px;padding:9px 11px;font-size:9px;line-height:1.5}.admin-slot-detail button:focus-visible,.admin-slot-detail select:focus-visible{outline-offset:2px;outline:3px solid #1d78d0}@media (prefers-reduced-motion:reduce){.contribution-card *,.reward-summary-card *{scroll-behavior:auto;transition:none!important;animation:none!important}}.conversation-route-card{background:#f4faff;border:1px solid #b8d4e9;border-radius:16px;padding:15px}.conversation-route-card header{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.conversation-route-card header small{color:#477da4;letter-spacing:.7px;font-size:9px}.conversation-route-card h2{margin-top:3px;font-size:16px}.conversation-route-card header strong{color:#156fae;white-space:nowrap;font-size:19px}.conversation-route-card ol{gap:9px;margin:14px 0 10px;list-style:none;display:grid}.conversation-route-card li{align-items:center;gap:10px;display:flex}.conversation-route-card li .route-instruction-icon{color:#fff;background:#156fae;border:1px solid #156fae;border-radius:9px;flex:0 0 30px;place-items:center;width:30px;height:30px;font-size:18px;font-weight:900;display:grid}.conversation-route-card li .route-start,.conversation-route-card li .route-arrive{color:#fff;border-color:var(--green);background:var(--green);font-size:12px}.conversation-route-card li div{gap:2px;min-width:0;display:grid}.conversation-route-card li b{font-size:12px}.conversation-route-card li p{color:#49697c;font-size:11px;line-height:1.45}.conversation-route-card>p{color:#587486;font-size:10px;line-height:1.55}.chat-composer-dock{z-index:15;padding:10px 10px max(10px, env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffffff5;border-top:1px solid #dce7e1;position:fixed;bottom:0;left:0;right:0}.chat-composer-dock .chat-input{border-radius:15px;width:min(736px,100% - 8px);margin:0 auto;padding:7px}.chat-composer-dock .chat-input input{font-size:14px}.chat-composer-dock .chat-input button{width:38px;height:38px}.chat-composer-dock .agent-note{text-align:center;background:0 0;border:0;width:min(736px,100% - 8px);margin:5px auto 0;padding:0}.location-picker{max-height:calc(100dvh - 28px);overflow-y:auto}.location-tap-list{gap:8px;margin-top:18px;display:grid}.location-tap-list button,.slot-nearby-toggle{border:1px solid var(--line);width:100%;min-height:46px;color:var(--ink);text-align:left;cursor:pointer;background:#fff;border-radius:11px;align-items:center;gap:10px;padding:10px 12px;display:flex}.location-tap-list button[aria-pressed=true]{border-color:var(--green);background:var(--green-soft)}.slot-nearby-toggle{background:var(--green-soft);border-color:#9bcdb5;margin-top:8px}.location-tap-list button:disabled,.slot-nearby-toggle:disabled,.slot-tap-picker button:disabled{opacity:.5;cursor:not-allowed}.slot-tap-picker{background:#f4f8f6;border-radius:12px;gap:9px;margin-top:12px;padding:13px;display:grid}.slot-tap-picker p{color:var(--muted);letter-spacing:.3px;font-size:10px;font-weight:800}.floor-tap-grid,.zone-tap-grid{gap:7px;display:grid}.floor-tap-grid{grid-template-columns:repeat(3,1fr)}.zone-tap-grid{grid-template-columns:repeat(4,1fr)}.floor-tap-grid button,.zone-tap-grid button,.slot-number-grid button{cursor:pointer;background:#fff;border:1px solid #cddbd4;border-radius:9px;min-height:44px;font-weight:800}.floor-tap-grid button[aria-pressed=true],.zone-tap-grid button[aria-pressed=true],.slot-number-grid button[aria-pressed=true]{color:#fff;border-color:var(--green);background:var(--green)}.slot-number-grid{grid-template-columns:repeat(5,1fr);gap:7px;display:grid}.report-reasons{border:0;gap:8px;padding:0;display:grid}.report-reasons legend{margin-bottom:7px;font-size:12px;font-weight:800}.report-reasons button{color:#244638;text-align:left;cursor:pointer;background:#f8fbf9;border:1px solid #cbdad2;border-radius:10px;min-height:44px;padding:9px 12px;font-size:12px;font-weight:750}.report-reasons button:after{content:"Chọn";float:right;color:#587568;font-size:11px}.report-reasons button.is-selected{background:#e9f7f0;border-color:#23845d;box-shadow:0 0 0 2px #23845d24}.report-reasons button.is-selected:after{content:"✓ Đã chọn";color:#176b49;font-weight:800}.report-reasons:disabled button{opacity:.5;cursor:not-allowed}.report-extra-fields{background:#f5f8f6;border:1px solid #dbe8e1;border-radius:12px;gap:12px;padding:14px;display:grid}.report-extra-fields h3{color:var(--ink);margin:0;font-size:13px}.report-extra-fields>p{color:var(--muted);margin:-4px 0 2px;font-size:11px;line-height:1.5}.report-submit-status{min-height:18px;color:var(--muted);font-size:11px}.report-extra-fields>.report-privacy-notice{color:#52685e;background:#eaf4ef;border-radius:9px;margin:0;padding:10px;font-size:10px;line-height:1.55}.report-privacy-notice a{color:#176b49;font-weight:800}.report-privacy-notice a:focus-visible{outline-offset:2px;border-radius:3px;outline:3px solid #1d78d0}.floor-tabs{gap:6px;padding:0 16px 12px;display:flex}.floor-tab{min-height:42px;color:var(--ink);cursor:pointer;background:#fff;border:1.5px solid #cddbd4;border-radius:11px;flex:1;justify-content:center;align-items:center;gap:8px;padding:8px 12px;font-size:13px;transition:all .18s;display:flex}.floor-tab:hover{background:#f4f8f6;border-color:#9bcdb5}.floor-tab--active{border-color:var(--green);background:var(--green);color:#fff;box-shadow:0 2px 8px #228b4e2e}.floor-tab--active:hover{background:var(--green)}.floor-tab strong{font-size:13px;font-weight:800}.floor-tab-badge{min-width:38px;color:var(--muted);background:#e8f0ec;border-radius:20px;justify-content:center;align-items:center;padding:2px 7px;font-size:11px;font-weight:700;display:inline-flex}.floor-tab--active .floor-tab-badge{color:#fff;background:#ffffff40}.ramp-node{fill:#b07d10}.ramp-path{stroke-dasharray:3 2;stroke:#b07d10!important}.map-interfloor-indicator rect{fill:#fff;stroke-width:.8px;vector-effect:non-scaling-stroke;filter:drop-shadow(0 2px 3px #243b331f)}.map-ramp-indicator rect{fill:#fff8e8;stroke:#d29a2d}.map-elevator-indicator rect{fill:#edf8f2;stroke:#5ba17f}.interfloor-label{fill:#365147;letter-spacing:.035em;paint-order:stroke;stroke:#fff;stroke-width:.18px;stroke-linejoin:round;font-size:1.45px;font-weight:900}.map-ramp-indicator .interfloor-label{fill:#805600}body .admin-operations label{font-size:12px}body .admin-operations select,body .admin-operations input{font-size:13px}body .admin-operations form h3{font-size:15px}body .admin-operations button{min-height:40px;font-size:12px}@media (min-width:720px){.chat-app-header{padding-inline:max(24px,50vw - 480px)}.chat-conversation{padding:26px 20px 142px}.chat-message{max-width:78%}.conversation-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.conversation-action:only-child{grid-column:1/-1}.conversation-state-card{grid-template-columns:auto minmax(0,1fr) auto;align-items:center}.conversation-state-card>button,.state-card-actions{grid-column:auto}.state-card-actions{min-width:250px}.conversation-priority-dock{top:80px}}@media (max-width:480px){.conversation-priority-dock{overscroll-behavior:auto;max-height:none;position:static;top:auto;overflow-y:visible}.adjacent-observation-grid{grid-template-columns:1fr}}.map-view-toggle{gap:6px;padding:0 16px 12px;display:flex}.map-view-toggle button{min-height:38px;color:var(--ink);cursor:pointer;background:#fff;border:1.5px solid #cddbd4;border-radius:11px;flex:1;justify-content:center;align-items:center;padding:6px 12px;font-size:12px;font-weight:700;transition:all .18s;display:flex}.map-view-toggle button:hover{background:#f4f8f6;border-color:#9bcdb5}.map-view-toggle button[aria-pressed=true]{border-color:var(--green);background:var(--green);color:#fff;box-shadow:0 2px 8px #228b4e2e}.map-viewport--iso{width:100%;min-width:900px;height:100%;position:relative}.map-network--iso{width:100%;height:100%;display:block}.iso-depth-item{pointer-events:none;position:absolute;inset:0}:is(.iso-depth-item:has(.map-slot-wrapper--iso:hover),.iso-depth-item:has(.map-slot-wrapper--iso:focus-within)){z-index:1000!important}.iso-depth-svg{pointer-events:none;width:100%;height:100%;display:block;position:absolute;inset:0;overflow:visible}.iso-slab-top{fill:#eef2ef;stroke:#d3ded7;stroke-width:.5px}.iso-slab-left{fill:#b8c7bf}.iso-slab-right{fill:#cad7cf}.iso-zone{fill:#e5ece8;stroke:#cfdbd4;stroke-width:.4px}.iso-road-surface{fill:#d5ded9}.iso-road-marking{stroke:#fff;stroke-width:.6px;stroke-dasharray:2 1.5;fill:none}.iso-bay{stroke-width:.35px;transition:fill .2s}.iso-bay.status-available{fill:#dff2e8;stroke:#a3d8be}.iso-bay.status-reserved{fill:#fdf0d5;stroke:#f2cf85}.iso-bay.status-occupied{fill:#dde4e0;stroke:#b8c4be}.iso-car-shadow{fill:#25372f;opacity:.18;filter:blur(.3px)}.iso-car-box-top{fill:#8299a8;stroke:#415867;stroke-width:.28px}.iso-car-box-left{fill:#526b79;stroke:#374c58;stroke-width:.24px}.iso-car-box-right{fill:#6e8795;stroke:#415b68;stroke-width:.24px}.iso-prop-top{fill:#52a37f;stroke:#3e8565;stroke-width:.3px}.iso-prop-left{fill:#366d54}.iso-prop-right{fill:#438466}.iso-prop--elevator .iso-prop-top{fill:#334155;stroke:#1e293b;stroke-width:.35px}.iso-prop--elevator .iso-prop-left{fill:#475569;opacity:.85;stroke:#334155;stroke-width:.2px}.iso-prop--elevator .iso-prop-right{fill:#64748b;opacity:.85;stroke:#475569;stroke-width:.2px}.iso-elevator-door-line{stroke:#fff;stroke-width:.35px;stroke-dasharray:1.2 .8}.iso-prop--checkpoint .iso-prop-top{fill:#3373f1}.iso-prop--checkpoint .iso-prop-left{fill:#2050b3}.iso-prop--checkpoint .iso-prop-right{fill:#2a61cc}.iso-prop--ramp .iso-ramp-deck{fill:#d5ded9;stroke:#aebbb4;stroke-width:.3px}.iso-prop--ramp .iso-prop-left{fill:#aebbb4;stroke:#8fa098;stroke-width:.22px}.iso-prop--ramp .iso-prop-right{fill:#c2cec8;stroke:#9eada6;stroke-width:.22px}.iso-prop--ramp.is-down .iso-ramp-deck{fill:#ccd7d1}.iso-prop--ramp.is-down .iso-prop-left{fill:#9baaa2}.iso-prop--ramp.is-down .iso-prop-right{fill:#b7c4bd}.iso-ramp-opening{fill:#405049;stroke:#82938b;stroke-width:.35px}.iso-ramp-edge-line{stroke:#f8fafc;stroke-width:.36px;stroke-linecap:round;opacity:.92}.iso-ramp-center-line{stroke:#fff;stroke-width:.38px;stroke-dasharray:1.8 1.25;stroke-linecap:round}.iso-label{fill:#41564d;letter-spacing:.05em;paint-order:stroke;stroke:#fff;stroke-width:.6px;stroke-linejoin:round;pointer-events:none;font-size:3.2px;font-weight:800}.iso-label--prop{font-size:2.8px}.map-slot-layer--iso{pointer-events:none;position:absolute;inset:0}.map-slot-wrapper--iso{pointer-events:none;width:5.8%;height:4.785%;position:absolute;transform:translate(-50%,-50%)}.map-slot-wrapper--iso:hover,.map-slot-wrapper--iso:focus-within{z-index:1000!important}.map-slot--iso{clip-path:polygon(67.18% 0%,100% 32.84%,32.82% 100%,0% 67.16%);pointer-events:auto;cursor:pointer;border-radius:3px;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;padding:0;font-size:8px;transition:none;display:flex;position:absolute;inset:0;transform:none}.map-slot--iso:hover,.map-slot--iso:focus,.map-slot--iso:focus-visible{transform:none}.map-slot--iso:focus,.map-slot--iso:focus-visible{filter:drop-shadow(0 0 2px #1d78d0)drop-shadow(0 0 4px #1d78d0);outline:none}.map-slot--iso.is-current-location:after{display:none}.map-slot--iso b{font-size:7.5px;line-height:1;position:static}.map-slot--iso .map-slot-signal{font-size:7px;display:none}.map-slot--iso .map-slot-features{font-size:6.5px;position:static}.map-slot--iso.status-occupied{background:#e6ebe873;border-color:#b9c2bdd9}.map-slot-badges--iso{pointer-events:none;position:absolute;inset:0;overflow:visible}.map-slot-badges--iso .map-slot-current-marker{color:#fff;background:var(--blue);pointer-events:none;border:2px solid #fff;border-radius:50%;place-items:center;width:16px;height:16px;font-size:8px;display:grid;position:absolute;top:-10px;right:-8px;box-shadow:0 2px 5px #1f63ea55}.map-slot-badges--iso .map-slot-badge{white-space:nowrap;pointer-events:none;padding:1px 3px;font-size:6px;position:absolute;bottom:-11px;left:50%;transform:translate(-50%)}.map-slot-badges--iso .map-slot-badge.reservation{bottom:-16px}.map-slot-badges--iso .map-slot-badge.parked{bottom:-21px}.map-slot-badges--iso .map-slot-report-warning{pointer-events:none;position:absolute;top:-6px;right:-6px;transform:scale(.65)}.points-trigger{border-radius:999px;justify-content:center;align-items:center;gap:.3rem;min-width:44px;min-height:44px;display:inline-flex}.points-badge{font-weight:700}.points-modal{overscroll-behavior:contain;scrollbar-gutter:stable;width:min(620px,100vw - 2rem);max-height:min(82dvh,720px);padding:28px;overflow:hidden auto}.points-modal h1{letter-spacing:-.6px;padding-right:42px;font-size:clamp(26px,4vw,30px);line-height:1.15}.points-modal .modal-close{color:#52685e;border-radius:12px;place-items:center;width:44px;height:44px;display:grid}.points-modal .modal-close:hover{color:var(--green-dark);background:var(--green-soft)}.points-tabs{scrollbar-width:thin;scrollbar-color:#b9c8c0 transparent;background:#f2f5f3;border:1px solid #e2e9e5;border-radius:12px;gap:4px;width:100%;margin:1rem 0;padding:4px;display:flex;overflow-x:auto}.points-tab{min-height:42px;color:var(--muted);white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:9px;flex:none;padding:8px 12px;font-size:12px;font-weight:750}.points-tab:hover{color:var(--green-dark);background:#fff}.points-tab[aria-selected=true]{color:#fff;background:var(--green);box-shadow:0 2px 7px #0b68422b}.points-tab[aria-selected=true]:hover{color:#fff;background:var(--green-dark)}.points-overview-help{color:#52685e;background:#f4faf7;border:1px solid #dbe8e1;border-radius:10px;margin-top:12px;padding:11px 12px;font-size:12px;line-height:1.55}.reward-catalog,.voucher-wallet,.points-history{gap:10px;display:grid}.reward-catalog>h2,.voucher-wallet>h2,.points-history>h2{color:var(--ink);margin-bottom:2px;font-size:17px}.reward-catalog>p,.voucher-wallet>p,.points-history>p{color:var(--muted);font-size:12px;line-height:1.5}.reward-catalog-item{border:1px solid var(--line);background:#fbfdfc;border-radius:12px;gap:8px;padding:14px;display:grid}.reward-catalog-item h3{color:var(--ink);font-size:14px}.reward-catalog-item p{color:var(--muted);font-size:12px;line-height:1.5}.reward-catalog-action{border:1px solid var(--green);color:#fff;background:var(--green);cursor:pointer;border-radius:10px;width:100%;min-height:44px;padding:9px 12px;font-size:12px;font-weight:750}.reward-catalog-action:hover:not(:disabled){border-color:var(--green-dark);background:var(--green-dark)}.reward-catalog-action:disabled{color:#68766f;background:var(--green-soft);cursor:not-allowed;border-color:#d5e3dc}.points-history article{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;min-height:56px;padding:10px 12px;display:flex}.points-history article>div{gap:.25rem;display:grid}.points-history article b{font-size:12px}.points-history article time{color:var(--muted);font-size:10px}.points-history article>strong{text-align:right;flex:none;font-size:15px}.points-positive{color:#177245}.points-negative{color:#a12b2b}.points-confirmation{background:#f4faf7;border:1px solid #cfe2d8;border-radius:12px;gap:8px;margin-top:12px;padding:14px;display:grid}.points-confirmation h3{color:var(--green-dark);font-size:15px}.points-confirmation p{color:#52685e;font-size:12px;line-height:1.55}.points-confirmation-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:4px;display:grid}.points-confirmation-actions button{min-height:44px}.voucher-wallet-item{border:1px solid var(--line);background:#fff;border-radius:12px;gap:7px;padding:14px;display:grid}.voucher-wallet-item>b{color:var(--green-dark);font-size:16px}.voucher-wallet-item>small{color:var(--muted);font-size:10px}.voucher-wallet-item>p{color:#52685e;font-size:11px;line-height:1.5}.voucher-wallet-item>button{width:100%;min-height:44px;margin-top:3px}.voucher-status{border-radius:999px;width:fit-content;padding:4px 8px;font-size:10px;font-weight:800;line-height:1.35}.voucher-status-issued{color:var(--green-dark);background:var(--green-soft)}.voucher-status-applied{color:#245bb9;background:var(--blue-soft)}.voucher-status-expired{color:#66736d;background:#eef1ef}.voucher-status-cancelled{color:#842f2f;background:#fff0f0}.points-modal>.points-status-message,.points-modal>.points-refresh-warning{border-radius:10px;margin-top:12px;padding:10px 12px;font-size:12px;line-height:1.5}.points-modal>.points-status-message{color:var(--green-dark);background:var(--green-soft);border:1px solid #c7e4d5}.points-modal>.points-refresh-warning{color:#714300;background:#fff7e7;border:1px solid #edc980}.observation-review>h3{color:var(--ink);font-size:14px}.observation-review-summary{background:var(--green-soft);border:1px solid #c7e4d5;border-radius:11px;gap:2px;margin-top:9px;padding:10px 12px;display:grid}.observation-review-label{color:var(--muted);font-size:10px}.observation-review-summary strong{color:var(--green-dark);font-size:13px}.evidence-picker{background:#f7faf8;border:1px solid #dbe8e1;border-radius:12px;gap:10px;margin-top:12px;padding:12px;display:grid}.evidence-picker-heading{justify-content:space-between;align-items:center;gap:10px;display:flex}.evidence-picker-heading h4,.evidence-picker-heading>label{color:var(--ink);margin:0;font-size:13px;font-weight:800}.evidence-picker-heading>span{color:#52685e;background:var(--green-soft);border-radius:999px;flex:none;padding:3px 7px;font-size:9px;font-weight:750}.evidence-picker-help{color:var(--muted);margin:0;font-size:10px;line-height:1.5}.evidence-picker-help span{display:block}.evidence-picker-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.evidence-picker-action{color:#285643;cursor:pointer;background:#fff;border:1px solid #bcd5c8;border-radius:10px;min-height:44px;padding:9px 12px;font-size:12px;font-weight:750}.evidence-picker-camera{background:var(--green-soft);border-color:#a9cfbc}.evidence-picker-action:hover:not(:disabled){color:var(--green-dark);border-color:var(--green);background:#eff8f3}.evidence-picker-action:disabled{opacity:.5;cursor:not-allowed}.evidence-picker-remove{color:#7b4444;background:#fff8f8;border-color:#e5c4c4;grid-column:1/-1}.evidence-picker-selected{border:1px solid var(--line);background:#fff;border-radius:11px;align-items:center;gap:10px;min-width:0;padding:10px;display:grid}.evidence-picker-selected.has-preview{grid-template-columns:96px minmax(0,1fr)}.evidence-picker-preview{object-fit:cover;background:#eef4f1;border-radius:8px;width:96px;max-width:100%;height:76px;margin:0;display:block}.evidence-picker-copy{gap:4px;min-width:0;display:grid}.evidence-picker-file-name{overflow-wrap:anywhere;color:var(--ink);margin:0;font-size:12px;font-weight:750;line-height:1.4}.evidence-picker-meta{color:var(--muted);overflow-wrap:anywhere;font-size:10px}.observation-evidence-preview{object-fit:contain;width:auto;max-width:100%;max-height:220px;margin:.5rem 0;display:block}.observation-review .contribution-answer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.observation-review .contribution-answer-grid .secondary-button{grid-column:auto}.report-evidence{margin-top:0}.report-evidence .evidence-picker-preview{object-fit:contain;width:112px;height:84px}.report-evidence .evidence-picker-selected.has-preview{grid-template-columns:112px minmax(0,1fr)}.points-trigger:focus-visible,.points-modal button:focus-visible,.observation-review button:focus-visible,.evidence-picker-action:focus-visible{outline-offset:2px;outline:3px solid #1d78d0}@media (max-width:480px){.points-modal-backdrop{align-items:end;padding:0}.points-modal{width:100%;max-height:90vh;padding:24px 16px max(18px, env(safe-area-inset-bottom));border-radius:1rem 1rem 0 0;margin:auto 0 0}.points-confirmation-actions,.observation-review .contribution-answer-grid{grid-template-columns:1fr}.observation-review .contribution-answer-grid .secondary-button{grid-column:1}.evidence-picker-selected.has-preview,.report-evidence .evidence-picker-selected.has-preview{grid-template-columns:88px minmax(0,1fr)}.evidence-picker-preview,.report-evidence .evidence-picker-preview{width:88px;height:72px}}@media (prefers-reduced-motion:reduce){.points-modal,.points-modal-backdrop{transition:none!important;animation:none!important}}
