@import "https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700&display=swap";@font-face{font-family:Poppins;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/Poppins-Regular.ttf)format("truetype")}@font-face{font-family:Poppins;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/Poppins-Italic.ttf)format("truetype")}@font-face{font-family:Poppins;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/Poppins-Medium.ttf)format("truetype")}@font-face{font-family:Poppins;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/Poppins-SemiBold.ttf)format("truetype")}@font-face{font-family:Poppins;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/Poppins-Bold.ttf)format("truetype")}@font-face{font-family:Poppins;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/Poppins-ExtraBold.ttf)format("truetype")}@font-face{font-family:Poppins;font-style:normal;font-weight:900;font-display:swap;src:url(/fonts/Poppins-Black.ttf)format("truetype")}:root{--blue-50:#eff6ff;--blue-100:#dbeafe;--blue-200:#bfdbfe;--blue-300:#93c5fd;--blue-400:#60a5fa;--blue-500:#3b82f6;--blue-600:#2563eb;--blue-700:#1d4ed8;--blue-800:#1e40af;--blue-900:#1e3a8a;--slate-50:#f8fafc;--slate-100:#f1f5f9;--slate-200:#e2e8f0;--slate-300:#cbd5e1;--slate-400:#94a3b8;--slate-500:#64748b;--slate-600:#475569;--slate-700:#334155;--slate-800:#1e293b;--slate-900:#0f172a;--amber-50:#fffbeb;--amber-100:#fef3c7;--amber-200:#fde68a;--amber-300:#fcd34d;--amber-400:#fbbf24;--amber-500:#f59e0b;--amber-600:#d97706;--amber-700:#b45309;--amber-800:#92400e;--amber-900:#78350f;--green-50:#f0fdf4;--green-100:#dcfce7;--green-200:#bbf7d0;--green-500:#22c55e;--green-600:#16a34a;--green-700:#15803d;--red-50:#fef2f2;--red-100:#fee2e2;--red-200:#fecaca;--red-500:#ef4444;--red-600:#dc2626;--red-700:#b91c1c;--bg:var(--slate-50);--bg-elevated:#fff;--bg-sunken:var(--slate-100);--bg-inverse:var(--slate-900);--fg:var(--slate-900);--fg-muted:var(--slate-500);--fg-subtle:var(--slate-400);--fg-on-brand:#fff;--border:var(--slate-200);--border-strong:var(--slate-300);--brand:var(--blue-900);--brand-hover:#172554;--brand-press:#0f1a3d;--brand-soft:var(--blue-50);--accent:var(--amber-500);--accent-hover:var(--amber-600);--accent-soft:var(--amber-50);--mode-online-fg:var(--green-700);--mode-online-bg:var(--green-50);--mode-online-bd:var(--green-200);--mode-walkin-fg:var(--amber-700);--mode-walkin-bg:var(--amber-50);--mode-walkin-bd:var(--amber-200);--occ-available:var(--green-500);--occ-occupied:var(--blue-900);--occ-expiring:var(--amber-500);--occ-maintenance:var(--slate-400);--font-display:"Poppins", ui-sans-serif, system-ui, sans-serif;--font-sans:"Poppins", ui-sans-serif, system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;--r-xs:6px;--r-sm:10px;--r-md:14px;--r-lg:20px;--r-xl:28px;--r-pill:999px;--shadow-xs:0 1px 2px #0f172a0a;--shadow-sm:0 2px 6px -2px #0f172a14, 0 1px 2px #0f172a0a;--shadow-md:0 8px 20px -8px #0f172a1f, 0 2px 6px -2px #0f172a0f;--shadow-lg:0 20px 40px -16px #0f172a2e, 0 4px 10px -4px #0f172a14;--shadow-blue:0 12px 28px -10px #1e3a8a73;--shadow-amber:0 12px 28px -10px #f59e0b66;--ring-focus:0 0 0 3px #1e3a8a4d;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--dur-fast:.14s;--dur-base:.22s;--dur-slow:.4s;--sidebar-w:260px;--topbar-h:64px}html,body{font-family:var(--font-sans);color:var(--fg);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;font-weight:400;line-height:1.5}h1,h2,h3,h4,h5{font-family:var(--font-display);letter-spacing:-.025em;color:var(--fg);margin:0;font-weight:700;line-height:1.1}h1{letter-spacing:-.025em;font-size:28px;font-weight:800}h2{font-size:22px}h3{font-size:18px}h4{font-size:16px}p{margin:0}a{color:var(--brand);text-decoration:none}a:hover{opacity:.85;text-decoration:none}.btn,.btn:hover,.btn:focus,.btn:active,.tenant-card,.tenant-card:hover,.result,.result:hover,.nav-item,.nav-item:hover,.contact-item,.contact-item:hover,.item,.item:hover{text-decoration:none!important}a.link-underline:hover{opacity:1;text-decoration:underline}::selection{background:var(--amber-200);color:var(--slate-900)}.panel-app{grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh;font-family:var(--font-sans);display:grid}.side{background:var(--slate-900);color:#fff;flex-direction:column;gap:24px;padding:22px 16px;display:flex}.side .brand{align-items:center;gap:10px;padding:0 4px;display:flex}.side .brand img{height:32px}.side .brand .role{letter-spacing:.04em;text-transform:uppercase;border-radius:6px;margin-left:auto;padding:4px 8px;font-size:10px;font-weight:700}.side .brand .role.owner{background:var(--blue-900);color:#bfdbfe}.side .brand .role.admin{background:var(--amber-500);color:var(--slate-900)}.side .hostel-picker{cursor:pointer;background:#ffffff0a;border:1px solid #ffffff14;border-radius:12px;align-items:center;gap:10px;padding:10px 12px;display:flex}.side .hostel-picker .ico{background:var(--blue-900);color:#fff;border-radius:8px;place-items:center;width:32px;height:32px;display:grid}.side .hostel-picker .lbl{color:#94a3b8;font-size:11px}.side .hostel-picker .name{font-size:13px;font-weight:700}.side .hostel-picker>i:last-child{color:#94a3b8}.nav-section{flex-direction:column;gap:2px;display:flex}.nav-section .nav-title{letter-spacing:.1em;text-transform:uppercase;color:#64748b;padding:0 12px 4px;font-size:10px;font-weight:700}.nav-item{color:#cbd5e1;cursor:pointer;border-radius:10px;align-items:center;gap:10px;padding:10px 12px;font-size:13px;font-weight:500;text-decoration:none;transition:all .14s;display:flex}.nav-item i{font-size:18px}.nav-item:hover{color:#fff;background:#ffffff0d;text-decoration:none}.nav-item.active{background:var(--brand);color:#fff}.nav-item .count{background:var(--amber-500);color:var(--slate-900);border-radius:999px;margin-left:auto;padding:2px 7px;font-size:10px;font-weight:700}.side .me{background:#ffffff0a;border-radius:12px;align-items:center;gap:10px;margin-top:auto;padding:10px 12px;display:flex}.side .me .av{background:var(--amber-500);width:36px;height:36px;color:var(--slate-900);border-radius:999px;place-items:center;font-weight:800;display:grid}.side .me .nm{font-size:13px;font-weight:700}.side .me .sub{color:#94a3b8;font-size:11px}.main{flex-direction:column;display:flex}.topbar{border-bottom:1px solid var(--slate-200);background:#fff;align-items:center;gap:14px;height:64px;padding:0 32px;display:flex}.topbar .search{background:var(--slate-50);border:1px solid var(--slate-200);max-width:420px;height:38px;color:var(--slate-500);border-radius:10px;flex:1;align-items:center;gap:8px;padding:0 12px;font-size:13px;display:flex}.topbar .right{align-items:center;gap:14px;margin-left:auto;display:flex}.topbar .icon-btn{background:var(--slate-50);width:36px;height:36px;color:var(--slate-700);cursor:pointer;border:none;border-radius:10px;place-items:center;display:grid;position:relative}.topbar .icon-btn .dot{background:var(--red-500);border:2px solid #fff;border-radius:999px;width:8px;height:8px;position:absolute;top:7px;right:8px}.read-only-banner{background:var(--slate-100);color:var(--slate-700);letter-spacing:.04em;text-transform:uppercase;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:11px;font-weight:700;display:inline-flex}.content{flex:1;padding:28px 32px 40px;overflow-y:auto}.page-head{justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:24px;display:flex}.page-head h1{letter-spacing:-.025em;margin:0;font-size:28px;font-weight:800}.page-head .sub{color:var(--slate-500);margin-top:4px;font-size:13px}.page-head .actions{gap:8px;display:flex}.btn{cursor:pointer;letter-spacing:-.01em;border:1px solid #0000;border-radius:10px;align-items:center;gap:6px;height:38px;padding:0 14px;font:600 13px Poppins;text-decoration:none;display:inline-flex}.btn i{font-size:16px}.btn.primary{background:var(--brand);color:#fff}.btn.primary:hover{background:var(--brand-hover);box-shadow:var(--shadow-blue)}.btn.accent{background:var(--amber-500);color:var(--slate-900)}.btn.accent:hover{background:var(--amber-600);color:#fff}.btn.secondary{color:var(--slate-900);border-color:var(--slate-200);background:#fff}.btn.secondary:hover{background:var(--slate-50)}.btn.ghost{color:var(--slate-700);background:0 0}.btn.danger{background:var(--red-500);color:#fff}.btn.success{background:var(--green-600);color:#fff}.btn.lg{height:44px;padding:0 20px;font-size:14px}.btn:disabled,.btn.disabled{opacity:.4;pointer-events:none}.kpi-grid{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px;display:grid}.kpi{border:1px solid var(--slate-200);background:#fff;border-radius:14px;flex-direction:column;min-width:0;padding:18px 20px;display:flex;overflow:hidden}.kpi .hdr{justify-content:space-between;align-items:center;gap:12px;min-width:0;margin-bottom:12px;display:flex}.kpi .lbl{color:var(--slate-500);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:12px;font-weight:500;overflow:hidden}.kpi .ico{border-radius:10px;flex-shrink:0;place-items:center;width:36px;height:36px;font-size:18px;display:grid}.kpi .val{letter-spacing:-.025em;white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:26px;font-weight:800;line-height:1.15;overflow:hidden}.kpi .delta{white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:4px;min-width:0;max-width:100%;margin-top:6px;font-size:12px;font-weight:600;display:inline-flex;overflow:hidden}.kpi .delta.up{color:var(--green-600)}.kpi .delta.dn{color:var(--red-600)}.kpi-blue .ico{background:var(--blue-50);color:var(--brand)}.kpi-green .ico{background:var(--green-50);color:var(--green-600)}.kpi-amber .ico{background:var(--amber-50);color:var(--amber-600)}.kpi-slate .ico{background:var(--slate-100);color:var(--slate-700)}.row-2{grid-template-columns:1.6fr 1fr;gap:16px;display:grid}.row-3{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.card{border:1px solid var(--slate-200);background:#fff;border-radius:14px}.card .hdr{border-bottom:1px solid var(--slate-100);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.card .hdr h3{letter-spacing:-.01em;margin:0;font-size:15px;font-weight:700}.card .hdr .more{color:var(--brand);cursor:pointer;font-size:12px;font-weight:600}.card .body{padding:16px 20px}.card .body.flush{padding:0}.tbl{border-collapse:collapse;width:100%}.tbl th,.tbl td{text-align:left;padding:12px 20px;font-size:13px}.tbl th{letter-spacing:.04em;text-transform:uppercase;color:var(--slate-500);background:var(--slate-50);font-size:11px;font-weight:700}.tbl tr{border-bottom:1px solid var(--slate-100)}.tbl tr:last-child{border-bottom:0}.tbl tr:hover td{background:var(--slate-50)}.tbl.lg th,.tbl.lg td{padding:14px 20px}.tbl .stu-name{color:var(--slate-900);font-weight:600}.tbl .room-id{font-family:var(--font-mono);color:var(--slate-700);font-size:12px}.tbl .price{color:var(--slate-900);font-weight:700}.tbl .ref{font-family:var(--font-mono);color:var(--slate-500);font-size:11px}.b{border:1px solid #0000;border-radius:999px;align-items:center;gap:4px;padding:3px 10px;font-size:11px;font-weight:700;display:inline-flex}.b i{font-size:13px}.b.online{background:var(--green-50);color:var(--green-700);border-color:var(--green-200)}.b.walkin{background:var(--amber-50);color:var(--amber-700);border-color:var(--amber-200)}.b.pending{background:var(--slate-100);color:var(--slate-700)}.b.confirmed{background:var(--blue-50);color:var(--blue-700)}.b.active{background:var(--green-500);color:#fff}.b.expiring{background:var(--amber-100);color:var(--amber-700)}.b.cancelled,.b.suspended{background:var(--red-50);color:var(--red-700)}.b.approved{background:var(--green-50);color:var(--green-700)}.b.rejected{background:var(--red-50);color:var(--red-700)}.b.draft{background:var(--slate-100);color:var(--slate-600)}.occ-legend{background:var(--slate-50);border-radius:12px;align-items:center;gap:18px;margin-bottom:16px;padding:14px 20px;font-size:12px;display:flex}.occ-legend .item{color:var(--slate-700);align-items:center;gap:6px;display:inline-flex}.occ-legend .dot{border-radius:999px;width:12px;height:12px}.floor{margin-bottom:20px}.floor .floor-hdr{align-items:center;gap:12px;margin-bottom:10px;padding:0 4px;display:flex}.floor .floor-hdr h4{letter-spacing:-.01em;margin:0;font-size:14px;font-weight:700}.floor .floor-hdr .stat{color:var(--slate-500);font-size:11px}.rooms{grid-template-columns:repeat(8,1fr);gap:10px;display:grid}.rm{border:1.5px solid var(--slate-200);cursor:pointer;background:#fff;border-radius:12px;flex-direction:column;gap:5px;min-height:100px;padding:12px;transition:all .14s;display:flex;position:relative}.rm:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.rm .id{font-family:var(--font-mono);color:var(--slate-700);font-size:11px;font-weight:700}.rm .who{color:var(--slate-900);font-size:12px;font-weight:600;line-height:1.2}.rm .meta{color:var(--slate-500);margin-top:auto;font-size:10px}.rm .dot{border-radius:999px;width:10px;height:10px;position:absolute;top:12px;right:12px}.rm.available{background:var(--green-50);border-color:var(--green-200)}.rm.available .dot{background:var(--green-500)}.rm.occupied{background:var(--blue-50);border-color:var(--blue-200)}.rm.occupied .dot{background:var(--brand)}.rm.expiring{background:var(--amber-50);border-color:var(--amber-200)}.rm.expiring .dot{background:var(--amber-500)}.rm.maint{background:var(--slate-100);border-color:var(--slate-300);color:var(--slate-500)}.rm.maint .dot{background:var(--slate-400)}.rm.maint .who{color:var(--slate-500)}.form-grid{grid-template-columns:1fr 1fr;gap:16px 18px;display:grid}.form-grid .span-2{grid-column:span 2}.field{flex-direction:column;gap:6px;display:flex}.field label{color:var(--slate-700);font-size:12px;font-weight:600}.field .help{color:var(--slate-500);font-size:11px}.field input,.field select,.field textarea{border:1px solid var(--slate-200);height:40px;color:var(--slate-900);background:#fff;border-radius:10px;outline:none;padding:0 12px;font:400 14px Poppins}.field textarea{resize:vertical;height:80px;padding:10px 12px;font-family:inherit}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--brand);box-shadow:var(--ring-focus)}.field .error{color:var(--red-600);font-size:11px}.callout{background:var(--amber-50);border:1px solid var(--amber-200);color:var(--amber-800);border-radius:12px;gap:10px;margin-bottom:18px;padding:12px 14px;font-size:13px;display:flex}.callout i{color:var(--amber-600);flex-shrink:0;margin-top:2px;font-size:18px}.callout.info{background:var(--blue-50);border-color:var(--blue-200);color:var(--blue-800)}.callout.info i{color:var(--blue-600)}.callout.danger{background:var(--red-50);border-color:var(--red-200);color:var(--red-700)}.callout.danger i{color:var(--red-600)}.mode-card{align-items:center;gap:18px;display:flex}.mode-card .opt{border:2px solid var(--slate-200);cursor:pointer;border-radius:14px;flex-direction:column;flex:1;gap:6px;padding:18px;display:flex;position:relative}.mode-card .opt.on{border-color:var(--brand);background:var(--blue-50)}.mode-card .opt .check{border:2px solid var(--slate-300);background:#fff;border-radius:999px;width:22px;height:22px;position:absolute;top:14px;right:14px}.mode-card .opt.on .check{background:var(--brand);border-color:var(--brand)}.mode-card .opt.on .check:after{content:"✓";color:#fff;place-items:center;height:100%;font-size:14px;font-weight:800;display:grid}.mode-card .opt .ico{color:var(--brand);font-size:24px}.mode-card .opt h4{margin:0;font-size:15px;font-weight:700}.mode-card .opt p{color:var(--slate-500);margin:0;font-size:12px}.mode-list{flex-direction:column;gap:12px;display:flex}.mode-list .opt{border:1.5px solid var(--slate-200);cursor:pointer;background:#fff;border-radius:16px;align-items:center;gap:16px;padding:16px 18px;transition:all .14s;display:flex}.mode-list .opt:hover{border-color:var(--slate-300)}.mode-list .opt.on{border-color:var(--brand);background:var(--blue-50)}.mode-list .opt.on.walkin{border-color:var(--amber-500);background:var(--amber-50)}.mode-list .opt .ico{background:var(--slate-100);width:48px;height:48px;color:var(--slate-500);border-radius:12px;flex-shrink:0;place-items:center;font-size:22px;display:grid}.mode-list .opt.on .ico{background:var(--brand);color:#fff}.mode-list .opt.on.walkin .ico{background:var(--amber-500);color:var(--slate-900)}.mode-list .opt .body{flex:1;min-width:0}.mode-list .opt .body h4{letter-spacing:-.02em;margin:0;font-size:16px;font-weight:800;line-height:1.2}.mode-list .opt .body p{color:var(--slate-500);margin-top:3px;font-size:13px;line-height:1.35}.mode-list .opt .check{border:1.5px solid var(--slate-300);background:#fff;border-radius:999px;flex-shrink:0;place-items:center;width:22px;height:22px;display:grid}.mode-list .opt.on .check{background:var(--brand);border-color:var(--brand)}.mode-list .opt.on.walkin .check{background:var(--amber-500);border-color:var(--amber-500)}.mode-list .opt.on .check:after{content:"";border:2px solid #fff;border-width:0 2px 2px 0;width:6px;height:10px;transform:rotate(45deg)translate(-1px,-2px)}.combobox{box-sizing:border-box;width:100%;min-width:0;position:relative}.combobox>input{border:1px solid var(--slate-200);width:100%;height:40px;color:var(--slate-900);box-sizing:border-box;text-overflow:ellipsis;background:#fff;border-radius:10px;outline:none;padding:0 56px 0 12px;font:400 14px Poppins}.combobox>input:focus{border-color:var(--brand);box-shadow:var(--ring-focus)}.combobox>.caret{color:var(--slate-400);pointer-events:none;font-size:14px;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.combobox>.clear{background:var(--slate-100);width:22px;height:22px;color:var(--slate-500);cursor:pointer;border:0;border-radius:999px;place-items:center;padding:0;display:grid;position:absolute;top:50%;right:34px;transform:translateY(-50%)}.combobox>.clear:hover{background:var(--slate-200)}.combobox>.list{border:1px solid var(--slate-200);box-shadow:var(--shadow-md);z-index:20;background:#fff;border-radius:10px;max-height:240px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.combobox>.list .item{cursor:pointer;color:var(--slate-700);align-items:center;gap:10px;padding:10px 12px;font-size:14px;display:flex}.combobox>.list .item:hover,.combobox>.list .item.active{background:var(--brand-soft);color:var(--brand)}.combobox>.list .item .province{color:var(--slate-400);margin-left:auto;font-size:11px}.combobox>.list .empty{text-align:center;color:var(--slate-500);padding:14px;font-size:13px}.sb-pagination{flex-wrap:wrap;align-items:center;gap:6px;padding:12px 18px;display:flex}.sb-pagination .sb-page{border:1px solid var(--slate-200);min-width:36px;height:36px;color:var(--slate-700);cursor:pointer;background:#fff;border-radius:8px;justify-content:center;align-items:center;gap:4px;padding:0 10px;font:600 13px Poppins;text-decoration:none;transition:all .14s;display:inline-flex}.sb-pagination .sb-page i{font-size:14px}.sb-pagination .sb-page:hover:not(.disabled):not(.active){border-color:var(--brand);color:var(--brand);background:var(--brand-soft)}.sb-pagination .sb-page.active{background:var(--brand);color:#fff;border-color:var(--brand)}.sb-pagination .sb-page.disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.sb-pagination .sb-page.dots{cursor:default;color:var(--slate-400);background:0 0;border:0}.sb-pagination-summary{color:var(--slate-500);margin-left:auto;font-size:12px}.sb-pagination-summary b{color:var(--slate-900);font-weight:600}.side .hostel-picker-wrap{position:relative}.side .hostel-picker{cursor:pointer;color:#fff;width:100%;font:inherit;text-align:left;background:#ffffff0a;border:1px solid #ffffff14;border-radius:12px;align-items:center;gap:10px;padding:10px 12px;display:flex}.side .hostel-picker:hover{background:#ffffff14}.side .hostel-picker .ico{background:var(--blue-900);color:#fff;border-radius:8px;flex-shrink:0;place-items:center;width:32px;height:32px;display:grid;overflow:hidden}.side .hostel-picker .ico img{object-fit:cover;width:100%;height:100%}.side .hostel-picker>i:last-child{color:#94a3b8;transition:transform .14s}.side .hostel-picker>i.rotate{transform:rotate(180deg)}.side .hostel-picker-menu{background:var(--slate-800);box-shadow:var(--shadow-lg);z-index:30;border:1px solid #ffffff1a;border-radius:12px;max-height:340px;padding:6px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto}.side .hostel-picker-menu .item{cursor:pointer;color:#fff;width:100%;font:inherit;text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.side .hostel-picker-menu .item:hover,.side .hostel-picker-menu .item.active{background:#ffffff0f}.side .hostel-picker-menu .item .ico{color:#cbd5e1;background:#ffffff14;border-radius:8px;flex-shrink:0;place-items:center;width:32px;height:32px;display:grid;overflow:hidden}.side .hostel-picker-menu .item .ico img{object-fit:cover;width:100%;height:100%}.side .hostel-picker-menu .item .name{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.side .hostel-picker-menu .item .sub{color:#94a3b8;white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.transfer-student-card{background:var(--blue-50);border:1px solid var(--blue-200);border-radius:14px;align-items:center;gap:14px;padding:16px 18px;display:flex}.transfer-student-card .av{background:var(--brand);color:#fff;border-radius:999px;flex-shrink:0;place-items:center;width:56px;height:56px;font-size:18px;font-weight:800;display:grid}.transfer-room-grid{grid-template-columns:repeat(6,1fr);gap:10px;display:grid}.transfer-room{border:1.5px solid var(--slate-200);cursor:pointer;background:#fff;border-radius:14px;flex-direction:column;align-items:center;gap:4px;padding:14px 8px;transition:all .14s;display:flex;position:relative}.transfer-room:hover:not(.disabled):not(.selected){border-color:var(--brand)}.transfer-room .code{font-family:var(--font-mono);color:var(--slate-900);font-size:14px;font-weight:700}.transfer-room .price{color:var(--slate-500);font-size:11px;font-family:var(--font-mono)}.transfer-room.compatible{background:var(--green-50);border-color:var(--green-200)}.transfer-room.compatible .code,.transfer-room.compatible .price{color:var(--green-700)}.transfer-room.selected{background:var(--brand);border-color:var(--brand)}.transfer-room.selected .code{color:#fff}.transfer-room.selected .price{color:#bfdbfe}.transfer-room.disabled{background:var(--slate-50);border-color:var(--slate-100);color:var(--slate-400);cursor:not-allowed}.transfer-room.disabled .code,.transfer-room.disabled .price{color:var(--slate-400)}.transfer-room .tag{background:var(--slate-200);color:var(--slate-600);text-transform:uppercase;border-radius:6px;padding:2px 6px;font-size:9px;font-weight:700;position:absolute;top:4px;right:4px}.payments-table{border-collapse:collapse;width:100%;font-size:13px}.payments-table th{background:var(--slate-50);letter-spacing:.04em;text-transform:uppercase;color:var(--slate-500);text-align:left;padding:8px 12px;font-size:11px;font-weight:700}.payments-table td{border-bottom:1px solid var(--slate-100);padding:10px 12px}.payments-table tr:last-child td{border-bottom:0}.payments-table .amt{font-family:var(--font-mono);color:var(--slate-900);font-weight:700}.room-cover{aspect-ratio:21/9;background:linear-gradient(135deg, var(--blue-100), var(--blue-50));color:var(--blue-700);border-radius:16px;place-items:center;margin-bottom:18px;display:grid;position:relative;overflow:hidden}.room-cover img{object-fit:cover;width:100%;height:100%;display:block}.room-cover .badge-row{gap:8px;display:flex;position:absolute;bottom:16px;left:18px}.stu-header{background:var(--amber-50);border:1px solid var(--amber-200);border-radius:16px;align-items:center;gap:18px;padding:20px 22px;display:flex}.stu-header .av{background:var(--amber-500);width:64px;height:64px;color:var(--slate-900);border-radius:999px;flex-shrink:0;place-items:center;font-size:22px;font-weight:800;display:grid}.stu-header .info{flex:1}.stu-header .info h2{letter-spacing:-.02em;margin:0;font-size:24px;font-weight:800}.stu-header .info .meta{color:var(--slate-700);align-items:center;gap:14px;margin-top:4px;font-size:13px;display:flex}.stu-header .info .meta i{font-size:14px}.stu-header .badges{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.stu-header .actions{gap:10px;display:flex}.stu-header .actions .ico-action{border:1px solid var(--slate-200);cursor:pointer;width:44px;height:44px;color:var(--slate-700);background:#fff;border-radius:12px;place-items:center;font-size:20px;display:grid}.stu-header .actions .ico-action.green{color:var(--green-700);border-color:var(--green-200);background:#dcfce7}.kv{grid-template-columns:1fr auto;gap:10px 14px;font-size:14px;display:grid}.kv .k{color:var(--slate-500)}.kv .v{color:var(--slate-900);text-align:right;font-weight:600}.kv .v.mono{font-family:var(--font-mono);font-weight:500}.contact-row{border-bottom:1px solid var(--slate-100);align-items:center;gap:14px;padding:10px 0;display:flex}.contact-row:last-child{border-bottom:0}.contact-row .ico{background:var(--slate-50);width:36px;height:36px;color:var(--slate-600);border-radius:10px;flex-shrink:0;place-items:center;display:grid}.contact-row .body{flex:1;font-size:13px}.contact-row .body .lbl{color:var(--slate-500);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:600}.contact-row .body .val{color:var(--slate-900);font-weight:600}.note-card{border-radius:12px;margin-bottom:12px;padding:14px 16px}.note-card.mentioned{background:var(--amber-50);border:1px solid var(--amber-200)}.note-card.internal{background:var(--slate-50);border:1px solid var(--slate-200)}.note-card .top{color:var(--amber-700);margin-bottom:6px;font-size:12px;font-weight:700}.note-card.internal .top{color:var(--slate-600)}.note-card .body{color:var(--slate-800);font-size:13px}.note-card .when{color:var(--slate-500);margin-top:6px;font-size:11px}.timeline{flex-direction:column;display:flex}.timeline .row{border-bottom:1px solid var(--slate-100);grid-template-columns:16px 140px 1fr auto auto;align-items:flex-start;gap:16px;padding:14px 0;display:grid}.timeline .row:last-child{border-bottom:0}.timeline .row .dot{background:var(--slate-300);border-radius:999px;width:10px;height:10px;margin-top:6px}.timeline .row.active .dot{background:var(--green-500)}.timeline .row .date{color:var(--slate-600);font-size:13px}.timeline .row .desc{font-size:13px}.timeline .row .desc .sub{color:var(--slate-500);margin-top:2px;font-size:12px}.timeline .row .room{font-family:var(--font-mono);color:var(--slate-700);font-size:12px}.tenant-card{border:1px solid var(--slate-200);cursor:pointer;background:#fff;border-radius:12px;align-items:center;gap:14px;padding:14px 16px;transition:all .14s;display:flex}.tenant-card:hover{border-color:var(--brand);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.tenant-card .av{background:var(--blue-100);width:42px;height:42px;color:var(--brand);border-radius:999px;flex-shrink:0;place-items:center;font-weight:800;display:grid}.tenant-card .info{flex:1;min-width:0}.tenant-card .info .nm{font-size:14px;font-weight:700}.tenant-card .info .sub{color:var(--slate-500);font-size:12px}.tenant-card .arrow{color:var(--slate-300);font-size:18px}.activity{flex-direction:column;display:flex}.activity .item{border-bottom:1px solid var(--slate-100);align-items:flex-start;gap:12px;padding:12px 0;display:flex}.activity .item:last-child{border-bottom:0}.activity .ico{border-radius:8px;flex-shrink:0;place-items:center;width:32px;height:32px;font-size:14px;display:grid}.activity .ico.blue{background:var(--blue-50);color:var(--brand)}.activity .ico.amber{background:var(--amber-50);color:var(--amber-600)}.activity .ico.green{background:var(--green-50);color:var(--green-600)}.activity .body{flex:1}.activity .body .t{font-size:13px;line-height:1.4}.activity .body .when{color:var(--slate-500);margin-top:2px;font-size:11px}.hostel-cell{align-items:center;gap:10px;display:flex}.hostel-cell .ico{background:var(--slate-100);width:36px;height:36px;color:var(--slate-700);border-radius:8px;flex-shrink:0;place-items:center;display:grid}.hostel-cell .nm{color:var(--slate-900);font-size:13px;font-weight:600}.hostel-cell .sub{color:var(--slate-500);font-size:11px}.kyc-tabs{border-bottom:1px solid var(--slate-200);align-items:center;gap:6px;padding-bottom:0;display:flex}.kyc-tabs .tab{color:var(--slate-600);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:8px;padding:10px 16px;font:600 13px Poppins;transition:all .14s;display:inline-flex}.kyc-tabs .tab:hover{color:var(--slate-900)}.kyc-tabs .tab.active{color:var(--brand);border-bottom-color:var(--brand)}.kyc-tabs .tab .count{background:var(--slate-100);color:var(--slate-700);border-radius:999px;padding:2px 7px;font-size:10px;font-weight:700}.kyc-tabs .tab.active .count{background:var(--brand);color:#fff}.kyc-grid{grid-template-columns:1fr 1.4fr;gap:16px;display:grid}.kyc-owner{border:1px solid var(--slate-200);background:#fff;border-radius:14px;padding:20px}.kyc-owner .av{background:var(--blue-100);width:64px;height:64px;color:var(--brand);letter-spacing:-.025em;border-radius:999px;place-items:center;margin-bottom:12px;font-size:24px;font-weight:800;display:grid}.kyc-owner .nm{letter-spacing:-.02em;font-size:18px;font-weight:800}.kyc-owner .sub{color:var(--slate-500);margin-bottom:14px;font-size:12px}.kyc-owner .field-row{border-bottom:1px solid var(--slate-100);justify-content:space-between;padding:8px 0;font-size:13px;display:flex}.kyc-owner .field-row:last-of-type{border-bottom:0}.kyc-owner .field-row .k{color:var(--slate-500)}.kyc-owner .field-row .v{color:var(--slate-900);font-weight:600}.kyc-owner .field-row .v.mono{font-family:var(--font-mono);font-weight:500}.kyc-docs{gap:12px;display:grid}.doc{border:1px solid var(--slate-200);background:#fff;border-radius:14px;overflow:hidden}.doc .hdr{border-bottom:1px solid var(--slate-100);justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.doc .hdr h4{margin:0;font-size:13px;font-weight:700}.doc .ph{aspect-ratio:16/9;color:var(--slate-500);background-color:#f8fafc;background-image:linear-gradient(45deg,#0f172a0a 25%,#0000 25%),linear-gradient(-45deg,#0f172a0a 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#0f172a0a 75%),linear-gradient(-45deg,#0000 75%,#0f172a0a 75%),none;background-position:0 0,0 8px,8px -8px,-8px 0;background-repeat:repeat,repeat,repeat,repeat,repeat;background-size:16px 16px;background-attachment:scroll,scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box,border-box;place-items:center;font-size:12px;font-weight:500;display:grid}.donut-wrap{align-items:center;gap:22px;display:flex}.donut{border-radius:999px;flex-shrink:0;width:140px;height:140px;position:relative}.donut:after{content:"";background:#fff;border-radius:999px;position:absolute;inset:22px}.donut .center{text-align:center;z-index:1;place-items:center;display:grid;position:absolute;inset:22px}.donut .center .n{letter-spacing:-.02em;font-size:26px;font-weight:800;line-height:1}.donut .center .s{color:var(--slate-500);margin-top:2px;font-size:10px}.legend{flex:1;gap:10px;display:grid}.legend .row{justify-content:space-between;align-items:center;display:flex}.legend .dot{border-radius:999px;width:10px;height:10px}.legend .lbl{align-items:center;gap:8px;font-size:13px;display:inline-flex}.legend .val{font-size:14px;font-weight:700;font-family:var(--font-mono)}.legend .pct{color:var(--slate-500);font-size:11px;font-family:var(--font-mono);margin-left:8px}.gov-bar{border-top:1px solid var(--slate-200);z-index:2;background:#fff;justify-content:flex-end;gap:10px;margin:0 -32px -40px;padding:16px 32px;display:flex;position:sticky;bottom:0}.topbar-search-wrap{flex:1;max-width:480px;position:relative}.topbar-search-input{background:var(--slate-50);border:1px solid var(--slate-200);border-radius:10px;align-items:center;gap:8px;height:38px;padding:0 12px;display:flex}.topbar-search-input i{color:var(--slate-400);font-size:16px}.topbar-search-input input{color:var(--slate-900);background:0 0;border:0;outline:none;flex:1;font:400 13px Poppins}.topbar-search-input input::placeholder{color:var(--slate-400)}.topbar-search-input .clear-btn{cursor:pointer;color:var(--slate-400);background:0 0;border:0;padding:0}.topbar-search-input:focus-within{border-color:var(--brand);box-shadow:var(--ring-focus);background:#fff}.topbar-search-results{border:1px solid var(--slate-200);box-shadow:var(--shadow-lg);z-index:30;background:#fff;border-radius:12px;max-height:480px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto}.topbar-search-results .empty{text-align:center;color:var(--slate-500);padding:24px;font-size:13px}.topbar-search-results .group{padding:6px}.topbar-search-results .group+.group{border-top:1px solid var(--slate-100)}.topbar-search-results .group-title{color:var(--slate-500);letter-spacing:.08em;text-transform:uppercase;padding:6px 10px;font-size:10px;font-weight:700}.topbar-search-results .result{color:var(--slate-900);cursor:pointer;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;text-decoration:none;display:flex}.topbar-search-results .result:hover{background:var(--slate-50)}.topbar-search-results .result .ico{border-radius:8px;flex-shrink:0;place-items:center;width:32px;height:32px;font-size:12px;font-weight:800;display:grid}.topbar-search-results .result .body{flex:1;min-width:0}.topbar-search-results .result .body .t{color:var(--slate-900);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.topbar-search-results .result .body .sub{color:var(--slate-500);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.topbar-search-results .result>i:last-child{color:var(--slate-300)}.topbar-dropdown-wrap{position:relative}.topbar-dropdown{border:1px solid var(--slate-200);min-width:340px;max-width:380px;box-shadow:var(--shadow-lg);z-index:30;background:#fff;border-radius:14px;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden}.topbar-dropdown .head{border-bottom:1px solid var(--slate-100);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.topbar-dropdown .head h4{margin:0;font-size:14px;font-weight:700}.topbar-dropdown .list{max-height:440px;overflow-y:auto}.topbar-dropdown .item{border-bottom:1px solid var(--slate-50);color:var(--slate-900);align-items:flex-start;gap:12px;padding:12px 16px;text-decoration:none;display:flex}.topbar-dropdown .item:hover{background:var(--slate-50)}.topbar-dropdown .item:last-child{border-bottom:0}.topbar-dropdown .item .ico{border-radius:8px;flex-shrink:0;place-items:center;width:32px;height:32px;font-size:16px;display:grid}.topbar-dropdown .item .ico.blue{background:var(--blue-50);color:var(--brand)}.topbar-dropdown .item .ico.amber{background:var(--amber-50);color:var(--amber-700)}.topbar-dropdown .item .ico.green{background:var(--green-50);color:var(--green-700)}.topbar-dropdown .item .ico.red{background:var(--red-50);color:var(--red-700)}.topbar-dropdown .item .body{flex:1;min-width:0}.topbar-dropdown .item .body .t{color:var(--slate-900);margin-bottom:2px;font-size:13px;font-weight:700}.topbar-dropdown .item .body .sub{color:var(--slate-600);font-size:12px;line-height:1.4}.topbar-dropdown .item .body .when{color:var(--slate-400);margin-top:4px;font-size:11px}.onboarding-stepper{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin-bottom:24px;display:flex}.step-pill{border:1px solid var(--slate-200);background:#fff;border-radius:999px;align-items:center;gap:8px;padding:8px 14px 8px 8px;font-size:13px;display:inline-flex}.step-pill .num{background:var(--slate-200);width:24px;height:24px;color:var(--slate-600);border-radius:999px;place-items:center;font-size:12px;font-weight:800;display:grid}.step-pill.done .num{background:var(--green-500);color:#fff}.step-pill.active{border-color:var(--brand);background:var(--blue-50)}.step-pill.active .num{background:var(--brand);color:#fff}.step-pill.active .lbl{color:var(--brand);font-weight:700}.step-arrow{color:var(--slate-300)}.auth-wrap{grid-template-columns:1fr 1fr;min-height:100vh;display:grid}.auth-art{background:linear-gradient(135deg, var(--blue-900), var(--blue-700));color:#fff;flex-direction:column;justify-content:space-between;padding:48px;display:flex}.auth-art .brand img{height:40px}.auth-art h2{color:#fff;letter-spacing:-.025em;max-width:420px;font-size:36px;font-weight:800}.auth-art p{color:#bfdbfe;max-width:440px;margin-top:12px}.auth-form{background:#fff;justify-content:center;align-items:center;padding:48px;display:flex}.auth-form .inner{width:100%;max-width:380px}.auth-form h1{margin-bottom:8px;font-size:30px}.auth-form .sub{color:var(--slate-500);margin-bottom:32px}.auth-form .field{margin-bottom:16px}.auth-form .meta{color:var(--slate-500);text-align:center;margin-top:18px;font-size:13px}@media (width<=900px){.auth-wrap{grid-template-columns:1fr}.auth-art{display:none}}.modal-backdrop{z-index:50;animation:fade-in .14s var(--ease-out);background:#0f172a8c;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal-dialog{box-shadow:var(--shadow-lg);width:100%;max-width:760px;max-height:calc(100vh - 48px);animation:pop-in .22s var(--ease-spring);background:#fff;border-radius:18px;flex-direction:column;display:flex;overflow:hidden}.modal-dialog.sm{max-width:480px}.modal-dialog.md{max-width:640px}.modal-dialog.lg{max-width:920px}.modal-head{border-bottom:1px solid var(--slate-100);justify-content:space-between;align-items:flex-start;gap:16px;padding:24px 28px;display:flex}.modal-head h2{letter-spacing:-.02em;margin:0;font-size:22px;font-weight:800}.modal-head .sub{color:var(--slate-500);margin-top:4px;font-size:13px}.modal-head .close{background:var(--slate-100);cursor:pointer;width:36px;height:36px;color:var(--slate-700);border:0;border-radius:999px;flex-shrink:0;place-items:center;display:grid}.modal-head .close:hover{background:var(--slate-200)}.modal-body{flex:1;padding:24px 28px;overflow-y:auto}.modal-foot{border-top:1px solid var(--slate-100);background:var(--slate-50);justify-content:flex-end;align-items:center;gap:10px;padding:18px 28px;display:flex}.modal-foot .left{margin-right:auto}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pop-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.stepper{grid-auto-columns:1fr;grid-auto-flow:column;gap:8px;margin-top:-8px;padding:0 28px 4px;display:grid}.stepper .step{background:var(--slate-200);border-radius:999px;height:5px}.stepper .step.done{background:var(--green-500)}.stepper .step.active{background:var(--brand)}.confirm-icon{border-radius:999px;place-items:center;width:80px;height:80px;margin:8px auto 16px;font-size:36px;display:grid}.confirm-icon.amber{background:var(--amber-100);color:var(--amber-600)}.confirm-icon.blue{background:var(--blue-100);color:var(--brand)}.confirm-icon.green{background:var(--green-100);color:var(--green-600)}.confirm-icon.red{background:var(--red-100);color:var(--red-600)}.confirm-body{text-align:center;color:var(--slate-800);max-width:480px;margin:0 auto;font-size:16px}.dropzone{border:2px dashed var(--slate-300);text-align:center;background:var(--slate-50);cursor:pointer;border-radius:14px;flex-direction:column;align-items:center;gap:10px;padding:36px 24px;transition:all .14s;display:flex}.dropzone:hover{border-color:var(--brand);background:var(--brand-soft)}.dropzone .ico{width:48px;height:48px;color:var(--slate-500);border:1px solid var(--slate-200);background:#fff;border-radius:14px;place-items:center;font-size:24px;display:grid}.dropzone .label{color:var(--brand);font-size:14px;font-weight:600}.dropzone .hint{color:var(--slate-500);font-size:12px}.dropzone input[type=file]{display:none}.photo-grid{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}.photo-tile{aspect-ratio:4/3;background:linear-gradient(135deg, var(--blue-100), var(--blue-50));color:var(--brand);cursor:pointer;border-radius:14px;place-items:center;font-weight:600;display:grid;position:relative;overflow:hidden}.photo-tile img{object-fit:cover;width:100%;height:100%}.photo-tile .cover{background:var(--slate-900);color:#fff;letter-spacing:.04em;text-transform:uppercase;z-index:1;border-radius:6px;padding:3px 8px;font-size:10px;font-weight:700;position:absolute;top:8px;left:8px}.photo-tile .rm{color:#fff;cursor:pointer;opacity:0;z-index:1;background:#0f172ab3;border:0;border-radius:999px;place-items:center;width:24px;height:24px;transition:opacity .14s;display:grid;position:absolute;top:8px;right:8px}.photo-tile:hover .rm{opacity:1}.photo-tile.add{background:var(--slate-50);border:2px dashed var(--slate-300);color:var(--slate-500);aspect-ratio:4/3}.photo-tile.add:hover{border-color:var(--brand);color:var(--brand)}.amenity-grid{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.amenity{border:1.5px solid var(--slate-200);cursor:pointer;-webkit-user-select:none;user-select:none;background:#fff;border-radius:12px;align-items:center;gap:10px;padding:12px 14px;transition:all .14s;display:flex}.amenity:hover{border-color:var(--slate-300)}.amenity.on{border-color:var(--brand);background:var(--blue-50)}.amenity i:first-child{color:var(--slate-500);font-size:18px}.amenity.on i:first-child{color:var(--brand)}.amenity .name{color:var(--slate-700);flex:1;font-size:13px;font-weight:600}.amenity.on .name{color:var(--slate-900)}.amenity .check{border:2px solid var(--slate-300);color:#fff;border-radius:999px;flex-shrink:0;place-items:center;width:22px;height:22px;display:grid}.amenity.on .check{background:var(--brand);border-color:var(--brand)}.amenity.on .check:after{content:"";border:2px solid #fff;border-width:0 2px 2px 0;width:6px;height:10px;transform:rotate(45deg)translate(-1px,-1px)}.section{border:1px solid var(--slate-200);background:#fff;border-radius:14px;margin-bottom:18px}.section .hdr{border-bottom:1px solid var(--slate-100);justify-content:space-between;align-items:center;padding:18px 22px;display:flex}.section .hdr h3{margin:0;font-size:16px;font-weight:700}.section .body{padding:22px}.crumbs{color:var(--slate-500);align-items:center;gap:8px;margin-bottom:6px;font-size:13px;display:flex}.crumbs a{color:var(--slate-500);text-decoration:none}.crumbs a:hover{color:var(--brand);text-decoration:underline}.crumbs .sep{color:var(--slate-300)}.muted{color:var(--slate-500)}.mono{font-family:var(--font-mono)}.flex{display:flex}.flex-col{flex-direction:column}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.mt-3{margin-top:12px}.mt-4{margin-top:16px}.mb-3{margin-bottom:12px}.mb-4{margin-bottom:16px}.text-right{text-align:right}
