@font-face{font-family:Hind;src:url(/assets/fonts/hind-400.ttf) format("truetype");font-weight:400;font-display:swap}@font-face{font-family:Hind;src:url(/assets/fonts/hind-500.ttf) format("truetype");font-weight:500;font-display:swap}@font-face{font-family:Hind;src:url(/assets/fonts/hind-600.ttf) format("truetype");font-weight:600;font-display:swap}@font-face{font-family:Montserrat;src:url(/assets/fonts/montserrat-600.ttf) format("truetype");font-weight:600;font-display:swap}:root{--ink:#163e49;--teal:#004d64;--muted:#6b7c80;--cream:#f6f5ef;--line:#dde4df;--white:#fff;--sand:#d8c19b;--error:#8c3330;font-family:Hind,sans-serif;color:var(--ink);background:var(--cream);font-size:16px;line-height:1.5}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}a{color:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #bb935d;outline-offset:3px}h1,h2,h3,p{margin:0}h1{font-family:Montserrat,sans-serif;font-weight:600;font-size:clamp(1.7rem,2.3vw,2.35rem);letter-spacing:-1.1px;line-height:1.2;margin:8px 0 12px}h2{font-size:1.32rem;font-weight:600;line-height:1.3}h3{font-size:1.08rem;font-weight:600}small{font-size:.78rem}.muted{color:var(--muted)}.eyebrow,.nav-label,.top-label{font-size:.65rem;letter-spacing:1.8px;text-transform:uppercase;font-weight:600}.eyebrow{color:#92744b}.primary,.secondary,.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:4px;padding:10px 18px;font-size:.87rem;font-weight:600;text-decoration:none;min-height:42px}.primary{background:var(--teal);color:#fff}.primary:hover{background:#063d4d}.secondary{background:transparent;border-color:#bccbcb;color:var(--teal)}.secondary:hover{background:#edf1ef}.text-button,.text-link{background:none;border:0;padding:8px 0;color:var(--teal);font-weight:600;font-size:.86rem;text-decoration:none}.text-link:hover,.text-button:hover{text-decoration:underline}.danger{color:var(--error)}.skip-link{position:fixed;left:20px;top:-80px;z-index:100;background:#fff;padding:15px}.skip-link:focus{top:15px}.app-layout{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100vh}.sidebar{background:#fdfdf9;border-right:1px solid var(--line);padding:38px 25px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{text-decoration:none;display:flex;flex-direction:column;align-items:center;gap:18px;margin-bottom:45px}.brand img{width:156px;height:78px;object-fit:contain}.brand span{font-size:.68rem;color:var(--muted);letter-spacing:.2px}.nav-label{color:#a2a9a2;margin:0 12px 12px}.sidebar nav{display:flex;flex-direction:column;gap:5px}.sidebar nav a{display:flex;align-items:center;gap:15px;text-decoration:none;font-size:.87rem;color:#62747a;padding:13px 12px;border-radius:3px}.sidebar nav a.active{background:var(--teal);color:#fff}.sidebar nav a:hover:not(.active){background:#edf2ef}.nav-mark{font-size:.62rem;opacity:.65;letter-spacing:1px}.sidebar-bottom{margin-top:auto;padding-top:25px;display:flex;align-items:center;gap:9px;border-top:1px solid var(--line)}.house-mark{border:1px solid var(--sand);width:28px;height:28px;display:grid;place-items:center;color:#a38358;font-family:Montserrat,sans-serif}.sidebar-bottom strong{display:block;font-size:.7rem}.sidebar-bottom small{display:block;font-size:.61rem;color:var(--muted)}.workspace{min-width:0}.topbar{height:90px;padding:0 42px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px}.top-label{color:var(--muted);font-size:.61rem}.user-area{display:flex;align-items:center;gap:10px}.user-area strong{display:block;font-size:.78rem;line-height:1.1}.user-area small{display:block;font-size:.65rem;color:var(--muted);margin-top:4px}.avatar{display:grid;place-items:center;width:34px;height:34px;background:#e3eae5;color:var(--teal);border-radius:50%;font-weight:600}.user-area button{margin-left:22px;font-size:.75rem}main{max-width:1536px;margin:0 auto;padding:38px 42px 45px;min-height:calc(100vh - 145px)}.workspace-footer{display:flex;justify-content:space-between;gap:15px;padding:20px 42px;border-top:1px solid var(--line);font-size:.65rem;color:#8a9795}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:29px}.page-heading p{font-size:.88rem}.panel{background:var(--white);border:1px solid var(--line);border-radius:6px;padding:25px;margin-bottom:22px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:23px}.section-heading h2{margin-top:4px}.section-heading .text-link{white-space:nowrap}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin:0 0 28px}.metrics article{border:1px solid var(--line);padding:23px 22px 20px;background:#fff;border-top:2px solid #acc5c4;border-radius:4px}.metrics article:first-child{background:var(--teal);color:#fff;border-color:var(--teal)}.metrics article>span{font-size:.78rem;opacity:.8}.metrics strong{display:block;font-family:Montserrat,sans-serif;font-size:2.6rem;font-weight:600;margin:10px 0}.metrics strong small{font-family:Hind,sans-serif;font-weight:400;font-size:1rem;opacity:.6;margin-left:9px}.metrics article p{font-size:.69rem;opacity:.65}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:24px}.dashboard-grid>.panel{min-height:335px}.house-panel{background:#efe9df;border-radius:6px;overflow:hidden;margin-bottom:22px}.house-panel>img{width:100%;height:145px;object-fit:cover;object-position:50% 50%}.house-panel>div{padding:24px}.house-panel h2{margin:8px 0 12px;font-size:1.5rem}.house-panel p{font-size:.8rem;color:#6f756d;margin-bottom:10px}.info-strip{display:flex;align-items:center;gap:12px;padding:15px 20px;border:1px solid var(--line);border-radius:4px;background:#eeeee6;font-size:.78rem}.info-strip p small{display:block;color:var(--muted);font-size:.7rem}.status-dot{width:7px;height:7px;background:#709183;border-radius:50%;flex-shrink:0}.count{font-size:.75rem;padding:3px 7px;background:#edf1ee;border-radius:4px;margin-left:7px}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap}thead{background:#f7f8f4}th{font-size:.67rem;font-weight:500;text-transform:uppercase;letter-spacing:.7px;color:#7d8a89;padding:13px 12px}td{padding:17px 12px;border-bottom:1px solid #edf0eb;font-size:.83rem}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fcfcf8}.cell-note{display:block;color:var(--muted);font-size:.68rem;margin-top:3px}.reference{font-weight:600;text-decoration:none}.reference:hover{text-decoration:underline}.badge{display:inline-block;font-size:.65rem;border-radius:3px;padding:3px 8px;color:#546764;background:#edf0eb;font-weight:500;white-space:nowrap}.badge[data-status=confirmed],.badge[data-status=checked_in]{background:#e3efea;color:#27654f}.badge[data-status=draft]{background:#f3eddf;color:#876a35}.badge[data-status=cancelled],.badge[data-status=no_show]{background:#f5e6e3;color:#9b524a}.badge[data-status=held]{background:#e4edf3;color:#37617d}.empty-state{padding:48px 16px;text-align:center}.empty-state p{font-size:.85rem;max-width:420px;margin:10px auto 16px;color:var(--muted)}.empty-cell{text-align:center;color:var(--muted);padding:32px}.loading-state{padding:45px;background:#ffffff80;border:1px solid var(--line);border-radius:5px;color:var(--muted);text-align:center}.error,.success,.notice{font-size:.86rem;padding:14px 18px;border-radius:4px;border:1px solid;margin:0 0 22px}.error{background:#fbefed;border-color:#edcac5;color:#8c3330}.success{background:#edf5ed;border-color:#c9dfcc;color:#315f40}.notice{background:#fbf4e5;border-color:#e8d9b6;color:#796139}.global-error{margin:16px 42px}.form-panel{border-top:3px solid #9ab7b5}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.form-grid .wide{grid-column:1/-1}label{display:flex;flex-direction:column;font-size:.79rem;font-weight:500;gap:6px}input,select,textarea{width:100%;color:var(--ink);background:#fff;border:1px solid #cbd6d2;border-radius:4px;padding:10px 12px;font-size:.88rem;min-height:43px}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#a1aca8}label small,.form-hint{font-size:.72rem;font-weight:400;color:var(--muted)}.form-actions{display:flex;flex-wrap:wrap;align-items:center;gap:17px;margin-top:22px}.form-link{font-size:.7rem;font-weight:400;color:#60858b;text-decoration:none}.form-link:hover{text-decoration:underline}.form-subheading{display:flex;justify-content:space-between;align-items:center;margin:25px 0 9px}.booking-item{display:grid;grid-template-columns:1.5fr 1.5fr .7fr 1.3fr;gap:15px;border:1px solid var(--line);border-radius:4px;padding:18px;margin:0 0 20px}.booking-item legend{font-size:.7rem;color:var(--muted);padding:0 8px}.booking-item .danger{grid-column:1/-1;text-align:right}.quote-box{margin-top:23px;padding:24px;background:#f3f4ed;border:1px solid #dce3d4;border-radius:4px}.quote-box h3{font-size:1.8rem;margin-top:5px}.quote-box>div>p{font-size:.8rem;color:var(--muted)}.quote-lines{margin:18px 0;padding-top:10px;border-top:1px solid var(--line)}.quote-lines>div{display:flex;justify-content:space-between;gap:15px;font-size:.8rem;padding:5px 0}.quote-box .primary{margin-top:18px}.detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;background:#f8f9f4;padding:20px;border-radius:4px}.detail-grid span{display:block;font-size:.7rem;color:var(--muted)}.detail-grid strong{display:block;font-size:.9rem;margin-top:5px}.detail-rooms{font-size:.82rem;padding-left:22px;margin:22px 0}.private-note{font-size:.86rem;background:#f7f6ef;padding:14px;border-left:2px solid var(--sand);white-space:pre-wrap}.booking-detail h2 .badge{vertical-align:middle;margin-left:10px}.filter-bar,.search-bar{display:flex;align-items:flex-end;gap:15px;margin-bottom:22px}.filter-bar label,.search-bar label{min-width:180px}.pagination{display:flex;justify-content:space-between;align-items:center;padding-top:20px;font-size:.8rem;color:var(--muted)}.room-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.room-tile{border:1px solid var(--line);border-radius:4px;display:flex;align-items:center;gap:15px;padding:20px}.room-code{font-size:.64rem;color:#9a7d55;border:1px solid #dac9ab;padding:13px 8px;background:#fbf9f1}.room-tile p{font-size:.75rem;color:var(--muted);margin:4px 0 8px}.room-tile button{margin-left:auto}.form-panel>form>label{margin-top:20px}.toolbar{display:flex;gap:16px;margin-bottom:20px;align-items:flex-end}.toolbar label{flex:1;max-width:420px}.inline-fields{display:flex;gap:15px}.rate-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.rate-card{padding:24px;border:1px solid var(--line);background:#fff;border-radius:4px}.rate-card h3{margin-bottom:12px}.rate-card p{font-size:.85rem;margin-top:8px}.price{font-family:Montserrat,sans-serif;font-size:1.4rem;font-weight:600}.checkbox{display:flex;flex-direction:row;align-items:center;gap:8px}.checkbox input{width:auto;min-height:auto}.calendar-toolbar{display:flex;align-items:flex-end;gap:12px;margin-bottom:25px;flex-wrap:wrap}.calendar-toolbar label{min-width:190px}.calendar-key{display:flex;align-items:center;gap:6px;margin-left:auto;font-size:.69rem;padding-bottom:13px;color:var(--muted)}.calendar-key i{display:inline-block;width:9px;height:9px;border:1px solid #c8d6cd;background:#f5faf7;margin-left:10px}.calendar-key .booked{background:#afc9bd;border-color:#8eb4a3}.calendar-key .maintenance{background:#e5d1b3;border-color:#cbb18a}.calendar-panel{padding:0;overflow:hidden}.calendar-table{min-width:960px;table-layout:fixed}.calendar-table th:first-child{width:175px;text-align:left;position:sticky;left:0;background:#fafbf6;z-index:1}.calendar-table th{padding:15px 8px;text-align:center}.calendar-table thead strong{display:block;font-size:1.1rem;color:var(--ink);margin-top:3px}.calendar-table tbody th{border-bottom:1px solid var(--line);font-size:.78rem;text-transform:none;letter-spacing:0}.calendar-table tbody th small{display:block;font-size:.6rem;color:var(--muted);margin-top:6px;font-weight:400}.calendar-table td{padding:5px 1px;height:70px;border-left:1px solid #eef1ec;text-align:center;overflow:hidden}.calendar-table .today{background:#f2f0e5}.calendar-table .inactive{background:repeating-linear-gradient(45deg,#f0f2ef,#f0f2ef 3px,#fafbf9 3px 6px)}.calendar-free{color:#b7c7bd}.calendar-stay,.calendar-block{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:.62rem;padding:14px 3px;background:#dcebe3;color:#35624b;text-decoration:none;border-top:2px solid #8fb5a0;border-radius:2px}.calendar-stay:hover{background:#c6dfd0}.calendar-block{background:#ede1ca;border-color:#cbb18a;color:#89704b}.calendar-footnote{color:var(--muted);font-size:.76rem;margin-top:20px}.login-page{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.login-visual{position:relative;background:#254f56;overflow:hidden;min-height:500px}.login-visual>img{width:100%;height:100%;position:absolute;object-fit:cover}.login-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#002e3de6,transparent 75%)}.login-visual-content,.login-caption{position:absolute;bottom:65px;left:60px;right:40px;color:#fff;z-index:1}.login-visual h2{font-family:Montserrat,sans-serif;font-size:2.5rem;line-height:1.25;margin-bottom:18px}.login-visual p{font-size:.95rem;max-width:320px;opacity:.85}.login-form-side,.login-form-panel{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:50px;background:#fcfcf7}.login-form-side>div,.login-form-panel>div{width:100%;max-width:370px}.login-brand img,.login-logo{width:175px;max-height:110px;object-fit:contain;margin-bottom:40px}.login-form-side h1,.login-form-panel h1{font-size:1.9rem}.login-form-side form,.login-form-panel form{margin-top:27px}.login-form-side label,.login-form-panel label{margin-bottom:19px}.login-form-side .primary,.login-form-panel .primary{width:100%;margin-top:4px}.login-note{font-size:.72rem;color:var(--muted);margin-top:27px;border-top:1px solid var(--line);padding-top:22px}.login-footer{font-size:.65rem;color:#9aa39f;position:absolute;bottom:25px}@media(min-width:1650px){main{padding-top:48px}.dashboard-grid{grid-template-columns:minmax(0,1fr) 330px}.house-panel>img{height:175px}}@media(max-width:1150px){.app-layout{grid-template-columns:190px minmax(0,1fr)}.sidebar{padding:30px 15px}.brand img{width:140px}.topbar{padding:0 25px}main{padding:30px 25px}.dashboard-grid{grid-template-columns:minmax(0,1fr)}.house-panel{display:grid;grid-template-columns:240px 1fr}.house-panel>img{height:100%;min-height:210px}.metrics{gap:12px}.metrics article{padding:18px 15px}.metrics strong{font-size:2.1rem}.room-grid{grid-template-columns:1fr}.booking-item{grid-template-columns:1fr 1fr}}@media(max-width:760px){.app-layout{display:block}.sidebar{position:static;width:100%;height:auto;padding:14px 18px 0;border-right:0;border-bottom:1px solid var(--line)}.brand{margin:0 0 10px;align-items:flex-start;flex-direction:row;justify-content:space-between;gap:15px}.brand img{width:100px;height:48px}.brand span{font-size:.62rem;align-self:center}.nav-label,.sidebar-bottom{display:none}.sidebar nav{flex-direction:row;overflow-x:auto;gap:5px;padding-bottom:12px}.sidebar nav a{white-space:nowrap;font-size:.74rem;padding:9px 12px}.nav-mark{display:none}.topbar{height:70px;padding:0 18px}.top-label{font-size:.5rem;max-width:90px}.user-area strong{font-size:.73rem}.user-area button{margin-left:7px;font-size:.69rem}.avatar{display:none}main{padding:25px 18px}.page-heading{align-items:flex-start;flex-wrap:wrap;gap:15px}.page-heading h1{font-size:1.65rem;letter-spacing:-.6px}.page-heading p{font-size:.81rem}.page-heading>.primary,.page-heading>.secondary{font-size:.78rem}.metrics{grid-template-columns:1fr 1fr;gap:12px}.metrics article{padding:18px 15px}.metrics article>span{font-size:.7rem}.metrics article p{font-size:.64rem}.metrics strong{font-size:2.2rem;margin:8px 0}.panel{padding:18px}.section-heading{gap:12px}.section-heading h2{font-size:1.18rem}.house-panel{grid-template-columns:1fr 1fr}.house-panel>img{min-height:235px}.house-panel>div{padding:20px}.house-panel h2{font-size:1.25rem}.form-grid,.detail-grid,.rate-grid{grid-template-columns:1fr}.booking-item{grid-template-columns:1fr 1fr;padding:15px;gap:13px}.detail-grid{gap:13px}.form-actions{gap:12px}.filter-bar,.toolbar{flex-wrap:wrap}.calendar-toolbar{gap:9px}.calendar-key{margin:10px 0 0;width:100%;font-size:.65rem}.calendar-panel{padding:0}.workspace-footer{padding:17px 18px;font-size:.6rem}.login-page{grid-template-columns:1fr}.login-visual{display:none}.login-form-side,.login-form-panel{min-height:100vh;padding:35px}.global-error{margin:12px 18px}.table-scroll th,.table-scroll td{padding:12px 10px}.room-tile{padding:15px}.room-tile button{font-size:.76rem}.quote-lines>div{font-size:.75rem}.quote-box{padding:18px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}main.login-layout{display:grid;grid-template-columns:1fr 1fr;min-height:100vh;max-width:none;padding:0;margin:0}.login-photo{position:relative;overflow:hidden;min-height:100vh;background:#1d505b}.login-photo>img{position:absolute;width:100%;height:100%;object-fit:cover}.login-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#003446d9,transparent 75%)}.login-photo>div{position:absolute;bottom:60px;left:60px;right:40px;z-index:1;color:#fff}.login-photo .eyebrow{color:#e4d3b6}.login-photo h1{font-size:clamp(2rem,3vw,3.1rem);line-height:1.2;margin-top:15px}.login-panel{padding:70px max(45px,12%);display:flex;flex-direction:column;justify-content:center;background:#fcfcf8}.brand-logo{width:180px;height:100px;object-fit:contain;align-self:flex-start;margin:0 0 46px}.login-copy h2{font-family:Montserrat,sans-serif;font-size:1.7rem;letter-spacing:-.6px;margin:12px 0 16px}.login-copy p{font-size:.86rem}.login-panel form{margin-top:28px}.login-panel label{margin-bottom:20px}.full{width:100%}.login-foot{font-size:.72rem;margin-top:25px;color:var(--muted)}.page-note{font-size:.78rem;margin-top:10px}@media(max-width:760px){main.login-layout{display:block}.login-photo{display:none}.login-panel{padding:40px 30px;min-height:100vh}.brand-logo{margin-bottom:36px}.login-copy h2{font-size:1.6rem}}
