:root{--font-sans: "Plus Jakarta Sans", "Inter", "Segoe UI", sans-serif;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--radius-sm: .5rem;--radius-md: .75rem;--radius-lg: 1rem;--radius-xl: 1.25rem;--radius-pill: 9999px;--shadow-xs: 0 1px 2px rgba(9, 26, 44, .08);--shadow-sm: 0 6px 16px rgba(9, 26, 44, .08);--shadow-md: 0 14px 32px rgba(9, 26, 44, .12);--shadow-lg: 0 24px 56px rgba(9, 26, 44, .2);--color-bg: #f5f8fc;--color-bg-elevated: #ffffff;--color-bg-soft: #ecf3f9;--color-border: #d6e1ea;--color-border-strong: #b9cad9;--color-text: #102940;--color-text-soft: #4b657f;--color-text-muted: #6d849b;--color-primary: #0f8ea2;--color-primary-hover: #0b7586;--color-primary-soft: #daf4f8;--color-secondary: #edf3f8;--color-secondary-hover: #e0ebf4;--color-danger: #d23b3b;--color-danger-hover: #b72f2f;--color-danger-soft: #ffe8e8;--color-success: #1d8a58;--color-success-soft: #dbf4e8;--color-warning: #b67400;--color-warning-soft: #fff0d6;--focus-ring: 0 0 0 3px rgba(15, 142, 162, .24)}[data-theme=dark]{--color-bg: #0e1724;--color-bg-elevated: #121f2f;--color-bg-soft: #1a2a3d;--color-border: #2a3c52;--color-border-strong: #3a536f;--color-text: #e8f2fb;--color-text-soft: #b8cbdd;--color-text-muted: #91a9bf;--color-primary: #2db1c3;--color-primary-hover: #239cad;--color-primary-soft: #113c44;--color-secondary: #1b2b3f;--color-secondary-hover: #22354d;--color-danger: #eb5757;--color-danger-hover: #d84b4b;--color-danger-soft: #45242a;--color-success: #33b174;--color-success-soft: #163e2d;--color-warning: #ffb949;--color-warning-soft: #4d3c1c;--focus-ring: 0 0 0 3px rgba(45, 177, 195, .32)}*{margin:0;padding:0;box-sizing:border-box}html,body{min-height:100%}html{color-scheme:light dark}body{font-family:var(--font-sans);background:radial-gradient(circle at 84% 8%,rgba(15,142,162,.08),transparent 28%),linear-gradient(180deg,var(--color-bg) 0%,color-mix(in srgb,var(--color-bg) 86%,#ffffff) 100%);color:var(--color-text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{background:color-mix(in srgb,var(--color-primary) 22%,transparent)}button,input,select,textarea{font:inherit;color:inherit}img,svg{max-width:100%;display:block}a{color:inherit;text-decoration:none}:focus-visible{outline:none;box-shadow:var(--focus-ring)}.page-feedback,.hostel-empty-state{border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg);padding:var(--space-4);background:color-mix(in srgb,var(--color-bg-elevated) 82%,var(--color-primary-soft));color:var(--color-text-soft)}.page-feedback.error{border-color:color-mix(in srgb,var(--color-danger) 45%,var(--color-border));color:var(--color-danger)}.skeleton{background:linear-gradient(90deg,color-mix(in srgb,var(--color-bg-soft) 88%,#ffffff) 20%,color-mix(in srgb,var(--color-bg-soft) 72%,#ffffff),color-mix(in srgb,var(--color-bg-soft) 88%,#ffffff) 60%);background-size:240% 100%;animation:skeletonShift 1.2s linear infinite}@keyframes skeletonShift{0%{background-position:200% 0}to{background-position:-200% 0}}.Toastify__toast-container{padding:var(--space-3)}.Toastify__toast{border-radius:var(--radius-md);background:var(--color-bg-elevated);color:var(--color-text);border:1px solid var(--color-border);box-shadow:var(--shadow-md)}.Toastify__progress-bar{background:linear-gradient(120deg,var(--color-primary),color-mix(in srgb,var(--color-primary) 65%,#0dcaf0))}h1,h2,h3,h4,h5,h6{margin-bottom:var(--space-2);line-height:1.2;letter-spacing:-.02em;color:var(--color-text)}h1{font-size:clamp(1.8rem,2.6vw,2.45rem);font-weight:800}h2{font-size:clamp(1.45rem,2.2vw,1.9rem);font-weight:750}h3{font-size:clamp(1.15rem,1.7vw,1.35rem);font-weight:700}h4{font-size:1.02rem;font-weight:680}h5,h6{font-size:.94rem;font-weight:650}p{margin-bottom:var(--space-3);line-height:1.65;color:var(--color-text-soft);font-size:.97rem}small,.text-caption{font-size:.78rem;line-height:1.4;color:var(--color-text-muted)}.button,.primary-btn,.secondary-btn,.primary-outline,.danger-btn,.danger-outline,.btn-primary,.btn-secondary,.manage-btn,.add-btn{--btn-bg: var(--color-primary);--btn-color: #ffffff;--btn-border: transparent;--btn-hover-bg: var(--color-primary-hover);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:42px;padding:.625rem .95rem;border-radius:var(--radius-md);border:1px solid var(--btn-border);background:var(--btn-bg);color:var(--btn-color);font-size:.9rem;font-weight:650;line-height:1;cursor:pointer;transition:transform .16s ease,background-color .16s ease,border-color .16s ease,box-shadow .16s ease;box-shadow:var(--shadow-xs)}.button:hover,.primary-btn:hover,.secondary-btn:hover,.primary-outline:hover,.danger-btn:hover,.danger-outline:hover,.btn-primary:hover,.btn-secondary:hover,.manage-btn:hover,.add-btn:hover{background:var(--btn-hover-bg);border-color:var(--btn-hover-bg);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.button:active,.primary-btn:active,.secondary-btn:active,.primary-outline:active,.danger-btn:active,.danger-outline:active,.btn-primary:active,.btn-secondary:active,.manage-btn:active,.add-btn:active{transform:translateY(0)}.button-primary,.primary-btn,.btn-primary,.manage-btn,.add-btn{--btn-bg: linear-gradient(130deg, var(--color-primary), color-mix(in srgb, var(--color-primary) 75%, #0a6c7b));--btn-color: #ffffff;--btn-hover-bg: linear-gradient(130deg, var(--color-primary-hover), color-mix(in srgb, var(--color-primary-hover) 80%, #075e6b))}.button-secondary,.secondary-btn,.btn-secondary{--btn-bg: var(--color-secondary);--btn-color: var(--color-text);--btn-border: var(--color-border);--btn-hover-bg: var(--color-secondary-hover)}.button-ghost,.primary-outline{--btn-bg: transparent;--btn-color: var(--color-primary);--btn-border: color-mix(in srgb, var(--color-primary) 45%, var(--color-border));--btn-hover-bg: color-mix(in srgb, var(--color-primary-soft) 70%, transparent)}.danger-btn,.danger-outline{--btn-color: var(--color-danger);--btn-border: color-mix(in srgb, var(--color-danger) 48%, var(--color-border))}.danger-btn{--btn-bg: var(--color-danger-soft);--btn-hover-bg: color-mix(in srgb, var(--color-danger-soft) 55%, var(--color-danger))}.danger-outline{--btn-bg: transparent;--btn-hover-bg: color-mix(in srgb, var(--color-danger-soft) 68%, transparent)}.logout-btn,.delete-confirm-btn{--btn-bg: linear-gradient(130deg, var(--color-danger), color-mix(in srgb, var(--color-danger) 74%, #a12020));--btn-color: #ffffff;--btn-hover-bg: linear-gradient(130deg, var(--color-danger-hover), color-mix(in srgb, var(--color-danger-hover) 82%, #971c1c))}.link-primary{background:none;border:none;color:var(--color-primary);cursor:pointer;font-weight:650;padding:0}.w-100{width:100%}button:disabled{opacity:.56;cursor:not-allowed;box-shadow:none;transform:none}@media(max-width:768px){.button,.primary-btn,.secondary-btn,.primary-outline,.danger-btn,.danger-outline{min-height:40px}}.card,.hostel-card,.room-card,.stat-card,.delete-modal-content{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-elevated);box-shadow:var(--shadow-sm)}.hostel-card{overflow:hidden;transition:transform .18s ease,box-shadow .18s ease}.hostel-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.hostel-img{width:100%;height:176px;object-fit:cover}.hostel-body{padding:var(--space-4)}.hostel-body h3{margin-bottom:var(--space-2)}.address,.owner{color:var(--color-text-soft);font-size:.86rem}.meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2);margin:var(--space-3) 0;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:color-mix(in srgb,var(--color-bg-soft) 65%,var(--color-bg-elevated))}.meta-item{text-align:center}.meta-label{display:block;color:var(--color-text-muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.05em}.meta-value{display:block;margin-top:var(--space-1);color:var(--color-text);font-size:.95rem;font-weight:700}.hostel-card-actions{display:flex;gap:var(--space-3)}.table-wrap{border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:auto;background:var(--color-bg-elevated);box-shadow:var(--shadow-sm)}.table{width:100%;border-collapse:collapse;min-width:640px}.table th,.table td{padding:.75rem .9rem;border-bottom:1px solid var(--color-border);text-align:left;color:var(--color-text-soft);font-size:.88rem}.table th{color:var(--color-text);font-weight:700;background:color-mix(in srgb,var(--color-bg-soft) 70%,var(--color-bg-elevated))}.table tbody tr:hover{background:color-mix(in srgb,var(--color-primary-soft) 35%,var(--color-bg-elevated))}.delete-btn{min-height:42px;min-width:110px;border-radius:var(--radius-md);border:1px solid color-mix(in srgb,var(--color-danger) 44%,var(--color-border));background:var(--color-danger-soft);color:var(--color-danger);font-weight:700;cursor:pointer;transition:transform .16s ease,background-color .16s ease}.delete-btn:hover{background:color-mix(in srgb,var(--color-danger-soft) 50%,var(--color-danger));transform:translateY(-1px)}@media(max-width:768px){.meta{grid-template-columns:1fr}.hostel-card-actions{flex-direction:column}}.navbar{width:100%;background:color-mix(in srgb,var(--color-bg-elevated) 90%,var(--color-bg-soft));border-bottom:1px solid var(--color-border);padding:.75rem 0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.nav-actions{display:flex;gap:var(--space-3);align-items:center}.nav-link{color:var(--color-text-soft);font-weight:600}.nav-link:hover{color:var(--color-primary)}.sidebar{width:260px;min-height:100vh;background-color:#0f172a;color:#fff;position:fixed;top:0;left:0;padding:var(--space-5) var(--space-3);display:flex;flex-direction:column}.sidebar-header{font-size:1.3rem;font-weight:600;margin-bottom:var(--space-8);color:#60a5fa}.sidebar-menu{display:flex;flex-direction:column;gap:var(--space-2)}.sidebar-link{display:flex;align-items:center;gap:var(--space-3);padding:.7rem 1rem;border-radius:var(--radius-md);color:#e5e7eb;text-decoration:none;font-size:.95rem;font-weight:500;transition:background .2s ease}.sidebar-link:hover{background-color:#1e293b;color:#fff}.sidebar-link.active{background-color:#2563eb;color:#fff}.sidebar-footer{margin-top:auto;padding-top:var(--space-4);border-top:1px solid #1e293b}.page-center{min-height:100vh;display:flex;justify-content:center;align-items:center;background:radial-gradient(circle at 16% 10%,color-mix(in srgb,var(--color-primary-soft) 48%,transparent),transparent 36%),var(--color-bg);padding:var(--space-4)}.form-wrapper{max-width:520px;margin:0 auto;padding:0 var(--space-4)}.form,.auth-form{display:flex;flex-direction:column;gap:var(--space-4);width:100%}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}.form-group,.field{display:flex;flex-direction:column;gap:var(--space-2)}.form-group label,.form-label,.field label{font-size:.82rem;font-weight:650;color:var(--color-text-soft)}.form-input,.form-textarea,.search-input,.allocation-modal input,.allocation-modal select,.field select{width:100%;min-height:42px;border-radius:var(--radius-md);border:1px solid var(--color-border);background:color-mix(in srgb,var(--color-bg-elevated) 94%,var(--color-bg-soft));color:var(--color-text);padding:.65rem .85rem;font-size:.92rem;transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease}.form-input::placeholder,.form-textarea::placeholder,.search-input::placeholder{color:var(--color-text-muted)}.form-textarea{min-height:106px;resize:vertical;line-height:1.5}.form-input:focus,.form-textarea:focus,.search-input:focus,.allocation-modal input:focus,.allocation-modal select:focus,.field select:focus{border-color:color-mix(in srgb,var(--color-primary) 58%,var(--color-border));box-shadow:var(--focus-ring)}.auth-card h2{margin-bottom:var(--space-1)}.auth-card p{margin-bottom:var(--space-4);color:var(--color-text-soft)}.card{background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-5)}.error,.error-text{color:var(--color-danger);font-size:.75rem;margin-top:0}.hostel-page{padding:var(--space-5)}.hostel-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-4);flex-wrap:wrap;margin-bottom:var(--space-5)}.hostel-heading-wrap p{margin:var(--space-1) 0 0;color:var(--color-text-soft)}.hostel-actions-wrap{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.search-input{width:min(340px,100%)}.hostel-ui-form{max-width:1020px;margin:0 auto;display:grid;gap:var(--space-4)}.hostel-room-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:var(--space-3);align-items:end}.floor-card{border:1px solid var(--color-border);border-radius:var(--radius-md);background:color-mix(in srgb,var(--color-bg-elevated) 86%,var(--color-bg-soft));overflow:hidden}.floor-header{width:100%;border:0;background:color-mix(in srgb,var(--color-bg-soft) 78%,var(--color-bg-elevated));color:var(--color-text);padding:var(--space-3) var(--space-4);display:flex;justify-content:space-between;align-items:center;font-weight:650}.floor-body{display:grid;gap:var(--space-3);padding:var(--space-4)}.hostel-form-actions{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-3)}.hostel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:var(--space-5)}@media(max-width:900px){.hostel-room-grid{grid-template-columns:1fr 1fr}}@media(max-width:768px){.form-grid{grid-template-columns:1fr}.hostel-page{padding:var(--space-3)}.hostel-grid{grid-template-columns:1fr}.hostel-form-actions{flex-direction:column;align-items:stretch}}.hero{min-height:80vh;display:flex;flex-direction:column;justify-content:center;align-items:center;background:linear-gradient(135deg,#3b82f6,#60a5fa);color:#fff;padding:2rem}.hero .heading-1{font-size:3rem;margin-bottom:1rem}.hero .lead{font-size:1.25rem;margin-bottom:2rem}.landing{--landing-bg-1: #0f172a;--landing-bg-2: #13395f;--landing-accent: #1f9fb5;--landing-soft: #e6f4f7;min-height:100vh;padding:2.5rem;background:radial-gradient(circle at 12% 14%,rgba(31,159,181,.22),transparent 42%),radial-gradient(circle at 86% 80%,rgba(245,158,11,.2),transparent 38%),linear-gradient(140deg,var(--landing-bg-1) 0%,#0b233d 48%,var(--landing-bg-2) 100%);color:#f8fcff;position:relative;overflow:hidden}.landing-overlay{position:absolute;inset:0;background:linear-gradient(115deg,rgba(255,255,255,.06),transparent 34%),linear-gradient(290deg,rgba(255,255,255,.04),transparent 48%);pointer-events:none}.landing-shell{position:relative;z-index:1;max-width:1240px;margin:0 auto;min-height:calc(100vh - 5rem);display:grid;grid-template-columns:1.2fr minmax(320px,470px);gap:2.5rem;align-items:center}.landing-brand{animation:landingFade .7s ease}.landing-kicker{display:inline-flex;align-items:center;border:1px solid rgba(255,255,255,.25);background:#ffffff14;border-radius:999px;padding:.45rem .95rem;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:#d0edf3;margin-bottom:1rem}.landing-title{font-size:clamp(2.1rem,4.8vw,3.8rem);line-height:1.08;margin:0;color:#f6fbff;letter-spacing:.02em}.landing-title-wrap{display:flex;align-items:center;gap:.75rem}.landing-logo{width:clamp(42px,5vw,56px);height:clamp(42px,5vw,56px);object-fit:contain;border-radius:10px}.landing-subtitle{max-width:620px;margin:1rem 0 1.8rem;color:#deebf4;font-size:clamp(1rem,2vw,1.15rem)}.landing-points{list-style:none;padding:0;margin:0;display:grid;gap:.8rem}.landing-points li{background:#09172766;border:1px solid rgba(230,244,247,.2);border-radius:14px;padding:.9rem 1rem .9rem 2.3rem;position:relative;color:#eef8fd;transition:transform .25s ease,border-color .25s ease}.landing-points li:before{content:"";width:10px;height:10px;border-radius:50%;background:linear-gradient(140deg,#1f9fb5,#f59e0b);position:absolute;left:.95rem;top:1.2rem;box-shadow:0 0 0 6px #1f9fb524}.landing-points li:hover{transform:translate(4px);border-color:#e6f4f766}.landing-metrics{margin-top:1.3rem;display:flex;gap:.85rem;flex-wrap:wrap}.metric-chip{min-width:110px;border-radius:12px;background:#ffffff1f;border:1px solid rgba(255,255,255,.22);padding:.65rem .85rem;display:grid;gap:.15rem}.metric-chip strong{font-size:1.02rem;font-weight:700;color:#f6fbff}.metric-chip span{font-size:.82rem;color:#d5e9f2}.landing-auth-panel{border-radius:22px;border:1px solid rgba(255,255,255,.22);background:linear-gradient(165deg,#fff3,#ffffff1a);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 24px 60px #030c1a59;padding:1rem;animation:landingFade .8s ease}.landing-auth-switch{display:flex;justify-content:center;gap:.5rem;margin-bottom:1rem}.switch-btn{width:min(280px,100%);border:1px solid rgba(255,255,255,.24);background:#ffffff14;color:#e5f1f8;border-radius:10px;padding:.65rem;font-weight:600;letter-spacing:.02em;cursor:pointer;transition:all .2s ease}.switch-btn:hover{border-color:#ffffff73}.switch-btn.active{background:linear-gradient(120deg,#1f9fb5,#157e91);border-color:transparent;color:#f3fcff}.landing .embedded-auth-wrapper,.landing .page-center{min-height:auto;width:100%;background:transparent;padding:0}.landing .auth-card{border-radius:16px;background:#f8fcff;color:#0f2a44;border:1px solid #d7e6ef;padding:1.1rem}.landing .auth-card h2{margin:0;text-transform:none;letter-spacing:0;background:none;-webkit-text-fill-color:#0f2a44;color:#0f2a44;text-shadow:none;font-size:1.4rem;text-align:left;font-family:inherit;font-weight:700}.landing .auth-card p{margin:.35rem 0 1rem;color:#36546c;text-shadow:none}.landing .auth-form,.landing .form-grid{width:100%;gap:.85rem}.landing .form-grid{grid-template-columns:1fr}.landing .form-group{margin-bottom:.2rem;gap:.4rem}.landing .form-input,.landing .form-textarea{width:100%;padding:.7rem .8rem;border-radius:10px;border:1px solid #c3d8e4;box-shadow:none;font-size:.95rem}.landing .form-input:focus,.landing .form-textarea:focus{border-color:#1f9fb5;box-shadow:0 0 0 3px #1f9fb529;transform:none}.landing .auth-form button,.landing .form-submit,.landing .button.w-100,.landing .button.w-100%{width:100%;margin:0}.landing .button.button-primary{background:linear-gradient(120deg,#1f9fb5,#157e91);border-radius:10px;font-weight:700;border:none}.landing .button.button-primary:hover{background:linear-gradient(120deg,#18879c,#126e7f)}.landing .text-center{margin-top:.9rem;font-size:.92rem}.landing .link-primary{margin-left:.35rem;color:#146d83}@keyframes landingFade{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1024px){.landing{padding:1.7rem}.landing-shell{grid-template-columns:1fr;min-height:auto;gap:1.4rem}.landing-brand{order:2}.landing-auth-panel{order:1;max-width:560px;margin:0 auto;width:100%}}@media(max-width:640px){.landing{padding:1.2rem .9rem}.landing-title{font-size:2rem}.landing-title-wrap{gap:.55rem}.landing-subtitle{font-size:.98rem}.landing-points li{padding:.8rem .85rem .8rem 2rem}.landing-metrics{gap:.6rem}.metric-chip{min-width:100px}.landing-auth-panel{padding:.8rem;border-radius:16px}.landing .auth-card{padding:.9rem}}.dashboard-container{min-height:100vh;color:var(--color-text)}.sidebar{width:272px;min-height:100vh;position:fixed;inset:0 auto 0 0;padding:var(--space-5) var(--space-3);background:linear-gradient(180deg,#0f253b,#15314a,#172f45);color:#e8f2fb;border-right:1px solid rgba(255,255,255,.08);box-shadow:10px 0 34px #07111e57;display:grid;grid-template-rows:auto 1fr auto;gap:var(--space-4)}.logo{margin:0;font-size:1.1rem;letter-spacing:.01em;color:#f4faff}.menu{list-style:none;padding:0;margin:0;display:grid;gap:var(--space-2)}.menu li{border-radius:var(--radius-md);border:1px solid transparent}.menu-btn{width:100%;border:0;background:transparent;color:#cde2f2;text-align:left;cursor:pointer;border-radius:inherit;display:flex;align-items:center;gap:var(--space-3);padding:.64rem .72rem;transition:background-color .16s ease,transform .16s ease,color .16s ease}.menu li:hover .menu-btn{background:#ffffff17;color:#f2f9ff;transform:translate(2px)}.menu li.active{border-color:#a4d8e557;background:linear-gradient(90deg,#2db1c347,#17768f57)}.menu li.active .menu-btn{color:#fbfeff}.nav-icon{width:1.12rem;height:1.12rem;display:inline-flex}.nav-icon svg{width:100%;height:100%;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.nav-label{font-size:.92rem;font-weight:560}.sidebar-footer-actions{display:grid;gap:var(--space-3)}.theme-toggle-btn{width:100%;min-height:40px;border-radius:var(--radius-md);border:1px solid rgba(255,255,255,.25);background:#ffffff1a;color:#ecf7ff;cursor:pointer;font-weight:650}.theme-toggle-btn:hover{background:#fff3}.language-select-wrap{width:100%}.language-select{width:100%;min-height:40px;border-radius:var(--radius-md);border:1px solid rgba(255,255,255,.26);background:#ffffff1a;color:#ecf7ff;padding:.52rem .72rem;font-weight:620}.language-select option{color:#0f2a44}.sidebar-footer-actions .logout-btn{width:100%;min-height:40px;border-radius:var(--radius-md);border:1px solid rgba(255,255,255,.3);background:linear-gradient(130deg,#d84d4d,#b82d2d);color:#fff8f8;font-weight:700;box-shadow:0 8px 20px #b82d2d54}.sidebar-footer-actions .logout-btn:hover{background:linear-gradient(130deg,#cb3a3a,#a72323);box-shadow:0 10px 24px #b82d2d73}.dashboard-main{margin-left:272px;width:calc(100% - 272px);min-height:100vh;padding:var(--space-6)}.dashboard-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-5)}.dashboard-header h1{margin:0}.dashboard-subtitle{margin:var(--space-1) 0 0;color:var(--color-text-soft)}.dashboard-pill{border-radius:var(--radius-pill);padding:.38rem .78rem;border:1px solid color-mix(in srgb,var(--color-primary) 35%,var(--color-border));background:color-mix(in srgb,var(--color-primary-soft) 70%,var(--color-bg-elevated));color:var(--color-primary);font-size:.75rem;font-weight:700}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-4)}.stat-card{padding:var(--space-4);transition:transform .18s ease,box-shadow .18s ease}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.stat-card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-3)}.stat-card h3{margin:0;color:var(--color-text-muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}.stat-icon{min-width:38px;height:30px;border-radius:var(--radius-pill);display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:.72rem;color:var(--color-primary);background:var(--color-primary-soft)}.stat-card--success .stat-icon{color:var(--color-success);background:var(--color-success-soft)}.stat-card--warm .stat-icon{color:var(--color-warning);background:var(--color-warning-soft)}.stat-card--sky .stat-icon{color:#2f74bf;background:#dcedff}.stat-value{margin:0;font-size:clamp(1.3rem,2.4vw,1.8rem);font-weight:780}.stat-change{margin:var(--space-1) 0 0;color:var(--color-text-soft);font-size:.83rem}.activity-card{margin-top:var(--space-4);padding:var(--space-4)}.activity-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-3)}.activity-badge{border-radius:var(--radius-pill);border:1px solid color-mix(in srgb,var(--color-success) 32%,var(--color-border));background:var(--color-success-soft);color:var(--color-success);padding:.18rem .52rem;font-size:.72rem;font-weight:700}.activity-list{list-style:none;display:grid;gap:var(--space-3);padding:0;margin:0}.activity-item{border:1px solid var(--color-border);border-radius:var(--radius-md);background:color-mix(in srgb,var(--color-bg-elevated) 90%,var(--color-bg-soft));padding:.66rem .76rem;display:grid;gap:var(--space-2);grid-template-columns:auto 1fr auto;align-items:center}.activity-dot{width:9px;height:9px;border-radius:var(--radius-pill);background:var(--color-primary)}.activity-item--success .activity-dot{background:var(--color-success)}.activity-item--warning .activity-dot{background:var(--color-warning)}.activity-item p,.activity-item time{margin:0}.activity-item p{color:var(--color-text-soft)}.activity-item time{color:var(--color-text-muted);font-size:.78rem}@media(max-width:1024px){.sidebar{width:238px}.dashboard-main{margin-left:238px;width:calc(100% - 238px);padding:var(--space-5)}}@media(max-width:768px){.sidebar{position:sticky;width:100%;min-height:auto;inset:0;border-right:none;border-bottom:1px solid rgba(255,255,255,.1);grid-template-rows:auto auto auto;z-index:40}.menu{display:flex;overflow-x:auto;padding-bottom:var(--space-1)}.menu li{flex:0 0 auto}.dashboard-main{margin-left:0;width:100%;padding:var(--space-4) var(--space-3)}.dashboard-header{flex-direction:column}.activity-item{grid-template-columns:auto 1fr}.activity-item time{grid-column:2}}.allocation-container{min-height:100vh;padding:var(--space-5)}.allocation-header h2{margin:0}.allocation-header p{margin:var(--space-1) 0 0;color:var(--color-text-soft)}.filter-bar{display:flex;flex-wrap:wrap;gap:var(--space-3);margin:var(--space-4) 0 var(--space-5)}.allocation-room-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--space-4);align-items:start}.room-card{position:relative;padding:var(--space-4)}.room-card h4{margin:0;font-size:.98rem}.room-sharing{margin-top:var(--space-2)}.sharing-badge{display:inline-flex;align-items:center;padding:.28rem .64rem;border-radius:var(--radius-pill);background:var(--color-primary-soft);color:var(--color-primary);font-size:.72rem;font-weight:700}.bed-row{margin-top:var(--space-4);display:flex;flex-wrap:wrap;gap:var(--space-2)}.bed-wrapper{position:relative;z-index:2}.bed-wrapper:hover,.bed-wrapper:focus-within{z-index:50}.bed{width:45px;height:45px;border-radius:var(--radius-md);border:1px solid var(--color-border);font-weight:750;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.bed:hover{transform:translateY(-1px)}.bed.available{background:var(--color-success-soft);border-color:color-mix(in srgb,var(--color-success) 38%,var(--color-border));color:var(--color-success)}.bed.occupied{background:var(--color-danger-soft);border-color:color-mix(in srgb,var(--color-danger) 38%,var(--color-border));color:var(--color-danger)}.bed-info-card{position:absolute;left:50%;top:-172px;transform:translate(-50%);width:234px;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg-elevated);box-shadow:var(--shadow-lg);padding:var(--space-3)}.bed-info-card .name{margin:0 0 var(--space-2);font-size:.98rem}.bed-info-card p{margin:0 0 var(--space-1);display:flex;justify-content:space-between;gap:var(--space-2);font-size:.78rem}.bed-info-actions{margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--color-border);display:flex;justify-content:flex-end;gap:var(--space-2)}.bed-action-btn{border:none;border-radius:var(--radius-pill);padding:.27rem .65rem;color:#fff;font-size:.72rem;font-weight:700;cursor:pointer}.update-btn{background:var(--color-primary)}.remove-btn{background:var(--color-danger)}.allocation-modal-overlay{position:fixed;inset:0;z-index:1000;display:flex;justify-content:center;align-items:center;background:#050f1a94;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.allocation-modal{width:min(470px,92vw);border-radius:var(--radius-xl);border:1px solid var(--color-border);background:var(--color-bg-elevated);box-shadow:var(--shadow-lg);padding:var(--space-5)}.allocation-modal h3{margin-top:0}.duration-row{display:flex;gap:var(--space-2)}.duration-row select{width:140px}.allocation-total{color:var(--color-success);font-weight:700;font-size:.86rem}.modal-actions{margin-top:var(--space-3);display:flex;justify-content:flex-end;gap:var(--space-2)}@media(max-width:768px){.allocation-container{padding:var(--space-3)}.duration-row{flex-direction:column}.duration-row select{width:100%}}.guest-search-fab{position:fixed;right:var(--space-4);bottom:var(--space-4);z-index:1200;width:62px;height:62px;border-radius:var(--radius-pill);border:1px solid rgba(255,255,255,.22);background:linear-gradient(130deg,var(--color-primary),color-mix(in srgb,var(--color-primary) 72%,#0a6f7f));color:#fff;font-size:.82rem;font-weight:750;cursor:pointer;box-shadow:var(--shadow-md)}.guest-search-fab:hover{transform:translateY(-1px)}.guest-chat-window{position:fixed;right:var(--space-4);bottom:calc(var(--space-12) + var(--space-2));z-index:1300;width:min(92vw,390px);height:min(72vh,530px);border-radius:var(--radius-xl);border:1px solid var(--color-border);background:var(--color-bg-elevated);box-shadow:var(--shadow-lg);display:grid;grid-template-rows:auto 1fr auto;overflow:hidden;animation:guestChatIn .22s ease-out}.guest-chat-header{padding:.72rem .85rem;background:linear-gradient(120deg,var(--color-primary),color-mix(in srgb,var(--color-primary) 80%,#0d6471));color:#fff;display:flex;justify-content:space-between;align-items:center}.guest-chat-header h3{margin:0;color:#fff;font-size:.95rem}.guest-search-close{border:0;background:transparent;color:#fff;cursor:pointer;font-size:.95rem}.guest-chat-messages{padding:var(--space-3);display:grid;gap:var(--space-2);align-content:start;overflow-y:auto;background:color-mix(in srgb,var(--color-bg-soft) 56%,var(--color-bg-elevated))}.guest-chat-bubble{max-width:92%;border-radius:var(--radius-md);padding:.58rem .7rem;line-height:1.45;font-size:.86rem}.guest-chat-bubble p{margin:0}.guest-chat-bubble--assistant{justify-self:start;border:1px solid var(--color-border);background:var(--color-bg-elevated);color:var(--color-text-soft)}.guest-chat-bubble--user{justify-self:end;background:var(--color-primary);color:#fff}.guest-chat-error-text{color:var(--color-danger);font-weight:650}.guest-search-form.guest-chat-form{display:grid;grid-template-columns:1fr auto;gap:var(--space-2);padding:var(--space-3);border-top:1px solid var(--color-border);background:var(--color-bg-elevated)}.guest-search-form input{border-radius:var(--radius-md);border:1px solid var(--color-border);background:color-mix(in srgb,var(--color-bg-elevated) 92%,var(--color-bg-soft));min-height:40px;padding:.55rem .75rem}.guest-search-form .button{min-width:78px}.guest-chat-result-card{border:1px solid var(--color-border);border-radius:var(--radius-md);background:color-mix(in srgb,var(--color-bg-soft) 54%,var(--color-bg-elevated));padding:var(--space-3)}.guest-chat-result-card h4{margin:0 0 var(--space-2)}.guest-chat-result-card p{margin:0 0 var(--space-1);color:var(--color-text-soft);font-size:.82rem}.guest-search-skeleton{display:grid;gap:var(--space-2)}.guest-search-skeleton div{height:11px;border-radius:var(--radius-pill);background:linear-gradient(90deg,var(--color-bg-soft) 20%,var(--color-border) 48%,var(--color-bg-soft) 75%);background-size:220% 100%;animation:skeletonShift 1.2s linear infinite}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}@keyframes guestChatIn{0%{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:640px){.guest-search-fab{width:56px;height:56px;right:var(--space-3);bottom:var(--space-3)}.guest-chat-window{right:var(--space-3);bottom:4.8rem;width:calc(100vw - 1.5rem);height:min(74vh,520px)}}.availability-dashboard{margin-top:var(--space-5);display:grid;gap:var(--space-4)}.availability-top h2{margin:0}.availability-top p{margin:var(--space-1) 0 0}.availability-summary-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--space-3)}.summary-item{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-elevated);padding:var(--space-3);box-shadow:var(--shadow-xs)}.summary-item span{display:block;font-size:.75rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.summary-item strong{margin-top:var(--space-1);display:block;font-size:1.2rem}.summary-item.available strong{color:var(--color-success)}.summary-item.occupied strong{color:var(--color-danger)}.summary-item.reserved strong{color:var(--color-warning)}.summary-item.maintenance strong{color:var(--color-text-soft)}.availability-filters{display:flex;flex-wrap:wrap;gap:var(--space-3)}.availability-filters label{display:grid;gap:var(--space-1);font-size:.8rem;color:var(--color-text-soft);min-width:170px}.availability-filters select,.availability-filters input{min-height:40px;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg-elevated);padding:.5rem .7rem}.availability-legend{display:flex;gap:var(--space-2);flex-wrap:wrap}.legend-pill{border:1px solid var(--color-border);border-radius:var(--radius-pill);padding:.28rem .6rem;font-size:.78rem;background:var(--color-bg-elevated)}.availability-hostel-grid{display:grid;gap:var(--space-4)}.availability-hostel-card{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-elevated);box-shadow:var(--shadow-sm);padding:var(--space-4);display:grid;gap:var(--space-3)}.availability-hostel-head{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap}.availability-hostel-head h3{margin:0}.occupancy-badge{border-radius:var(--radius-pill);border:1px solid var(--color-border);background:var(--color-bg-soft);font-size:.74rem;padding:.2rem .55rem;color:var(--color-text-soft)}.availability-counts{display:flex;gap:var(--space-3);flex-wrap:wrap;font-size:.84rem;color:var(--color-text-soft)}.availability-counts .available{color:var(--color-success)}.availability-counts .occupied{color:var(--color-danger)}.availability-progress-track{height:10px;border-radius:var(--radius-pill);background:var(--color-bg-soft);overflow:hidden}.availability-progress-fill{height:100%;border-radius:inherit;background:linear-gradient(120deg,var(--color-danger),var(--color-warning))}.availability-floors-wrap{display:grid;gap:var(--space-3)}.availability-floor-section{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.availability-floor-header{width:100%;border:0;background:color-mix(in srgb,var(--color-bg-soft) 72%,var(--color-bg-elevated));padding:.62rem .75rem;display:flex;justify-content:space-between;align-items:center;font-size:.85rem;cursor:pointer}.availability-floor-body{padding:var(--space-3)}.availability-room-blocks{display:grid;gap:var(--space-3)}.availability-room-block{border:1px solid var(--color-border);border-radius:var(--radius-md);background:color-mix(in srgb,var(--color-bg-elevated) 90%,var(--color-bg-soft));padding:var(--space-3)}.availability-room-block h5{margin:0 0 var(--space-2)}.availability-bed-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:var(--space-2)}.bed-chip{min-height:36px;border-radius:var(--radius-md);border:1px solid var(--color-border);font-size:.78rem;font-weight:700;cursor:pointer}.bed-chip.available{background:var(--color-success-soft);color:var(--color-success)}.bed-chip.occupied{background:var(--color-danger-soft);color:var(--color-danger)}.bed-chip.reserved{background:var(--color-warning-soft);color:var(--color-warning)}.bed-chip.maintenance{background:color-mix(in srgb,var(--color-bg-soft) 80%,var(--color-bg-elevated));color:var(--color-text-soft)}.availability-empty-state{border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg);background:var(--color-bg-elevated);padding:var(--space-4)}.availability-empty-state h3{margin-bottom:var(--space-1)}.skeleton-card{min-height:116px}.availability-skeleton-title{width:45%;height:18px;border-radius:var(--radius-sm)}.availability-skeleton-line{width:100%;height:12px;border-radius:var(--radius-pill)}.availability-skeleton-line.short{width:62%}.availability-modal-overlay{position:fixed;inset:0;z-index:1400;background:#08121e99;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center}.availability-modal{width:min(420px,92vw);border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-bg-elevated);box-shadow:var(--shadow-lg)}.availability-modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4);border-bottom:1px solid var(--color-border)}.availability-modal-header h4{margin:0}.availability-close-btn{border:0;background:transparent;cursor:pointer}.availability-modal-body{padding:var(--space-4)}.availability-modal-body p{margin:0 0 var(--space-2);font-size:.88rem}.availability-modal-actions{display:flex;justify-content:flex-end;gap:var(--space-2);padding:0 var(--space-4) var(--space-4)}@media(max-width:768px){.availability-dashboard{margin-top:var(--space-4)}.availability-filters label{min-width:100%}.availability-bed-grid{grid-template-columns:repeat(auto-fill,minmax(84px,1fr))}}.delete-modal-overlay{position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;background:#070f1aa3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.delete-modal-content{width:min(460px,92vw);border-radius:var(--radius-xl);border:1px solid var(--color-border);background:var(--color-bg-elevated);box-shadow:var(--shadow-lg);animation:modalPopIn .2s ease-out}.delete-modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-5) var(--space-5) var(--space-3);border-bottom:1px solid var(--color-border)}.delete-modal-header h2{margin:0;font-size:1.25rem}.delete-close-btn{border:none;background:transparent;color:var(--color-text-muted);font-size:1rem;cursor:pointer}.delete-modal-body{text-align:center;padding:var(--space-4) var(--space-5)}.delete-warning-icon{width:48px;height:48px;margin:0 auto var(--space-3);border-radius:var(--radius-pill);display:grid;place-items:center;background:var(--color-danger-soft);color:var(--color-danger);font-weight:800;font-size:1.25rem}.delete-modal-message{margin-bottom:var(--space-2);color:var(--color-text-soft)}.delete-modal-submessage{margin:0;color:var(--color-text-muted);font-size:.84rem}.delete-modal-footer{display:flex;justify-content:flex-end;gap:var(--space-3);padding:var(--space-3) var(--space-5) var(--space-5)}.delete-cancel-btn,.delete-confirm-btn{min-width:118px}.delete-cancel-btn{display:inline-flex;align-items:center;justify-content:center;min-height:42px;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-secondary);color:var(--color-text);cursor:pointer;font-weight:650}.delete-confirm-btn{display:inline-flex;align-items:center;justify-content:center;min-height:42px;border-radius:var(--radius-md);border:1px solid transparent;background:var(--color-danger);color:#fff;cursor:pointer;font-weight:700}.delete-confirm-btn:hover{background:var(--color-danger-hover)}.delete-cancel-btn:disabled,.delete-confirm-btn:disabled{opacity:.6;cursor:not-allowed}@keyframes modalPopIn{0%{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:540px){.delete-modal-footer{flex-direction:column}.delete-cancel-btn,.delete-confirm-btn{width:100%}}
