/* Tema blu PalazzoloOS */
:root {
  --bg: #f3f7fb;
  --paper: #fff;
  --ink: #183047;
  --muted: #64788a;
  --line: #d8e4ed;
  --wine: #1f5f8b;
  --wine2: #174b70;
  --sand: #e5f0f7;
  --shadow: 0 12px 38px rgba(24, 67, 96, .08);
}
.auth-brand { background: linear-gradient(145deg, #e7f1f8, #d6e7f3); }
.auth-brand > p:last-child { color: #526b7d; }
.sidebar { background: #eaf2f8; }
.sidebar nav a { color: #35536a; }
.sidebar nav a.active { box-shadow: 0 6px 20px rgba(31, 95, 139, .2); }
.brand-mark { box-shadow: 0 8px 24px rgba(31, 95, 139, .24); }
.avatar { background: #dcecf6; color: #1f5f8b; }
.topbar { background: rgba(247, 250, 253, .94); }
.btn:hover { background: #edf5fa; }
.form-stack input, .search-form input, .search-form select { border-color: #cddde8; }
.form-stack input:focus, .search-form input:focus, .search-form select:focus { box-shadow: 0 0 0 3px rgba(31, 95, 139, .13); }
.sister-row { border-color: #e4edf3; }
.sister-row:hover, .record-tabs button:hover, .record-tabs button.active { background: #f1f7fb; }
.record-tabs { background: #eaf2f8; }
.record-form, .tab-pane, .tab-pane.active { background: #fff; }
.record-index { background: rgba(255, 255, 255, .96); box-shadow: 0 8px 24px rgba(24, 67, 96, .08); }
.record-index button { color: #435e72; }
.record-index button:hover { background: #e5f0f7; color: #1f5f8b; }
.photo-card { background: #f4f8fb; }
.photo-placeholder { border-color: #cbdde9; background: #e7f1f7; color: #66869d; }
.save-bar { background: #f3f8fc; }

/* Tre livelli di leggibilità, memorizzati sul dispositivo */
html[data-font-size="small"] { --reader-zoom: 1; }
html[data-font-size="medium"] { --reader-zoom: 1.12; }
html[data-font-size="large"] { --reader-zoom: 1.25; }
body { zoom: var(--reader-zoom, 1); }
.font-size-control {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 30;
  display: flex;
  align-items: center;
  gap: 4px;
  border: 1px solid #cbdde8;
  border-radius: 12px;
  background: rgba(255, 255, 255, .96);
  padding: 5px;
  box-shadow: 0 8px 28px rgba(24, 67, 96, .18);
  backdrop-filter: blur(10px);
}
.font-size-control > span { padding: 0 6px; color: #64788a; font-size: 11px; font-weight: 750; }
.font-size-control button { display: grid; min-width: 34px; height: 32px; place-items: center; border: 0; border-radius: 8px; background: transparent; color: #1f5f8b; cursor: pointer; font-weight: 800; }
.font-size-control button:hover { background: #e5f0f7; }
.font-size-control button.active { background: #1f5f8b; color: #fff; }
@media (max-width: 700px) {
  .font-size-control { right: 10px; bottom: 10px; }
  .font-size-control > span { display: none; }
}

/* Verticale Foresteria */
.booking-page{--booking:#2563eb;--booking-dark:#1e40af;--booking-soft:#eff6ff;background:#f5f7fb;color:#172033}.booking-page h1,.booking-page h2,.booking-page h3{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.nav-space{margin-top:28px}.booking-actions{display:flex;gap:8px}.booking-workspace{max-width:1800px}.booking-hero{display:flex;align-items:center;justify-content:space-between;gap:30px;overflow:hidden;border:1px solid #d9e2ef;border-radius:20px;background:linear-gradient(135deg,#fff 25%,#edf5ff);padding:24px 28px;box-shadow:0 10px 35px rgba(28,62,112,.07)}.booking-hero h2{margin:0 0 5px;font-size:30px;letter-spacing:-.04em}.booking-hero p{margin:0;color:#64748b}.booking-kpis{display:flex;gap:10px}.booking-kpis article{display:grid;min-width:108px;gap:3px;border:1px solid rgba(37,99,235,.13);border-radius:14px;background:rgba(255,255,255,.84);padding:14px 17px}.booking-kpis strong{color:#1e4ea1;font-size:25px}.booking-kpis span{color:#64748b;font-size:11px;font-weight:700}.booking-layout{display:grid;grid-template-columns:minmax(0,1fr) 350px;align-items:start;gap:18px;margin-top:18px}.calendar-panel{margin-top:0}.calendar-head{align-items:center}.month-nav{display:flex;align-items:center;gap:14px}.month-nav h2{margin:2px 0 0;text-transform:capitalize}.month-nav small{color:#64748b}.icon-btn{display:grid;width:38px;height:38px;place-items:center;border:1px solid #d9e2ef;border-radius:10px;background:#fff;color:#2563eb;text-decoration:none;font-size:24px}.calendar-filter{display:flex;gap:8px}.calendar-filter input,.calendar-filter select{height:40px;border:1px solid #d5e0eb;border-radius:9px;background:#fff;padding:0 10px;color:#334155}.calendar-scroll{overflow:auto;padding-bottom:4px}.booking-calendar{display:grid;min-width:1280px;grid-template-columns:205px repeat(var(--days),minmax(36px,1fr));align-items:stretch}.resource-head,.day-head{position:sticky;top:0;z-index:2;border-bottom:1px solid #dfe7ef;background:#f8fafc;padding:9px 4px;text-align:center}.resource-head{left:0;z-index:3;padding-left:17px;text-align:left;color:#64748b;font-size:10px;font-weight:800;text-transform:uppercase}.day-head{display:grid;gap:2px;color:#64748b}.day-head b{font-size:11px}.day-head small{font-size:8px}.day-head.today{background:#2563eb;color:#fff}.resource-name{position:sticky;left:0;z-index:1;display:flex;min-height:49px;align-items:center;gap:10px;border-right:1px solid #dfe7ef;border-bottom:1px solid #edf1f5;background:#fff;padding:7px 12px}.resource-name>i{width:8px;height:30px;border-radius:8px}.resource-name span{display:grid;gap:2px;min-width:0}.resource-name b{overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.resource-name small{color:#7b8a9b;font-size:8px}.calendar-cell{display:flex;min-width:0;min-height:49px;align-items:center;justify-content:center;overflow:hidden;border:0;border-right:1px solid #f0f3f6;border-bottom:1px solid #edf1f5;background:#fff;text-decoration:none}.calendar-cell.free:hover{background:#eff6ff;box-shadow:inset 0 0 0 2px #93c5fd}.calendar-cell.booked{background:#dbeafe;color:#1e3a8a;cursor:default}.calendar-cell.booked span{display:none;overflow:hidden;padding:2px;font-size:8px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.calendar-cell.booked:hover span{display:block}.calendar-cell.status-option{background:#fef3c7;color:#92400e}.calendar-cell.status-checked_in{background:#dcfce7;color:#166534}.calendar-cell.status-checked_out{background:#e2e8f0;color:#475569}.booking-side{display:grid;gap:18px}.booking-side .cos-card{box-shadow:0 7px 25px rgba(30,64,120,.06)}.upcoming-list article{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:10px;border-top:1px solid #edf1f5;padding:11px 14px}.booking-date{display:grid;width:38px;height:40px;place-items:center;border-radius:9px;background:#eff6ff;color:#1d4ed8}.booking-date b{font-size:15px;line-height:1}.booking-date small{font-size:8px;text-transform:uppercase}.upcoming-list article>div{display:grid;gap:3px;min-width:0}.upcoming-list article>div b,.upcoming-list article>div small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upcoming-list article>div b{font-size:10px}.upcoming-list article>div small{color:#7b8a9b;font-size:8px}.upcoming-list select,.cleaning-list select{max-width:102px;border:1px solid #dbe3ec;border-radius:7px;background:#fff;padding:5px;color:#475569;font-size:9px}.cleaning-list form{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid #edf1f5;padding:10px 14px}.cleaning-list form>span{display:flex;align-items:center;gap:8px;font-size:10px;font-weight:700}.cleaning-dot{width:8px;height:8px;border-radius:50%}.cleaning-dot.ready{background:#22c55e}.cleaning-dot.dirty{background:#ef4444}.cleaning-dot.cleaning{background:#f59e0b}.cleaning-dot.inspection{background:#8b5cf6}.booking-form-wrap{max-width:1150px}.booking-form{display:grid;gap:18px}.form-section{overflow:hidden;border:1px solid #dce5ef;border-radius:17px;background:#fff;box-shadow:0 6px 24px rgba(30,64,120,.05)}.form-section>header{display:flex;align-items:center;gap:13px;border-bottom:1px solid #e6edf4;background:#fbfdff;padding:17px 20px}.form-section>header>span{display:grid;width:33px;height:33px;place-items:center;border-radius:10px;background:#2563eb;color:#fff;font-weight:800}.form-section h2{margin:0;font-size:16px}.form-section p{margin:3px 0 0;color:#718096;font-size:11px}.booking-fields{display:grid;gap:16px;padding:20px}.booking-fields.three{grid-template-columns:repeat(3,minmax(0,1fr))}.booking-fields.two{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-fields label{display:grid;gap:6px}.booking-fields label>span{color:#536579;font-size:11px;font-weight:750}.booking-fields input,.booking-fields select,.booking-fields textarea{width:100%;min-height:43px;border:1px solid #cedae6;border-radius:9px;background:#fff;padding:9px 11px;color:#25364a;outline:none}.booking-fields textarea{min-height:94px;resize:vertical}.booking-fields input:focus,.booking-fields select:focus,.booking-fields textarea:focus{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.11)}.booking-fields .wide{grid-column:1/-1}.booking-submit{position:sticky;bottom:12px;display:flex;align-items:center;justify-content:space-between;border:1px solid #b9cceb;border-radius:14px;background:rgba(245,249,255,.96);padding:13px 15px;box-shadow:0 12px 35px rgba(30,64,120,.14);backdrop-filter:blur(9px)}.booking-submit span{color:#64748b;font-size:11px}.guest-panel{margin-top:0}.guest-table{overflow:auto}.guest-row{display:grid;min-width:800px;grid-template-columns:1.25fr 1.2fr 130px 150px;gap:15px;border-top:1px solid #edf1f5;padding:13px 20px}.guest-row.head{background:#f8fafc;color:#64748b;font-size:10px;font-weight:800;text-transform:uppercase}.guest-row>span{display:grid;gap:3px;font-size:12px}.guest-row small{color:#7b8a9b;font-size:9px}.guest-row.blocked{background:#fff5f5}.guest-row.blocked b{color:#b91c1c}@media(max-width:1250px){.booking-layout{grid-template-columns:1fr}.booking-side{grid-template-columns:1fr 1fr}}@media(max-width:800px){.booking-hero{align-items:stretch;flex-direction:column}.booking-kpis{overflow:auto}.booking-kpis article{flex:1}.booking-side{grid-template-columns:1fr}.calendar-filter{width:100%;flex-wrap:wrap}.calendar-head{align-items:stretch;flex-direction:column}.booking-fields.three,.booking-fields.two{grid-template-columns:1fr}.booking-fields .wide{grid-column:auto}.booking-submit{align-items:stretch;flex-direction:column;gap:10px}.booking-submit .btn{width:100%}}
@media print {
  .font-size-control { display: none !important; }
  body { zoom: 1 !important; }
}

/* Interfaccia moderna in stile ClinicalOS */
body { background: #f4f7fa; }
h1, h2, h3, .brand strong, .stats strong { font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.sidebar { border-right: 0; background: linear-gradient(180deg, #123f61 0%, #0d304b 100%); color: #fff; box-shadow: 8px 0 28px rgba(15, 52, 78, .08); }
.brand { height: 74px; border-color: rgba(255, 255, 255, .1); }
.brand small, .user-box small, .sidebar .nav-label { color: rgba(255, 255, 255, .62); }
.brand-mark.small { background: #fff; color: #1f5f8b; box-shadow: none; }
.sidebar nav { padding-top: 22px; }
.sidebar nav a { color: rgba(255, 255, 255, .8); }
.sidebar nav a:hover { background: rgba(255, 255, 255, .09); color: #fff; }
.sidebar nav a.active { background: #fff; color: #174b70; box-shadow: 0 8px 20px rgba(0, 0, 0, .12); }
.user-box { border-color: rgba(255, 255, 255, .12); background: rgba(255, 255, 255, .08); }
.user-box button { color: rgba(255, 255, 255, .75); }
.topbar { height: 74px; border-color: #dce6ed; background: rgba(255, 255, 255, .94); }
.topbar h1 { font-size: 19px; font-weight: 720; letter-spacing: -.02em; }
.workspace { padding-top: 24px; }
.stats { gap: 14px; }
.stats article { position: relative; overflow: hidden; border-color: #dce6ed; border-radius: 14px; box-shadow: 0 5px 18px rgba(29, 67, 92, .05); }
.stats article::after { position: absolute; top: 0; right: 0; width: 70px; height: 4px; border-radius: 0 0 0 4px; background: #2d79a8; content: ""; }
.stats strong { color: #173e5b; font-size: 27px; font-weight: 750; }
.stat-icon { background: #e8f2f8; color: #1f6d9d; }
.panel { border-color: #dce6ed; border-radius: 14px; box-shadow: 0 5px 20px rgba(29, 67, 92, .05); }
.panel-head { padding: 18px 20px; }
.panel-head h2 { font-size: 17px; font-weight: 730; }
.btn { border-color: #cfdee8; border-radius: 8px; }
.btn.primary { border-color: #1f6d9d; background: #1f6d9d; box-shadow: 0 5px 13px rgba(31, 109, 157, .18); }
.btn.primary:hover { background: #18567d; }
.search-form input, .search-form select { border-color: #cfdee8; border-radius: 8px; }
.sister-row { padding-top: 12px; padding-bottom: 12px; }
.sister-row .avatar { border-radius: 10px; background: #e8f2f8; color: #1f6d9d; }
.clinical-record { background: #f4f7fa; }
.cos-card, .cos-profile { border-color: #dce6ed; box-shadow: 0 5px 20px rgba(29, 67, 92, .045); }
.cos-card > header { background: #fbfdfe; }
.cos-icon { background: #e6f1f7; color: #1f6d9d; }
.cos-field input, .cos-field textarea, .cos-field select { width: 100%; min-height: 38px; border: 1px solid #cfdee8; border-radius: 8px; background: #fff; padding: 8px 10px; color: #243b4b; font: inherit; font-size: 12px; outline: none; }
.cos-field select:focus { border-color: #1f6d9d; box-shadow: 0 0 0 3px rgba(31, 109, 157, .12); }
.create-workspace { max-width: 980px; }
.create-intro { display: flex; align-items: center; gap: 14px; margin-bottom: 18px; border: 1px solid #cfe1ec; border-radius: 14px; background: linear-gradient(135deg, #f8fcfe, #eef6fa); padding: 18px 20px; }
.create-intro .cos-icon { width: 42px; height: 42px; font-size: 20px; }
.create-intro h2 { margin: 0 0 4px; font-size: 19px; }
.create-intro p { margin: 0; color: #64788a; font-size: 12px; }
.create-card { overflow: hidden; }
.create-actions { display: flex; justify-content: flex-end; gap: 8px; border-top: 1px solid #dce6ed; background: #f8fbfd; padding: 14px 18px; }

/* Rifinitura 2026: maggiore leggibilità e profondità più sobria */
body { color: #203746; font-size: 16px; }
.auth-shell { grid-template-columns: minmax(420px, .92fr) minmax(480px, 1.08fr); background: #eef4f8; }
.auth-brand { position: relative; isolation: isolate; overflow: hidden; background: linear-gradient(145deg, #0c3452 0%, #165f8d 68%, #237eaa 100%); color: #fff; }
.auth-brand::before { position: absolute; z-index: -1; width: 520px; height: 520px; right: -210px; bottom: -240px; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; background: radial-gradient(circle at center, rgba(255,255,255,.12), transparent 68%); content: ""; }
.auth-brand::after { position: absolute; z-index: -1; width: 180px; height: 180px; right: 11%; top: 12%; border: 1px solid rgba(255,255,255,.14); border-radius: 38px; transform: rotate(22deg); content: ""; }
.auth-brand .brand-mark { width: 66px; height: 66px; margin-bottom: 58px; border: 1px solid rgba(255,255,255,.32); border-radius: 20px; background: rgba(255,255,255,.14); box-shadow: 0 18px 40px rgba(0,0,0,.16); backdrop-filter: blur(12px); }
.auth-brand .eyebrow { color: #bfe5f7; }
.auth-brand h1 { max-width: 650px; margin-bottom: 28px; color: #fff; font-family: Inter, ui-sans-serif, sans-serif; font-size: clamp(38px, 4.6vw, 66px); font-weight: 680; line-height: 1.04; letter-spacing: -.045em; }
.auth-brand > p:last-child { max-width: 520px; color: rgba(255,255,255,.76); font-size: 16px; line-height: 1.7; }
.auth-card { width: min(480px, calc(100% - 56px)); border: 1px solid #dbe6ed; border-radius: 22px; background: rgba(255,255,255,.96); padding: 46px; box-shadow: 0 24px 65px rgba(20,58,84,.13); }
.auth-card h2 { margin-bottom: 10px; font-family: Inter, ui-sans-serif, sans-serif; font-size: 30px; font-weight: 720; letter-spacing: -.035em; }
.auth-card .muted { font-size: 14px; line-height: 1.55; }
.eyebrow { font-size: 12px; }
.form-stack { gap: 19px; margin-top: 30px; }
.form-stack label { gap: 8px; color: #314c5f; font-size: 14px; }
.form-stack input { height: 50px; border-radius: 11px; padding: 0 14px; font-size: 16px; }
.form-stack .btn.wide { min-height: 50px; margin-top: 3px; font-size: 15px; }
.security-note { margin-bottom: 0; font-size: 13px; }
.sidebar nav a { height: 46px; font-size: 15px; }

.admin-users{display:grid;gap:18px}.admin-users .form-section{margin:0}.admin-create-action .btn{height:43px}.admin-user-panel{margin-top:0}.admin-user-list{display:grid}.admin-user-row{display:grid;grid-template-columns:minmax(280px,1fr) minmax(260px,.75fr) auto;align-items:center;gap:20px;border-top:1px solid #e7edf3;padding:16px 20px}.admin-user-row:first-child{border-top:0}.admin-user-row.inactive{background:#f8fafc;opacity:.72}.admin-user-identity{display:flex;align-items:center;gap:12px}.admin-user-identity>span:last-child{display:grid;gap:4px}.admin-user-identity strong{font-size:14px}.admin-user-identity small,.admin-user-state small,.admin-user-menu small{color:#64748b;font-size:10px}.admin-user-state{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.admin-user-row details{position:relative}.admin-user-row summary{list-style:none}.admin-user-row summary::-webkit-details-marker{display:none}.admin-user-menu{position:absolute;right:0;z-index:8;display:grid;width:330px;gap:10px;border:1px solid #dbe5ef;border-radius:14px;background:#fff;padding:14px;box-shadow:0 18px 45px rgba(19,52,78,.18)}.admin-user-menu form{display:grid;gap:8px}.admin-user-menu input{height:39px;border:1px solid #cedae6;border-radius:8px;padding:0 10px}.admin-user-menu form:not(:first-child) .btn{width:100%}@media(max-width:900px){.admin-user-row{grid-template-columns:1fr}.admin-user-menu{position:static;width:100%;margin-top:10px}}
.nav-label { font-size: 12px; }
.topbar { box-shadow: 0 1px 0 rgba(21,61,87,.03); }
.topbar small { font-size: 12px; font-weight: 650; letter-spacing: .02em; }
.topbar h1 { font-size: 20px; }
.panel-head h2, .cos-card > header h3 { font-size: 17px; }
.panel-head p, .cos-card > header p { font-size: 13px; }
.stats p { font-size: 14px; }
.stats small, .sister-row small, .community { font-size: 12px; }
.sister-row strong { font-size: 14px; }
.cos-field > span { font-size: 13px; }
.cos-field input, .cos-field textarea, .cos-field select { min-height: 42px; font-size: 14px; }
.cos-meta, .cos-status, .cos-tr span, .protected { font-size: 12px; }
.cos-profile { border-radius: 16px; padding: 22px 24px; }
.cos-profile h2 { font-size: 27px; }
.cos-card { border-radius: 16px; }
.cos-card > header { padding: 17px 19px; }
.cos-icon { width: 36px; height: 36px; border-radius: 10px; font-size: 12px; }
.btn { min-height: 40px; padding: 0 16px; font-size: 14px; transition: background .16s ease, border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.btn:active { transform: translateY(1px); }
@media (max-width: 760px) {
  .auth-shell { display: block; padding: 22px; background: linear-gradient(160deg,#dcebf4,#f4f8fb); }
  .auth-card { min-height: calc(100vh - 44px); width: 100%; border-radius: 18px; padding: 30px 24px; }
  .mobile-brand { display: flex; }
}
.booking-auth-brand { background: linear-gradient(145deg,#0f3f66,#176596); color:#fff; }
.booking-auth-brand .eyebrow,.booking-auth-brand>p:last-child { color:rgba(255,255,255,.76); }
.booking-auth .brand-mark { background:#fff; color:#174f76; box-shadow:0 12px 32px rgba(0,0,0,.18); }
.brand-mark-icon { overflow: hidden; padding: 7px; }
.brand-mark-icon img { display: block; width: 100%; height: 100%; object-fit: contain; }
.brand-mark-icon.small { padding: 4px; }
.forgot-link { display:block; margin-top:16px; color:#1f6d9d; font-size:13px; font-weight:700; text-align:center; text-decoration:none; }
.forgot-link:hover { text-decoration:underline; }

/* Rubrica ospiti e contatti */
.guest-workspace{display:grid;gap:18px}.guest-notice{border:1px solid;border-radius:12px;padding:13px 16px;font-size:13px;font-weight:700}.guest-notice.success{border-color:#bbf7d0;background:#f0fdf4;color:#166534}.guest-notice.error{border-color:#fecaca;background:#fef2f2;color:#991b1b}.guest-create{overflow:visible}.guest-create>summary{display:flex;align-items:center;justify-content:space-between;gap:20px;list-style:none;padding:18px 20px;cursor:pointer}.guest-create>summary::-webkit-details-marker{display:none}.guest-create>summary>span:first-child{display:grid;gap:4px}.guest-create>summary b{font-size:16px}.guest-create>summary small{color:#64748b;font-size:12px}.guest-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;border-top:1px solid #e5edf3;background:#fbfdfe;padding:20px}.guest-form .guest-notes,.guest-form .guest-check,.guest-form .guest-form-actions{grid-column:1/-1}.guest-check{display:flex;align-items:center;gap:10px;border:1px solid #d9e5ed;border-radius:10px;background:#fff;padding:11px 13px;color:#334e60}.guest-check input{width:18px;height:18px;accent-color:#1f6d9d}.guest-check span{display:grid;gap:2px}.guest-check b{font-size:12px}.guest-check small{color:#718096;font-size:10px}.guest-form-actions{display:flex;justify-content:flex-end}.guest-panel{overflow:visible}.guest-panel-head{gap:20px}.guest-filters{display:flex;gap:6px;border-top:1px solid #e9eff4;border-bottom:1px solid #e9eff4;background:#f8fafc;padding:9px 20px}.guest-filters a{border-radius:7px;padding:7px 12px;color:#5b7083;font-size:12px;font-weight:750;text-decoration:none}.guest-filters a.active{background:#e2eff7;color:#18567d}.guest-manage-row{grid-template-columns:minmax(220px,1.2fr) minmax(220px,1fr) 90px 140px 100px}.guest-row.inactive{background:#f8fafc;opacity:.68}.guest-name em{width:max-content;border-radius:999px;background:#fee2e2;padding:3px 7px;color:#991b1b;font-size:9px;font-style:normal;font-weight:800;text-transform:uppercase}.guest-name em.archived{background:#e2e8f0;color:#475569}.guest-actions{display:flex;justify-content:flex-end}.guest-actions details{position:relative}.guest-actions summary{list-style:none}.guest-actions summary::-webkit-details-marker{display:none}.guest-editor{position:absolute;z-index:20;right:0;top:46px;width:min(620px,70vw);overflow:hidden;border:1px solid #dbe5ef;border-radius:15px;background:#fff;box-shadow:0 22px 55px rgba(19,52,78,.22)}.guest-form.compact{padding:16px}.guest-toggle{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:12px;border-top:1px solid #e7edf3;padding:14px 16px}.guest-toggle small{color:#64748b;font-size:10px}.danger-soft{border-color:#fecaca!important;background:#fff7f7!important;color:#b91c1c!important}@media(max-width:1000px){.guest-manage-row{grid-template-columns:minmax(190px,1fr) minmax(190px,1fr) 80px 100px}.guest-manage-row>span:nth-child(4){display:none}}@media(max-width:760px){.guest-form{grid-template-columns:1fr}.guest-panel-head{align-items:stretch}.guest-panel-head,.guest-panel-head .search-form{display:grid}.guest-manage-row{grid-template-columns:1fr auto}.guest-manage-row>span:nth-child(2),.guest-manage-row>span:nth-child(3),.guest-manage-row.head{display:none}.guest-editor{position:fixed;inset:70px 16px auto;width:auto;max-height:calc(100vh - 90px);overflow:auto}.guest-toggle{grid-template-columns:1fr}.guest-create>summary{align-items:flex-start}}
.reset-back { display:flex; margin-top:22px; }
.booking-upcoming{overflow:visible}.booking-upcoming>summary{display:flex;align-items:center;gap:12px;list-style:none;cursor:pointer;padding:17px 19px}.booking-upcoming>summary::-webkit-details-marker{display:none}.booking-upcoming>summary>div:nth-child(2){min-width:0;flex:1}.booking-upcoming>summary h3{margin:0}.booking-upcoming>summary p{margin:3px 0 0}.upcoming-toggle{display:grid;width:28px;height:28px;place-items:center;border:1px solid #dce5ef;border-radius:8px;background:#f8fafc;color:#64748b;font-size:17px;transition:transform .18s ease}.booking-upcoming[open] .upcoming-toggle{transform:rotate(180deg)}.booking-upcoming:not([open])>summary{justify-content:center;padding:12px}.booking-upcoming:not([open])>summary>div:nth-child(2),.booking-upcoming:not([open]) .upcoming-toggle{display:none}.booking-layout:has(.booking-upcoming:not([open])){grid-template-columns:minmax(0,1fr) 62px}.booking-layout:has(.booking-upcoming:not([open])) .booking-side{width:62px}.booking-layout:has(.booking-upcoming:not([open])) .booking-upcoming .cos-icon{margin:0}@media(max-width:1250px){.booking-layout:has(.booking-upcoming:not([open])){grid-template-columns:1fr}.booking-layout:has(.booking-upcoming:not([open])) .booking-side{width:auto}.booking-upcoming:not([open])>summary{justify-content:flex-start}.booking-upcoming:not([open])>summary>div:nth-child(2){display:block}}
.calendar-cell.booked{position:relative;overflow:visible;text-decoration:none}.booking-preview{position:absolute;z-index:30;left:50%;bottom:calc(100% + 9px);display:none;width:280px;overflow:hidden;border:1px solid #cbd9e6;border-radius:14px;background:#fff;color:#243b53;text-align:left;transform:translateX(-50%);box-shadow:0 18px 48px rgba(20,52,79,.24);pointer-events:none}.calendar-cell.booked:hover,.calendar-cell.booked:focus{z-index:25;box-shadow:inset 0 0 0 2px #2563eb}.calendar-cell.booked:hover .booking-preview,.calendar-cell.booked:focus .booking-preview{display:block}.booking-preview:after{position:absolute;left:50%;bottom:-6px;width:12px;height:12px;background:#fff;transform:translateX(-50%) rotate(45deg);content:""}.booking-preview header{display:grid;gap:3px;border-bottom:1px solid #e6edf4;background:#f7fbff;padding:13px 15px}.booking-preview header b{font-size:13px}.booking-preview header small{color:#64748b;font-size:10px}.booking-preview dl{display:grid;gap:9px;margin:0;padding:13px 15px}.booking-preview dl>div{display:grid;grid-template-columns:62px 1fr;gap:8px}.booking-preview dt{color:#718096;font-size:9px;font-weight:800;text-transform:uppercase}.booking-preview dd{margin:0;font-size:11px;font-weight:650}.booking-preview footer{border-top:1px solid #e6edf4;padding:10px 15px;color:#1d4ed8;font-size:10px;font-weight:800}.calendar-scroll{padding-top:150px;margin-top:-150px}
.booking-author{display:grid!important;grid-template-columns:auto auto;gap:2px 7px!important;min-width:210px;color:#334155!important}.booking-author b{font-size:10px;text-transform:uppercase;color:#64748b}.booking-author>span{font-size:12px;font-weight:800}.booking-author small{grid-column:1/-1;color:#7b8a9b;font-size:9px}@media(max-width:800px){.booking-author{min-width:0}.booking-submit>span:not(.booking-author){display:none}}
.booking-calendar .calendar-cell.free{background:#dcfce7;box-shadow:inset 0 0 0 1px #bbf7d0}.booking-calendar .calendar-cell.free:hover,.booking-calendar .calendar-cell.free:focus{background:#bbf7d0;box-shadow:inset 0 0 0 2px #22c55e}.booking-calendar .calendar-cell.booked,.booking-calendar .calendar-cell.booked.status-option,.booking-calendar .calendar-cell.booked.status-checked_in,.booking-calendar .calendar-cell.booked.status-checked_out{background:#fee2e2;color:#991b1b;box-shadow:inset 0 0 0 1px #fecaca}.booking-calendar .calendar-cell.booked:hover,.booking-calendar .calendar-cell.booked:focus{background:#fecaca;box-shadow:inset 0 0 0 2px #ef4444}
.booking-print-page{min-height:100vh;background:#edf2f7;padding:26px;color:#172033}.print-toolbar{display:flex;max-width:1600px;align-items:center;justify-content:space-between;gap:24px;margin:0 auto 16px}.print-toolbar h1{margin:3px 0;font-size:25px}.print-toolbar p,.print-toolbar small{margin:0;color:#64748b}.print-toolbar-actions{display:flex;gap:8px}.print-config{display:flex;max-width:1600px;align-items:end;gap:16px;margin:0 auto 18px;border:1px solid #d9e3ed;border-radius:16px;background:#fff;padding:16px 18px;box-shadow:0 8px 28px rgba(30,64,120,.06)}.print-config>label{display:grid;gap:6px;color:#536579;font-size:11px;font-weight:750}.print-config input[type=month]{height:40px;border:1px solid #cedae6;border-radius:8px;padding:0 10px}.print-config fieldset{min-width:0;flex:1;border:0;margin:0;padding:0}.print-config legend{margin-bottom:7px;color:#536579;font-size:11px;font-weight:750}.print-resource-options{display:flex;gap:6px;overflow:auto;padding-bottom:3px}.print-resource-options label{display:flex;flex:none;align-items:center;gap:6px;border:1px solid #dbe5ee;border-radius:8px;padding:8px 10px;color:#40566a;font-size:10px;font-weight:700}.print-resource-options input{accent-color:#2563eb}.monthly-sheet{max-width:1600px;margin:auto;background:#fff;padding:22px 24px;box-shadow:0 15px 45px rgba(30,64,120,.12)}.monthly-sheet>header{display:flex;align-items:center;justify-content:space-between;border-bottom:2px solid #1e4f79;padding-bottom:12px}.monthly-sheet h2{margin:0;color:#173f5f;font-size:23px;text-align:right}.monthly-sheet header p{margin:3px 0 0;color:#536579;font-size:15px;font-weight:750;text-align:right}.monthly-brand{display:flex;align-items:center;gap:10px}.monthly-brand img{width:42px;height:42px}.monthly-brand span{display:grid}.monthly-brand b{color:#173f5f;font-size:15px}.monthly-brand small{color:#64748b;font-size:10px}.monthly-sheet table{width:100%;border-collapse:collapse;margin-top:14px;table-layout:fixed}.monthly-sheet th,.monthly-sheet td{border:1px solid #9caebe;padding:4px 5px;vertical-align:top}.monthly-sheet thead th{background:#dbeafe;color:#173f5f;font-size:9px;line-height:1.15}.monthly-sheet .date-column{width:42px}.monthly-sheet tbody th{background:#f1f5f9;text-align:center}.monthly-sheet tbody th b{display:block;font-size:10px}.monthly-sheet tbody th small{color:#64748b;font-size:7px}.monthly-sheet td{height:24px;font-size:7px;line-height:1.15;overflow-wrap:anywhere}.monthly-sheet td.occupied{background:#fee2e2}.monthly-sheet td b{display:block}.monthly-sheet td small{color:#64748b;font-size:6px}.monthly-sheet>footer{margin-top:9px;color:#64748b;font-size:7px;text-align:right}.print-empty{padding:50px;text-align:center;color:#64748b}@page{size:A3 landscape;margin:8mm}@media print{.booking-print-page{background:#fff;padding:0}.print-toolbar,.print-config,.font-size-control{display:none!important}.monthly-sheet{max-width:none;margin:0;padding:0;box-shadow:none}.monthly-sheet th,.monthly-sheet td{border-color:#708090}.monthly-sheet td{height:18px}.monthly-sheet>footer{display:block}}
.mfa-setup-card{padding-top:28px;padding-bottom:28px}.mfa-qr{display:grid;place-items:center;margin:20px 0 10px}.mfa-qr img{width:190px;height:190px;border:1px solid #d9e2ef;border-radius:16px;background:#fff;padding:10px;box-shadow:0 8px 28px rgba(20,60,95,.1)}.mfa-manual{margin:0 0 10px;color:#64748b;font-size:12px}.mfa-manual code{display:block;margin-top:8px;overflow-wrap:anywhere;border-radius:8px;background:#eff6ff;padding:10px;color:#174f76;letter-spacing:.08em}.otp-input{text-align:center;font-size:24px!important;font-weight:750;letter-spacing:.28em}
.room-status-workspace{display:grid;gap:18px}.room-status-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.room-status-summary article{display:flex;align-items:center;gap:12px;border:1px solid #dce5ef;border-radius:15px;background:#fff;padding:17px 20px;box-shadow:0 6px 22px rgba(30,64,120,.05)}.room-status-summary strong{font-size:28px}.room-status-summary span{color:#64748b;font-size:13px;font-weight:700}.room-status-summary .ready strong{color:#16a34a}.room-status-summary .dirty strong{color:#dc2626}.room-status-summary .cleaning strong{color:#d97706}.room-status-summary .inspection strong{color:#7c3aed}.room-status-grid{display:grid;grid-template-columns:repeat(3,minmax(260px,1fr));gap:16px}.room-status-card{overflow:hidden;border:1px solid #dce5ef;border-top:4px solid #22c55e;border-radius:17px;background:#fff;box-shadow:0 7px 25px rgba(30,64,120,.06)}.room-status-card.status-dirty{border-top-color:#ef4444}.room-status-card.status-cleaning{border-top-color:#f59e0b}.room-status-card.status-inspection{border-top-color:#8b5cf6}.room-status-card>header{display:flex;align-items:center;gap:12px;border-bottom:1px solid #edf1f5;padding:16px 18px}.room-status-card header>div{min-width:0;flex:1}.room-status-card h2{margin:0;font-size:17px}.room-status-card header p{margin:3px 0 0;color:#718096;font-size:11px}.room-code{display:grid;width:42px;height:42px;place-items:center;border-radius:11px;background:#eff6ff;color:#1d4ed8;font-size:11px;font-weight:800}.room-status-card .cleaning-dot{width:11px;height:11px}.room-occupancy,.room-next{display:grid;gap:5px;border-bottom:1px solid #edf1f5;padding:14px 18px}.room-occupancy>span,.room-next>span{color:#718096;font-size:9px;font-weight:800;text-transform:uppercase}.room-occupancy a,.room-next a,.room-occupancy b,.room-next b{overflow:hidden;color:#243b53;font-size:13px;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}.room-occupancy small,.room-next small{color:#718096;font-size:10px}.room-occupancy.occupied{background:#fffaf0}.room-occupancy.occupied>span{color:#b45309}.room-occupancy.free{background:#f2fbf5}.room-occupancy.free>span{color:#15803d}.room-status-card form{padding:14px 18px}.room-status-card form label{display:grid;gap:7px;color:#536579;font-size:10px;font-weight:750}.room-status-card select{height:41px;border:1px solid #cedae6;border-radius:9px;background:#fff;padding:0 10px;color:#25364a;font-size:13px}@media(max-width:1150px){.room-status-grid{grid-template-columns:repeat(2,minmax(260px,1fr))}}@media(max-width:760px){.room-status-summary{grid-template-columns:repeat(2,1fr)}.room-status-grid{grid-template-columns:1fr}}
