:root{color:#0f172a;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f8fafc;font-family:Inter,Segoe UI,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;min-height:100vh;margin:0}button,input,textarea,select{font:inherit}#root{min-height:100vh}a{color:inherit}h1,h2,h3,p{margin-top:0}.app-shell{background:linear-gradient(#f4f7fb 0%,#edf1f7 100%);min-height:100vh}.topbar{color:#fff;z-index:10;background:#151e33f5;justify-content:space-between;align-items:center;gap:20px;padding:18px 32px;display:flex;position:sticky;top:0;box-shadow:0 10px 25px #0f172a1f}.brand-wrap{align-items:center;gap:14px;display:flex}.brand-mark{color:#fff;background:linear-gradient(135deg,#7c3aed 0%,#12b2db 100%);border-radius:12px;place-items:center;width:42px;height:42px;font-weight:800;display:grid}.brand-wrap h1{color:#fff;margin:0;font-size:1.2rem}.eyebrow{color:#9fb3d8;letter-spacing:.12em;text-transform:uppercase;margin:0 0 4px;font-size:.72rem}.main-nav{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.main-nav a{color:#fffc;border-radius:999px;padding:8px 12px;font-weight:600;text-decoration:none;transition:all .2s}.main-nav a.active,.main-nav a:hover{color:#fff;background:#94a3b82e}.user-badge{border-left:1px solid #ffffff1f;align-items:center;gap:12px;padding-left:14px;display:flex}.avatar{color:#fff;background:linear-gradient(135deg,#f59e0b 0%,#f97316 100%);border-radius:50%;place-items:center;width:38px;height:38px;font-weight:700;display:grid}.user-badge strong,.user-badge small{display:block}.user-badge small{color:#ffffffb3}.logout-button,.primary-button,.toggle-button{cursor:pointer;font:inherit;border:none;border-radius:10px}.logout-button{color:#fff;background:#ffffff1f;margin-left:8px;padding:8px 12px}.page-shell{max-width:1280px;margin:32px auto;padding:0 20px 40px}.content-card{box-sizing:border-box;background:#fff;border:1px solid #94a3b833;border-radius:24px;padding:28px;box-shadow:0 18px 40px #0f172a14}.dashboard-grid,.split-layout,.calendar-layout{gap:24px;display:grid}.dashboard-grid{grid-template-columns:1fr}.welcome-box{background:linear-gradient(135deg,#eff6ff 0%,#eefdf6 100%);border-radius:20px;padding:24px}.welcome-box h2{margin:0 0 10px}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;display:grid}.stat-card{color:#14213d;border-radius:18px;flex-direction:column;justify-content:center;gap:8px;min-height:120px;padding:20px;display:flex}.stat-card span{opacity:.7;font-weight:600}.stat-card strong{font-size:2rem}.stat-card.blue{background:linear-gradient(135deg,#e0f2fe 0%,#dbeafe 100%)}.stat-card.green{background:linear-gradient(135deg,#dcfce7 0%,#d1fae5 100%)}.stat-card.purple{background:linear-gradient(135deg,#f3e8ff 0%,#ede9fe 100%)}.stat-card.orange{background:linear-gradient(135deg,#ffedd5 0%,#fed7aa 100%)}.info-panels{grid-template-columns:1fr 1fr;gap:18px;display:grid}.panel-box,.form-card,.list-card,.calendar-panel{background:#f8fafc;border:1px solid #94a3b838;border-radius:20px;padding:22px}.list-plain{gap:12px;margin:0;padding:0;list-style:none;display:grid}.list-plain li{background:#fff;border:1px solid #94a3b826;border-radius:12px;flex-direction:column;gap:4px;padding:12px 14px;display:flex}.split-layout{grid-template-columns:1.1fr 1.4fr}.calendar-layout{grid-template-columns:1.3fr 1fr}.stack-form{flex-direction:column;gap:16px;display:flex}.stack-form label{color:#1f2937;flex-direction:column;gap:8px;font-weight:600;display:flex}.stack-form input,.stack-form textarea,.stack-form select{width:100%;font:inherit;box-sizing:border-box;background:#fff;border:1px solid #cbd5e1;border-radius:12px;padding:12px 14px}.primary-button{color:#fff;background:linear-gradient(135deg,#2563eb 0%,#7c3aed 100%);width:fit-content;min-width:160px;padding:12px 20px;font-weight:700}.message{border-radius:10px;padding:10px 12px;font-size:.92rem}.message.error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca}.apartment-list,.booking-list,.calendar-grid{gap:16px;display:grid}.apartment-card,.booking-item,.calendar-card{background:#fff;border:1px solid #94a3b833;border-radius:16px;padding:16px}.apartment-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.apartment-head h3{margin:0 0 8px}.apartment-head p,.notice,.booking-item p,.calendar-card p{color:#475569;margin:0}.notice{margin-top:10px}.user-selection-block{flex-direction:column;gap:10px;display:flex}.user-selection-list{background:#fff;border:1px solid #94a3b833;border-radius:12px;gap:10px;max-height:260px;padding:10px;display:grid;overflow-y:auto}.user-select-item{background:#f8fafc;border:1px solid #94a3b82e;border-radius:10px;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 8px;display:grid}.user-select-item input{width:18px;height:18px;margin:0}.user-select-meta{flex-direction:column;gap:4px;min-width:0;display:flex}.user-select-meta strong,.user-select-meta small{display:block}.user-select-meta small{color:#475569}.meta-block{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.meta-block span{color:#1d4ed8;background:#eff6ff;border-radius:999px;padding:6px 10px;font-size:.8rem;font-weight:600}.toggle-button{padding:7px 12px;font-weight:700}.toggle-button.show{color:#166534;background:#dcfce7}.toggle-button.hide{color:#b91c1c;background:#fee2e2}.booking-layout{box-sizing:border-box;width:100%;max-width:100%;display:block}.booking-calendar-card{flex-direction:column;gap:4px;width:100%;display:flex}.booking-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;display:flex}.booking-select{flex-direction:column;gap:8px;min-width:220px;font-weight:700;display:flex}.booking-select select{background:#fff;border:1px solid #cbd5e1;border-radius:12px;padding:12px 14px}.month-switcher{background:#f8fafc;border:1px solid #94a3b833;border-radius:12px;align-items:center;gap:14px;padding:10px 12px;display:flex}.nav-button{cursor:pointer;background:#e2e8f0;border:none;border-radius:10px;width:36px;height:36px;font-size:1.4rem;line-height:1}.calendar-weekdays,.calendar-days-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;display:grid}.calendar-weekdays{margin-top:10px}.calendar-weekdays span{text-align:center;color:#475569;padding:8px 0;font-weight:700}.day-cell{cursor:pointer;text-align:left;border:1px solid #94a3b833;border-radius:16px;flex-direction:column;justify-content:space-between;align-items:flex-start;min-height:110px;padding:10px 8px;transition:transform .15s,box-shadow .15s;display:flex}.day-cell:hover{transform:translateY(-1px);box-shadow:0 10px 20px #0f172a14}.day-cell.free{background:linear-gradient(135deg,#dcfce7 0%,#bbf7d0 100%)}.day-cell.reserved{background:linear-gradient(135deg,#fee2e2 0%,#fecaca 100%)}.day-cell.muted{opacity:.55}.date-number{color:#0f172a;font-weight:800}.date-state{color:#1f2937;text-align:left;word-break:break-word;font-size:.74rem;font-weight:700;line-height:1.3}.date-state.small{font-size:.68rem;font-weight:600}.date-state.muted-row{color:#334155;opacity:.8}.modal-backdrop{z-index:30;background:#0f172a80;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.reservation-modal{box-sizing:border-box;background:#fff;border-radius:24px;width:min(560px,100vw - 32px);max-height:min(90vh,760px);padding:24px;overflow:auto;box-shadow:0 18px 45px #0f172a33}.modal-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.modal-header h3{margin:0}.close-button{cursor:pointer;background:#f1f5f9;border:none;border-radius:50%;width:36px;height:36px;font-size:1.8rem;line-height:1}.reservation-details{gap:12px;display:grid}.reservation-details p{margin:0}.modal-form{margin-top:8px}.booking-item{grid-template-columns:72px 1fr;align-items:center;gap:12px;display:grid}.booking-item-body{justify-content:space-between;align-items:center;gap:12px;display:flex}.booking-date{color:#1d4ed8;background:linear-gradient(135deg,#dbeafe 0%,#ede9fe 100%);border-radius:16px;place-items:center;width:72px;height:72px;font-weight:700;display:grid}.booking-item small,.calendar-card small,.calendar-card span{color:#475569;margin-top:6px;display:block}.calendar-card{min-height:130px}.calendar-card-top{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.delete-button{color:#b91c1c;cursor:pointer;background:#fee2e2;border:none;border-radius:10px;padding:8px 12px;font-weight:700}.delete-button.small{padding:6px 10px;font-size:.8rem}.login-page{background:radial-gradient(circle at top,#dbeafe 0%,#f8fafc 28%,#e2e8f0 100%);place-items:center;min-height:100vh;padding:32px;display:grid}.login-panel{background:#ffffffe6;border:1px solid #94a3b833;border-radius:28px;grid-template-columns:1.2fr .8fr;width:100%;max-width:920px;display:grid;overflow:hidden;box-shadow:0 26px 60px #0f172a1f}.login-copy{color:#fff;background:linear-gradient(135deg,#0f172a 0%,#1e293b 100%);padding:42px 36px}.login-copy h2{color:#fff;margin:0 0 12px;font-size:clamp(2rem,3vw,3rem)}.login-copy p{color:#fffc;line-height:1.7}.login-form{flex-direction:column;gap:18px;padding:36px 30px;display:flex}.login-form h3{margin:0 0 6px;font-size:1.8rem}.loading-screen{color:#334155;place-items:center;min-height:100vh;font-weight:700;display:grid}@media (width<=980px){.topbar{flex-direction:column;align-items:flex-start}.main-nav,.user-badge{width:100%}.page-shell{width:180%;margin:20px auto;padding:0 16px 32px}.reservation-modal{width:max(60%,300px)}.content-card{width:100%;padding:18px 14px}.split-layout,.calendar-layout,.info-panels,.login-panel,.stats-grid{grid-template-columns:1fr}.calendar-days-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;width:100%}.day-cell{min-width:0;min-height:90px}.date-state{font-size:.62rem}.date-state.small{font-size:.56rem}.date-state big{font-size:1.2rem}}
