:root{--forest:#174b3f;--teal:#2f7865;--cream:#fbf7ed;--gold:#d8aa57;--line:#d5e1dd;--ink:#183832}*{box-sizing:border-box}body{color:var(--ink);background:#f4f7f5;margin:0;font-family:Montserrat,Segoe UI,sans-serif}.rooming-loading{place-items:center;min-height:100vh;display:grid}.rooming-portal{width:min(1800px,100%);margin:auto;padding:24px}.rooming-hero{border-bottom:4px solid var(--gold);color:#fff;background:linear-gradient(110deg,#103e34,#206957);border-radius:17px 17px 0 0;justify-content:space-between;align-items:center;gap:20px;padding:27px 33px;display:flex}.rooming-hero p,.change-modal header p{color:#e8bd6e;letter-spacing:.14em;margin:0 0 5px;font-size:10px;font-weight:900}.rooming-hero h1{margin:0;font:600 38px/1 Cormorant Garamond,Georgia,serif}.rooming-hero span{color:#d4e6e0;margin-top:8px;font-size:12px;display:block}.rooming-hero aside{text-align:right;gap:5px;display:grid}.rooming-hero aside b{color:var(--forest);background:#fff;border-radius:18px;padding:9px 13px;font-size:10px}.rooming-hero aside small{color:#cce0d9}.rooming-identity{border:1px solid var(--line);background:#fff;border-top:0;grid-template-columns:1.3fr 1fr 1fr;gap:15px;padding:17px 23px;display:grid}.rooming-identity label,.change-modal label{color:#526861;text-transform:uppercase;gap:6px;font-size:9px;font-weight:850;display:grid}.rooming-identity input,.change-modal input,.change-modal textarea{width:100%;color:var(--ink);background:#fff;border:1px solid #c8d8d2;border-radius:8px;padding:10px}.week-tabs{align-items:stretch;gap:9px;margin-top:17px;display:flex}.week-tabs>div{flex:1;gap:7px;display:flex;overflow:auto}.week-tabs button{border:1px solid var(--line);color:#4a665f;text-align:left;background:#fff;border-radius:10px;min-width:220px;padding:10px 13px}.week-tabs small,.week-tabs span{font-size:8px;display:block}.week-tabs strong{margin:4px 0;font-size:11px;display:block}.week-tabs button.active{border-color:var(--teal);color:#174c40;box-shadow:inset 0 -3px 0 var(--teal);background:#e8f3ef}.week-tabs button.add{color:#2d705f;border-style:dashed;min-width:auto;font-weight:850}.lock-banner{background:var(--cream);border:1px solid #ead3a0;border-radius:10px;align-items:center;gap:16px;margin:12px 0;padding:12px 15px;display:flex}.lock-banner>div{flex:1;gap:3px;display:grid}.lock-banner span{color:#936521;letter-spacing:.1em;font-size:8px;font-weight:900}.lock-banner strong{font-size:12px}.lock-banner small{color:#6e766f;font-size:9px}.lock-banner button{background:var(--forest);color:#fff;border:0;border-radius:7px;padding:9px 11px;font-size:9px;font-weight:850}.rooming-table-wrap{background:#fff;border:1px solid #bcd1ca;border-radius:11px;overflow:auto;box-shadow:0 8px 28px #1a42370f}.rooming-table-wrap table{border-collapse:collapse;width:100%;min-width:1580px}.rooming-table-wrap th{color:#315e52;text-align:left;letter-spacing:.03em;background:#e7f1ee;border-bottom:1px solid #b7cdc5;border-right:1px solid #c8dad4;padding:8px 6px;font-size:8px}.rooming-table-wrap th.day{text-align:center;background:#dbeae5}.rooming-table-wrap th.day b,.rooming-table-wrap th.day small{display:block}.rooming-table-wrap td{border-bottom:1px solid #e3eae7;border-right:1px solid #e0e8e5;padding:4px}.rooming-table-wrap tr.used td{background:#fffdf7}.rooming-table-wrap input,.rooming-table-wrap select{color:#29403a;background:0 0;border:1px solid #0000;border-radius:5px;width:100%;min-width:60px;padding:7px 5px;font-size:9px}.rooming-table-wrap input:focus,.rooming-table-wrap select:focus{background:#fff;border-color:#71a697;outline:0}.rooming-table-wrap input:disabled,.rooming-table-wrap select:disabled{opacity:1;color:#344b45}.rooming-table-wrap td:nth-child(9){width:85px}.rooming-table-wrap td.stay{text-align:center;width:47px}.rooming-table-wrap td.stay input{width:18px;height:18px;accent-color:var(--teal)}.rooming-table-wrap td:last-child{width:28px}.rooming-table-wrap td:last-child button{color:#ad5146;background:0 0;border:0;font-size:17px}.rooming-table-wrap tfoot th,.rooming-table-wrap tfoot td{color:#fff;text-align:center;border-color:#315e54;padding:9px;background:#173f37!important}.rooming-table-wrap tfoot th{text-align:right}.rooming-table-wrap tfoot b,.rooming-table-wrap tfoot small,.rooming-table-wrap tfoot span{display:block}.rooming-table-wrap tfoot b{color:#f0c46f;font-size:15px}.rooming-table-wrap tfoot span,.rooming-table-wrap tfoot small{color:#c8dad4;font-size:7px}.add-row{color:#276b5b;background:#fff;border:1px dashed #89aea3;border-radius:7px;margin-top:9px;padding:9px 11px;font-size:9px;font-weight:850}.change-log{border:1px solid var(--line);background:#fff;border-radius:11px;margin-top:17px;overflow:hidden}.change-log>header{background:#eef5f2;justify-content:space-between;align-items:center;padding:13px 17px;display:flex}.change-log h2{margin:2px 0;font:600 23px/1 Cormorant Garamond,Georgia,serif}.change-log header p{letter-spacing:.1em;margin:0;font-size:8px}.change-log header span{background:#fff;border-radius:14px;padding:6px 9px;font-size:8px}.change-log article{border-top:1px solid #e5ece9;grid-template-columns:1fr auto auto;align-items:center;gap:15px;padding:11px 17px;display:grid}.change-log article small{color:#7d8985;font-size:8px}.change-log article strong{margin:3px 0;font-size:10px;display:block}.change-log article p{color:#586a64;margin:0;font-size:10px}.change-log article>b{border-radius:13px;padding:5px 8px;font-size:8px}.change-log .pending{color:#8a6021;background:#fff1d3}.change-log .approved{color:#2e6d5d;background:#e2f1ec}.change-log .rejected{color:#a34c42;background:#f9e3df}.change-log nav{gap:5px;display:flex}.change-log nav button{color:#2f6e5e;background:#fff;border:1px solid #cad9d4;border-radius:6px;padding:6px 8px;font-size:8px}.rooming-actions{background:#fffffff7;border:1px solid #c8d9d3;border-radius:11px;justify-content:flex-end;align-items:center;gap:8px;margin-top:17px;padding:13px 15px;display:flex;position:sticky;bottom:0;box-shadow:0 -8px 28px #1a413714}.rooming-actions>div{gap:2px;margin-right:auto;display:grid}.rooming-actions strong{color:#2e715f;font-size:10px}.rooming-actions small{color:#7e8986;font-size:8px}.rooming-actions button{color:#245f52;background:#fff;border:1px solid #bed0ca;border-radius:7px;padding:9px 12px;font-size:9px;font-weight:850}.rooming-actions button.primary{border-color:var(--forest);background:var(--forest);color:#fff}.change-modal{z-index:50;background:#0a231d80;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.change-modal>section{background:#fff;border-radius:13px;width:min(570px,100%);padding:21px}.change-modal header{justify-content:space-between;align-items:start;display:flex}.change-modal h2{margin:0;font:600 28px/1 Cormorant Garamond,Georgia,serif}.change-modal header>button{background:0 0;border:0;font-size:22px}.change-modal>section>p{color:#66756f;font-size:10px;line-height:1.5}.change-modal label{margin-top:12px}.change-modal textarea{resize:vertical;min-height:100px}.change-modal footer{justify-content:flex-end;gap:7px;margin-top:16px;display:flex}.change-modal footer button{color:#315f54;background:#fff;border:1px solid #cad8d3;border-radius:7px;padding:9px 11px;font-size:9px;font-weight:800}.change-modal footer button:last-child{background:var(--forest);color:#fff}@media (width<=850px){.rooming-portal{padding:0}.rooming-hero{border-radius:0}.rooming-hero aside{display:none}.rooming-identity{grid-template-columns:1fr}.week-tabs{padding:0 12px}.lock-banner{margin:12px}.rooming-table-wrap,.rooming-actions{border-radius:0}}.rooming-instructions{color:#53655f;background:#fff9eb;border:1px solid #d6c18f;border-radius:10px;align-items:center;gap:10px;margin:12px 0 8px;padding:11px 14px;font-size:9px;display:flex}.rooming-instructions b{color:#174b3f;font-size:10px}.rooming-instructions b:not(:first-child){margin-left:14px}.rooming-instructions span{white-space:nowrap}.rooming-table-wrap th{line-height:1.35}.rooming-table-wrap th.age-heading{color:#6c4c19;background:#f7e8bd}.rooming-table-wrap th.age-heading small{margin-top:2px;font-size:7px;display:block}.rooming-table-wrap tr.room-lead td{border-top:2px solid #8caf9f}.rooming-table-wrap tr.room-child td{background:#f2f7f5}.rooming-table-wrap tr.room-child td:first-child{border-left:4px solid #d8aa57}.rooming-table-wrap td:first-child{width:115px}.rooming-table-wrap td:nth-child(2){width:135px}.rooming-table-wrap td:nth-child(3){width:175px}.rooming-table-wrap td:nth-child(4),.rooming-table-wrap td:nth-child(5){width:105px}.rooming-table-wrap td:nth-child(6),.rooming-table-wrap td:nth-child(7){width:140px}.rooming-table-wrap td:nth-child(8){width:125px}.rooming-table-wrap td:nth-last-child(2){width:220px}.rooming-table-wrap .occupant-count span,.rooming-table-wrap .room-entry span,.rooming-table-wrap .inherited-value{color:#245f52;text-align:center;background:#e3eee9;border-radius:6px;padding:8px 6px;font-size:8px;font-weight:800;display:block}.rooming-table-wrap .room-entry.waiting{background:#e7e9e8}.rooming-table-wrap .room-entry.waiting input{color:#86908c;cursor:not-allowed;background:#e0e3e1}.rooming-table-wrap .age-check select{background:#fff9e9;border-color:#d7b66e;font-weight:750}@media (width<=1100px){.rooming-instructions{flex-wrap:wrap;align-items:flex-start}.rooming-instructions b:not(:first-child){margin-left:0}}@media (width<=850px){.rooming-instructions{margin:12px}}.rooming-identity{grid-template-columns:1.25fr 1fr .8fr 1fr}.print-summary{background:#c5d7d1;border:1px solid #c5d7d1;border-radius:10px;grid-template-columns:1.4fr repeat(3,.7fr) auto;align-items:stretch;gap:1px;margin:10px 0;display:grid;overflow:hidden}.print-summary div{background:#fff;align-content:center;gap:4px;min-height:57px;padding:10px 14px;display:grid}.print-summary small{color:#667d75;letter-spacing:.08em;font-size:8px;font-weight:850}.print-summary b{color:#174b3f;font-size:15px}.print-summary button{color:#fff;background:#174b3f;border:0;padding:0 18px;font-size:9px;font-weight:850}.special-requests{background:#fffaf0;border:1px solid #d5c18e;border-radius:11px;margin-top:15px;overflow:hidden}.special-requests header{justify-content:space-between;align-items:center;padding:11px 15px 7px;display:flex}.special-requests p{color:#9a6b25;letter-spacing:.09em;margin:0 0 3px;font-size:8px;font-weight:900}.special-requests h2{color:#174b3f;margin:0;font:600 22px/1.1 Cormorant Garamond,Georgia,serif}.special-requests header span{color:#71817c;font-size:8px}.special-requests textarea{resize:vertical;color:#263f38;background:#fff;border:1px solid #dfd2ae;border-radius:7px;width:calc(100% - 30px);min-height:82px;margin:4px 15px 15px;padding:11px;font:10px/1.5 Montserrat,sans-serif;display:block}@media (width<=900px){.rooming-identity,.print-summary{grid-template-columns:1fr 1fr}.print-summary button{min-height:46px}}.billing-code{border-radius:6px;grid-template-columns:24px 1fr;align-items:center;gap:5px;min-width:120px;padding:5px;display:grid}.billing-code b{border-radius:50%;place-items:center;width:24px;height:24px;font-size:10px;display:grid}.billing-code small{font-size:6px;line-height:1.25}.code-Y{color:#1d6957!important;background:#e4f2ed!important}.code-Y b,.code-dot.code-Y{color:#fff;background:#2f806b}.code-P{color:#79551b!important;background:#fff2d5!important}.code-P b,.code-dot.code-P{color:#173f37;background:#d6a23f}.code-N{color:#52645e!important;background:#edf0ef!important}.code-N b,.code-dot.code-N{color:#fff;background:#6d7d78}.code-X{color:#8b453d!important;background:#f7e7e3!important}.code-X b,.code-dot.code-X{color:#fff;background:#b85f53}.code-empty{color:#7c8884!important;background:#f0f2f1!important}.billing-modal{z-index:80;background:#0a231d9e;padding:24px;position:fixed;inset:0;overflow:auto}.billing-modal>section{background:#f7f9f8;border-radius:16px;width:min(1120px,100%);margin:auto;overflow:hidden;box-shadow:0 28px 80px #0000004d}.billing-modal>section>header{color:#fff;background:linear-gradient(110deg,#103e34,#206957);justify-content:space-between;align-items:flex-start;padding:22px 26px;display:flex}.billing-modal header p{color:#e8bd6e;letter-spacing:.12em;margin:0 0 5px;font-size:9px;font-weight:900}.billing-modal header h2{margin:0;font:600 31px/1 Cormorant Garamond,Georgia,serif}.billing-modal header span{color:#d3e5df;margin-top:7px;font-size:9px;display:block}.billing-modal header>button{color:#fff;background:0 0;border:0;font-size:25px}.billing-legend{grid-template-columns:repeat(4,1fr);gap:8px;padding:14px 18px 8px;display:grid}.billing-legend>div{border-radius:8px;grid-template-columns:32px 1fr;align-items:center;gap:8px;padding:8px 10px;display:grid}.billing-legend>div>b{background:#ffffffbf;border-radius:50%;place-items:center;width:30px;height:30px;font-size:13px;display:grid}.billing-legend span{font-size:8px;line-height:1.35}.billing-bulk{background:#fff9ea;border:1px solid #d9c38d;border-radius:9px;align-items:flex-end;gap:10px;margin:7px 18px 13px;padding:11px;display:flex}.billing-bulk label{color:#526861;text-transform:uppercase;flex:1;gap:5px;font-size:8px;font-weight:850;display:grid}.billing-bulk select,.billing-bulk button,.billing-occupants select{color:#24463d;background:#fff;border:1px solid #c7d7d2;border-radius:7px;padding:9px;font-size:9px}.billing-bulk button{color:#fff;background:#174b3f;font-weight:800}.billing-bulk button:disabled{opacity:.45}.billing-occupants{gap:8px;max-height:52vh;padding:0 18px 15px;display:grid;overflow:auto}.billing-occupants article{background:#fff;border:1px solid #d5e1dd;border-radius:10px;grid-template-columns:1.1fr 1fr;gap:10px 18px;padding:11px 13px;display:grid}.billing-person{align-items:center;gap:9px;display:flex}.code-dot{color:#62736d;background:#e9eeec;border-radius:50%;flex:0 0 30px;place-items:center;width:30px;height:30px;font-size:11px;font-weight:900;display:grid}.billing-person b,.billing-person small{display:block}.billing-person b{font-size:10px}.billing-person small{color:#73827d;margin-top:3px;font-size:8px}.billing-occupants article>label{color:#566b64;text-transform:uppercase;gap:4px;font-size:8px;font-weight:850;display:grid}.billing-detail,.billing-note{border-top:1px solid #e4ebe8;grid-column:1/-1;padding-top:9px}.billing-detail>b{font-size:9px}.billing-choice{gap:5px;margin-left:12px;display:inline-flex}.billing-choice button{color:#315f54;background:#fff;border:1px solid #bdcfc9;border-radius:16px;min-width:58px;padding:6px 11px;font-size:8px;font-weight:800}.billing-choice button.active{color:#fff;background:#174b3f;border-color:#174b3f}.billing-nights{flex-wrap:wrap;align-items:center;gap:7px;margin-top:9px;display:flex}.billing-nights>small{color:#6e7e78;width:100%;font-size:8px}.billing-nights label{border:1px solid #d4dfdb;border-radius:6px;align-items:center;gap:5px;padding:6px 8px;font-size:8px;display:flex}.billing-nights input{accent-color:#174b3f}.billing-note textarea{resize:vertical;border:1px solid #d8c392;border-radius:7px;min-height:62px;padding:9px;font:9px/1.4 Montserrat,sans-serif}.billing-empty{color:#944c43;background:#fff0ed;border:1px solid #ead0ca;border-radius:8px;margin:0;padding:14px;font-size:10px}.billing-modal>section>footer{background:#fff;border-top:1px solid #d7e1de;justify-content:flex-end;align-items:center;gap:8px;padding:13px 18px;display:flex}.billing-modal footer strong{color:#ad4f43;margin-right:auto;font-size:9px}.billing-modal footer button{color:#315f54;background:#fff;border:1px solid #bdcfc9;border-radius:7px;padding:9px 12px;font-size:9px;font-weight:850}.billing-modal footer button.primary{color:#fff;background:#174b3f;border-color:#174b3f}.billing-modal footer button:disabled{opacity:.45}@media (width<=760px){.billing-modal{padding:0}.billing-modal>section{border-radius:0;min-height:100vh}.billing-legend{grid-template-columns:1fr 1fr}.billing-bulk{flex-direction:column;align-items:stretch}.billing-occupants article{grid-template-columns:1fr}.billing-detail,.billing-note{grid-column:1}}@media print{@page{size:landscape;margin:8mm}body{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#fff!important}.rooming-portal{width:100%;padding:0}.rooming-hero{border-radius:0;padding:12px 16px}.rooming-hero h1{font-size:27px}.rooming-hero span,.rooming-hero aside,.week-tabs .add,.lock-banner,.rooming-instructions,.add-row,.change-log,.rooming-actions,.print-summary button,.billing-modal{display:none!important}.rooming-identity{grid-template-columns:1.25fr 1fr .8fr 1fr;padding:9px 12px}.rooming-identity label{font-size:7px}.rooming-identity input{border:0;padding:3px 0;font-size:10px;font-weight:700}.week-tabs{margin:7px 0}.week-tabs>div{overflow:hidden}.week-tabs button{display:none}.week-tabs button.active{width:100%;min-width:0;padding:6px 10px;display:block}.print-summary{grid-template-columns:1.4fr repeat(3,.7fr);margin:5px 0}.print-summary div{min-height:40px;padding:6px 10px}.print-summary b{font-size:13px}.rooming-table-wrap{box-shadow:none;border-radius:0;overflow:visible}.rooming-table-wrap table{table-layout:fixed;min-width:0}.rooming-table-wrap th{padding:4px 3px;font-size:6px}.rooming-table-wrap td{padding:2px}.rooming-table-wrap input,.rooming-table-wrap select{appearance:none;border:0;padding:3px 2px;font-size:7px}.rooming-table-wrap td:last-child,.rooming-table-wrap th:last-child{display:none}.rooming-table-wrap td:nth-last-child(2){width:15%}.rooming-table-wrap td.stay{width:3.2%}.rooming-table-wrap td.stay input{width:12px;height:12px}.rooming-table-wrap .occupant-count span,.rooming-table-wrap .room-entry span,.rooming-table-wrap .inherited-value{padding:3px 2px;font-size:6px}.rooming-table-wrap tfoot th,.rooming-table-wrap tfoot td{padding:5px 3px}.rooming-table-wrap tfoot b{font-size:10px}.special-requests{break-inside:avoid;margin-top:8px}.special-requests header{padding:7px 10px 3px}.special-requests h2{font-size:16px}.special-requests textarea{border:0;min-height:45px;margin:3px 10px 8px;padding:4px 0;font-size:8px}}
