@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.3p2_lha1f2xer.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.1qq4vpdcun5oj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/53b9e256198e5412-s.390ncx5urfkfu.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.21jp631_3pja2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5ce348bf30bf5439-s.31988l_ccedte.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.2tuy5pz7dlieh.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6306c77e7c8268e4-s.2dbetqa9o8jxf.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7d817b4c03b0c5f1-s.1uyisp29ctx0d.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.1rgnod-3esatf.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.0r6juujl39pe6.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{color:#172033;background:#f5f7fa;font-family:Arial,Helvetica,sans-serif}button,input,select{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;display:flex}.sidebar{color:#fff;z-index:10;background:#111827;flex-direction:column;width:230px;padding:28px 18px;display:flex;position:fixed;inset:0 auto 0 0}.brand{align-items:center;gap:12px;padding:0 8px 30px;display:flex}.brand-mark{color:#111827;background:#fff;border-radius:10px;place-items:center;width:40px;height:40px;font-size:20px;font-weight:900;display:grid}.brand strong{font-size:17px;display:block}.brand span{color:#9ca3af;margin-top:2px;font-size:12px;display:block}.sidebar nav{gap:5px;display:grid}.nav-item{text-align:left;color:#aeb7c7;background:0 0;border:0;border-radius:9px;width:100%;padding:12px 13px}.nav-item:hover,.nav-item.active{color:#fff;background:#263244}.sidebar-footer{color:#aeb7c7;border-top:1px solid #2c3647;align-items:center;gap:8px;margin-top:auto;padding:14px 10px;font-size:12px;display:flex}.status-dot{background:#22c55e;border-radius:50%;width:8px;height:8px}.content{width:calc(100% - 230px);margin-left:230px;padding:32px 36px 50px}.topbar{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:26px;display:flex}.eyebrow{color:#6b7280;letter-spacing:.12em;margin:0 0 6px;font-size:11px;font-weight:800}h1{letter-spacing:-.04em;margin:0;font-size:30px}.subtitle{color:#6b7280;margin:7px 0 0;font-size:14px}.actions{gap:10px;display:flex}.primary-button,.secondary-button{border-radius:9px;padding:10px 15px;font-weight:700}.primary-button{color:#fff;background:#111827;border:1px solid #111827}.secondary-button{color:#263244;background:#fff;border:1px solid #d7dce3}.kpi-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:16px;display:grid}.kpi-card{background:#fff;border:1px solid #e1e5ea;border-radius:13px;min-height:128px;padding:18px}.kpi-card span,.kpi-card small{color:#6b7280;display:block}.kpi-card span{font-size:12px;font-weight:700}.kpi-card strong{letter-spacing:-.04em;margin:12px 0 8px;font-size:29px;display:block}.kpi-card small{font-size:11px}.kpi-card.emphasis strong{color:#15803d}.filter-panel{background:#fff;border:1px solid #e1e5ea;border-radius:12px;grid-template-columns:2fr repeat(3,1fr);gap:10px;margin-bottom:24px;padding:12px;display:grid}.filter-panel input,.filter-panel select{color:#374151;background:#fafbfc;border:1px solid #d9dee5;border-radius:8px;outline:none;min-width:0;height:40px;padding:0 12px}.filter-panel input:focus,.filter-panel select:focus{background:#fff;border-color:#7d8796}.dashboard-layout{grid-template-columns:minmax(0,1fr) 270px;align-items:start;gap:18px;display:grid}.section-heading{justify-content:space-between;margin-bottom:12px;display:flex}.section-heading h2{margin:0;font-size:18px}.section-heading p{color:#7b8492;margin:4px 0 0;font-size:12px}.locations-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.location-card,.summary-card{background:#fff;border:1px solid #e1e5ea;border-radius:13px}.location-card{padding:17px;transition:transform .12s,box-shadow .12s}.location-card:hover{transform:translateY(-1px);box-shadow:0 8px 25px #11182712}.location-top{justify-content:space-between;gap:10px;display:flex}.location-label{color:#9299a5;letter-spacing:.1em;font-size:9px;font-weight:800}.location-card h3{margin:5px 0 0;font-size:15px}.occupancy{font-size:15px}.progress{background:#edf0f3;border-radius:20px;height:5px;margin:16px 0;overflow:hidden}.progress div{border-radius:inherit;background:#374151;height:100%}.location-stats{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.location-stats div{background:#f7f8fa;border-radius:8px;padding:9px}.location-stats span{color:#7b8492;font-size:10px;display:block}.location-stats strong{margin-top:3px;font-size:17px;display:block}.location-stats .free-stat strong{color:#15803d}.details-button{color:#596273;text-align:right;background:0 0;border:0;border-top:1px solid #eef0f3;width:100%;margin-top:13px;padding:8px;font-size:11px;font-weight:700}.right-column{gap:12px;display:grid}.summary-card{padding:16px}.summary-card h3{margin:0 0 12px;font-size:14px}.summary-list{gap:2px;display:grid}.summary-row{border-bottom:1px solid #f0f1f3;justify-content:space-between;gap:10px;padding:7px 0;font-size:12px;display:flex}.summary-row:last-child{border-bottom:0}.summary-row span{color:#5e6673}@media (max-width:1250px){.kpi-grid{grid-template-columns:repeat(3,1fr)}.locations-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:900px){.sidebar{width:100%;position:static}.app-shell{display:block}.content{width:100%;margin:0;padding:22px}.dashboard-layout{grid-template-columns:1fr}.filter-panel{grid-template-columns:1fr 1fr}}@media (max-width:620px){.topbar{display:block}.actions{margin-top:16px}.kpi-grid,.locations-grid,.filter-panel{grid-template-columns:1fr}}.location-page{color:#101828;background:#f4f6f9;min-height:100vh;padding:34px 42px 60px}.location-top{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:26px;display:flex}.location-top h1{letter-spacing:-1px;margin:5px 0 4px;font-size:34px}.location-top p,.rooms-heading p{color:#667085;margin:0}.back-link{color:#475467;margin-bottom:20px;font-weight:600;text-decoration:none;display:inline-block}.back-link:hover{color:#101828}.eyebrow,.room-label{color:#98a2b3;letter-spacing:1.1px;font-size:11px;font-weight:800}.primary-button{color:#fff;cursor:pointer;background:#101828;border:0;border-radius:10px;padding:13px 19px;font-size:14px;font-weight:700}.location-kpis{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px;display:grid}.mini-kpi{background:#fff;border:1px solid #e4e7ec;border-radius:13px;padding:17px 19px}.mini-kpi span{color:#667085;margin-bottom:8px;font-size:12px;display:block}.mini-kpi strong{font-size:26px}.free-number,.free-text,.available{color:#16803c}.location-toolbar{background:#fff;border:1px solid #e4e7ec;border-radius:13px;grid-template-columns:1fr 220px 220px;gap:10px;margin-bottom:28px;padding:11px;display:grid}.location-toolbar input,.location-toolbar select{color:#344054;background:#fff;border:1px solid #d0d5dd;border-radius:8px;width:100%;padding:11px 12px;font-size:14px}.rooms-heading{justify-content:space-between;margin-bottom:14px;display:flex}.rooms-heading h2{margin:0 0 3px;font-size:20px}.rooms-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.room-card{background:#fff;border:1px solid #e4e7ec;border-radius:14px;padding:17px}.room-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.room-header h3{margin:4px 0 0;font-size:18px}.gender-badge{border-radius:999px;padding:6px 9px;font-size:11px;font-weight:700}.gender-badge.male{color:#175cd3;background:#eff6ff}.gender-badge.female{color:#c11574;background:#fdf2fa}.room-summary{color:#667085;border-top:1px solid #f2f4f7;border-bottom:1px solid #f2f4f7;gap:13px;margin:12px 0;padding:13px 0;font-size:12px;display:flex}.beds-list{gap:8px;display:grid}.bed-card{border-radius:10px;padding:11px 12px}.bed-card.occupied{background:#f8fafc;border:1px solid #eaecf0}.bed-card.free{background:#f0fdf4;border:1px solid #bbf7d0}.bed-number{color:#98a2b3;margin-bottom:4px;font-size:10px;font-weight:700}.bed-card strong{font-size:13px;display:block}.bed-details{color:#667085;gap:8px;margin-top:5px;font-size:11px;display:flex}@media (max-width:1000px){.rooms-grid,.location-kpis{grid-template-columns:1fr 1fr}}@media (max-width:700px){.location-page{padding:22px 16px}.rooms-grid,.location-kpis,.location-toolbar{grid-template-columns:1fr}}:root{--gs-navy:#071b33;--gs-navy-soft:#0c2948;--gs-blue:#1779d4;--gs-blue-bright:#2495ee;--gs-bg:#f4f7fb;--gs-border:#dfe6ef;--gs-text:#152238;--gs-muted:#6c788b}body{background:var(--gs-bg);color:var(--gs-text)}.sidebar{background:linear-gradient(#061a31 0%,#092541 100%);box-shadow:4px 0 24px #071b3314}.brand{gap:13px;padding-bottom:29px}.brand-mark{background:#fff;border-radius:12px;flex:0 0 48px;width:48px;height:48px;padding:5px;overflow:hidden;box-shadow:0 6px 18px #00000026}.brand-logo{object-fit:contain;width:100%;height:100%;display:block}.brand-copy{min-width:0}.brand-copy strong{color:#fff;letter-spacing:-.02em;font-size:17px}.brand-copy span{color:#8bbde7;letter-spacing:.08em;font-size:9px;font-weight:700}.nav-item{transition:background .12s,color .12s}.nav-item:hover{background:#ffffff14}.nav-item.active{color:#fff;background:#1779d4;box-shadow:0 5px 16px #1779d43d}.sidebar-footer{border-top-color:#ffffff1a}.primary-button{border-color:var(--gs-blue);background:var(--gs-blue)}.primary-button:hover{background:#126abe}.secondary-button:hover{background:#f8fafc;border-color:#b8c7d9}.progress div{background:linear-gradient(90deg, var(--gs-blue), var(--gs-blue-bright))}.location-card:hover{border-color:#cbd9e8;box-shadow:0 10px 28px #071b3314}.login-page{background:radial-gradient(circle at 15% 20%,#2495ee29,#0000 35%),linear-gradient(135deg,#06182d 0%,#0a2948 55%,#0c355d 100%);place-items:center;min-height:100vh;padding:32px;display:grid}.login-shell{background:#fff;border-radius:24px;grid-template-columns:1fr 1fr;width:min(900px,100%);min-height:510px;display:grid;overflow:hidden;box-shadow:0 30px 80px #00000047}.login-brand-panel{color:#fff;background:radial-gradient(circle at 80% 20%,#2596f347,#0000 36%),linear-gradient(145deg,#071b33,#0b3156);flex-direction:column;padding:46px;display:flex;position:relative;overflow:hidden}.login-brand-panel:after{content:"";border:1px solid #ffffff14;border-radius:50%;width:260px;height:260px;position:absolute;bottom:-100px;right:-100px}.login-logo{object-fit:contain;object-position:left center;background:#fff;border-radius:12px;width:150px;max-height:80px;padding:8px}.login-brand-text{margin-top:auto;margin-bottom:auto}.login-kicker{color:#55aff5;letter-spacing:.16em;font-size:10px;font-weight:800}.login-brand-text h1{color:#fff;letter-spacing:-.05em;margin:8px 0 12px;font-size:42px}.login-brand-text p{color:#b8ccdf;max-width:310px;margin:0;font-size:14px;line-height:1.6}.login-brand-footer{color:#7fa3c2;font-size:11px}.login-form-panel{flex-direction:column;justify-content:center;padding:58px 55px;display:flex}.login-heading{margin-bottom:30px}.login-heading h2{color:#10213a;letter-spacing:-.04em;margin:8px 0 7px;font-size:28px}.login-heading p{color:#7a8798;margin:0;font-size:14px}.login-field{gap:7px;margin-bottom:17px;display:grid}.login-field span{color:#344054;font-size:12px;font-weight:700}.login-field input{color:#172033;background:#fbfcfe;border:1px solid #d4dce6;border-radius:9px;outline:none;width:100%;height:46px;padding:0 13px}.login-field input:focus{border-color:var(--gs-blue);background:#fff;box-shadow:0 0 0 3px #1779d41a}.login-error{color:#b42318;background:#fef2f2;border:1px solid #fecaca;border-radius:9px;margin-bottom:16px;padding:11px 13px;font-size:12px}.login-submit{background:var(--gs-blue);color:#fff;border:0;border-radius:9px;height:47px;margin-top:5px;font-weight:800;box-shadow:0 7px 18px #1779d433}.login-submit:hover{background:#126abe}.login-submit:disabled{opacity:.65;cursor:wait}.login-security{color:#98a2b3;text-align:center;margin:18px 0 0;font-size:10px}@media (max-width:720px){.login-page{padding:18px}.login-shell{grid-template-columns:1fr}.login-brand-panel{min-height:220px;padding:28px}.login-brand-text{margin-top:32px}.login-brand-text h1{font-size:32px}.login-brand-footer{display:none}.login-form-panel{padding:34px 28px}}.location-admin-page{background:#f4f7fb;min-height:100vh;padding:36px}.location-admin-shell{width:min(1050px,100%);margin:0 auto}.location-admin-header{margin-bottom:24px}.location-admin-header h1{margin-bottom:6px}.location-admin-header p{color:#667085;margin:0}.location-add-form{background:#fff;border:1px solid #dfe6ef;border-radius:13px;grid-template-columns:1fr auto;gap:10px;margin-bottom:20px;padding:14px;display:grid}.location-add-form input,.location-edit-input{border:1px solid #d4dce6;border-radius:8px;outline:none;width:100%;min-height:42px;padding:0 12px}.location-add-form input:focus,.location-edit-input:focus{border-color:#1779d4;box-shadow:0 0 0 3px #1779d41a}.location-admin-error,.location-admin-success{border-radius:9px;margin-bottom:16px;padding:12px 14px;font-size:13px}.location-admin-error{color:#b42318;background:#fef2f2;border:1px solid #fecaca}.location-admin-success{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0}.location-admin-list{gap:10px;display:grid}.location-admin-card{background:#fff;border:1px solid #dfe6ef;border-radius:13px;justify-content:space-between;align-items:center;gap:18px;padding:18px;display:flex}.location-admin-card.inactive{opacity:.65}.location-admin-card h3{margin:0 0 7px}.location-status{border-radius:999px;padding:4px 8px;font-size:10px;font-weight:800;display:inline-block}.location-status.active{color:#027a48;background:#ecfdf3}.location-status.inactive{color:#667085;background:#f2f4f7}.location-admin-stats{color:#667085;gap:16px;margin-top:10px;font-size:12px;display:flex}.location-admin-actions{gap:8px;display:flex}.location-admin-actions button{color:#344054;background:#fff;border:1px solid #d0d5dd;border-radius:8px;padding:8px 11px;font-weight:700}.location-admin-actions button:hover{color:#1779d4;border-color:#1779d4}@media (max-width:700px){.location-admin-page{padding:20px 14px}.location-add-form{grid-template-columns:1fr}.location-admin-card{flex-direction:column;align-items:flex-start}.location-admin-stats{flex-direction:column;gap:4px}}.person-search-wrap{position:relative}.person-search-wrap>input{width:100%}.person-search-results{z-index:50;background:#fff;border:1px solid #dfe6ef;border-radius:12px;width:min(560px,90vw);max-height:420px;position:absolute;top:calc(100% + 6px);left:0;overflow-y:auto;box-shadow:0 18px 40px #071b3324}.person-search-result{text-align:left;cursor:pointer;background:#fff;border:0;border-bottom:1px solid #edf1f5;width:100%;padding:12px 14px;display:block}.person-search-result:last-child{border-bottom:0}.person-search-result:hover{background:#f6f9fc}.person-search-result strong{color:#172033;font-size:14px;display:block}.person-search-result span{color:#6f7b8c;margin-top:4px;font-size:12px;display:block}.person-search-empty{color:#7c8797;padding:14px;font-size:13px}.person-search-results{width:min(680px,92vw)}.person-search-result{padding:16px}.person-result-name{font-size:15px!important}.person-result-project{font-weight:700;color:#1779d4!important;margin-top:3px!important}.person-result-location{grid-template-columns:2fr 1fr 1fr;gap:10px;margin-top:12px;display:grid}.person-result-location>div{background:#f8fafc;border:1px solid #e4e9ef;border-radius:8px;padding:9px 10px}.person-result-location small,.person-result-roommates small{color:#8490a1;text-transform:uppercase;letter-spacing:.05em;margin-bottom:3px;font-size:10px;display:block}.person-result-location b{color:#172033;font-size:12px}.person-result-roommates{border-top:1px solid #edf1f5;margin-top:11px;padding-top:10px}.person-result-roommates span{line-height:1.45;color:#4e5b6d!important;font-size:12px!important}.person-result-open{font-weight:800;color:#1779d4!important;margin-top:10px!important;font-size:11px!important}@media (max-width:650px){.person-result-location{grid-template-columns:1fr}}.fee-kpi-card{background:#fff;border:1px solid #e2e7ee;border-radius:14px;min-width:0;padding:16px}.fee-kpi-title{color:#7b8798;margin-bottom:10px;font-size:12px;font-weight:700}.fee-kpi-split{grid-template-columns:1fr 1fr;gap:8px;display:grid}.fee-kpi-split button{cursor:pointer;text-align:left;border:0;border-radius:10px;padding:12px}.fee-kpi-split span{margin-bottom:5px;font-size:11px;font-weight:700;display:block}.fee-kpi-split strong{font-size:24px;display:block}.fee-paid{color:#157347;background:#eefaf2}.fee-paid:hover{background:#e2f5e8}.fee-unpaid{color:#b42318;background:#fff1f1}.fee-unpaid:hover{background:#ffe5e5}
