:root{--ink:#183b34;--green:#24584c;--muted:#68766f;--line:#e0e5df;--paper:#f6f7f3;--gold:#c19a52;--white:#fff}*{box-sizing:border-box}body{margin:0;font-family:Inter,Arial,sans-serif;color:var(--ink);background:var(--paper)}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--gold);outline-offset:3px}[hidden]{display:none!important}.mode-banner{background:#f0e5cf;padding:9px 24px;text-align:center;font-size:12px;color:#654d27}.header{height:83px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 34px;background:white}.brand{display:flex;align-items:center;gap:20px;text-decoration:none}.brand strong{font-size:32px;letter-spacing:-2px;border-right:1px solid var(--line);padding-right:20px}.brand span{font-size:17px;font-weight:600}.brand i{font-style:normal;color:#b7c0b8;margin:0 9px}.header-right{display:flex;gap:20px;align-items:center;font-size:12px}.header-right select{padding:6px;border:1px solid var(--line);border-radius:6px}.shell{display:grid;grid-template-columns:226px 1fr;min-height:calc(100vh - 117px)}aside{background:#fcfdfb;border-right:1px solid var(--line);padding:36px 18px;position:relative}.aside-label{font-size:10px;letter-spacing:1.6px;color:#919d93;margin:0 16px 16px;font-weight:700}.operations{margin-top:30px}.nav{display:flex;align-items:center;text-align:left;gap:12px;width:100%;border:0;background:transparent;color:#63766b;padding:14px 16px;border-radius:8px;margin-bottom:6px;font-size:13px}.nav.active{background:#e8eee7;color:var(--ink);font-weight:600}.nav b{margin-left:auto;background:white;padding:2px 6px;border-radius:5px;font-size:11px}.aside-footer{margin:70px 14px 0;font-size:12px;line-height:1.9;color:#728579}.aside-footer small{font-size:10px}.tiny-dot{display:inline-block;background:#659471;border-radius:50%;width:6px;height:6px;margin-right:6px}main{padding:40px 44px;max-width:1480px;width:100%;margin:auto;align-self:start}.eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:2px;font-weight:700;color:#7c8d7e;margin:0 0 12px}h1{font-family:Georgia,serif;font-size:38px;font-weight:400;letter-spacing:-1px;margin:0 0 10px}h2{font-size:20px;letter-spacing:-.5px;margin:0}h3{margin:0;font-size:18px}p{line-height:1.6}.sub{color:var(--muted);font-size:13px;margin:0}.hero{display:flex;justify-content:space-between;align-items:end;margin-bottom:28px;gap:20px}.hero-note{text-align:right;font-size:11px;color:var(--muted);line-height:1.7}.search{display:flex;background:white;border:1px solid var(--line);padding:20px 22px;border-radius:12px;gap:20px;align-items:end;box-shadow:0 3px 12px #203d2d04}.field{display:flex;flex-direction:column;gap:9px;flex:1}.field label{font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#64796b}.field input,.field select,.field textarea{padding:11px 12px;border:1px solid var(--line);border-radius:6px;min-width:0;background:white;color:var(--ink);width:100%}.primary,.secondary,.danger{border:0;border-radius:7px;padding:12px 18px;font-size:12px;font-weight:600}.primary{background:var(--ink);color:white}.secondary{background:#eef1eb;color:var(--ink);border:1px solid var(--line)}.danger{background:#fff1ed;color:#a1442d;border:1px solid #efd6cf}.section-head{display:flex;justify-content:space-between;align-items:center;margin:30px 0 16px;font-size:12px;color:var(--muted);gap:12px}.section-head h2{font-size:17px;color:var(--ink)}.rooms-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.room{background:white;border:1px solid var(--line);border-radius:10px;overflow:hidden}.room-scene{height:138px;position:relative;overflow:hidden;background:linear-gradient(115deg,#d8dfd0,#eeeadf);border-bottom:1px solid #dfe3d9}.room-scene::before{content:'';position:absolute;width:74%;height:46%;left:13%;bottom:-9%;border-radius:10px 10px 0 0;background:linear-gradient(0deg,#dad8c9,#f9f7ee);border:10px solid #b7beab;box-shadow:0 -11px 0 2px #a4af9a,0 -23px 0 -4px #a4af9a}.room-scene::after{content:'';position:absolute;left:24%;bottom:27%;width:24%;height:22%;border-radius:5px;background:#fcfaf1;box-shadow:68px 0 0 #fcfaf1}.scene-2{background:linear-gradient(115deg,#d1dad4,#e2e9df)}.scene-3{background:linear-gradient(115deg,#e4ded0,#e9e5d9)}.illustration-label{position:absolute;top:12px;right:12px;font-size:9px;color:#4e6659;background:#ffffffaa;padding:4px 6px;border-radius:3px}.room-content{padding:18px}.room-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.badge{display:inline-block;font-size:9px;text-transform:uppercase;letter-spacing:.6px;font-weight:700;padding:6px 8px;border-radius:5px;background:#edf4e9;color:#47723e;white-space:nowrap}.badge.warn{background:#faf0d9;color:#947029}.badge.busy{background:#eef0f0;color:#69756e}.badge.alert{background:#fce9e2;color:#a4543b}.room p{font-size:11px;color:var(--muted);margin:12px 0 18px}.room-bottom{border-top:1px solid var(--line);padding-top:13px;display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:10px;color:var(--muted)}.room-bottom button{padding:9px 12px}.info-strip{padding:17px 20px;background:#edf0e7;border-radius:8px;font-size:11px;color:#64765e;margin-top:24px;line-height:1.7}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:26px}.metric{border:1px solid var(--line);border-radius:9px;padding:20px;background:white}.metric b{display:block;font-size:30px;font-weight:500;margin-bottom:8px}.metric span{font-size:11px;color:var(--muted)}.panel{background:white;border:1px solid var(--line);border-radius:10px;padding:22px;margin:16px 0}.reservation{display:flex;align-items:center;justify-content:space-between;gap:20px}.reservation p{font-size:12px;color:var(--muted);margin:8px 0}.actions{display:flex;gap:7px;flex-wrap:wrap}.empty{text-align:center;padding:65px 25px;background:white;border:1px dashed #c7d0c3;border-radius:12px;margin-top:25px}.empty p{color:var(--muted);font-size:13px}.table-wrap{overflow:auto;background:white;border:1px solid var(--line);border-radius:10px}.calendar{border-collapse:collapse;min-width:780px;width:100%;font-size:10px;table-layout:fixed}.calendar th,.calendar td{border:1px solid #e7ebe4;height:63px;padding:7px;text-align:center}.calendar th{background:#f9faf6;font-weight:500;color:#7d8c80;height:48px}.calendar th:first-child{width:100px;text-align:left;padding-left:17px;position:sticky;left:0;background:#f9faf6;z-index:1}.calendar td:first-child{font-weight:700;text-align:left;padding-left:17px;position:sticky;left:0;background:white;z-index:1}.cell-booking{border:0;border-radius:5px;background:#dfe9dc;color:#375a34;padding:7px 4px;width:100%;font-size:9px;line-height:1.4}.cell-booking.checked_in{background:#224e42;color:white}.notice{display:flex;justify-content:space-between;gap:15px;border-bottom:1px solid var(--line);padding:17px 0}.notice:last-child{border:0}.notice p{margin:7px 0;font-size:12px;color:var(--muted)}.notice small{font-size:10px;color:var(--muted)}dialog{border:1px solid var(--line);border-radius:14px;padding:27px;max-width:500px;width:calc(100% - 28px);color:var(--ink);box-shadow:0 20px 100px #112f2a30}dialog::backdrop{background:#102d2580}.dialog-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.icon{border:0;background:transparent;font-size:25px;color:#76867c}.dialog-actions{display:flex;justify-content:end;gap:9px;margin-top:24px}.dialog-actions button{min-width:90px}dialog .field{margin-bottom:15px}dialog p{font-size:12px;color:var(--muted)}.error{color:#a24129!important;font-size:12px;min-height:18px}.detail-row{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line);font-size:13px}.detail-row span{color:var(--muted)}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);padding:14px 22px;background:#173c35;color:white;border-radius:8px;font-size:12px;box-shadow:0 8px 30px #173c3530;display:none;z-index:50;max-width:90%}.checkboxes{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;margin:16px 0}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.muted{color:var(--muted);font-size:12px}.notice-state{font-size:10px;text-align:right;white-space:nowrap}.loading{padding:60px;color:var(--muted)}@media(min-width:1450px){.rooms-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:1100px){main{padding:30px 25px}.shell{grid-template-columns:190px 1fr}.rooms-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.header{padding:0 24px}.header-right{gap:10px}.hero-note{display:none}}@media(max-width:720px){.header{height:auto;min-height:75px;padding:17px 18px;flex-wrap:wrap;gap:14px}.brand strong{font-size:28px}.brand span{font-size:14px}.header-right{width:100%;justify-content:space-between}.shell{display:block}aside{padding:12px;border-right:0;border-bottom:1px solid var(--line)}nav{display:flex;flex-wrap:wrap;gap:5px}#manager-nav{display:contents}.aside-label,.aside-footer{display:none}.nav{width:auto;padding:10px;font-size:11px;margin:0;gap:6px}.nav b{font-size:9px}main{padding:25px 16px}h1{font-size:31px}.hero{margin-bottom:22px}.search{padding:16px;flex-wrap:wrap;gap:12px}.search .field{min-width:calc(50% - 12px)}.search button{width:100%}.rooms-grid{gap:12px}.room-content{padding:13px}.room-scene{height:110px}.room h3{font-size:16px}.room-top{align-items:start;flex-wrap:wrap}.room p{font-size:10px}.room-bottom{flex-wrap:wrap}.room-bottom button{width:100%}.metrics{grid-template-columns:1fr 1fr}.reservation{align-items:start;flex-direction:column;gap:10px}.settings-grid{grid-template-columns:1fr}.panel{padding:17px}.notice{flex-direction:column;gap:4px}.notice-state{text-align:left}}@media(prefers-reduced-motion:no-preference){button{transition:background .15s,transform .15s}button:hover:not(:disabled){filter:brightness(.96)}}
.login-wrap{display:flex;justify-content:center;padding:70px 20px;max-width:none}.login-card{background:white;border:1px solid var(--line);border-radius:14px;max-width:430px;width:100%;padding:34px}.login-card form{margin-top:28px}.login-card .field{margin-bottom:18px}.login-card .primary{width:100%}.text-button{border:0;background:transparent;color:var(--green);padding:14px 0;font-size:12px;text-decoration:underline}
/* PDI Connect theme, sampled from the user's current application screenshot. */
:root{--ink:#193f64;--green:#3872b3;--muted:#8194a9;--line:#d8e2eb;--paper:#f3f6f9;--gold:#b7541e;--white:#fff}
body{font-family:Arial,Helvetica,sans-serif}.mode-banner{background:#eaf2fb;color:#38628a;border-bottom:1px solid #d8e2eb}.header{height:96px;background:#fbfcfe;padding:0 44px}.brand{gap:17px}.brand strong{border:0;padding:0;color:var(--ink);font-size:32px;letter-spacing:0}.brand span{font-size:24px;letter-spacing:-.6px}.shell{display:block;min-height:calc(100vh - 130px)}aside{border:0;border-bottom:1px solid var(--line);padding:0 44px;background:#fff}.aside-label,.aside-footer{display:none}nav{display:flex;flex-wrap:wrap;gap:7px;max-width:1392px;margin:auto;padding:12px 0}#manager-nav{display:contents}.nav{width:auto;padding:12px 17px;margin:0;border:1px solid transparent;color:#56728d;border-radius:9px;font-size:13px}.nav.active{color:#193f64;background:#edf4fc;border-color:#d8e2eb}.nav b{background:#3872b3;color:white;border-radius:14px;padding:2px 7px}main{max-width:1480px;padding:40px 44px;margin:0 auto}.hero{margin-bottom:30px}h1{font-family:Arial,Helvetica,sans-serif;font-size:36px;letter-spacing:-1.2px;font-weight:700}.eyebrow{color:#8194a9}.hero-note{color:#8194a9}.primary{background:#3872b3;color:white;border:1px solid #3872b3;border-radius:9px;font-size:13px}.secondary{background:#fff;border:1px solid #d8e2eb;border-radius:9px;color:#274b6c}.danger{border-radius:9px}.search{border-radius:16px;box-shadow:none;padding:23px}.field input,.field select,.field textarea{border-radius:9px;color:#193f64}.field label{color:#8194a9}.room{border-radius:16px}.room-content{padding:22px}.room-scene{background:linear-gradient(110deg,#dce6f0,#edf3f9);height:135px}.room-scene::before{border-color:#aabdcf;box-shadow:0 -11px 0 2px #8ba5bf,0 -23px 0 -4px #8ba5bf}.scene-2{background:linear-gradient(110deg,#e2eaf3,#f1f5fa)}.scene-3{background:linear-gradient(110deg,#d9e4ef,#eef3f8)}.badge{background:#eaf5f0;color:#308268;border-radius:8px}.badge.warn{background:#fff0e7;color:#b7541e}.badge.busy{background:#edf2f7;color:#71859b}.illustration-label{color:#5b7792}.info-strip{background:#eaf1f9;color:#617e9a;border:1px solid #d8e2eb;border-radius:12px}.metrics{gap:20px}.metric{border-radius:16px;padding:25px 27px}.metric b{font-size:38px;font-weight:700;color:#193f64}.metric span{text-transform:uppercase;font-weight:700;letter-spacing:1.8px;font-size:10px;color:#8194a9}.panel{border-radius:16px;border-top:4px solid #3872b3;padding:26px}.panel p,.room p,.sub{color:#8194a9}.table-wrap{border-radius:16px}.calendar th{background:#f7f9fc;color:#748aa1}.calendar th:first-child{background:#f7f9fc}.cell-booking{background:#e3eefb;color:#2a5f98}.cell-booking.checked_in{background:#3872b3}.calendar td,.calendar th{border-color:#e0e7ef}.empty{border-radius:16px}dialog{border-radius:16px;color:#193f64}.login-card{border-radius:18px}.login-wrap h1{font-family:Arial,Helvetica,sans-serif}#toast{background:#193f64}.notice-state{color:#8194a9}.brand img{width:118px;height:58px;object-fit:contain}.header-right{font-size:12px}.room h3{font-size:19px;font-weight:700}
@media(min-width:1450px){.rooms-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:1100px){main{padding:30px 26px}.header{padding:0 26px}aside{padding:0 26px}}@media(max-width:720px){.header{height:auto;min-height:88px;padding:16px}.brand img{width:90px;height:43px}.brand span{font-size:21px}.header-right{flex-wrap:wrap}.header-right select{max-width:130px}aside{padding:0 12px}nav{gap:3px}.nav{padding:10px 9px;font-size:11px}main{padding:26px 16px}h1{font-size:29px}.search{padding:16px}.room-content{padding:15px}.room h3{font-size:17px}.metric{padding:20px}.metric b{font-size:32px}.panel{padding:20px}.rooms-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Compact room tiles for a fuller room overview. */
.rooms-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.rooms-grid .room{border-radius:12px}
.rooms-grid .room-scene{height:48px}
.rooms-grid .room-scene::before{border-width:5px;box-shadow:0 -6px 0 1px #8ba5bf,0 -11px 0 -2px #8ba5bf}
.rooms-grid .room-scene::after{height:16px;bottom:8px}
.rooms-grid .illustration-label{top:7px;right:7px;font-size:8px}
.rooms-grid .room-content{padding:12px}
.rooms-grid .room h3{font-size:16px}
.rooms-grid .room-top{gap:6px;align-items:center}
.rooms-grid .badge{padding:4px 6px;font-size:8px}
.rooms-grid .room p{font-size:10px;margin:8px 0 10px;line-height:1.4}
.rooms-grid .room-bottom{padding-top:9px;gap:6px;flex-wrap:wrap}
.rooms-grid .room-bottom>span{display:none}
.rooms-grid .room-bottom button{width:100%;padding:8px 10px;font-size:11px;min-height:36px}
main{padding-top:26px}
.hero{margin-bottom:20px}
.section-head{margin-top:22px}
@media(max-width:1099px){.rooms-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:899px){.rooms-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:649px){.rooms-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.rooms-grid .room-scene{height:40px}.rooms-grid .room-top{flex-wrap:wrap}.rooms-grid .room-bottom button{min-height:44px}.rooms-grid .room-content{padding:11px}}

/* Supplied bunkhouse bedroom thumbnail; keep compact room-card sizing. */
.rooms-grid .room-photo{display:block;width:100%;height:48px;object-fit:cover;object-position:50% 67%;border-bottom:1px solid var(--line)}
@media(max-width:649px){.rooms-grid .room-photo{height:40px}}

/* Soft, compact exterior banner with booking copy over the photo. */
.bunkhouse-banner{max-width:1480px;margin:22px auto 0;padding:0 44px}
.bunkhouse-banner-surface{position:relative;height:190px;overflow:hidden;border-radius:14px;border:1px solid var(--line);background:#f3f6f9}
.bunkhouse-banner img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;opacity:.42}
.bunkhouse-banner-surface::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(243,246,249,.85),rgba(243,246,249,.35) 60%,transparent);pointer-events:none}
.bunkhouse-banner-copy{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;justify-content:center;padding:24px 32px}
.bunkhouse-banner-copy .eyebrow{color:var(--ink);font-size:11px;letter-spacing:1px;text-transform:none;margin:0 0 9px}
.bunkhouse-banner-copy h1{font-size:32px;margin:0 0 8px}
.bunkhouse-banner-copy>p:last-child{color:var(--ink);font-size:13px;margin:0;line-height:1.6;max-width:440px}
@media(max-width:1100px){.bunkhouse-banner{padding:0 26px}}
@media(max-width:720px){.bunkhouse-banner{padding:0 16px;margin-top:16px}.bunkhouse-banner-surface{height:170px;border-radius:12px}.bunkhouse-banner-copy{padding:20px}.bunkhouse-banner-copy h1{font-size:28px}.bunkhouse-banner-copy>p:last-child{max-width:290px}}


/* Guest rules and required booking acknowledgement. */
.guest-rules-content{font-size:13px;line-height:1.65}
.guest-rules-content h2{font-size:18px;margin-bottom:12px}
.guest-rules-content p{margin:0 0 14px}
.guest-rules-content p:last-child{margin-bottom:0}
.booking-rules{max-height:280px;overflow-y:auto;border:1px solid var(--line);border-radius:9px;background:var(--paper);padding:16px;margin:20px 0 16px}
.rules-acknowledgement{display:flex;align-items:flex-start;gap:10px;font-size:12px;line-height:1.6;color:var(--ink)}
.rules-acknowledgement input{flex:none;width:18px;height:18px;margin:1px 0 0;accent-color:var(--ink)}
@media(max-width:649px){.booking-rules{max-height:240px;font-size:12px}}


/* Reservation status colors remain distinct from room readiness and arrival flags. */
.badge.status-reserved,.cell-booking.reserved{background:#e5effb;color:#225b9d}
.badge.status-checked_in,.cell-booking.checked_in{background:#dff1e6;color:#216440}
.badge.status-checked_out,.cell-booking.checked_out{background:#e7ebef;color:#4c5966}
.badge.arrival-arrival_overdue,.badge.arrival-late_check_in{background:#fff0cf;color:#7b5000}
.badge.arrival-no_show{background:#fde5e5;color:#a32828}
.arrival-summary{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}
.arrival-attention .reservation{padding:16px 0;margin:0;border:0;border-bottom:1px solid var(--line);border-radius:0}
.reservation .room-top{justify-content:flex-start;flex-wrap:wrap}
.cell-booking small{display:block;font-size:8px;font-weight:700;margin-top:4px}


.entrance-access{background:#f0f5ef;border:1px solid #ccd9c8;border-radius:8px;padding:12px;margin-top:12px;max-width:480px}.entrance-access .entrance-code{font-size:28px;letter-spacing:4px;font-weight:700;margin:8px 0}.entrance-access small{display:block}.access-error{background:#fff3e7;border-color:#c98633}
