:root{--ink:#18332c;--muted:#78847f;--paper:#f7f5ef;--card:#fff;--line:#e6e7e1;--coral:#e66b54;--coral-soft:#fbe9e4;--sage:#a9b9a7;--green:#1e4b40;--shadow:0 18px 50px rgba(29,55,47,.10);font-family:"DM Sans",sans-serif;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}body{margin:0;background:var(--paper);min-height:100vh}button,input,textarea{font:inherit}button{color:inherit}.hidden{display:none!important}.muted{color:var(--muted);margin:.35rem 0;line-height:1.55}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:.68rem;font-weight:700;color:var(--coral);margin:0 0 .65rem}.logo-mark{display:grid;place-items:center;width:34px;height:34px;background:var(--coral);border-radius:50% 50% 45% 55%;color:white;font-family:"DM Serif Display";font-size:1.25rem}.brand,.login-brand{display:flex;align-items:center;gap:.7rem;font-family:"DM Serif Display";font-size:1.35rem}.login-shell{min-height:100vh;display:grid;grid-template-rows:auto 1fr auto;align-items:center;justify-items:center;padding:1.5rem;background:radial-gradient(circle at 80% 10%,#e7ece3 0,transparent 27%),radial-gradient(circle at 15% 90%,#f6ddd5 0,transparent 25%),var(--paper)}.login-brand{justify-self:start}.login-card{background:rgba(255,255,255,.88);backdrop-filter:blur(10px);border:1px solid white;border-radius:28px;box-shadow:var(--shadow);padding:2rem;width:min(100%,430px)}h1,h2,h3,p{margin-top:0}h1,h2{font-family:"DM Serif Display";font-weight:400}h1{font-size:clamp(2.4rem,8vw,4rem);line-height:.98;margin-bottom:1.2rem}h1 em{font-weight:400;color:var(--coral)}h2{font-size:clamp(2rem,5vw,3rem);margin-bottom:.25rem}h3{margin-bottom:.2rem}.stack{display:grid;gap:1rem;margin-top:1.5rem}label{display:grid;gap:.45rem;font-size:.78rem;font-weight:700}input,textarea{width:100%;border:1px solid var(--line);background:#fff;border-radius:12px;padding:.82rem .9rem;color:var(--ink);outline:none}input:focus,textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(30,75,64,.1)}.button{border:0;border-radius:12px;padding:.82rem 1rem;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.7rem}.primary{background:var(--green);color:white}.secondary{background:white;border:1px solid var(--line)}.wide{width:100%;margin-top:1rem}.login-hint,.login-footer{font-size:.73rem;color:var(--muted);text-align:center}.login-footer{align-self:end}.app{min-height:100vh}.sidebar{display:none}.mobile-header{height:68px;background:white;display:flex;align-items:center;justify-content:space-between;padding:0 1rem;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.icon-button{border:1px solid var(--line);background:white;border-radius:10px;width:38px;height:38px;font-size:1.3rem;cursor:pointer}.view{padding:1.5rem 1rem 6.5rem;max-width:1400px;margin:auto}.page-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.8rem}.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;margin-bottom:1.7rem}.stat{background:white;border:1px solid var(--line);border-radius:16px;padding:1rem}.stat strong{display:block;font-family:"DM Serif Display";font-size:1.9rem;font-weight:400}.stat span{font-size:.72rem;color:var(--muted)}.calendar-toolbar{display:flex;flex-direction:column;gap:1rem;margin-bottom:1rem}.month-nav{display:flex;align-items:center;gap:.7rem}.month-nav h3{min-width:165px;text-align:center;font-family:"DM Serif Display";font-size:1.35rem;font-weight:400}.legend{display:flex;gap:1rem;overflow:auto;font-size:.72rem}.legend span{white-space:nowrap}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:.35rem}.calendar-wrap{background:white;border:1px solid var(--line);border-radius:18px;overflow:hidden}.weekdays,.calendar{display:grid;grid-template-columns:repeat(7,1fr)}.weekdays{background:#f1f2ed;color:var(--muted);font-size:.65rem;font-weight:700;text-align:center;padding:.6rem 0}.day{min-height:76px;border-right:1px solid var(--line);border-top:1px solid var(--line);padding:.38rem;position:relative;overflow:hidden}.day:nth-child(7n){border-right:0}.day.outside{background:#fafaf8;color:#bdc3c0}.day.today .date{background:var(--coral);color:white}.date{display:grid;place-items:center;width:23px;height:23px;border-radius:50%;font-size:.7rem}.event{border:0;width:100%;text-align:left;margin-top:.25rem;border-radius:7px;padding:.35rem;font-size:.58rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;background:var(--coral-soft);border-left:3px solid var(--coral)}.booking-list{display:grid;gap:.8rem}.booking-card{background:white;border:1px solid var(--line);border-radius:16px;padding:1rem;display:grid;grid-template-columns:auto 1fr auto;gap:1rem;align-items:center;cursor:pointer}.booking-date{background:#edf2ec;border-radius:12px;text-align:center;padding:.55rem;min-width:52px}.booking-date strong{font-family:"DM Serif Display";font-size:1.4rem}.booking-date span,.booking-meta{display:block;font-size:.68rem;color:var(--muted)}.admin-grid{display:grid;gap:1rem}.panel{background:white;border:1px solid var(--line);border-radius:20px;padding:1.2rem}.panel-head{display:flex;gap:.8rem;align-items:flex-start}.panel-head p{font-size:.76rem;color:var(--muted)}.panel-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;flex:none}.panel-icon.coral{background:var(--coral-soft);color:var(--coral)}.panel-icon.green{background:#e5eee9;color:var(--green)}.settings-list{display:grid;gap:.6rem;margin-top:1.2rem}.setting{border-top:1px solid var(--line);padding-top:.8rem;display:flex;justify-content:space-between;align-items:center;font-size:.8rem}.setting small{display:block;color:var(--muted)}.mobile-nav{position:fixed;bottom:0;left:0;right:0;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);display:flex;justify-content:space-around;padding:.65rem env(safe-area-inset-right) calc(.65rem + env(safe-area-inset-bottom)) env(safe-area-inset-left);border-top:1px solid var(--line);z-index:15}.mobile-nav button{border:0;background:none;display:grid;gap:.2rem;place-items:center;color:var(--muted);font-size:1.15rem}.mobile-nav button span{font-size:.6rem}.mobile-nav button.active{color:var(--coral)}dialog{border:0;border-radius:24px;padding:0;width:min(calc(100% - 1.2rem),560px);max-height:90vh;box-shadow:var(--shadow);color:var(--ink)}dialog::backdrop{background:rgba(17,39,33,.5);backdrop-filter:blur(3px)}.dialog-close{position:absolute;right:1rem;top:1rem;border:0;background:#f0f1ed;width:34px;height:34px;border-radius:50%;font-size:1.25rem;cursor:pointer}.detail{padding:2rem}.detail-hero{background:var(--green);color:white;border-radius:18px;padding:1.5rem;margin-bottom:1.3rem}.detail-hero .eyebrow{color:#f3a492}.detail-hero h2{font-size:2.2rem}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;margin:1.2rem 0}.info{background:#f6f6f2;border-radius:12px;padding:.8rem}.info small{display:block;color:var(--muted);font-size:.65rem;margin-bottom:.25rem}.comments{border-top:1px solid var(--line);padding-top:1.2rem}.comment{display:flex;gap:.7rem;margin:.9rem 0}.avatar{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#e8eee9;font-size:.7rem;font-weight:700;flex:none}.comment-body{background:#f5f5f1;border-radius:4px 12px 12px 12px;padding:.7rem;flex:1;font-size:.78rem}.comment-head{display:flex;justify-content:space-between;gap:.5rem;margin-bottom:.2rem}.comment-head small{color:var(--muted)}.delete-comment{border:0;background:none;color:var(--coral);cursor:pointer;padding:0}.comment-form{display:flex;gap:.5rem}.comment-form textarea{min-height:44px;resize:vertical}.toast{position:fixed;top:1rem;left:50%;transform:translate(-50%,-150%);background:var(--ink);color:white;border-radius:12px;padding:.8rem 1rem;z-index:50;font-size:.8rem;transition:.25s;box-shadow:var(--shadow)}.toast.show{transform:translate(-50%,0)}.text-button{border:0;background:none;color:var(--muted);cursor:pointer}
@media(min-width:850px){.app{display:grid;grid-template-columns:230px 1fr}.sidebar{display:flex;position:sticky;top:0;height:100vh;background:#16352e;color:white;padding:2rem 1.3rem;flex-direction:column}.sidebar .brand{padding:0 .6rem;margin-bottom:2.5rem}.sidebar nav{display:grid;gap:.4rem}.nav-item{border:0;background:transparent;color:#b6c7c1;border-radius:10px;padding:.8rem;text-align:left;cursor:pointer}.nav-item span{display:inline-block;width:28px}.nav-item.active{background:rgba(255,255,255,.1);color:white}.side-bottom{margin-top:auto;border-top:1px solid rgba(255,255,255,.15);padding-top:1rem}.user-chip{font-size:.78rem;margin-bottom:.4rem}.user-chip small{display:block;color:#9bb1aa}.sidebar .text-button{color:#9bb1aa;padding:0}.mobile-header,.mobile-nav{display:none}.view{padding:3rem 3.5rem}.stats{grid-template-columns:repeat(4,1fr)}.calendar-toolbar{flex-direction:row;justify-content:space-between;align-items:center}.day{min-height:118px;padding:.55rem}.event{font-size:.68rem;padding:.45rem}.admin-grid{grid-template-columns:1fr 1fr}.panel{padding:1.6rem}.booking-list{grid-template-columns:repeat(2,1fr)}}
.calendar{grid-template-rows:repeat(6,96px);position:relative}.day{min-height:0;z-index:0}.event{display:flex;align-items:center;gap:.25rem;text-overflow:clip;color:var(--event-color);border-left-width:4px}.event-bar{align-self:start;z-index:2;height:24px;margin:calc(32px + var(--lane) * 27px) 3px 0;border-radius:7px;padding:.28rem .4rem}.event-bar.continues-before{border-left-color:transparent!important;border-radius:0 7px 7px 0}.event-bar.continues-after{border-radius:7px 0 0 7px}.event-bar.continues-before.continues-after{border-radius:0}.event-title{overflow:hidden;text-overflow:ellipsis;flex:1;color:var(--ink)}.event.arrival{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--event-color) 45%,transparent)}.arrival-mark{background:var(--event-color);color:white;border-radius:4px;padding:.18rem .25rem;font-size:.43rem;letter-spacing:.05em;line-height:1;flex:none}.comment-badge{background:white;color:var(--event-color);border-radius:99px;padding:.12rem .26rem;font-size:.48rem;box-shadow:0 1px 3px rgba(0,0,0,.1);flex:none}.list-status{display:flex;align-items:center;gap:.25rem}.list-comment-icon{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--coral-soft);color:var(--coral);font-size:.55rem}.list-status small{color:var(--coral);font-weight:700}.title-form{display:grid;grid-template-columns:1fr auto;gap:.65rem;align-items:end;margin:0 0 .3rem}.field-help{color:var(--muted);font-size:.68rem;margin-bottom:1.2rem}
@media(min-width:850px){.calendar{grid-template-rows:repeat(6,122px)}.event-bar{height:27px;margin-top:calc(35px + var(--lane) * 30px)}}
.stat small{display:block;margin-top:.45rem;color:var(--ink);font-size:.66rem;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stat span{display:block}
.stat-guest .stat-label{margin-bottom:.35rem}.stat-guest strong{font-size:1.15rem;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.booking-title-row{display:flex;align-items:center;gap:.5rem;min-width:0}.booking-title-row>strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.current-badge{flex:none;border-radius:99px;background:var(--green);color:white;padding:.18rem .42rem;font-size:.55rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.airbnb-link{width:100%;margin:0 0 1.2rem;text-decoration:none}.airbnb-link span{font-size:1rem}
.stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.comment-badge{display:flex;align-items:center;gap:.2rem;color:var(--coral)}.comment-badge img{width:9px;height:9px;display:block}.list-comment-icon{background:var(--coral-soft)}.list-comment-icon img{width:14px;height:14px;display:block}
.mobile-nav{background:#16352e;border-top:0;backdrop-filter:none;box-shadow:0 -8px 28px rgba(22,53,46,.18)}.mobile-nav button{color:#a9beb7}.mobile-nav button.active{color:#fff}
.mobile-drawer{position:fixed;inset:0;z-index:30;pointer-events:none;visibility:hidden}.drawer-overlay{position:absolute;inset:0;border:0;background:rgba(10,28,23,.52);opacity:0;transition:opacity .22s}.drawer-panel{position:relative;width:min(84vw,290px);height:100%;background:#16352e;color:white;padding:1.25rem;display:flex;flex-direction:column;transform:translateX(-100%);transition:transform .25s ease;box-shadow:18px 0 45px rgba(10,28,23,.25)}.mobile-drawer.open{pointer-events:auto;visibility:visible}.mobile-drawer.open .drawer-overlay{opacity:1}.mobile-drawer.open .drawer-panel{transform:translateX(0)}.drawer-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:2.2rem}.drawer-head button{border:0;background:rgba(255,255,255,.1);color:white;width:36px;height:36px;border-radius:50%;font-size:1.35rem}.drawer-panel nav{display:grid;gap:.4rem}.drawer-panel .nav-item{-webkit-appearance:none;appearance:none;width:100%;border:0;background:transparent;color:#b6c7c1;border-radius:10px;padding:.8rem;text-align:left;cursor:pointer;font:inherit}.drawer-panel .nav-item span{display:inline-block;width:28px}.drawer-panel .nav-item.active{background:rgba(255,255,255,.1);color:white}.drawer-bottom{margin-top:auto;border-top:1px solid rgba(255,255,255,.15);padding-top:1rem}.drawer-bottom .user-chip small{display:block;color:#9bb1aa}.drawer-bottom .text-button{color:#9bb1aa;padding:0;margin-top:.5rem}.drawer-open{overflow:hidden}
@media(max-width:849px){.mobile-nav{display:none}.view{padding-bottom:2rem}.booking-card{grid-template-columns:46px minmax(0,1fr) auto;gap:.65rem;padding:.8rem}.booking-card>div:nth-child(2){min-width:0}.booking-date{min-width:0;padding:.45rem .3rem}.booking-title-row{align-items:flex-start;flex-wrap:wrap;gap:.3rem}.booking-title-row>strong{min-width:0;width:100%}.current-badge{font-size:.48rem}.list-status{align-self:center}}
@media(min-width:850px){.mobile-drawer{display:none}}
.today-button{background:var(--green);border:1px solid var(--green);color:white;padding:.65rem .9rem;white-space:nowrap;box-shadow:0 4px 12px rgba(30,75,64,.18)}
@media(max-width:849px){.month-nav{width:100%;gap:.45rem}.month-nav h3{min-width:0;flex:1;font-size:1.15rem}.month-nav .icon-button{width:36px;height:36px;flex:none}.today-button{padding:.55rem .7rem;border-radius:10px;flex:none}}
.booking-stat{-webkit-appearance:none;appearance:none;width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer}.booking-stat:not(:disabled):hover{border-color:var(--sage);box-shadow:0 5px 16px rgba(29,55,47,.08)}.booking-stat:not(:disabled):focus-visible{outline:3px solid rgba(30,75,64,.2);outline-offset:2px}.booking-stat:disabled{cursor:default}
@media(max-width:849px){dialog{max-height:94vh}.detail{padding:1rem}.detail-hero{padding:1rem;margin-bottom:.85rem}.detail-hero .eyebrow{margin-bottom:.4rem}.detail-hero h2{font-size:1.55rem;line-height:1.05;margin-bottom:.55rem;padding-right:1.7rem}.detail-hero p:last-child{font-size:.76rem;line-height:1.3;margin-bottom:0}.title-form{gap:.45rem;margin-bottom:.2rem}.title-form label{font-size:.7rem}.title-form input{padding:.65rem .7rem}.title-form .button{padding:.65rem .75rem}.field-help{margin-bottom:.75rem}.booking-address{font-size:.75rem;margin-bottom:.75rem}.comments{padding-top:.8rem}.comments h3{margin-bottom:.35rem}}
.dialog-close{position:sticky;top:1rem;z-index:6;display:block;margin:1rem 1rem -50px auto}
@media(max-width:849px){dialog{max-height:none;overflow:visible;background:transparent;box-shadow:none}#booking-detail{max-height:calc(94vh - 46px);overflow:auto;background:white;border-radius:24px;box-shadow:var(--shadow)}.dialog-close{position:absolute;top:-42px;right:.25rem;margin:0;background:white;box-shadow:0 5px 18px rgba(17,39,33,.22)}.detail{padding-top:1rem}}
.setting .password-toggle{color:var(--green);font-size:.72rem;font-weight:700;white-space:nowrap}.password-reset-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.55rem;align-items:end;padding:.7rem 0 0}.password-reset-form label{min-width:0}.password-reset-form input{padding:.65rem .75rem}.password-reset-form .button{padding:.67rem .85rem}
.setting-actions{display:flex;align-items:center;gap:.65rem}.setting .delete-user{color:var(--coral);font-size:.72rem;font-weight:700}.confirm-dialog{width:min(calc(100% - 2rem),430px);background:white}.confirm-content{padding:1.6rem}.confirm-content h2{font-size:2rem}.confirm-content>p:not(.eyebrow){color:var(--muted);line-height:1.5}.confirm-actions{display:flex;justify-content:flex-end;gap:.65rem;margin-top:1.5rem}.danger{background:var(--coral);color:white}
@media(max-width:480px){.setting{align-items:flex-start;gap:.6rem}.setting-actions{flex-direction:column;align-items:flex-end;gap:.45rem}.confirm-actions{display:grid;grid-template-columns:1fr 1fr}.confirm-actions .button{padding:.75rem .5rem}}
@media(max-width:849px){input,textarea{font-size:16px}}
