*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;background:#f5f7fb;color:#172033}.app{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.sidebar{background:#0f1f3d;color:#fff;padding:22px 16px;display:flex;flex-direction:column}.brand{display:flex;gap:12px;align-items:center;padding:0 8px 24px}.brand small{display:block;color:#9fb0cf;margin-top:3px}.logo{width:38px;height:38px;border-radius:11px;background:#2f76ff;display:grid;place-items:center;font-weight:800}.sidebar nav{display:grid;gap:6px}.sidebar nav a{color:#c6d2e8;text-decoration:none;padding:12px 14px;border-radius:10px;font-weight:600}.sidebar nav a:hover,.sidebar nav a.active{background:#1c3159;color:#fff}.side-bottom{margin-top:auto;padding:16px 10px;border-top:1px solid #263c62;color:#aebcda;font-size:12px}.side-bottom span{display:block;margin-top:5px}.topbar{height:82px;background:#fff;border-bottom:1px solid #e8ecf3;padding:14px 28px;display:flex;align-items:center;justify-content:space-between}.topbar h1{font-size:20px;margin:0}.topbar p{margin:4px 0 0;color:#778197;font-size:12px}.top-actions{display:flex;gap:10px}.content{padding:24px 28px}.flash{margin:18px 28px 0;background:#eaf7ef;border:1px solid #b8e4c7;color:#25623a;padding:12px 14px;border-radius:10px}.btn,.ghost{border:0;border-radius:9px;padding:10px 14px;font-weight:700;cursor:pointer;text-decoration:none;display:inline-block}.btn{background:#2f76ff;color:#fff}.ghost{background:#eef2f8;color:#34405a}.small{padding:8px 10px}.card{background:#fff;border:1px solid #e7ebf1;border-radius:14px;padding:18px;box-shadow:0 2px 7px rgba(27,42,74,.03)}.stat-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:18px}.stat-grid.four{grid-template-columns:repeat(4,1fr)}.stat span{display:block;color:#7c879d;font-size:13px}.stat b{display:block;font-size:24px;margin:8px 0}.stat small{color:#98a1b3}.two-col{display:grid;grid-template-columns:1.45fr 1fr;gap:18px}.card-head,.page-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.card-head h3,.page-head h2{margin:0}.card-head p,.page-head p{margin:4px 0 0;color:#808a9d;font-size:13px}.card-head a{color:#2f76ff;text-decoration:none;font-size:13px;font-weight:700}.room-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.room{padding:14px;border-radius:12px;border-left:5px solid #99a4b8;background:#f8fafc}.room b,.room small,.room span{display:block}.room small{color:#7d8798;margin:4px 0 10px}.room span{font-size:11px;font-weight:700}.room.available{border-color:#32b67a}.room.occupied{border-color:#3f7bea}.room.dirty{border-color:#f2ae3d}.room.maintenance{border-color:#e05f65}.list-row{display:flex;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid #eef1f5}.list-row:last-child{border:0}.avatar{width:34px;height:34px;border-radius:50%;background:#eaf1ff;color:#2f76ff;display:grid;place-items:center;font-weight:800}.grow{flex:1}.grow small{display:block;color:#8993a6;margin-top:3px}.badge{background:#eef4ff;color:#315fae;font-size:11px;padding:5px 8px;border-radius:20px;font-weight:700}.toolbar{display:flex;gap:10px;margin-bottom:16px}.toolbar input{flex:1}.toolbar input,.toolbar select,input,select,textarea{border:1px solid #d9dfeb;border-radius:9px;padding:10px 11px;background:#fff;color:#1c2940}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th{text-align:left;color:#7d8799;font-size:12px;padding:11px;border-bottom:1px solid #e8ecf2}td{padding:12px 11px;border-bottom:1px solid #eef1f5;font-size:13px}td small{display:block;color:#8b95a7;margin-top:3px}.legend{display:flex;gap:18px;margin-bottom:14px;color:#6e788b;font-size:13px}.dot{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:6px}.dot.available{background:#32b67a}.dot.occupied{background:#3f7bea}.dot.dirty{background:#f2ae3d}.dot.maintenance{background:#e05f65}.rack{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}.room-card{background:#fff;border:1px solid #e7ebf1;border-top:5px solid #b2bbc9;border-radius:12px;padding:14px}.room-card.available{border-top-color:#32b67a}.room-card.occupied{border-top-color:#3f7bea}.room-card.dirty{border-top-color:#f2ae3d}.room-card.maintenance{border-top-color:#e05f65}.room-card div span,.room-card small{display:block;color:#7e899c;font-size:12px;margin-top:4px}.room-card strong{display:block;margin:15px 0 8px}.room-card select{width:100%;margin-top:12px}.inline{display:flex;gap:8px}.inline input{width:130px}.modal{display:none;position:fixed;inset:0;background:rgba(10,20,40,.46);z-index:20;align-items:center;justify-content:center}.modal.show{display:flex}.modal-box{background:#fff;width:min(720px,92vw);border-radius:16px;padding:20px;box-shadow:0 30px 80px rgba(0,0,0,.2)}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.modal-head h3{margin:0}.modal-head button{border:0;background:transparent;font-size:28px;cursor:pointer}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid label{display:grid;gap:6px;font-size:12px;font-weight:700;color:#59657b}.form-grid textarea{min-height:76px}.span2{grid-column:span 2}.actions{text-align:right}.empty{text-align:center;color:#8b95a8;padding:28px}@media(max-width:1100px){.stat-grid{grid-template-columns:repeat(2,1fr)}.two-col{grid-template-columns:1fr}.rack{grid-template-columns:repeat(3,1fr)}}@media(max-width:760px){.app{grid-template-columns:1fr}.sidebar{display:none}.topbar{padding:12px 16px;height:auto}.top-actions .ghost{display:none}.content{padding:16px}.stat-grid,.stat-grid.four{grid-template-columns:1fr 1fr}.room-grid,.rack{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.span2{grid-column:auto}.page-head{align-items:flex-start;gap:10px}.toolbar{flex-wrap:wrap}.toolbar input{min-width:100%}}
.login-page{min-height:100vh;display:grid;place-items:center;background:#eef3fb}.login-card{width:min(420px,92vw);background:#fff;border:1px solid #e2e8f2;border-radius:18px;padding:30px;box-shadow:0 24px 70px rgba(20,40,80,.12);text-align:center}.login-card h1{font-size:22px;margin:14px 0 5px}.login-card p{color:#7d8798;margin:0 0 20px}.login-card form,.form-stack{display:grid;gap:14px;text-align:left}.login-card label,.form-stack label{display:grid;gap:6px;font-size:12px;font-weight:700;color:#5d687c}.wide{width:100%;text-align:center}.big{margin:auto;width:52px;height:52px;font-size:20px}.login-flash{margin:0 0 16px}.actions-row{display:flex;gap:6px}.actions-row form{margin:0}.muted{color:#8290a4;font-size:12px}.side-bottom a{color:#fff}.status-checked_in{background:#e7f7ee;color:#267a4b}.status-checked_out{background:#eef1f5;color:#566174}.status-confirmed{background:#eaf1ff;color:#315fae}.calendar-wrap{overflow:auto}.calendar-table{min-width:1150px}.calendar-table th{text-align:center;min-width:62px}.calendar-table th:first-child{text-align:left;min-width:120px;position:sticky;left:0;background:#fff;z-index:2}.calendar-table td:first-child{position:sticky;left:0;background:#fff;z-index:1}.calendar-table th small,.calendar-table td small{display:block;color:#97a0af}.cal-cell{height:46px;text-align:center;border-left:1px solid #f0f2f6}.cal-cell.booked{background:#eaf1ff}.cal-cell.booked span{display:block;background:#3f7bea;color:#fff;border-radius:6px;padding:6px 3px;font-size:10px;white-space:nowrap;overflow:hidden}.form-stack textarea{min-height:90px}
.property-switch{display:flex;align-items:center}.property-switch select{min-width:180px;padding:10px 12px;border:1px solid #dce3ee;border-radius:10px;background:#fff;font-weight:700;color:#1f2d47}.property-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.summary-box{border:1px solid #e4e9f1;border-radius:12px;padding:14px;display:grid;gap:5px}.summary-box b{font-size:15px}.summary-box span{font-size:24px;font-weight:800}.summary-box small{color:#7887a2}

/* V2.3.4 Front Office Simple UI + Mobile */
.simple-help{margin-bottom:16px;background:#f7faff;border-color:#d9e6ff;color:#34405a;line-height:1.55}.simple-help strong{color:#172033}.optional-text{font-weight:500;color:#8b95a7}.tx-help{font-weight:500!important;color:#718096!important;line-height:1.35}.action-submit{display:flex;justify-content:flex-end}.tx-submit{min-width:180px}.field-muted{opacity:.72}.field-emphasis select{border-color:#8bb2ff;box-shadow:0 0 0 3px rgba(47,118,255,.08)}
.folio-table td:nth-child(7){min-width:420px}.folio-table td:nth-child(8){min-width:180px}.folio-table .form-grid{background:#f8faff;border:1px solid #e4ebf7;padding:12px;border-radius:12px}.folio-table .form-grid label{font-size:12px}.folio-table .form-grid select,.folio-table .form-grid input{width:100%;min-height:42px}.folio-table .proof-field input[type=file]{padding:8px;background:#fff}
@media(max-width:760px){
  body{font-size:15px}.content{padding:12px}.topbar{gap:10px;align-items:flex-start;flex-direction:column}.top-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.property-switch,.property-switch select,.top-actions .btn{width:100%}.top-actions .btn{text-align:center}.page-head h2{font-size:22px}.page-head p{font-size:14px;line-height:1.45}.simple-help{font-size:14px;padding:14px}
  .card.table-wrap{padding:10px;overflow:visible}.folio-table td:nth-child(7),.folio-table td:nth-child(8){min-width:0}
  .folio-table .form-grid{grid-template-columns:1fr!important;gap:10px!important;padding:12px}.folio-table .span2{grid-column:auto}.folio-table .form-grid label{font-size:13px}.folio-table .form-grid select,.folio-table .form-grid input{font-size:16px;min-height:48px}.folio-table .form-grid input[type=file]{min-height:52px}.tx-submit,.extend-form .btn{width:100%;min-height:48px;font-size:15px}.action-submit{display:block}.extend-form{display:grid!important;grid-template-columns:90px 1fr;width:100%}.extend-form input{width:100%!important;max-width:none!important;min-height:46px}
  table.mobile-cards,table.mobile-cards tbody,table.mobile-cards tr,table.mobile-cards td{display:block;width:100%}table.mobile-cards thead{display:none}table.mobile-cards tr{background:#fff;border:1px solid #e4e9f1;border-radius:14px;margin:0 0 12px;padding:10px;box-shadow:0 2px 7px rgba(27,42,74,.03)}table.mobile-cards td{border:0;border-bottom:1px solid #eef1f5;padding:10px 6px;font-size:14px}table.mobile-cards td:last-child{border-bottom:0}table.mobile-cards td small{font-size:12px}.mobile-cards .inline{flex-wrap:wrap}.mobile-cards .inline .btn,.mobile-cards .inline .ghost{min-height:42px}
  .stat-grid,.stat-grid.four{grid-template-columns:1fr 1fr;gap:8px}.stat{padding:12px}.stat b{font-size:21px}
  details summary{font-size:17px!important;padding:4px 0}.badge{font-size:12px}.ghost.small,.btn.small{padding:10px 12px}
}
@media(max-width:430px){.top-actions{grid-template-columns:1fr}.stat-grid,.stat-grid.four{grid-template-columns:1fr 1fr}.content{padding:10px}.card{border-radius:12px}.folio-table .form-grid{padding:10px}.simple-help{margin-bottom:10px}}
/* V2.3.5 Auto Amount + Rupiah + Partial Payment */
.rupiah-box{display:flex;align-items:center;border:1px solid #d8deea;border-radius:10px;background:#fff;overflow:hidden}.rupiah-box span{padding:0 10px;font-weight:800;color:#506078;background:#f5f7fb;align-self:stretch;display:flex;align-items:center}.rupiah-box input{border:0!important;border-radius:0!important;box-shadow:none!important;font-weight:800;font-size:16px}.rupiah-box input:focus{outline:none}.rupiah-box:focus-within{border-color:#2f73f6;box-shadow:0 0 0 3px #2f73f61a}.readonly-amount{background:#f8fafc!important;color:#172033}.payment-mode{gap:6px;flex-wrap:wrap}.payment-mode .small{padding:7px 9px}.charge-category-field select{background:#fff7ed;border-color:#fdba74}.receipt-ready{display:inline-flex;align-items:center;gap:4px}
@media(max-width:700px){.rupiah-box input{min-height:46px;font-size:18px}.payment-mode{grid-template-columns:1fr 1fr}.payment-mode .small{width:100%;min-height:42px}.amount-field,.billing-period-field,.charge-category-field,.payment-method-field,.payment-reference-field,.proof-field{grid-column:1/-1!important}.tx-submit{width:100%;min-height:48px;font-size:16px}}

/* V2.3.6 Simple Guest List + Search + Filter + Pagination */
.guest-filter-card{margin-bottom:14px;padding:14px}.guest-filters{display:grid;grid-template-columns:minmax(260px,2fr) repeat(5,minmax(130px,1fr)) 110px;gap:10px;align-items:end}.guest-filters label{display:grid;gap:5px;font-size:11px;font-weight:800;color:#617089}.guest-filters input,.guest-filters select{width:100%;min-height:42px}.filter-actions{display:flex;gap:8px;align-items:center;grid-column:1/-1}.guest-list-meta{margin-top:12px;padding-top:10px;border-top:1px solid #edf1f6;display:flex;justify-content:space-between;gap:10px;color:#718096;font-size:13px}.guest-list-meta b{color:#1f2d47}.guest-list{display:grid;gap:10px}.guest-item{padding:0;overflow:hidden}.guest-summary{display:grid;grid-template-columns:minmax(190px,1.45fr) minmax(130px,1fr) minmax(170px,1.15fr) minmax(120px,.9fr) minmax(110px,.8fr) minmax(120px,.85fr) auto;gap:12px;align-items:center;padding:14px 16px}.guest-main{min-width:0}.guest-name{display:block;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.guest-summary small{display:block;color:#8a96a8;margin-top:3px;font-size:11px}.guest-label{display:block;color:#8a96a8;font-size:10px;text-transform:uppercase;letter-spacing:.04em;font-weight:800;margin-bottom:4px}.guest-balance{font-size:15px}.guest-actions{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}.guest-actions .btn,.guest-actions .ghost{padding:8px 10px;min-height:38px}.status-pill{display:inline-flex;align-items:center;padding:6px 9px;border-radius:999px;font-size:11px;font-weight:800;white-space:nowrap}.status-unpaid{background:#eef4ff;color:#315fae}.status-partial{background:#fff4d8;color:#9a6700}.status-overdue{background:#ffe8e8;color:#b42318}.status-paid{background:#e9f8ef;color:#217a47}.guest-item.is-open{border-color:#b8cdfa;box-shadow:0 8px 24px rgba(32,75,150,.08)}.guest-detail-panel{border-top:1px solid #e8edf5;background:#f8faff;padding:14px 16px}.guest-detail-grid{display:grid;grid-template-columns:minmax(210px,.75fr) minmax(420px,1.6fr) minmax(220px,.8fr);gap:12px;align-items:start}.detail-box{background:#fff;border:1px solid #e2e8f2;border-radius:12px;padding:14px}.detail-box h3{font-size:15px;margin:0 0 12px}.detail-box p{font-size:13px;color:#68768d;line-height:1.5}.detail-dl{display:grid;gap:8px;margin:0}.detail-dl div{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid #eef1f5;padding-bottom:7px}.detail-dl div:last-child{border-bottom:0}.detail-dl dt{font-size:11px;color:#8490a2}.detail-dl dd{margin:0;text-align:right;font-size:12px;color:#24324b}.simple-payment-grid{grid-template-columns:1fr 1fr;gap:9px}.simple-payment-grid label{font-size:11px}.simple-payment-grid select,.simple-payment-grid input{min-height:42px;width:100%}.extend-box .extend-form{display:grid;grid-template-columns:1fr;gap:9px}.extend-box .extend-form label{display:grid;gap:5px;font-size:11px;font-weight:800;color:#617089}.extend-box .extend-form input{width:100%;min-height:42px}.pagination{display:flex;justify-content:center;align-items:center;gap:10px;margin:16px 0}.pagination .disabled{pointer-events:none;opacity:.45}.page-numbers{display:flex;gap:5px;align-items:center}.page-numbers a{display:grid;place-items:center;min-width:36px;height:36px;border:1px solid #dfe5ef;border-radius:9px;background:#fff;color:#40516c;font-weight:800;text-decoration:none}.page-numbers a.active{background:#2f76ff;color:#fff;border-color:#2f76ff}.page-numbers span{color:#8b95a7;padding:0 2px}
@media(max-width:1280px){.guest-filters{grid-template-columns:2fr repeat(3,1fr)}.guest-summary{grid-template-columns:minmax(180px,1.4fr) repeat(4,minmax(115px,1fr)) auto}.guest-summary>div:nth-child(4){display:none}.guest-detail-grid{grid-template-columns:1fr 1.7fr}.extend-box{grid-column:1/-1}}
@media(max-width:900px){.guest-filters{grid-template-columns:1fr 1fr 1fr}.search-wide{grid-column:1/-1}.guest-summary{grid-template-columns:1.5fr 1fr 1fr}.guest-summary>div:nth-child(3),.guest-summary>div:nth-child(4){display:none}.guest-actions{grid-column:1/-1;justify-content:flex-start}.guest-detail-grid{grid-template-columns:1fr}.extend-box{grid-column:auto}.simple-payment-grid{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.guest-filter-card{padding:12px}.guest-filters{grid-template-columns:1fr 1fr;gap:8px}.search-wide{grid-column:1/-1}.filter-actions{display:grid;grid-template-columns:1fr 1fr}.filter-actions .btn,.filter-actions .ghost{text-align:center;min-height:44px}.guest-list-meta{align-items:flex-start;flex-direction:column;gap:3px}.guest-summary{display:grid;grid-template-columns:1fr 1fr;padding:13px;gap:10px}.guest-summary>div{display:block!important}.guest-main{grid-column:1/-1}.guest-name{font-size:17px}.guest-summary>div:nth-child(2),.guest-summary>div:nth-child(3){font-size:13px}.guest-summary>div:nth-child(4){grid-column:1/2}.guest-summary>div:nth-child(5){grid-column:2/3}.guest-summary>div:nth-child(6){grid-column:1/-1;background:#f7f9fc;border-radius:10px;padding:9px 10px}.guest-balance{font-size:19px}.guest-actions{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr)}.guest-actions .btn,.guest-actions .ghost{width:100%;min-height:44px}.guest-detail-panel{padding:10px}.guest-detail-grid{display:grid;grid-template-columns:1fr;gap:10px}.detail-box{padding:12px}.simple-payment-grid{grid-template-columns:1fr!important}.simple-payment-grid .span2{grid-column:auto}.simple-payment-grid select,.simple-payment-grid input{min-height:48px;font-size:16px}.pagination{justify-content:space-between}.page-numbers{display:none}.pagination .ghost{flex:1;text-align:center;min-height:44px}.status-pill{font-size:12px}.guest-label{font-size:10px}}
@media(max-width:430px){.guest-filters{grid-template-columns:1fr}.search-wide{grid-column:auto}.filter-actions{grid-template-columns:1fr 1fr}.guest-summary{grid-template-columns:1fr 1fr}.guest-actions{grid-template-columns:1fr 1fr}.guest-actions .guest-toggle:first-child{grid-column:1/-1}.detail-dl div{display:grid;gap:2px}.detail-dl dd{text-align:left}.payment-mode{display:grid!important;grid-template-columns:1fr 1fr}.payment-mode .small{width:100%}}
