.fb-logo{display:inline-flex;align-items:center;gap:10px}.fb-logo__mark{width:var(--logo-size);height:var(--logo-size);border-radius:10px;box-shadow:var(--shadow-sm)}.fb-logo__text{font-weight:700;font-size:1.1rem;letter-spacing:-.01em;color:var(--color-text)}.fb-logo__accent{color:var(--color-primary)}.fb-field{display:flex;flex-direction:column;gap:6px;min-width:0}.fb-field__label{font-size:.85rem;font-weight:600;color:var(--color-text-muted)}.fb-field__required{color:var(--color-error);margin-left:4px}.fb-field__control{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:#fff;padding:10px 14px;font-size:.95rem;color:var(--color-text);transition:border-color .15s ease,box-shadow .15s ease;width:100%}.fb-field__control:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #0a84ff26}.fb-field__control::placeholder{color:var(--color-text-light)}.fb-field__hint{font-size:.8rem;color:var(--color-text-light)}.fb-field__error{font-size:.8rem;color:var(--color-error)}.fb-field--error .fb-field__control{border-color:var(--color-error);box-shadow:0 0 0 3px #e2445c1f}.fb-field__select-wrap{position:relative}.fb-field__select{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:36px;background:#fff;cursor:pointer}.fb-field__chev{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--color-text-muted);pointer-events:none;font-size:.8rem}.fb-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:var(--radius-md);padding:10px 18px;font-weight:600;font-size:.95rem;transition:background .15s ease,box-shadow .15s ease,transform .06s ease,border-color .15s ease,color .15s ease;white-space:nowrap;min-height:40px}.fb-btn:disabled{opacity:.6;cursor:not-allowed}.fb-btn:active:not(:disabled){transform:translateY(1px)}.fb-btn--primary{background:var(--color-primary);color:#fff;box-shadow:0 4px 12px #0a84ff40}.fb-btn--primary:hover:not(:disabled){background:var(--color-primary-dark)}.fb-btn--secondary{background:var(--color-primary-light);color:var(--color-primary-dark)}.fb-btn--secondary:hover:not(:disabled){background:#d8e8ff}.fb-btn--ghost{background:transparent;color:var(--color-text-muted);border-color:var(--color-border)}.fb-btn--ghost:hover:not(:disabled){background:var(--color-bg);color:var(--color-text)}.fb-btn--danger{background:#fff;color:var(--color-error);border-color:#f6c6cf}.fb-btn--danger:hover:not(:disabled){background:#fdeef1}.fb-btn--sm{padding:6px 12px;font-size:.85rem;min-height:32px}.fb-btn--lg{padding:14px 24px;font-size:1rem;min-height:48px;width:100%}.fb-btn__spinner{width:16px;height:16px;border-radius:50%;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;animation:fb-spin .7s linear infinite}@keyframes fb-spin{to{transform:rotate(360deg)}}.fb-login{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-5);background:radial-gradient(1200px 600px at 10% -10%,rgba(10,132,255,.12),transparent 60%),radial-gradient(900px 500px at 100% 110%,rgba(0,194,168,.12),transparent 60%),linear-gradient(180deg,#f6f9ff,#eef2f9)}.fb-login__panel{width:100%;max-width:420px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-lg)}.fb-login__brand{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-6)}.fb-login__tagline{color:var(--color-text-muted);font-size:.85rem;margin-left:auto}.fb-login__title{font-size:1.6rem;letter-spacing:-.02em}.fb-login__subtitle{color:var(--color-text-muted);margin-top:4px;margin-bottom:var(--space-5)}.fb-login__form{display:flex;flex-direction:column;gap:var(--space-4)}.fb-login__error{background:#fdeef1;border:1px solid #f6c6cf;color:var(--color-error);padding:10px 12px;border-radius:var(--radius-md);font-size:.88rem}.fb-login__hint{text-align:center;font-size:.8rem;color:var(--color-text-light)}.fb-login__hint code{background:var(--color-bg);padding:1px 6px;border-radius:4px;color:var(--color-text)}.fb-login__footer{margin-top:var(--space-5);font-size:.78rem;color:var(--color-text-light)}@media (max-width: 480px){.fb-login__panel{padding:var(--space-5)}}.fb-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:.8rem;font-weight:600;letter-spacing:.01em}.fb-badge__dot{width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 0 3px #fff6}.fb-badge--online,.fb-badge--free{background:var(--color-success-bg);color:var(--color-success)}.fb-badge--offline{background:#eef1f6;color:var(--color-text-muted)}.fb-badge--occupied{background:var(--color-primary-light);color:var(--color-primary-dark)}.fb-badge--warning{background:#fff5e0;color:#b8770a}.fb-badge--online .fb-badge__dot{animation:fb-pulse 1.8s ease-in-out infinite}@keyframes fb-pulse{0%,to{box-shadow:0 0 #21c07a8c}50%{box-shadow:0 0 0 6px #21c07a00}}.fb-header{background:var(--color-surface);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:10}.fb-header__inner{max-width:1200px;margin:0 auto;padding:var(--space-4) var(--space-5);display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);flex-wrap:wrap}.fb-header__left{display:flex;align-items:center;gap:var(--space-4);min-width:0}.fb-header__divider{width:1px;height:28px;background:var(--color-border)}.fb-header__hotel{display:flex;flex-direction:column;min-width:0}.fb-header__hotel-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-light)}.fb-header__hotel-name{font-size:1rem;color:var(--color-text)}.fb-header__right{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap}.fb-header__user{display:flex;align-items:center;gap:10px}.fb-header__avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--color-primary),var(--color-accent));color:#fff;font-weight:700;display:grid;place-items:center}.fb-header__user-meta{display:flex;flex-direction:column;line-height:1.15}.fb-header__user-name{font-weight:600;font-size:.9rem}.fb-header__user-role{font-size:.75rem;color:var(--color-text-muted)}@media (max-width: 640px){.fb-header__inner{gap:var(--space-3)}.fb-header__divider,.fb-header__user-meta{display:none}}.fb-card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--color-border);overflow:hidden}.fb-card__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-5);border-bottom:1px solid var(--color-border)}.fb-card__title{font-size:1.05rem;letter-spacing:-.01em}.fb-card__subtitle{color:var(--color-text-muted);font-size:.85rem;margin-top:2px}.fb-card__actions{display:flex;gap:8px;flex-shrink:0}.fb-card__body{padding:var(--space-5)}.fb-guest-form__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}.fb-guest-form__col-2{grid-column:span 2}.fb-guest-form__footer{margin-top:var(--space-5);display:flex;justify-content:flex-end}@media (max-width: 640px){.fb-guest-form__grid{grid-template-columns:1fr}.fb-guest-form__col-2{grid-column:span 1}}.fb-rooms{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:var(--space-3)}.fb-room{border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-md);padding:var(--space-4);display:flex;flex-direction:column;gap:4px;cursor:pointer;transition:transform .08s ease,border-color .15s ease,box-shadow .15s ease,background .15s ease;text-align:left}.fb-room:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md);transform:translateY(-2px)}.fb-room__number{font-size:1.35rem;font-weight:700;color:var(--color-text);letter-spacing:-.01em}.fb-room__type{font-size:.78rem;color:var(--color-text-muted)}.fb-room__status{font-size:.72rem;text-transform:uppercase;font-weight:600;letter-spacing:.06em;margin-top:6px}.fb-room--free .fb-room__status{color:var(--color-success)}.fb-room--occupied{background:linear-gradient(180deg,#fff 0%,var(--color-primary-light) 100%)}.fb-room--occupied .fb-room__status{color:var(--color-primary-dark)}.fb-room--selected{border-color:var(--color-primary);box-shadow:0 0 0 3px #0a84ff2e}.fb-rooms__empty{grid-column:1 / -1;padding:var(--space-5);text-align:center;color:var(--color-text-muted);background:var(--color-bg);border-radius:var(--radius-md)}.fb-guest-details{display:flex;flex-direction:column;gap:var(--space-4)}.fb-guest-details--empty{align-items:flex-start;color:var(--color-text-muted);text-align:left}.fb-guest-details__icon{font-size:1.8rem}.fb-guest-details__eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:.7rem;color:var(--color-text-light);font-weight:700}.fb-guest-details__name{font-size:1.2rem;letter-spacing:-.01em;margin-top:2px}.fb-guest-details__list{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3) var(--space-4);margin:0}.fb-guest-details__list>div{display:flex;flex-direction:column;gap:2px}.fb-guest-details__list dt{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-light);font-weight:600}.fb-guest-details__list dd{margin:0;font-size:.95rem;color:var(--color-text)}.fb-guest-details__device{display:block;margin-top:6px;font-size:.75rem;color:var(--color-text-light)}.fb-guest-details__device code{background:var(--color-bg);padding:1px 6px;border-radius:4px;font-size:.72rem;color:var(--color-text-muted)}.fb-guest-details__actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:var(--space-2)}.fb-modal{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;z-index:100;padding:var(--space-4)}.fb-modal__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#14204673;border:0;padding:0;cursor:pointer}.fb-modal__panel{position:relative;background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:480px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;animation:fb-modal-in .18s ease-out}@keyframes fb-modal-in{0%{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}.fb-modal__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border)}.fb-modal__header h3{font-size:1.05rem}.fb-modal__close{background:transparent;border:0;font-size:1.6rem;line-height:1;color:var(--color-text-muted);width:32px;height:32px;border-radius:8px;cursor:pointer}.fb-modal__close:hover{background:var(--color-bg);color:var(--color-text)}.fb-modal__body{padding:var(--space-5);overflow:auto;display:flex;flex-direction:column;gap:var(--space-4)}.fb-modal__footer{padding:var(--space-4) var(--space-5);border-top:1px solid var(--color-border);display:flex;gap:var(--space-3);justify-content:flex-end}.fb-dashboard{min-height:100vh;display:flex;flex-direction:column;background:var(--color-bg)}.fb-dashboard__main{max-width:1200px;width:100%;margin:0 auto;padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-5)}.fb-dashboard__error{background:#fdeef1;border:1px solid #f6c6cf;color:var(--color-error);padding:12px 16px;border-radius:var(--radius-md)}.fb-dashboard__summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-4)}.fb-stat{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);display:flex;flex-direction:column;gap:4px;box-shadow:var(--shadow-sm)}.fb-stat__label{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-light);font-weight:600}.fb-stat__value{font-size:1.8rem;font-weight:700;letter-spacing:-.02em;line-height:1.15}.fb-stat__hint{font-size:.78rem;color:var(--color-text-muted)}.fb-stat--primary .fb-stat__value{color:var(--color-primary-dark)}.fb-stat--success .fb-stat__value{color:var(--color-success)}.fb-dashboard__grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);grid-template-areas:"form rooms" "form details";gap:var(--space-5)}.fb-dashboard__form{grid-area:form}.fb-dashboard__rooms{grid-area:rooms}.fb-dashboard__details{grid-area:details}@media (max-width: 980px){.fb-dashboard__summary{grid-template-columns:repeat(2,minmax(0,1fr))}.fb-dashboard__grid{grid-template-columns:1fr;grid-template-areas:"form" "rooms" "details"}}@media (max-width: 480px){.fb-dashboard__summary{grid-template-columns:1fr}.fb-dashboard__main{padding:var(--space-4)}}.fb-dashboard__refresh{background:transparent;border:1px solid var(--color-border);color:var(--color-text-muted);border-radius:var(--radius-md);padding:6px 12px;font-size:.85rem;cursor:pointer;font-weight:600}.fb-dashboard__refresh:hover{background:var(--color-bg);color:var(--color-text)}.fb-toast{position:fixed;bottom:var(--space-5);left:50%;transform:translate(-50%);padding:12px 18px;border-radius:var(--radius-md);background:var(--color-text);color:#fff;box-shadow:var(--shadow-lg);z-index:200;font-size:.9rem;animation:fb-toast-in .18s ease-out}.fb-toast--error{background:var(--color-error)}.fb-toast--success{background:var(--color-success)}@keyframes fb-toast-in{0%{transform:translate(-50%,8px);opacity:0}to{transform:translate(-50%);opacity:1}}:root{--color-primary: #0a84ff;--color-primary-dark: #0060d8;--color-primary-light: #e8f2ff;--color-accent: #00c2a8;--color-bg: #f5f7fb;--color-surface: #ffffff;--color-border: #e4e8ef;--color-border-strong: #cfd6e2;--color-text: #1a2340;--color-text-muted: #5b6478;--color-text-light: #8a94a8;--color-success: #21c07a;--color-success-bg: #e6f9f0;--color-error: #e2445c;--color-warning: #f2b94b;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--shadow-sm: 0 1px 2px rgba(20, 32, 70, .06);--shadow-md: 0 6px 20px rgba(20, 32, 70, .08);--shadow-lg: 0 20px 50px rgba(20, 32, 70, .15);--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Inter", Roboto, Helvetica, Arial, sans-serif;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-sans);color:var(--color-text);background:var(--color-bg);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4{margin:0;font-weight:600;color:var(--color-text)}p{margin:0}button{font-family:inherit;cursor:pointer}input,select,textarea,button{font-family:inherit;font-size:inherit}a{color:var(--color-primary);text-decoration:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
