:root {
  --ink: #17201d;
  --muted: #7b827f;
  --line: #e7e6e1;
  --paper: #f6f5f1;
  --white: #fff;
  --green: #194f43;
  --green-2: #23695a;
  --green-soft: #e7f0ed;
  --gold: #c59b52;
  --danger: #b84a4a;
  --amber: #a96d20;
  --blue: #486f9a;
  --sidebar: #142a25;
  --radius: 18px;
  --shadow: 0 14px 45px rgba(28, 38, 34, .08);
  --font-ui: "Segoe UI Variable", "Segoe UI", Inter, system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  --font-display: "Segoe UI Variable Display", "Segoe UI", Inter, system-ui, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--font-ui); font-size: 14px; }
button, input, select, textarea { font: inherit; color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
button { cursor: pointer; }
[hidden] { display: none !important; }
.muted { color: var(--muted); }
.eyebrow { color: #84908c; font-size: 10px; font-weight: 800; letter-spacing: .16em; }
.brand { display: flex; align-items: center; gap: 11px; }
.brand-mark { width: 39px; height: 39px; display: inline-grid; place-items: center; flex: 0 0 auto; border-radius: 13px; color: white; background: linear-gradient(145deg, #cba45f, #9e7736); font-family: Georgia, serif; font-size: 23px; box-shadow: inset 0 1px 0 rgba(255,255,255,.35); }
.brand strong { display: block; color: white; font-family: Georgia, serif; font-size: 20px; letter-spacing: .02em; }
.brand small { display: block; color: rgba(255,255,255,.48); font-size: 7px; letter-spacing: .17em; margin-top: 2px; }
.btn { min-height: 42px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 0; border-radius: 11px; padding: 0 17px; font-weight: 700; transition: .2s ease; }
.btn:hover { transform: translateY(-1px); }
.btn:disabled{cursor:not-allowed;opacity:.55;transform:none;box-shadow:none}
.btn-primary { color: #fff; background: var(--green); box-shadow: 0 8px 22px rgba(25,79,67,.18); }
.btn-primary:hover { background: var(--green-2); }
.btn-secondary { color: var(--green); background: white; border: 1px solid #d8ddd9; }
.btn-ghost { background: transparent; color: #69716e; }
.btn-block { width: 100%; }
.alert { padding: 12px 14px; border-radius: 11px; line-height: 1.45; }
.alert-danger { color: #963d3d; background: #faeaea; border: 1px solid #f0cccc; }
.alert-success { color: #246555; background: #e6f3ef; border: 1px solid #c6e1d9; }
.flash-alert { margin: 0 32px; position: relative; }
.flash-alert button { float: right; border: 0; background: none; color: inherit; font-size: 20px; line-height: 1; }

/* Auth & installer */
.auth-body { min-height: 100vh; background: #eeece6; }
.login-shell { min-height: 100vh; display: grid; grid-template-columns: minmax(440px, 1.2fr) minmax(400px, .8fr); }
.login-visual { position: relative; overflow: hidden; min-height: 650px; padding: 44px 56px; color: #fff; background:
  radial-gradient(circle at 75% 20%, rgba(218,180,111,.18), transparent 24%),
  linear-gradient(145deg, rgba(9,36,31,.93), rgba(17,64,53,.82)),
  linear-gradient(120deg, #183e36, #35725f); }
.login-visual::before { content: ""; position: absolute; inset: 0; opacity: .12; background-image: linear-gradient(30deg, transparent 49%, rgba(255,255,255,.35) 50%, transparent 51%); background-size: 90px 90px; }
.login-visual::after { content: "L"; position: absolute; right: -20px; bottom: -180px; font: 700 610px/1 Georgia,serif; color: rgba(255,255,255,.035); }
.login-visual > * { position: relative; z-index: 1; }
.visual-copy { max-width: 650px; margin-top: 20vh; }
.visual-copy .eyebrow { color: #d2b77d; }
.visual-copy h1 { margin: 20px 0; font: 400 clamp(48px,6vw,80px)/1.03 Georgia,serif; letter-spacing: -.045em; }
.visual-copy h1 em, .install-brand h1 em { color: #d1ac68; font-weight: 400; }
.visual-copy p { max-width: 500px; color: rgba(255,255,255,.68); font-size: 16px; line-height: 1.7; }
.visual-stat { position: absolute; left: 56px; bottom: 45px; display: flex; align-items: center; gap: 15px; }
.visual-stat strong { font: 36px Georgia,serif; color: #d1ac68; }
.visual-stat span { max-width: 150px; padding-left: 15px; border-left: 1px solid rgba(255,255,255,.2); color: rgba(255,255,255,.6); font-size: 11px; line-height: 1.5; }
.auth-card { background: white; }
.login-card { display: flex; flex-direction: column; justify-content: center; padding: 8vw; }
.login-card h2, .install-card h2 { margin: 12px 0 6px; font: 400 32px/1.2 Georgia,serif; }
.login-card > p { margin: 0 0 28px; }
.mobile-brand { display: none; }
.form-stack { display: grid; gap: 15px; }
.form-stack label, .form-grid label, .inline-form label { display: grid; gap: 7px; color: #4f5855; font-size: 12px; font-weight: 700; }
.field-help{color:#929995;font-size:8px;font-weight:500}
input, select, textarea { width: 100%; border: 1px solid #dcdeda; border-radius: 10px; background: #fff; padding: 11px 12px; outline: none; transition: border .2s, box-shadow .2s; }
input:focus, select:focus, textarea:focus { border-color: #6c9a8f; box-shadow: 0 0 0 3px rgba(31,101,86,.1); }
textarea { resize: vertical; }
.password-field { position: relative; }
.password-field input { padding-right: 62px; }
.password-field button { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); border: 0; background: none; color: var(--green); font-size: 11px; font-weight: 700; }
.auth-foot { text-align: center; color: #a0a5a2; font-size: 10px; margin-top: 25px !important; }
.install-shell { min-height: 100vh; display: grid; grid-template-columns: .85fr 1.15fr; max-width: 1220px; margin: auto; padding: 45px; align-items: center; gap: 70px; }
.install-brand .brand-mark { margin-bottom: 38px; }
.install-brand h1 { margin: 15px 0 20px; font: 400 52px/1.05 Georgia,serif; letter-spacing: -.035em; }
.install-brand > p { color: #6f7773; line-height: 1.75; max-width: 480px; }
.install-points { display: flex; flex-wrap: wrap; gap: 12px 24px; margin-top: 35px; color: var(--green); font-size: 12px; font-weight: 700; }
.install-card { padding: 40px; border-radius: 24px; box-shadow: var(--shadow); }
.form-section-title { margin-top: 8px; padding-top: 15px; border-top: 1px solid var(--line); color: #8c918e; font-size: 10px; font-weight: 800; letter-spacing: .12em; }
.form-grid { display: grid; gap: 14px; }
.form-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.form-grid-full{grid-column:1/-1}
.success-icon { width: 60px; height: 60px; display: grid; place-items: center; margin-bottom: 25px; border-radius: 50%; background: var(--green-soft); color: var(--green); font-size: 28px; }

/* App shell */
.app-body { min-height: 100vh; }
.sidebar { position: fixed; inset: 0 auto 0 0; z-index: 20; width: 245px; display: flex; flex-direction: column; padding: 28px 18px 18px; color: white; background:
  radial-gradient(circle at 20% 2%, rgba(197,155,82,.12), transparent 24%),
  var(--sidebar); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: none; -ms-overflow-style: none; transition: transform .25s ease; }
.sidebar::-webkit-scrollbar { display: none; width: 0; height: 0; }
.sidebar > .brand { padding: 0 10px 29px; border-bottom: 1px solid rgba(255,255,255,.07); }
.nav { display: flex; flex-direction: column; gap: 4px; margin-top: 22px; }
.nav-label { padding: 14px 12px 6px; color: rgba(255,255,255,.32); font-size: 8px; font-weight: 800; letter-spacing: .18em; }
.nav a { display: grid; grid-template-columns: 28px 1fr auto; align-items: center; min-height: 44px; padding: 0 12px; border-radius: 10px; color: rgba(255,255,255,.62); font-size: 12px; font-weight: 600; transition: .2s; }
.nav a:hover { color: white; background: rgba(255,255,255,.045); }
.nav a.active { color: white; background: rgba(255,255,255,.09); box-shadow: inset 3px 0 #c8a35f; }
.nav a i { font-style: normal; font-size: 17px; color: rgba(255,255,255,.48); }
.nav a.active i { color: #d7b875; }
.nav a b { min-width: 21px; padding: 3px 6px; border-radius: 10px; color: rgba(255,255,255,.6); background: rgba(255,255,255,.07); font-size: 9px; text-align: center; }
.nav a b.notification { color: white; background: #a96d3f; }
.sidebar-foot { margin-top: auto; }
.system-health { display: flex; gap: 10px; align-items: center; margin: 12px 7px; padding: 11px; border: 1px solid rgba(255,255,255,.07); border-radius: 11px; background: rgba(255,255,255,.035); }
.system-health > span { width: 7px; height: 7px; border-radius: 50%; background: #67c68a; box-shadow: 0 0 0 4px rgba(103,198,138,.1); }
.system-health strong, .system-health small { display: block; }
.system-health strong { font-size: 10px; }
.system-health small { margin-top: 2px; color: rgba(255,255,255,.35); font-size: 8px; }
.user-mini { display: grid; grid-template-columns: 34px 1fr auto; align-items: center; gap: 9px; padding: 14px 7px 2px; border-top: 1px solid rgba(255,255,255,.07); }
.avatar { width: 36px; height: 36px; display: inline-grid; place-items: center; border-radius: 11px; flex: 0 0 auto; color: var(--green); background: #dfeae6; font-size: 11px; font-weight: 800; }
.avatar.small { width: 31px; height: 31px; border-radius: 9px; font-size: 9px; }
.avatar.large { width: 48px; height: 48px; border-radius: 14px; font-size: 13px; }
.user-mini strong, .user-mini small { display: block; }
.user-mini strong { max-width: 108px; overflow: hidden; text-overflow: ellipsis; font-size: 10px; white-space: nowrap; }
.user-mini small { color: rgba(255,255,255,.4); font-size: 8px; margin-top: 2px; }
.user-mini button { border: 0; color: rgba(255,255,255,.4); background: none; }
.main { min-height: 100vh; margin-left: 245px; }
.topbar { min-height: 112px; display: flex; align-items: center; gap: 18px; padding: 25px 32px 20px; }
.topbar h1 { margin: 4px 0 2px; font: 400 28px/1.1 Georgia,serif; letter-spacing: -.02em; }
.topbar p { margin: 0; color: var(--muted); font-size: 11px; }
.top-actions { display: flex; align-items: center; gap: 10px; margin-left: auto; }
.profile-button{display:flex;align-items:center;gap:9px;min-height:44px;padding:6px 10px 6px 7px;border:1px solid #dedfdc;border-radius:12px;background:white;box-shadow:0 5px 18px rgba(25,35,31,.04)}.profile-button>span:nth-child(2){min-width:95px}.profile-button strong,.profile-button small{display:block}.profile-button strong{max-width:135px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px}.profile-button small{margin-top:2px;color:var(--muted);font-size:7px}.profile-button i{color:#8d9491;font-style:normal}
.icon-btn, .menu-toggle { width: 42px; height: 42px; position: relative; border: 1px solid #dedfdc; border-radius: 11px; color: #59615e; background: white; }
.icon-btn{display:grid;place-items:center}
.icon-btn span { width: 6px; height: 6px; position: absolute; top: 9px; right: 9px; border-radius: 50%; background: #bd744b; border: 1px solid white; }
.menu-toggle { display: none; }
.page-content { padding: 4px 32px 40px; }
.app-footer{display:flex;align-items:center;justify-content:center;gap:6px;margin:0 32px;padding:18px 10px 25px;border-top:1px solid var(--line);color:#969c99;font-size:9px}.app-footer a{color:var(--green);font-weight:800}.app-footer a:hover{text-decoration:underline}
.panel { border: 1px solid var(--line); border-radius: var(--radius); background: white; box-shadow: 0 5px 25px rgba(25,35,31,.025); }
.panel-head { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 21px 23px; }
.panel-head h2 { margin: 5px 0 0; font: 400 19px Georgia,serif; }
.panel-head a { color: var(--green); font-size: 10px; font-weight: 700; }
.panel-tag { padding: 6px 9px; border: 1px solid var(--line); border-radius: 8px; color: #777f7b; font-size: 9px; }

/* Dashboard */
.metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 15px; margin-bottom: 16px; }
.metric-card { min-height: 152px; padding: 19px; border: 1px solid var(--line); border-radius: 16px; background: white; position: relative; overflow: hidden; }
.metric-card.accent { color: white; border-color: transparent; background: linear-gradient(145deg, #16483d, #236858); }
.metric-card.accent::after { content:""; position:absolute; width:130px; height:130px; right:-50px; bottom:-55px; border: 20px solid rgba(255,255,255,.04); border-radius:50%; }
.metric-top { height: 32px; display: flex; justify-content: space-between; align-items: start; }
.metric-icon { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 9px; color: white; background: rgba(255,255,255,.12); font-weight: 800; }
.metric-card:not(.accent) .metric-icon { color: var(--green); background: var(--green-soft); }
.metric-icon.green { color: #39806d !important; background: #e4f1ed !important; }
.metric-icon.amber { color: #a66b22 !important; background: #f7eddd !important; }
.metric-icon.blue { color: #4c7298 !important; background: #e8eef4 !important; }
.trend { padding: 4px 7px; border-radius: 7px; color: #8b918e; background: #f5f5f2; font-size: 8px; font-weight: 700; }
.accent .trend { color: rgba(255,255,255,.72); background: rgba(255,255,255,.1); }
.trend.positive { color: #3b7f6c; }
.accent .trend.positive { color: #d1e9e2; }
.metric-card > span { display: block; margin-top: 8px; color: #777f7b; font-size: 10px; }
.metric-card.accent > span { color: rgba(255,255,255,.6); }
.metric-card > strong { display: block; margin: 4px 0 3px; font: 400 27px Georgia,serif; letter-spacing: -.02em; }
.metric-card > strong small { font-size: 14px; }
.metric-card > small { color: #a0a5a2; font-size: 8px; }
.accent > small { color: rgba(255,255,255,.46); }
.progress { height: 3px; overflow: hidden; margin: 9px 0 6px; border-radius: 3px; background: rgba(255,255,255,.12); }
.progress i { height: 100%; display: block; background: #d2b36e; }
.dashboard-grid { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(300px,.75fr); gap: 16px; margin-bottom: 16px; }
.dashboard-grid.lower { grid-template-columns: minmax(0,1.25fr) minmax(300px,.75fr); }
.chart-panel canvas { width: 100%; padding: 0 15px 12px; }.revenue-chart{position:relative;padding:0 15px 12px}.revenue-chart svg{display:block;width:100%;height:230px}.chart-grid-line{stroke:#e9e7e1;stroke-width:1}.chart-line{fill:none;stroke:#1a574a;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.chart-point{fill:white;stroke:#1a574a;stroke-width:2}.chart-label{fill:#8a8e89;font:11px system-ui;text-anchor:middle}.chart-empty-note{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);padding:8px 12px;border-radius:9px;color:#7c8581;background:rgba(255,255,255,.9);font-size:9px}
.dashboard-action-row{display:flex;justify-content:flex-end;gap:8px;margin-bottom:14px}
.donut-wrap { display: grid; grid-template-columns: 145px 1fr; align-items: center; gap: 14px; padding: 8px 20px 25px; }
.donut { --value: 0; width: 130px; aspect-ratio: 1; display: grid; place-items: center; border-radius: 50%; background: conic-gradient(var(--green) calc(var(--value)*1%), #dce8e4 0 82%, #e1b45f 0 92%, #d5d5d2 0); position: relative; }
.donut::after { content:""; position:absolute; inset:18px; border-radius:50%; background:white; }
.donut span { z-index:1; text-align:center; }
.donut strong, .donut small { display:block; }
.donut strong { font: 23px Georgia,serif; }
.donut small { color:var(--muted); font-size:8px; }
.legend { display:grid; gap:11px; }
.legend > div { display:grid; grid-template-columns:10px 1fr auto; gap:7px; align-items:center; color:#747c78; font-size:9px; }
.legend strong { color:var(--ink); font-size:11px; }
.dot { width:7px; height:7px; border-radius:50%; }
.dot.status-occupied { background:var(--green); }.dot.status-available{background:#a7cec3}.dot.status-cleaning{background:#d9ad5f}.dot.status-maintenance{background:#b7b9b7}
.compact-list { padding: 0 23px 14px; }
.compact-row { display:flex; align-items:center; gap:11px; padding:11px 0; border-top:1px solid #f0efeb; }
.date-tile { width:34px; height:40px; display:grid; place-content:center; flex:0 0 auto; border:1px solid var(--line); border-radius:8px; text-align:center; }
.date-tile strong,.date-tile small{display:block}.date-tile strong{font:15px Georgia,serif}.date-tile small{color:var(--muted);font-size:6px}
.grow { flex:1; min-width:0; }.grow strong,.grow small{display:block}.grow strong{font-size:10px}.grow small{margin-top:3px;color:#989e9b;font-size:8px}
.vip { display:inline-block; padding:2px 5px; border-radius:5px; color:#8f6b2d; background:#f5ead5; font-size:7px; font-style:normal; vertical-align:middle; }
.room-chip { padding:5px 8px;border-radius:7px;background:#f2f4f2;color:#65706c;font-size:8px;font-weight:700; }
.operation-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; padding:0 21px 18px; }
.operation-cards > div { padding:14px 10px;border:1px solid var(--line);border-radius:11px;text-align:center; }
.op-icon { width:28px;height:28px;display:grid;place-items:center;margin:0 auto 7px;border-radius:8px;color:var(--green);background:var(--green-soft); }
.op-icon.amber{color:var(--amber);background:#f6ecdb}.op-icon.blue{color:var(--blue);background:#e7edf3}
.operation-cards strong,.operation-cards small{display:block}.operation-cards strong{font:17px Georgia,serif}.operation-cards small{margin-top:4px;color:var(--muted);font-size:7px}
.quick-actions { margin:0 21px 20px;padding-top:16px;border-top:1px solid var(--line); }
.quick-actions > div{display:flex;gap:7px;margin-top:9px;flex-wrap:wrap}.quick-actions button,.quick-actions a{padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:white;color:#59635f;font-size:8px;font-weight:700}

/* Common modules */
.toolbar { min-height:48px;display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:16px; }
.filter-tabs { display:flex;gap:4px;flex-wrap:wrap;padding:4px;border:1px solid var(--line);border-radius:11px;background:#edede9; }
.filter-tabs button,.view-switch button { min-height:31px;padding:0 12px;border:0;border-radius:8px;background:transparent;color:#7a817e;font-size:9px;font-weight:700; }
.filter-tabs button.active,.view-switch button.active{color:var(--green);background:white;box-shadow:0 2px 8px rgba(20,40,33,.07)}
.filter-tabs span{margin-left:4px;color:#a1a6a4;font-size:8px}
.view-switch{display:flex;padding:4px;border:1px solid var(--line);border-radius:10px;background:#edede9}
.reservation-toolbar-actions{display:flex;align-items:center;gap:9px}.calendar-date-picker label{display:flex;align-items:center;gap:8px;padding:4px 5px 4px 11px;border:1px solid var(--line);border-radius:10px;background:white;color:var(--muted);font-size:8px;font-weight:800}.calendar-date-picker input{width:132px;padding:6px 8px;border:0;box-shadow:none!important;font-size:9px}
.section-title{display:flex;align-items:center;justify-content:space-between;margin:23px 2px 12px}
.section-title > div{display:flex;align-items:center;gap:9px}.section-title > div>span{width:26px;height:26px;display:grid;place-items:center;border-radius:8px;color:var(--green);background:var(--green-soft);font-size:9px;font-weight:800}.section-title h2{margin:0;font:17px Georgia,serif}.section-title small{color:var(--muted);font-size:9px}
.room-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}
.room-card{padding:15px;border:1px solid var(--line);border-radius:15px;background:white;transition:.2s}.room-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.room-head{display:flex;justify-content:space-between;align-items:start}.room-head>div small{display:block;margin-top:3px;color:var(--muted);font-size:8px}.room-number{font:24px Georgia,serif}
.status-badge{display:inline-flex;align-items:center;gap:5px;padding:5px 7px;border-radius:7px;color:#707774;background:#f0f1ef;font-size:8px;font-weight:800;white-space:nowrap}
.status-badge i{width:5px;height:5px;border-radius:50%;background:currentColor}
.status-badge.available,.status-badge.checked_in,.status-badge.paid,.status-badge.completed{color:#347463;background:#e6f1ed}
.status-badge.occupied,.status-badge.confirmed,.status-badge.partial,.status-badge.in_progress{color:#4b6f95;background:#e8eef4}
.status-badge.cleaning,.status-badge.pending,.status-badge.no_show{color:#9c681f;background:#f7eddb}
.status-badge.maintenance,.status-badge.cancelled,.status-badge.refunded,.status-badge.blocked{color:#a24d4d;background:#f7e6e6}
.status-badge.checked_out{color:#6f7472;background:#ededeb}
.room-art{height:85px;display:flex;flex-direction:column;align-items:center;justify-content:center;margin:12px 0;border-radius:11px;background:linear-gradient(145deg,#f5f5f1,#ecece7);color:#87908c}.room-art .bed{font-size:36px;color:#b4beb9;line-height:1}.room-art small{margin-top:7px;max-width:90%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:7px}
.room-foot{display:flex;align-items:center;justify-content:space-between;gap:8px}.room-foot>strong{font:16px Georgia,serif}.room-foot>strong small{color:var(--muted);font:7px system-ui}.room-foot select,.inline-action select,.task-actions select{padding:6px 22px 6px 8px;border-radius:7px;font-size:8px}
.room-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.room-actions form{margin:0}.room-edit-button,.room-maintenance-button,.room-remove-button{padding:7px 9px;border:1px solid #d6dfdb;border-radius:7px;color:var(--green);background:white;font-size:8px;font-weight:800}.room-maintenance-button{color:#9a6221;border-color:#ead7bb;background:#fffaf2}.room-remove-button{color:#a34c4c;border-color:#efd1d1;background:#fff6f6}.maintenance-note{display:grid;grid-template-columns:1fr auto;gap:3px 8px;margin:-3px 0 11px;padding:8px 10px;border-radius:8px;color:#8b5e24;background:#fbf0df;font-size:7px}.maintenance-note strong{font-size:8px}.maintenance-note small{grid-column:1/-1;color:#a07845}.maintenance-warning{padding:12px;border:1px solid #ead8b8;border-radius:10px;color:#805d2c;background:#fff8ec;font-size:9px;line-height:1.5}
.toolbar-note{margin:4px 0 0;color:var(--muted);font-size:9px}.calendar-panel{overflow:hidden}.calendar-legend{display:flex;gap:13px;color:var(--muted);font-size:8px}.calendar-legend span{display:flex;align-items:center;gap:5px}.calendar-legend i{width:7px;height:7px;border-radius:2px;background:#8ab6aa}.calendar-legend i.departure{background:#d39a68}.calendar-legend i.arrival{background:#72a894}.calendar-legend i.checked_in{background:#7395b9}.calendar-legend i.maintenance{background:#c28a43}
.calendar-head-actions{display:flex;align-items:center;gap:18px}.calendar-navigation{display:flex;align-items:center;padding:3px;border:1px solid var(--line);border-radius:9px;background:#f3f3f0}.calendar-navigation a{min-width:28px;height:26px;display:grid;place-items:center;padding:0 8px;border-radius:6px;color:#5f6b67!important;font-size:8px!important}.calendar-navigation a:hover{background:white}
.calendar-scroll{overflow:auto;padding:0 20px 22px}.calendar-grid{min-width:max(1000px,calc(70px + var(--calendar-days,14) * 88px));display:grid;grid-template-columns:70px repeat(var(--calendar-days,14),minmax(88px,1fr));border:1px solid var(--line);border-radius:11px;overflow:hidden}
.calendar-grid>div{min-height:58px;border-right:1px solid #eeede9;border-bottom:1px solid #eeede9}.calendar-corner,.calendar-day,.calendar-room{display:grid;place-content:center;background:#fafaf8;text-align:center}.calendar-corner{font-size:8px;font-weight:800;color:var(--muted)}.calendar-day span,.calendar-day strong{display:block}.calendar-day span{color:var(--muted);font-size:7px}.calendar-day strong{margin-top:2px;font:13px Georgia,serif}.calendar-day.today{color:white;background:var(--green)}.calendar-day.today span{color:rgba(255,255,255,.6)}
.calendar-room strong,.calendar-room small{display:block}.calendar-room strong{font:13px Georgia,serif}.calendar-room small{color:var(--muted);font-size:6px}.calendar-cell{position:relative;background:white}.calendar-cell.today{background:#f2f7f5}.booking-block{position:absolute;z-index:2;left:3px;right:3px;padding:5px;border-radius:5px;overflow:hidden;text-overflow:ellipsis;color:#285f52;background:#dcece7;font-size:7px;white-space:nowrap}.booking-block b{margin-right:2px}.booking-block.stay,.booking-block.maintenance{top:9px;bottom:9px}.booking-block.checked_in{color:#3f6083;background:#dfe9f2}.booking-block.departure{top:4px;bottom:31px;color:#85502b;background:#f4e3d4}.booking-block.arrival{top:31px;bottom:4px;color:#285f52;background:#dcece7}.booking-block.maintenance{color:#895b20;background:repeating-linear-gradient(135deg,#f6e5ca,#f6e5ca 5px,#f1d8b1 5px,#f1d8b1 10px);text-align:center;font-weight:800}.calendar-add{position:absolute;z-index:1;inset:4px;width:calc(100% - 8px);border:1px dashed transparent;border-radius:6px;color:transparent;background:transparent;font-size:15px;transition:.15s}.calendar-add.after-departure{top:31px;height:23px}.calendar-cell:hover .calendar-add,.calendar-add:focus{color:#4e8074;border-color:#abc8c0;background:#eef6f3}.calendar-cell.turnover{background:linear-gradient(to bottom,#fff7f0 0 50%,#f4faf7 50% 100%)}
.table-panel{overflow:hidden}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap}th{padding:11px 15px;color:#929894;background:#fafaf8;border-bottom:1px solid var(--line);font-size:8px;letter-spacing:.05em;text-align:left}td{padding:12px 15px;border-bottom:1px solid #efefeb;font-size:9px}td>strong,td>small{display:block}td>small{margin-top:3px;color:#9aa09d;font-size:7px}.person-cell{display:flex;align-items:center;gap:8px}.person-cell strong,.person-cell small{display:block}.person-cell small{margin-top:3px;color:var(--muted);font-size:7px}
.search-box{min-width:290px;display:flex;align-items:center;gap:7px;padding-left:12px;border:1px solid var(--line);border-radius:10px;background:white;color:#929894}.search-box input{border:0;box-shadow:none!important;padding-left:2px;font-size:10px}.search-box.compact{min-width:220px}
.reservation-list-controls,.customer-list-controls{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.guest-mode-switch{display:flex;gap:7px;margin-bottom:14px;padding:4px;border:1px solid var(--line);border-radius:10px;background:#f0f0ed}.guest-mode-switch label{flex:1;display:flex;align-items:center;justify-content:center;gap:7px;padding:9px;border-radius:7px;font-size:9px;font-weight:800}.guest-mode-switch input{width:auto}.guest-mode-switch label:has(input:checked){color:var(--green);background:white;box-shadow:0 2px 8px rgba(20,40,33,.07)}.new-customer-fields{margin-bottom:14px;padding:14px;border:1px solid #dfe8e4;border-radius:12px;background:#f6faf8}
.reservation-date-filter{display:flex;align-items:end;gap:7px}.reservation-date-filter label{display:grid;gap:4px;color:var(--muted);font-size:7px;font-weight:800}.reservation-date-filter input{width:125px;padding:7px 8px;font-size:8px}
.customer-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.customer-card{padding:17px;border:1px solid var(--line);border-radius:15px;background:white}.customer-head{display:flex;align-items:center;gap:11px}.customer-head h3{margin:0;font:16px Georgia,serif}.customer-head p{margin:4px 0 0;color:var(--muted);font-size:8px}.customer-head button{margin-left:auto}.customer-contact{display:grid;gap:7px;margin:16px 0;padding:13px 0;border-block:1px solid #efefec;color:#747c78;font-size:8px}.customer-contact span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.customer-stats{display:grid;grid-template-columns:1fr 1fr}.customer-stats>div+div{padding-left:15px;border-left:1px solid var(--line)}.customer-stats strong,.customer-stats small{display:block}.customer-stats strong{font:16px Georgia,serif}.customer-stats small{margin-top:3px;color:var(--muted);font-size:7px}.history-modal-body{padding:0 0 20px}.history-modal-body .empty-state{padding:35px 20px}
.customer-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;margin-top:13px;padding-top:12px;border-top:1px solid var(--line)}.customer-actions form{margin:0}
.mini-btn{padding:6px 9px;border:1px solid #d6dfdb;border-radius:7px;color:var(--green);background:white;font-size:8px;font-weight:700}.service-panel{margin-top:16px}.inline-form{display:grid;grid-template-columns:1.4fr 1.3fr .5fr .8fr auto;gap:10px;align-items:end;padding:0 23px 23px}.inline-form input,.inline-form select{padding:9px;font-size:9px}
.mini-btn.danger{color:#a34c4c;border-color:#efd1d1;background:#fff6f6}.archive-chip{display:inline-flex;padding:3px 6px;border-radius:5px;color:#785f36;background:#f2e8d6;font:700 7px system-ui;vertical-align:middle}.archive-panel{margin-top:18px}.archive-list{display:grid;padding:0 22px 20px}.archive-list article{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 0;border-top:1px solid var(--line)}.archive-list strong,.archive-list small{display:block}.archive-list small{margin-top:4px;color:var(--muted);font-size:8px}.archive-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.archive-actions form{margin:0}
.technical-board{display:grid;gap:11px}.technical-card{display:grid;grid-template-columns:100px minmax(0,1fr) minmax(220px,300px);align-items:center;gap:18px;padding:18px}.technical-room{text-align:center}.technical-room span,.technical-room small{display:block}.technical-room span{font:24px Georgia,serif}.technical-room small{margin-top:5px;color:var(--muted);font-size:8px}.technical-content h3{margin:8px 0 5px;font:17px Georgia,serif}.technical-content p{margin:0 0 7px;color:var(--muted);font-size:9px}.technical-content>small{display:block;margin-top:3px;color:#929895;font-size:7px}.technical-actions form{display:grid;gap:7px}.technical-actions input{padding:8px;font-size:8px}
.table-actions{display:flex;align-items:center;gap:7px}
.task-board{display:grid;gap:10px}.task-card{display:grid;grid-template-columns:4px 68px 1fr 150px;align-items:center;gap:16px;min-height:105px;padding:13px 17px 13px 0;border:1px solid var(--line);border-radius:14px;background:white;overflow:hidden}.task-priority{height:100%;background:#aeb4b1}.task-priority.high{background:#d19a48}.task-priority.urgent{background:#b84f4f}.task-priority.low{background:#80a89d}.task-room{text-align:center}.task-room span,.task-room small{display:block}.task-room span{font:25px Georgia,serif}.task-room small{color:var(--muted);font-size:7px}.task-content>div{display:flex;gap:6px}.priority-label{padding:5px 7px;color:#858b88;background:#f2f2ef;border-radius:7px;font-size:7px;font-weight:700}.task-content h3{margin:7px 0 4px;font:15px Georgia,serif}.task-content p{margin:0 0 7px;color:#7e8582;font-size:8px}.task-content>small{color:#9ba09e;font-size:7px}.task-actions{text-align:right}
.empty-state{text-align:center;color:var(--muted)}.empty-state.large{padding:70px 20px}.empty-state>span{font-size:30px;color:#a7b5b0}.empty-state h2{font:22px Georgia,serif;color:var(--ink)}.empty-state p{font-size:10px}
.check-label{grid-template-columns:auto 1fr!important;align-items:center!important}.check-label input{width:16px;height:16px}
.role-summary{display:flex;gap:16px;color:#69726e;font-size:9px;font-weight:700}.role-summary span{display:flex;align-items:center;gap:6px}.role-summary i{width:7px;height:7px;border-radius:50%;background:#808985}.role-summary i.admin{background:#c59b52}.role-summary i.reception{background:#4f8a7a}.role-summary i.housekeeping{background:#6381a1}
.role-badge{display:inline-flex;padding:5px 8px;border-radius:7px;font-size:8px;font-weight:800}.role-badge.admin{color:#8b6728;background:#f5ead5}.role-badge.reception{color:#347463;background:#e6f1ed}.role-badge.housekeeping{color:#4b6f95;background:#e8eef4}
.permissions-panel{margin-top:16px}.permission-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:0 23px 23px}.permission-grid>div{padding:15px;border:1px solid var(--line);border-radius:11px}.permission-grid strong,.permission-grid span{display:block}.permission-grid strong{font:15px Georgia,serif}.permission-grid span{margin-top:6px;color:var(--muted);font-size:8px;line-height:1.5}

/* Professional reservation file */
.reservation-file-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:16px;padding:20px 22px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(135deg,#fff,#f0f5f2)}
.back-link{display:inline-block;margin-bottom:13px;color:var(--green);font-size:9px;font-weight:800}.reservation-file-title{display:flex;align-items:center;gap:12px}.reservation-file-title h2{margin:4px 0 0;font:30px Georgia,serif}.reservation-file-head p{margin:7px 0 0;color:var(--muted);font-size:10px}.reservation-status-form{display:flex;align-items:flex-end;gap:8px}.reservation-status-form label{display:grid;gap:6px;color:var(--muted);font-size:8px;font-weight:800}.reservation-status-form select{min-width:150px;padding:10px}
.reservation-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:16px}.reservation-kpis article{padding:15px 16px;border:1px solid var(--line);border-radius:14px;background:white}.reservation-kpis span,.reservation-kpis strong,.reservation-kpis small{display:block}.reservation-kpis span{color:var(--muted);font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.reservation-kpis strong{margin:7px 0 4px;font:17px Georgia,serif}.reservation-kpis small{color:#959b98;font-size:8px}.reservation-kpis .balance{color:white;border-color:transparent;background:var(--green)}.reservation-kpis .balance span,.reservation-kpis .balance small{color:rgba(255,255,255,.6)}.reservation-kpis .balance.open{background:linear-gradient(135deg,#976126,#bd8740)}
.reservation-file-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(285px,.65fr);gap:16px}.reservation-file-main,.reservation-file-side{display:grid;align-content:start;gap:16px}
.detail-form{padding:0 23px 22px}.detail-form fieldset{margin:0;padding:0;border:0}.detail-form fieldset:disabled{opacity:.72}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.detail-form-actions{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.detail-form-actions span{color:var(--muted);font-size:8px}.compact-button{min-height:34px;padding:0 11px;font-size:8px}
.guest-list{display:grid;padding:0 22px 20px}.guest-list article{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:10px;padding:12px 0;border-top:1px solid #efefeb}.guest-list strong,.guest-list small{display:block}.guest-list strong{font-size:10px}.guest-list small{margin-top:4px;color:var(--muted);font-size:8px}.primary-chip{padding:5px 7px;border-radius:6px;color:#8d6b32;background:#f5ead6;font-size:7px;font-weight:800}.icon-delete{width:27px;height:27px;border:1px solid #efd4d4;border-radius:7px;color:#a84b4b;background:#fff5f5;font-size:16px}
.folio-panel table{white-space:normal}.folio-panel td:nth-child(3){min-width:190px}.folio-type{display:inline-flex;padding:5px 7px;border-radius:6px;color:#506b62;background:#edf3f1;font-size:7px;font-weight:800}.folio-type.discount,.folio-type.adjustment{color:#956029;background:#f8eddd}.folio-type.tax{color:#4f6e90;background:#eaf0f5}.negative-money{color:#a45151}
.guest-card{padding:20px}.guest-card>.eyebrow{display:block;margin-bottom:16px}.guest-card-head{display:flex;align-items:center;gap:11px}.guest-card h3{margin:0;font:18px Georgia,serif}.guest-card-head small{display:block;margin-top:4px;color:#9b7a3f;font-size:8px}.guest-card dl{display:grid;gap:10px;margin:18px 0 0;padding-top:16px;border-top:1px solid var(--line)}.guest-card dl>div{display:flex;justify-content:space-between;gap:12px}.guest-card dt{color:var(--muted);font-size:8px}.guest-card dd{max-width:180px;margin:0;overflow:hidden;text-overflow:ellipsis;font-size:9px;font-weight:700;white-space:nowrap}
.invoice-card{padding-bottom:19px}.invoice-card .panel-head{padding-bottom:10px}.invoice-breakdown{display:grid;gap:10px;padding:5px 20px 17px}.invoice-breakdown>div{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:9px}.invoice-breakdown strong{color:var(--ink)}.invoice-breakdown .invoice-total{margin-top:5px;padding-top:12px;border-top:1px solid var(--line);font-size:11px}.invoice-breakdown .invoice-total strong{font:18px Georgia,serif}.invoice-breakdown .invoice-balance{padding:10px;border-radius:9px;color:white;background:var(--green)}.invoice-breakdown .invoice-balance strong{color:white}.invoice-card>.btn{width:calc(100% - 40px);margin:0 20px}
.payment-list{display:grid;padding:0 20px 18px}.payment-list>div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 0;border-top:1px solid var(--line);font-size:8px}.payment-list span small{display:block;margin-top:4px;color:var(--muted);font-size:7px}.payment-list strong{font:13px Georgia,serif}.small-empty{padding:0 20px 22px;color:var(--muted);font-size:9px}
.invoice-detail-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:15px;padding:21px 23px;border:1px solid var(--line);border-radius:18px;background:white}.invoice-detail-head h2{margin:5px 0;font:29px Georgia,serif}.invoice-detail-head p{margin:0;color:var(--muted);font-size:9px}.invoice-head-actions{display:flex;align-items:center;gap:8px}.invoice-summary-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:15px}.invoice-summary-grid article{padding:15px;border:1px solid var(--line);border-radius:13px;background:white}.invoice-summary-grid span,.invoice-summary-grid strong,.invoice-summary-grid small{display:block}.invoice-summary-grid span{color:var(--muted);font-size:8px}.invoice-summary-grid strong{margin:7px 0 4px;font:15px Georgia,serif}.invoice-summary-grid small{color:#999f9c;font-size:7px}.invoice-summary-grid .balance{color:white;border-color:transparent;background:var(--green)}.invoice-summary-grid .balance span,.invoice-summary-grid .balance small{color:rgba(255,255,255,.6)}.invoice-detail-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.5fr);gap:15px}.invoice-contact-card{padding:20px}.invoice-contact-card h3{margin:10px 0 5px;font:20px Georgia,serif}.invoice-contact-card>p{color:var(--muted);font-size:9px;line-height:1.7}.invoice-contact-card .payment-list{padding:10px 0 0}

/* Modal */
.modal{width:min(650px,calc(100% - 28px));padding:0;border:0;border-radius:19px;background:transparent;box-shadow:0 30px 80px rgba(10,30,24,.25)}.modal[open]{position:fixed;inset:50% auto auto 50%;transform:translate(-50%,-50%);z-index:100}.modal::backdrop{background:rgba(9,23,19,.48);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px)}.modal-card{display:block;background:white;border-radius:19px;overflow:hidden}.modal-card.small{max-width:460px;margin:auto}.modal-head{display:flex;justify-content:space-between;align-items:start;padding:23px 25px;border-bottom:1px solid var(--line)}.modal-head h2{margin:5px 0 0;font:24px var(--font-display);font-weight:650;letter-spacing:-.025em}.modal-head button,.modal-head>a{width:31px;height:31px;display:grid;place-items:center;border:0;border-radius:8px;color:#747c78;background:#f0f0ed;font-size:19px}.modal-body{padding:23px 25px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;padding:15px 25px;background:#f8f8f5;border-top:1px solid var(--line)}.profile-summary{display:flex;align-items:center;gap:12px;padding:13px;border-radius:12px;background:#f3f6f4}.profile-summary strong,.profile-summary small{display:block}.profile-summary strong{font:650 16px var(--font-display)}.profile-summary small{margin-top:3px;color:var(--muted);font-size:8px}.price-preview{display:grid;grid-template-columns:1fr auto;margin-top:16px;padding:14px;border-radius:11px;color:white;background:linear-gradient(135deg,#174b40,#276858)}.price-preview span{font-size:9px}.price-preview strong{grid-row:span 2;font:650 21px var(--font-display)}.price-preview small{color:rgba(255,255,255,.55);font-size:8px;margin-top:4px}

/* Modern typography and professional operations */
.brand-mark,.brand strong,.topbar h1,.panel-head h2,.metric-card>strong,.room-number,.section-title h2,.reservation-file-title h2,.invoice-detail-head h2,.room-detail-head h2,.room-type-card h2{font-family:var(--font-display);font-style:normal;font-weight:650;letter-spacing:-.025em}
h1,h2,h3,.calendar-day strong,.calendar-room strong,.customer-stats strong,.date-tile strong,.donut strong,.invoice-summary-grid strong,.operation-cards strong,.payment-list strong,.permission-grid strong,.reservation-kpis strong,.room-foot>strong,.task-room span,.technical-room span,.visual-stat strong{font-family:var(--font-display)!important;letter-spacing:-.02em}
.toolbar-actions,.room-detail-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.room-status-stack{display:grid;justify-items:end;gap:5px}.cleanliness-badge{display:inline-flex;align-items:center;justify-content:center;padding:4px 7px;border-radius:7px;font-size:8px;font-weight:800;white-space:nowrap}.cleanliness-badge.dirty{color:#a65246;background:#fae8e5}.cleanliness-badge.clean{color:#39715f;background:#e6f2ed}.cleanliness-badge.inspected{color:#345f8a;background:#e6edf5}.cleanliness-form select{min-width:88px}
.status-badge.reservation,.status-badge.draft{color:#6b7280;background:#eef0f2}.status-badge.arrival{color:#a66b22;background:#f8eddb}.status-badge.staying,.status-badge.finalized{color:#347463;background:#e5f2ed}.status-badge.departure{color:#8a568d;background:#f3e8f4}.status-badge.exit_done{color:#536172;background:#e8edf1}
.task-room .cleanliness-badge{display:flex;margin-top:7px;font-size:6px}.finalized-note{margin:0 0 16px;padding:13px 15px;border:1px solid #c9dfd7;border-radius:11px;color:#316857;background:#edf6f2;font-size:10px;line-height:1.55}
.permission-chips{display:flex;gap:5px;flex-wrap:wrap}.role-badge.technical{color:#785a8b;background:#efe7f4}.role-badge.finance{color:#8b692d;background:#f6ecd9}.role-badge.users{color:#576675;background:#e9edf1}.permission-editor{position:relative}.permission-editor summary{list-style:none}.permission-editor summary::-webkit-details-marker{display:none}.permission-editor[open] form{position:absolute;z-index:15;right:0;top:36px;width:300px;padding:14px;border:1px solid var(--line);border-radius:13px;background:white;box-shadow:0 20px 55px rgba(20,35,30,.18)}.permission-checks{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;margin-bottom:12px}.permission-checks label{display:flex;align-items:center;gap:7px;padding:8px;border:1px solid var(--line);border-radius:9px;font-size:9px;font-weight:700}.permission-checks input{width:auto;margin:0}.modal-permissions{margin-top:7px}.form-label{display:block;color:#4f5855;font-size:12px;font-weight:700}
.room-type-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.room-type-card{padding:19px}.room-type-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.room-type-title>div{display:flex;align-items:center;gap:10px}.room-type-title>div>span{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;color:var(--green);background:var(--green-soft);font-weight:800}.room-type-title h2{margin:0;font-size:17px}.room-type-title small{display:block;margin-top:3px;color:var(--muted);font-size:8px}.room-type-title>strong{font-size:13px}.room-type-card>p{min-height:38px;color:var(--muted);font-size:9px;line-height:1.6}.room-type-meta{display:flex;gap:7px;margin-bottom:15px}.room-type-meta span{padding:5px 8px;border-radius:7px;background:#f0f2ef;color:#69726e;font-size:8px;font-weight:700}.room-type-edit{display:grid;gap:10px;padding-top:14px;border-top:1px solid var(--line)}.room-type-edit label,.room-cleanliness-panel label{display:grid;gap:5px;color:#59625e;font-size:9px;font-weight:700}
.room-type-delete{display:flex;justify-content:flex-end;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.room-type-delete-note{display:block;margin-top:12px;padding-top:12px;border-top:1px solid var(--line);color:#9a8178;font-size:8px}
.professional-action-panel{margin-bottom:16px}.professional-form{display:grid;gap:14px;padding:0 22px 22px}.professional-form>label,.professional-inline label,.report-filter label{display:grid;gap:6px;color:#59625e;font-size:9px;font-weight:700}.professional-inline{grid-template-columns:repeat(2,minmax(160px,1fr)) auto;padding:0 22px 22px}.professional-inline .btn{align-self:end}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.weekday-checks{display:flex;gap:7px;flex-wrap:wrap}.weekday-checks label{display:flex;align-items:center;gap:5px;padding:8px;border:1px solid var(--line);border-radius:8px;font-size:8px;font-weight:700}.weekday-checks input{width:auto}
.rate-plan-grid,.group-grid,.channel-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:16px}.rate-plan-card,.group-card,.channel-card{display:grid;gap:10px;padding:18px}.rate-plan-card.inactive{opacity:.62}.rate-plan-card h2,.group-card h2,.channel-card h2{margin:7px 0 3px;font-size:17px}.rate-plan-card p,.group-card p,.channel-card p{margin:0;color:var(--muted);font-size:9px}.rate-plan-card>strong,.group-card>strong{font:650 21px var(--font-display)}.rate-plan-card>small{color:var(--muted);font-size:8px}.group-card-head{display:flex;align-items:flex-start;justify-content:space-between}.group-inline-form{display:flex;gap:6px}.group-inline-form select{padding:8px;font-size:8px}.group-inline-form .mini-btn{flex:0 0 auto}
.cash-operation-grid,.security-grid,.report-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:16px}.cash-expected{padding:14px;border-radius:11px;background:var(--green-soft)}.cash-expected span,.cash-expected strong{display:block}.cash-expected span{color:var(--muted);font-size:8px}.cash-expected strong{margin-top:5px;font:650 22px var(--font-display)}
.channel-card form{display:grid;grid-template-columns:1fr auto;gap:7px}.channel-card small{color:var(--muted);font-size:8px}.security-user-list{display:grid;padding:0 20px 20px}.security-user-list>div{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:9px;padding:10px 0;border-top:1px solid var(--line)}.security-user-list strong,.security-user-list small{display:block}.security-user-list strong{font-size:9px}.security-user-list small{color:var(--muted);font-size:7px}.security-secret{display:grid;gap:7px;padding:0 22px 15px}.security-secret code,.api-token-reveal code{padding:11px;border-radius:9px;background:#142a25;color:#d5efe7;overflow-wrap:anywhere}.security-secret small{color:var(--muted);font-size:8px}.api-token-reveal{display:grid;gap:7px;margin-bottom:16px}
.notification-list{display:grid;gap:9px}.notification-card{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:12px;padding:14px 16px}.notification-card.unread{border-left:3px solid var(--gold)}.notification-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;color:var(--green);background:var(--green-soft);font-weight:800}.notification-card strong,.notification-card small{display:block}.notification-card p{margin:4px 0;color:var(--muted);font-size:9px}.notification-card small{color:#9ca29f;font-size:7px}.document-actions{display:flex;gap:6px;align-self:flex-end}.report-filter{justify-content:flex-start}.report-filter label{display:flex;align-items:center;gap:6px}.report-filter input{width:145px}.table-wrap code{font-size:7px;white-space:normal;word-break:break-word}
.calendar-range-picker{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.update-warning,.update-package-format{margin:0 22px 20px;padding:13px 14px;border:1px solid #ead7b8;border-radius:11px;background:#fff9ef}.update-warning strong,.update-package-format strong{font-size:9px;color:var(--green)}.update-warning p,.update-package-format p{margin:5px 0 0;color:var(--muted);font-size:8px;line-height:1.6}.update-package-format code,.update-warning code{font-size:8px}.update-metrics .metric-card small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.night-audit-notice{margin:0 22px 22px}.professional-inline label small{color:var(--muted);font-size:7px;font-weight:500}
.admin-search{display:flex;gap:8px;min-width:min(440px,100%)}.admin-search input{flex:1}.admin-hotel-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.admin-hotel-card{padding:20px}.admin-hotel-card-head{display:flex;justify-content:space-between;gap:16px}.admin-hotel-card h2{margin:5px 0;font:650 22px var(--font-display)}.admin-hotel-card p{margin:0;color:var(--muted);font-size:9px}.admin-hotel-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:18px 0}.admin-hotel-stats span{padding:10px;border-radius:10px;background:#f7f8f6}.admin-hotel-stats strong,.admin-hotel-stats small{display:block}.admin-hotel-stats strong{font:650 13px var(--font-display)}.admin-hotel-stats small{margin-top:3px;color:var(--muted);font-size:7px}.admin-hotel-actions,.admin-maintenance-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.admin-detail-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,.5fr);gap:16px;margin-bottom:16px}.admin-maintenance-actions{padding:0 22px 22px;align-items:stretch;flex-direction:column}.admin-maintenance-actions>div{padding:14px;border-radius:11px;background:var(--green-soft)}.admin-maintenance-actions span,.admin-maintenance-actions strong{display:block}.admin-maintenance-actions span{color:var(--muted);font-size:8px}.admin-maintenance-actions strong{margin-top:5px;font:650 18px var(--font-display)}.admin-maintenance-actions form,.admin-maintenance-actions .btn{width:100%}.admin-reset-form{display:flex;gap:5px}.admin-reset-form input{width:130px;min-height:30px;padding:5px 7px}
.admin-user-editor[open] form{width:360px}.admin-user-editor form>label{display:grid;gap:5px;margin-bottom:9px;font-size:8px}.admin-user-editor .btn{width:100%}
.report-operation-cards{margin:0 0 16px;padding:0}.report-operation-cards>div{background:white}
.booking-body{min-height:100vh;background:linear-gradient(145deg,#102e27,#245f51)}.booking-shell{width:min(760px,calc(100% - 28px));margin:auto;padding:34px 0}.booking-shell>header{display:flex;align-items:center;gap:11px;margin-bottom:24px;color:white}.booking-shell>header strong,.booking-shell>header small{display:block}.booking-shell>header strong{font-size:18px}.booking-shell>header small{color:rgba(255,255,255,.55);font-size:8px}.booking-card,.booking-success{padding:28px;border-radius:20px;background:white;box-shadow:0 30px 80px rgba(0,0,0,.2)}.booking-card h1,.booking-success h1{margin:0 0 20px;font-size:28px}.booking-dates{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:end;margin-bottom:20px;padding-bottom:20px;border-bottom:1px solid var(--line)}.booking-dates label{display:grid;gap:6px;font-size:9px;font-weight:700}.booking-success{text-align:center}.booking-success>span{width:60px;height:60px;display:grid;place-items:center;margin:auto;border-radius:50%;color:var(--green);background:var(--green-soft);font-size:28px}
.room-detail-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:16px}.room-detail-head h2{margin:8px 0 4px;font-size:30px}.room-detail-head p{margin:0;color:var(--muted);font-size:10px}.room-detail-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.room-detail-summary article{padding:17px;border:1px solid var(--line);border-radius:14px;background:white}.room-detail-summary span,.room-detail-summary small,.room-detail-summary strong{display:block}.room-detail-summary span{color:var(--muted);font-size:8px}.room-detail-summary strong{margin:5px 0;font:650 18px var(--font-display)}.room-detail-summary small{color:#989f9c;font-size:7px}.room-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.room-information-list{display:grid;padding:0 22px 18px}.room-information-list div{display:grid;grid-template-columns:120px 1fr;gap:12px;padding:11px 0;border-top:1px solid var(--line)}.room-information-list span{color:var(--muted);font-size:9px}.room-information-list strong{font-size:9px}.room-cleanliness-panel{display:flex;align-items:end;gap:9px;padding:16px 22px;border-top:1px solid var(--line)}.room-cleanliness-panel label{flex:1}.compact-history{display:grid;padding:0 22px 18px}.compact-history>div{display:grid;grid-template-columns:auto 1fr;gap:5px 9px;padding:10px 0;border-top:1px solid var(--line)}.compact-history strong{font-size:9px}.compact-history small{grid-column:2;color:var(--muted);font-size:7px}

@media (max-width: 1100px) {
  .metric-grid { grid-template-columns:repeat(2,1fr); }
  .room-grid { grid-template-columns:repeat(3,1fr); }
  .customer-grid { grid-template-columns:repeat(2,1fr); }
  .inline-form { grid-template-columns:repeat(2,1fr); }
  .inline-form .btn { align-self:end; }
  .reservation-kpis{grid-template-columns:repeat(3,1fr)}
  .reservation-file-grid{grid-template-columns:1fr}
  .reservation-file-side{grid-template-columns:repeat(3,1fr)}
  .invoice-summary-grid{grid-template-columns:repeat(3,1fr)}.invoice-detail-grid{grid-template-columns:1fr}
  .room-type-grid{grid-template-columns:repeat(2,1fr)}
  .rate-plan-grid,.group-grid,.channel-grid{grid-template-columns:repeat(2,1fr)}
  .room-detail-summary{grid-template-columns:repeat(2,1fr)}
  .admin-hotel-grid,.admin-detail-grid{grid-template-columns:1fr}
}
@media (max-width: 820px) {
  .sidebar { transform:translateX(-100%); box-shadow:20px 0 50px rgba(0,0,0,.2); }
  .sidebar.open { transform:translateX(0); }
  .main { margin-left:0; }
  .menu-toggle { display:block; }
  .topbar { padding:20px; }
  .page-content { padding:3px 20px 30px; }
  .app-footer{margin-inline:20px}
  .flash-alert { margin:0 20px; }
  .dashboard-grid,.dashboard-grid.lower { grid-template-columns:1fr; }
  .room-grid { grid-template-columns:repeat(2,1fr); }
  .login-shell { grid-template-columns:1fr; }
  .login-visual { display:none; }
  .login-card { min-height:100vh;padding:12vw; }
  .mobile-brand { display:flex;align-items:center;gap:10px;margin-bottom:70px;font:23px Georgia,serif; }
  .install-shell { grid-template-columns:1fr;padding:25px;gap:30px; }
  .install-brand { text-align:center; }
  .install-brand .brand-mark { margin:0 auto 25px; }
  .install-brand h1 { font-size:38px; }
  .install-brand>p { margin-inline:auto; }
  .install-points { justify-content:center; }
  .task-card { grid-template-columns:4px 55px 1fr; }
  .task-actions { grid-column:2/4;text-align:left; }
  .reservation-file-head{align-items:stretch;flex-direction:column}.reservation-status-form{align-items:stretch}
  .reservation-file-side{grid-template-columns:1fr}.form-grid.three{grid-template-columns:repeat(2,1fr)}
  .invoice-detail-head{align-items:stretch;flex-direction:column}.invoice-head-actions{flex-wrap:wrap}
  .technical-card{grid-template-columns:75px 1fr}.technical-actions{grid-column:2}
  .room-detail-grid{grid-template-columns:1fr}
  .cash-operation-grid,.security-grid,.report-grid{grid-template-columns:1fr}
}
@media (max-width: 560px) {
  .topbar { align-items:flex-start;flex-wrap:wrap; }
  .topbar h1 { font-size:24px; }
  .topbar p { display:none; }
  .top-actions { order:3;width:100%; }
  .top-actions .btn,.profile-button { flex:1; }
  .profile-button{justify-content:center}
  .dashboard-action-row{justify-content:stretch;flex-wrap:wrap}.dashboard-action-row .btn{flex:1}
  .metric-grid { grid-template-columns:1fr 1fr;gap:9px; }
  .metric-card { min-height:140px;padding:14px; }
  .metric-card>strong { font-size:21px; }
  .room-grid,.customer-grid { grid-template-columns:1fr; }
  .toolbar { align-items:stretch;flex-direction:column; }
  .filter-tabs { overflow:auto;flex-wrap:nowrap; }
  .filter-tabs button { white-space:nowrap; }
  .search-box { min-width:100%; }
  .reservation-toolbar-actions{justify-content:space-between}.calendar-date-picker{flex:1}.calendar-date-picker label{justify-content:space-between}.calendar-head-actions{align-items:flex-end;flex-direction:column;gap:8px}.calendar-legend{display:none}
  .form-grid.two { grid-template-columns:1fr; }
  .donut-wrap { grid-template-columns:120px 1fr;padding-inline:12px; }
  .donut { width:110px; }
  .operation-cards { grid-template-columns:1fr; }
  .operation-cards>div { display:flex;align-items:center;gap:12px;text-align:left; }
  .operation-cards .op-icon { margin:0; }
  .inline-form { grid-template-columns:1fr; }
  .permission-grid { grid-template-columns:1fr; }
  .task-card { grid-template-columns:4px 45px 1fr;gap:10px;padding-right:10px; }
  .room-chip { display:none; }
  .reservation-kpis{grid-template-columns:1fr 1fr}.reservation-kpis article:last-child{grid-column:1/-1}
  .reservation-status-form{flex-direction:column}.reservation-status-form select{min-width:100%}.form-grid.three{grid-template-columns:1fr}.detail-form-actions{align-items:stretch;flex-direction:column}.detail-form-actions .btn{width:100%}
  .room-foot{align-items:flex-start;flex-direction:column}.room-actions{width:100%;justify-content:space-between}
  .reservation-list-controls,.customer-list-controls{align-items:stretch;flex-direction:column}.reservation-list-controls .search-box,.customer-list-controls .search-box{width:100%}.invoice-summary-grid{grid-template-columns:1fr 1fr}.invoice-summary-grid .balance{grid-column:1/-1}.invoice-head-actions .btn{flex:1}
  .reservation-date-filter{width:100%;display:grid;grid-template-columns:1fr 1fr}.reservation-date-filter input{width:100%}.reservation-date-filter .mini-btn{grid-column:1/-1}.archive-list article{align-items:flex-start;flex-direction:column}.archive-actions{justify-content:flex-start}.technical-card{grid-template-columns:1fr}.technical-room{text-align:left}.technical-actions{grid-column:auto}
  .room-type-grid,.room-detail-summary{grid-template-columns:1fr}.room-detail-head{align-items:flex-start;flex-direction:column}.permission-editor[open] form{position:fixed;inset:auto 14px 14px;width:auto}.permission-checks{grid-template-columns:1fr}
  .rate-plan-grid,.group-grid,.channel-grid{grid-template-columns:1fr}.professional-inline,.form-grid.three{grid-template-columns:1fr}.notification-card{grid-template-columns:38px 1fr}.notification-card form{grid-column:2}.document-actions{align-self:stretch;flex-wrap:wrap}
  .admin-hotel-stats{grid-template-columns:1fr 1fr}.admin-search{min-width:100%}.admin-reset-form{width:100%}.admin-reset-form input{flex:1;width:auto}
  .login-card { padding:8vw; }
  .mobile-brand { margin-bottom:50px; }
  .install-card { padding:25px 20px; }
}
.booking-block[draggable="true"]{cursor:grab}.booking-block.dragging{opacity:.45}.calendar-cell.drag-over{outline:2px solid var(--primary,#6c5ce7);outline-offset:-2px;background:rgba(108,92,231,.12)}.enterprise-sections{display:grid;gap:18px}.enterprise-section{padding:0;overflow:hidden}.enterprise-section>summary{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 24px;cursor:pointer;list-style:none}.enterprise-section>summary::-webkit-details-marker{display:none}.enterprise-section>summary span{display:grid;gap:5px}.enterprise-section>summary small{color:var(--muted,#7c8396);font-weight:400}.enterprise-section[open]>summary{border-bottom:1px solid var(--border,#e7e9ef)}.enterprise-content{padding:24px}.compact-permissions{min-width:280px}.online-checkin-card{overflow:auto;max-height:100vh}
