:root{--bg: #f3f4f6;--card: #ffffff;--muted: #6b7280;--text: #111827;--border: rgba(17,24,39,.12)}*{box-sizing:border-box}html,body{margin:0;padding:0;background:radial-gradient(1200px 600px at 50% 0%,#fff,#f3f4f6);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Tahoma,Arial,Noto Kufi Arabic,Noto Sans Arabic,sans-serif;color-scheme:light}a{color:inherit}.app{max-width:1400px;margin:0 auto;padding:18px 18px 48px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border:1px solid var(--border);background:#fffc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:16px}.title{font-size:20px;font-weight:800;letter-spacing:.2px}.subtitle{color:var(--muted);font-size:12px;margin-top:4px}.layout{display:grid;grid-template-columns:420px 1fr;gap:16px;margin-top:16px}.panel{border:1px solid var(--border);background:#ffffffbf;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:16px;padding:16px}.panel.soft{background:#fff9}.financeWrap{display:grid;grid-template-columns:1.1fr .9fr;gap:14px;margin-top:12px}@media (max-width: 1050px){.financeWrap{grid-template-columns:1fr}}.panel.wide{padding:16px 16px 20px}.panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}h2{margin:0 0 10px;font-size:16px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.field label{color:#374151;font-size:12px}input,select{background:#fffffff2;color:var(--text);border:1px solid var(--border);border-radius:12px;padding:10px 12px;outline:none}input:focus,select:focus{border-color:#3b82f6b3}.hint{color:var(--muted);font-size:11px;line-height:1.45}.sep{border:0;border-top:1px solid var(--border);margin:14px 0}.btn{border:1px solid rgba(17,24,39,.12);background:#3b82f6d9;color:#fff;padding:10px 12px;border-radius:12px;cursor:pointer;font-weight:700}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.ghost{background:#ffffffb3;border:1px solid var(--border);color:var(--text)}.btn.danger{background:#ef4444d9}.btn.primary{background:#3b82f6eb}.loginWrap{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(1200px 600px at 10% 10%,rgba(59,130,246,.22),transparent 60%),radial-gradient(900px 500px at 90% 20%,rgba(245,158,11,.18),transparent 60%),linear-gradient(180deg,#0b1220,#0f172a)}.loginCard{width:min(520px,100%);background:#ffffff14;border:1px solid rgba(255,255,255,.14);border-radius:22px;padding:20px;color:#e5e7eb;box-shadow:0 30px 80px #00000059;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.loginBrand{display:flex;gap:12px;align-items:center;margin-bottom:14px}.loginLogo{width:54px;height:54px;border-radius:16px;display:grid;place-items:center;background:#3b82f638;border:1px solid rgba(255,255,255,.14);font-size:26px}.loginTitle{font-weight:900;font-size:18px;line-height:1.2}.loginSub{color:#e5e7ebbf;font-size:12px;margin-top:2px}.loginForm .field label{color:#e5e7ebcc}.loginForm input{background:#ffffffeb;color:#0f172a;border:1px solid rgba(255,255,255,.18)}.loginBtn{width:100%;padding:12px 14px;border-radius:14px}.loginErr{background:#ef444426;border:1px solid rgba(239,68,68,.35);color:#fecaca;padding:10px 12px;border-radius:14px;font-size:12px}.loginHint{margin-top:10px;color:#e5e7eba6;font-size:11px;line-height:1.6}@media print{.loginWrap{display:none!important}}.top-actions{display:flex;gap:8px;flex-wrap:wrap}.seg{display:flex;gap:8px}.seg-btn{flex:1;background:#ffffffb3;border:1px solid var(--border);color:var(--text);border-radius:12px;padding:10px 12px;cursor:pointer;font-weight:800}.seg-btn.active{background:#3b82f6d9;border-color:#ffffff2e}.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:10px 0 4px}.stat{background:#ffffffb3;border:1px solid var(--border);border-radius:14px;padding:10px 12px}.stat-num{font-size:18px;font-weight:900}.stat-label{color:var(--muted);font-size:12px}.stat-sub{color:var(--muted);font-size:11px;margin-top:2px}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{background:#ffffffb3;border:1px solid var(--border);border-radius:999px;padding:6px 10px;font-size:12px}.actions-row{display:flex;gap:8px;margin-top:8px}.muted{color:var(--muted);font-size:12px}.legend{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px}.legend-item{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12px}.dot{width:10px;height:10px;border-radius:50%;display:inline-block}.croquis{border:1px solid var(--border);border-radius:16px;padding:12px;background:#f9fafbe6}.floorRow{display:grid;grid-template-columns:90px 1fr;gap:10px;align-items:start;padding:10px 0}.floorRow+.floorRow{border-top:1px dashed rgba(17,24,39,.12)}.floorLabel{color:#374151;font-weight:900}.roomsGrid{display:grid;grid-template-columns:repeat(13,minmax(60px,1fr));gap:8px}.roomsGrid6{grid-template-columns:repeat(13,minmax(60px,1fr))}.room{border:2px solid rgba(16,185,129,.75);border-radius:14px;padding:10px;cursor:pointer;text-align:right;transition:transform .08s ease,filter .08s ease}.room:hover{transform:translateY(-1px);filter:brightness(1.03)}.room.busy{cursor:not-allowed;opacity:.92}.room.selected{border-color:#111827!important}.roomNo{font-size:16px;font-weight:950;color:inherit}.roomMeta{display:flex;align-items:center;justify-content:space-between;margin-top:6px;gap:6px}.badge{background:#1118271f;border:1px solid rgba(17,24,39,.25);border-radius:999px;padding:2px 8px;font-size:12px;font-weight:900;color:#111827e0}.beds{color:#111827d9;font-size:12px;font-weight:800}.bookings{display:flex;flex-direction:column;gap:10px;margin-top:10px}.bookingCard{display:grid;grid-template-columns:10px 1fr;border:1px solid var(--border);border-radius:16px;overflow:hidden;background:#ffffffbf}.bookingStripe{width:10px}.bookingBody{padding:12px}.bookingTop{display:flex;align-items:start;justify-content:space-between;gap:12px}.bookingTitle{font-weight:950}.bookingMeta{color:#111827e0;font-size:12px;font-weight:800;margin-top:4px}.bookingSubtle{color:#374151eb;font-size:12px}.payRow{margin-top:10px;display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:10px;border-radius:14px;border:1px solid rgba(245,158,11,.35);background:#fef3c7bf}.payCell{display:flex;flex-direction:column;gap:6px}.payLabel{font-size:12px;font-weight:900;color:#111827d9}.payInput{background:#ffffffeb;border:1px solid rgba(245,158,11,.35);border-radius:12px;padding:10px 12px;color:var(--text)}.payRemaining{background:#ffffff8c;border:1px dashed rgba(245,158,11,.45);border-radius:12px;padding:10px 12px;font-weight:950;color:#111827eb}.bookingRooms{margin-top:10px;display:flex;flex-wrap:wrap;gap:6px}.footerNote{margin-top:12px;color:var(--muted);font-size:12px}.monthlyLayout{grid-template-columns:1fr}.monthWrap{margin-top:12px}.monthGrid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.monthDow{text-align:center;font-size:12px;font-weight:900;color:#111827b3}.monthCell{background:#ffffffd9;border:1px solid var(--border);border-radius:14px;padding:10px;min-height:68px;display:flex;flex-direction:column;gap:6px;cursor:pointer;transition:transform .06s ease,border-color .06s ease}.monthCell:hover{transform:translateY(-1px)}.monthCell.active{border-color:#111827a6;box-shadow:0 0 0 2px #11182714}.monthCell.blank{background:transparent;border:1px dashed rgba(17,24,39,.12);cursor:default}.mDay{font-weight:950;color:#111827e6}.mStats{font-size:12px;color:#111827bf;display:flex;justify-content:space-between}.dayDetails{margin-top:14px}.dayHead{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.dayCols{display:grid;grid-template-columns:1fr 1fr;gap:10px}.dayLabel{font-weight:950;margin-bottom:6px;color:#111827d9}@media (max-width: 900px){.dayCols{grid-template-columns:1fr}}@media (max-width: 1100px){.layout{grid-template-columns:1fr}.roomsGrid{grid-template-columns:repeat(6,minmax(60px,1fr))}.floorRow{grid-template-columns:1fr}.floorLabel{margin-bottom:-4px}}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}@media (max-width: 980px){.grid3{grid-template-columns:1fr}}.departuresLayout{grid-template-columns:1fr}.depSummary{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;flex-wrap:wrap}.departTable{display:flex;flex-direction:column;gap:10px;margin-top:10px}.departRow{display:grid;grid-template-columns:140px 120px 1fr;gap:10px;align-items:center;padding:10px;border:1px solid var(--border);border-radius:16px;background:#ffffffbf}@media (max-width: 980px){.departRow{grid-template-columns:1fr}}.departDateBtn{background:#3b82f61f;border:1px solid rgba(59,130,246,.25);color:#111827eb;border-radius:14px;padding:10px 12px;font-weight:950;cursor:pointer}.departDateBtn:hover{filter:brightness(.98)}.departRoomsCount{font-weight:900;color:#111827e6}.departNames{display:flex;flex-wrap:wrap;gap:6px}.bookingActions{display:flex;flex-direction:column;gap:8px;align-items:stretch}.editGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px}@media (max-width: 900px){.editGrid{grid-template-columns:1fr}}.editRoomsBox{margin-top:10px;padding:10px;border:1px dashed rgba(17,24,39,.18);border-radius:14px;background:#f8fafce6}.editRoomsGrid{display:grid;grid-template-columns:repeat(11,minmax(44px,1fr));gap:6px}@media (max-width: 1100px){.editRoomsGrid{grid-template-columns:repeat(8,minmax(44px,1fr))}}@media (max-width: 700px){.editRoomsGrid{grid-template-columns:repeat(6,minmax(44px,1fr))}}.editRoom{border:1px solid rgba(17,24,39,.14);border-radius:12px;padding:8px;cursor:pointer;font-weight:900}.editRoom:hover{filter:brightness(.98)}.editRoom.disabled{cursor:not-allowed;opacity:.7}.room.busy .badge{background:#ffffff2e;border-color:#ffffff59;color:#fff}.room.busy .beds{color:#ffffffeb}.printWrap{padding:18px}.printSheet{max-width:900px;margin:0 auto}.printBar{display:flex;gap:10px;justify-content:flex-end;margin-bottom:10px}.printDoc{border:1px solid var(--border);border-radius:18px;background:#ffffffd9;padding:18px}.printHead{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;border-bottom:1px solid var(--border);padding-bottom:12px;margin-bottom:12px}.printH1{font-weight:950;font-size:16px;color:#111827eb}.printH2{font-weight:800;font-size:13px;color:#111827b3;margin-top:4px}.printMeta{font-size:12px;color:#111827b8;text-align:right}.printGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}@media (max-width: 900px){.printGrid{grid-template-columns:1fr}}.printBox{border:1px solid var(--border);border-radius:14px;padding:12px;background:#ffffffe6}.printLbl{font-size:12px;color:#11182799;margin-bottom:6px}.printVal{font-size:14px;font-weight:900;color:#111827eb}.printMoney{font-weight:950}.printRooms{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.printChip{border:1px solid var(--border);border-radius:999px;padding:6px 8px;font-size:12px;background:#f8fafcf2}.roomsMiniGrid{display:flex;flex-wrap:wrap;gap:4px;align-items:flex-start}.roomMini{border:1px solid rgba(17,24,39,.18);border-radius:8px;padding:4px 6px;font-weight:900;font-size:11px;text-align:center;background:#fffffff2;font-variant-numeric:tabular-nums;white-space:nowrap;overflow-wrap:normal;word-break:keep-all;direction:ltr;unicode-bidi:plaintext;display:inline-flex;align-items:center;justify-content:center;min-width:34px}.printTbl td .roomsMiniGrid{max-width:360px}.printTbl td .roomMini{line-height:1.1}.printPolicies{margin-top:12px}.printPolicies h3{margin:0 0 8px;font-size:13px;font-weight:950}.printPolicies ul{margin:0;padding:0 18px;color:#111827cc;font-size:12px;line-height:1.7}.printFooter{margin-top:12px;font-size:11px;color:#1118278c;border-top:1px solid var(--border);padding-top:10px}.printSection{margin-top:12px}.printSectionTitle{margin:0 0 8px;font-size:13px;font-weight:950}.printTbl th,.printTbl td{border-bottom:1px solid rgba(17,24,39,.12)}.printKpis{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:10px 0 12px}.printKpis .kpi{padding:10px;border:1px solid var(--border);border-radius:14px;background:#f8fafce6}.printKpis .kpiLbl{color:#1118278c;font-size:11px}.printKpis .kpiVal{font-size:16px;font-weight:950;margin-top:4px}.printTotals{margin-top:12px;border:1px solid var(--border);border-radius:14px;padding:12px;background:#ffffffe6;max-width:420px}.totLine{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px dashed rgba(17,24,39,.12)}.totLine:last-child{border-bottom:none}.nowrap{white-space:nowrap;overflow-wrap:normal;word-break:keep-all}.cellPhone{white-space:nowrap;overflow-wrap:normal;word-break:keep-all;direction:ltr;unicode-bidi:plaintext;font-variant-numeric:tabular-nums}@media print{@page{size:A4;margin:12mm 10mm}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}.topbar,.printBar{display:none!important}body{background:#fff!important}.printWrap{padding:0!important}.printDoc{border:none!important;border-radius:0!important;background:#fff!important}.printSheet,.printDoc,.printHead,.printGrid,.printTotals,.tableWrap,.tbl{max-width:100%!important}.tableWrap{overflow:visible!important;border:none!important;border-radius:0!important}.tbl thead th{position:static!important}.tbl thead th{white-space:nowrap!important;overflow-wrap:normal!important;word-break:keep-all!important}.tbl{table-layout:fixed!important}.tbl th,.tbl td{white-space:normal!important;padding:6px!important;overflow-wrap:normal!important;word-break:normal!important;overflow:hidden!important;vertical-align:top!important;line-height:1.35!important;-webkit-hyphens:none!important;hyphens:none!important}.tbl td.wrap,.tbl th.wrap{overflow-wrap:break-word!important;word-break:break-word!important}.tbl{font-size:10.5px!important}.printH1{font-size:14px!important}.printH2{font-size:12px!important}.printKpis{grid-template-columns:1fr!important;gap:8px!important}.printKpis .kpiVal{font-size:13px!important}.printTotals{border:1px solid rgba(17,24,39,.15)!important}.printRooms,.roomsMiniGrid{max-width:100%!important}.roomsMiniGrid{justify-content:flex-start!important}.roomMini{min-width:22px}.printTbl--checkins th:last-child,.printTbl--checkins td:last-child{width:150px!important}.printTbl--checkins th:nth-child(4),.printTbl--checkins td:nth-child(4){width:115px!important}.printTbl--checkins th:nth-child(9),.printTbl--checkins td:nth-child(9){width:180px!important}.printTbl--checkins th:nth-child(10),.printTbl--checkins td:nth-child(10){width:120px!important}.printTbl--checkouts th:last-child,.printTbl--checkouts td:last-child{width:170px!important}.printTbl--checkouts th:nth-child(4),.printTbl--checkouts td:nth-child(4){width:115px!important}.printTbl--finance th:nth-child(4),.printTbl--finance td:nth-child(4){width:115px!important}.printTbl--finance th:nth-child(12),.printTbl--finance td:nth-child(12){width:190px!important}.printTbl--finance th:nth-child(13),.printTbl--finance td:nth-child(13){width:130px!important}.roomMini{font-size:10px!important;padding:3px 4px!important;line-height:1.15!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;overflow-wrap:normal!important;word-break:keep-all!important;direction:ltr!important;unicode-bidi:plaintext!important;font-variant-numeric:tabular-nums}.tbl td .roomsMiniGrid{display:flex!important;flex-wrap:wrap!important;gap:4px!important;align-items:flex-start!important;justify-content:flex-start!important}.tbl td .roomMini{width:auto!important;min-width:34px!important}.printMeta,.printVal:not(.nowrap){overflow-wrap:anywhere!important;word-break:break-word!important}.nowrap,.cellPhone{white-space:nowrap!important;overflow-wrap:normal!important;word-break:keep-all!important}}.tableWrap{overflow:auto;border:1px solid var(--border);border-radius:14px;background:#ffffffb3}.tbl{width:100%;border-collapse:collapse;font-size:12px}.tbl th,.tbl td{padding:10px;border-bottom:1px solid var(--border);text-align:right;white-space:nowrap}.tbl thead th{position:sticky;top:0;background:#ffffffe6;z-index:1}.tbl tbody tr:hover{background:#3b82f60f}.num{font-variant-numeric:tabular-nums}.btn.tiny{padding:6px 8px;border-radius:10px;font-size:12px}
