:root{color:#18322d;font-synthesis:none;text-rendering:optimizelegibility;background:#f5f4ee;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 100% 0,#d0e2d073,#0000 34rem),#f5f4ee;min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}h1,h2,h3,p{margin-top:0}h1{color:#123a30;letter-spacing:-.04em;margin-bottom:.55rem;font-family:Georgia,Times New Roman,serif;font-size:clamp(2rem,8vw,3.25rem);line-height:1.02}h2{color:#173f35;margin-bottom:.35rem;font-family:Georgia,Times New Roman,serif;font-size:1.55rem}h3{color:#173f35;margin-bottom:.35rem}.muted{color:#67756f;line-height:1.55}.eyebrow{color:#4f7567;letter-spacing:.14em;text-transform:uppercase;margin-bottom:.45rem;font-size:.72rem;font-weight:800}.auth-page{place-items:center;min-height:100vh;padding:1.25rem;display:grid}.auth-card{background:#fffffcf0;border:1px solid #e1e1d6;border-radius:1.5rem;width:min(100%,29rem);padding:2rem 1.5rem;box-shadow:0 24px 70px #1e39301f}.brand-mark,.mini-mark{color:#fff;background:#173f35;place-items:center;font-family:Georgia,Times New Roman,serif;font-weight:700;display:grid}.brand-mark{border-radius:1rem;width:3.25rem;height:3.25rem;margin-bottom:1.6rem;font-size:1.1rem}.form-stack{gap:1rem;margin-top:1.5rem;display:grid}label{color:#365149;gap:.45rem;font-size:.84rem;font-weight:700;display:grid}input,select,textarea{color:#18322d;background:#fff;border:1px solid #ccd3cd;border-radius:.75rem;outline:none;width:100%;font-weight:500;transition:border-color .12s,box-shadow .12s}input,select{height:3rem;padding:0 .85rem}textarea{resize:vertical;padding:.75rem .85rem}input:focus,select:focus,textarea:focus{border-color:#2f7563;box-shadow:0 0 0 3px #2f756324}input:disabled,select:disabled,textarea:disabled{background:#f1f1ec}.field-row{grid-template-columns:1fr 1fr;gap:.8rem;display:grid}.field-error{color:#a43838;font-size:.75rem;font-weight:600}.field-help{color:#738078;font-size:.74rem;font-weight:500}.primary-button,.secondary-button{border-radius:.8rem;justify-content:center;align-items:center;min-height:3rem;padding:.7rem 1rem;font-weight:800;display:inline-flex}.primary-button{color:#fff;background:#173f35;border:1px solid #173f35}.primary-button:hover:not(:disabled){background:#245b4d}.primary-button.light{color:#173f35;background:#fff;border-color:#fff;align-self:flex-start;margin-top:.7rem}.primary-button.compact{min-height:2.65rem;padding-inline:1.25rem}.secondary-button{color:#245b4d;background:#fff;border:1px solid #bac8c1}.secondary-button.small{min-height:2.35rem;margin-top:.85rem;padding:.35rem .75rem;font-size:.8rem}.text-button{color:#2a6958;text-underline-offset:.2rem;background:0 0;border:0;font-weight:800;-webkit-text-decoration:underline #2a69584d;text-decoration:underline #2a69584d}.text-button.danger{color:#a33d3d}.alert,.notice{border-radius:.8rem;gap:.25rem;padding:.85rem 1rem;font-size:.86rem;line-height:1.45;display:grid}.alert.error{color:#8f3030;background:#fff1f1;border:1px solid #edc1c1}.alert.success{color:#285d3f;background:#edf8f1;border:1px solid #bfdbc9}.alert.warning{color:#755c1d;background:#fff9e7;border:1px solid #e5d29b}.notice{color:#31584c;background:#edf4f0;border:1px solid #d4ded8}.qr-code{border:.75rem solid #fff;border-radius:1rem;width:min(15rem,100%);margin:1rem auto;display:block;box-shadow:0 8px 24px #1e39301a}.secret-box{text-align:center;background:#eff2ec;border-radius:.8rem;gap:.35rem;margin:1rem 0;padding:.85rem;display:grid}.secret-box span{color:#63736c;letter-spacing:.1em;text-transform:uppercase;font-size:.72rem;font-weight:800}.secret-box strong{overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.backup-codes{background:#fff;border:1px solid #d8ddd8;border-radius:.8rem;margin:1rem 0;padding:.9rem}.backup-codes summary{cursor:pointer;color:#31584c;font-weight:800}.backup-codes p{color:#67756f;margin:.75rem 0;font-size:.82rem}.backup-codes div{white-space:pre-line;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;line-height:1.7}.loading-pulse{background:#173f35;border-radius:1rem;width:3rem;height:3rem;margin-bottom:1.5rem;animation:1.4s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.45;transform:scale(.92)}}.app-shell{min-height:100vh;padding-bottom:5.8rem}.topbar{z-index:10;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#f5f4eee0;border-bottom:1px solid #d0d3cacc;align-items:center;gap:.75rem;height:4.5rem;padding:0 1rem;display:flex;position:sticky;top:0}.mini-mark{border-radius:.75rem;width:2.4rem;height:2.4rem;font-size:.8rem}.topbar div:last-child{gap:.1rem;display:grid}.topbar strong{color:#173f35;font-size:.9rem}.topbar span{color:#748079;font-size:.72rem}.content{width:min(100%,48rem);margin:0 auto}.page{gap:1.2rem;padding:1rem;display:grid}.page-heading,.section-heading,.modal-heading{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.page-heading{padding:.8rem 0 .2rem}.page-heading h1{font-size:2.5rem}.hero-card{color:#eaf4ef;background:radial-gradient(circle at 86% 16%,#ffffff2b,#0000 9rem),linear-gradient(135deg,#173f35,#2f6e5c);border-radius:1.4rem;padding:1.8rem 1.4rem;position:relative;overflow:hidden;box-shadow:0 18px 45px #173f352e}.hero-card:after{content:"";border:1px solid #ffffff1f;border-radius:50%;width:13rem;height:13rem;position:absolute;bottom:-5rem;right:-2rem}.hero-card h1,.hero-card .eyebrow{color:#fff}.hero-card p:not(.eyebrow){color:#d6e8e0;margin-bottom:0}.conflict-banner{color:#fff;background:linear-gradient(145deg,#9d3030,#7f2424);border:1px solid #cf7373;border-radius:1.2rem;gap:.9rem;padding:1.2rem;display:grid;box-shadow:0 14px 35px #8026262e}.conflict-banner h2,.conflict-banner .eyebrow{color:#fff;margin-bottom:0}.conflict-banner p{color:#ffe8e8;margin-bottom:0;line-height:1.45}.conflict-list{gap:.8rem;display:grid}.conflict-item{color:#3c2929;background:#fffffff5;border-radius:.9rem;gap:.85rem;padding:.9rem;display:grid}.conflict-item label{color:#5b3b3b}.conflict-pair{gap:.55rem;display:grid}.conflict-reservation{background:#ffffff1f;border-radius:.75rem;grid-template-columns:auto 1fr;align-items:center;gap:.3rem .6rem;padding:.7rem;display:grid}.conflict-item .conflict-reservation{background:#f8eded}.conflict-reservation strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.conflict-reservation>span:last-child{color:inherit;opacity:.82;grid-column:1/-1;font-size:.78rem}.calendar-status{color:#285d3f;background:#eef8f1;border:1px solid #c6dbce;border-radius:.9rem;gap:.25rem;padding:.9rem 1rem;display:grid}.calendar-status span{font-size:.78rem;line-height:1.4}.section{gap:1rem;display:grid}.section-heading h2{margin-bottom:0}.loading-card,.empty-card,.settings-card{background:#fffffce0;border:1px solid #dedfd5;border-radius:1.2rem}.loading-card{color:#6e7a74;padding:1.2rem}.empty-card{text-align:center;padding:1.5rem}.empty-card p{color:#6f7b75;margin-bottom:0;line-height:1.5}.empty-card.tall{place-content:center;min-height:19rem;display:grid}.placeholder-icon{color:#2c6655;background:#e2ede7;border-radius:1.1rem;place-items:center;width:3.5rem;height:3.5rem;margin:0 auto 1rem;font-family:Georgia,Times New Roman,serif;font-size:1.5rem;font-weight:700;display:grid}.stay-stack{gap:.45rem;display:grid}.stay-label{color:#738078;letter-spacing:.1em;text-transform:uppercase;padding-left:.25rem;font-size:.7rem;font-weight:800}.reservation-list{gap:.85rem;display:grid}.reservation-card{background:#fff;border:1px solid #d9ddd6;border-radius:1rem;padding:1.05rem;box-shadow:0 7px 20px #1f3a310d}.reservation-card.cancelled{opacity:.7}.reservation-card-top{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.reservation-card h3{margin:.18rem 0 0;font-size:1.05rem}.source-badge{border-radius:999px;align-items:center;width:fit-content;padding:.25rem .5rem;font-size:.66rem;font-weight:800;line-height:1;display:inline-flex}.source-badge.airbnb,.agenda-marker.airbnb,.month-event.airbnb,.source-legend i.airbnb{color:#8c2f2d;background:#ffe0df}.source-badge.vrbo,.agenda-marker.vrbo,.month-event.vrbo,.source-legend i.vrbo{color:#40398d;background:#dedbff}.source-badge.ff,.agenda-marker.ff,.month-event.ff,.source-legend i.ff{color:#245c72;background:#d8edf7}.source-badge.manual,.agenda-marker.manual,.month-event.manual,.source-legend i.manual{color:#2e654a;background:#dff0e7}.source-badge.owner,.agenda-marker.owner,.month-event.owner,.source-legend i.owner{color:#76581a;background:#f5e7c8}.status{text-transform:uppercase;border-radius:999px;flex:none;padding:.3rem .55rem;font-size:.66rem;font-weight:800}.status.confirmed{color:#2e654a;background:#dff0e7}.status.cancelled{color:#6b6868;background:#efeeee}.date-range{color:#3e564f;margin:.8rem 0 .55rem;font-size:.88rem;font-weight:700}.reservation-meta{color:#738078;flex-wrap:wrap;gap:.45rem .8rem;font-size:.78rem;display:flex}.source-legend{color:#5e6f68;flex-wrap:wrap;gap:.45rem .75rem;padding:0 .15rem;font-size:.7rem;font-weight:700;display:flex}.source-legend span{align-items:center;gap:.32rem;display:inline-flex}.source-legend i{border-radius:50%;width:.62rem;height:.62rem}.calendar-tabs{background:#eceee8;border:1px solid #d8ddd7;border-radius:.9rem;grid-template-columns:repeat(3,1fr);gap:.25rem;padding:.25rem;display:grid}.calendar-tabs button{color:#66756e;background:0 0;border:0;border-radius:.7rem;min-height:2.65rem;font-size:.8rem;font-weight:800}.calendar-tabs button.active{color:#245b4d;background:#fff;box-shadow:0 3px 12px #1f3a3117}.agenda-list{background:#fff;border:1px solid #d9ddd6;border-radius:1rem;overflow:hidden}.agenda-row{border-bottom:1px solid #e5e7e1;grid-template-columns:.3rem minmax(0,1fr) auto;align-items:center;gap:.75rem;min-height:5rem;padding:.85rem;display:grid}.agenda-row:last-child{border-bottom:0}.agenda-row.cancelled{opacity:.58}.agenda-row.cancelled strong{text-decoration:line-through}.agenda-marker{border-radius:999px;width:.3rem;height:3.1rem}.agenda-row>div:nth-child(2){gap:.28rem;min-width:0;display:grid}.agenda-row strong{color:#24453c;text-overflow:ellipsis;white-space:nowrap;font-size:.92rem;overflow:hidden}.agenda-date{color:#6c7973;font-size:.72rem;font-weight:700}.month-view{gap:.65rem;display:grid}.month-controls{grid-template-columns:auto 1fr auto;align-items:center;gap:.6rem;display:grid}.month-controls h2{text-align:center;margin:0}.month-button{width:2.75rem;min-height:2.75rem;padding:0;font-size:1.5rem}.month-grid{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.weekday-row span{color:#7b8680;text-align:center;padding:.2rem;font-size:.67rem;font-weight:800}.month-day{background:#fffffce8;border-bottom:1px solid #e3e5df;border-right:1px solid #e3e5df;min-width:0;min-height:5rem;padding:.28rem .2rem}.month-day:nth-child(7n+1){border-left:1px solid #e3e5df}.month-day:nth-child(-n+7){border-top:1px solid #e3e5df}.month-day time{color:#52645c;border-radius:50%;place-items:center;width:1.35rem;height:1.35rem;margin:0 auto .25rem;font-size:.67rem;font-weight:800;display:grid}.month-day.outside{background:#eeefeab3}.month-day.outside time{color:#a1aaa5}.month-day.is-today time{color:#fff;background:#173f35}.month-events{gap:.18rem;display:grid}.month-event{text-overflow:ellipsis;white-space:nowrap;border:0;border-radius:.28rem;width:100%;min-height:1.15rem;padding:.14rem;font-size:.55rem;font-weight:800;overflow:hidden}.month-event.cancelled{opacity:.45;text-decoration:line-through}.more-events{color:#6b7872;text-align:center;font-size:.58rem;font-weight:800}.settings-card{gap:1.2rem;padding:1.2rem;display:grid}.settings-heading p{color:#738078;margin-bottom:0;font-size:.84rem;line-height:1.45}.session-list{gap:.7rem;display:grid}.session-row{background:#f2f3ed;border-radius:.75rem;justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.8rem;display:flex}.session-row div{gap:.2rem;min-width:0;display:grid}.session-row strong{text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;overflow:hidden}.session-row span{color:#748079;font-size:.72rem}.bottom-nav{z-index:20;padding:.45rem max(.25rem, env(safe-area-inset-right)) calc(.45rem + env(safe-area-inset-bottom)) max(.25rem, env(safe-area-inset-left));-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffffcf2;border-top:1px solid #d8dbd4;grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 30px #1f3a3112}.bottom-nav button{color:#7a857f;background:0 0;border:0;border-radius:.75rem;place-content:center;justify-items:center;gap:.35rem;min-height:3.65rem;font-size:.67rem;font-weight:800;display:grid}.nav-dot{background:#c8cfcb;border-radius:999px;width:1.25rem;height:.32rem}.bottom-nav button.active{color:#245b4d}.bottom-nav button.active .nav-dot{background:#2f7563}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0c221c85;align-items:end;padding-top:2rem;display:grid;position:fixed;inset:0}.modal{width:min(100%,38rem);max-height:calc(100vh - 2rem);padding:1.25rem 1rem calc(1.25rem + env(safe-area-inset-bottom));background:#fffef9;border-radius:1.4rem 1.4rem 0 0;margin:0 auto;overflow-y:auto;box-shadow:0 -20px 70px #0a1e1840}.modal-heading h2{margin-bottom:0}.close-button{color:#3f554e;background:#eff1ec;border:0;border-radius:50%;place-items:center;width:2.5rem;height:2.5rem;font-size:1.5rem;line-height:1;display:grid}@media (width>=700px){.app-shell{padding-bottom:0}.topbar{padding-inline:max(1rem,50vw - 24rem)}.page{padding:1.5rem}.bottom-nav{border:1px solid #d8dbd4;border-radius:1.15rem;width:min(36rem,100% - 2rem);bottom:1.25rem;left:50%;right:auto;transform:translate(-50%);box-shadow:0 14px 45px #1f3a3124}.content{padding-bottom:6.5rem}.modal-backdrop{align-items:center;padding:2rem}.modal{border-radius:1.4rem;max-height:calc(100vh - 4rem);padding:1.5rem}.conflict-pair{grid-template-columns:1fr 1fr}.month-day{min-height:6.5rem;padding:.4rem}.month-event{font-size:.65rem}}@media (width<=430px){.field-row{grid-template-columns:1fr}}.calendar-status.attention{color:#7a5a14;background:#fdf5e2;border-color:#e4c98a}.attention-list{gap:.6rem;display:grid}.attention-row{color:#6d5218;background:#fdf5e2;border:1px solid #e4c98a;border-radius:.9rem;justify-content:space-between;align-items:center;gap:.75rem;padding:.85rem 1rem;font-size:.85rem;line-height:1.4;display:flex}.attention-row .text-button{flex-shrink:0}.coverage-gaps{gap:.5rem;display:grid}.coverage-gap{color:#6d5218;background:#fdf5e2;border:1px solid #e4c98a;border-radius:.9rem;padding:.8rem 1rem;font-size:.85rem;line-height:1.4}.feed-list{gap:.9rem;display:grid}.feed-row{background:#f7f8f3;border:1px solid #dedfd5;border-radius:.9rem;gap:.7rem;padding:.9rem;display:grid}.feed-row.stale{background:#fdf5e2;border-color:#e4c98a}.feed-row-main{gap:.25rem;min-width:0;display:grid}.feed-row-main strong{font-size:.9rem}.feed-url{color:#738078;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;overflow:hidden}.feed-status{color:#2c6655;font-size:.8rem;font-weight:600}.feed-status.warn{color:#96680f}.feed-meta,.feed-error{color:#738078;font-size:.76rem}.feed-error{color:#a33c2a}.feed-actions{flex-wrap:wrap;gap:.5rem;display:flex}.feed-runs{color:#5f6b64;margin:0;padding-left:1.1rem;font-size:.76rem;line-height:1.6}
