:root{--ink: #12304f;--muted: #54698a;--blue: #0a66c8;--blue-dark: #0a4f9e;--blue-soft: #e3f0ff;--bg: #f2f8ff;--panel: #f7faff;--canvas: #eef5fd;--line: #dce8f6;--line-strong: #bcd4ee;--ok-bg: #e4f6ec;--ok-bd: #9ed9b6;--ok-fg: #11663a;--busy-bg: #fde8e8;--busy-bd: #f0a8a8;--busy-fg: #a12727;--clean-bg: #fff2cc;--clean-bd: #ebcb6b;--clean-fg: #7a4f00;--fix-bg: #e6eaf2;--fix-bd: #b4becf;--fix-fg: #3b4a66}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:Poppins,system-ui,sans-serif;color:var(--ink);background:var(--bg)}button,input,select{font-family:inherit;font-size:inherit;color:inherit}a{color:inherit;text-decoration:none}h1,h2,p{margin:0}:focus-visible{outline:3px solid rgba(10,102,200,.45);outline-offset:2px}.muted{color:var(--muted)}.small{font-size:13px}.tiny{font-size:11px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.splash{min-height:100vh;display:flex;align-items:center;justify-content:center;color:var(--muted)}.btn{height:44px;padding:0 20px;border:0;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap}.btn:disabled{cursor:not-allowed;background:#cfddee;color:#44597a;box-shadow:none}.btn--primary{background:var(--blue);color:#fff;box-shadow:0 6px 16px #0a66c847}.btn--soft{background:var(--blue-soft);color:var(--blue-dark)}.btn--soft:disabled{background:#eef2f8}.btn--block{width:100%;height:52px;font-size:15px}.iconbtn{width:36px;height:36px;border:0;border-radius:10px;background:transparent;color:#44597a;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.iconbtn:hover{background:var(--blue-soft)}.field{display:flex;flex-direction:column;gap:8px}.field label{font-size:14px;font-weight:500}.field input[type=text],.field input[type=password]{height:50px;border:1.5px solid var(--line-strong);border-radius:14px;padding:0 16px;font-size:15px;background:#fff;width:100%}.field input:focus{border-color:var(--blue)}.field__wrap{position:relative;display:flex;align-items:center}.field__wrap input{padding-right:52px!important}.field__eye{position:absolute;right:6px;width:38px;height:38px}.alert{display:flex;gap:12px;align-items:center;justify-content:space-between;border-radius:14px;padding:12px 14px;font-size:14px;line-height:1.45}.alert--error{background:var(--busy-bg);border:1.5px solid var(--busy-bd);color:var(--busy-fg)}.alert--warn{background:var(--clean-bg);border:1.5px solid var(--clean-bd);color:var(--clean-fg)}.card{background:#fff;border:1px solid var(--line);border-radius:20px}.login{display:flex;flex-wrap:wrap;min-height:100vh}.login__hero{flex:1 1 560px;background:#e3f0ff;padding:56px 64px;display:flex;flex-direction:column;justify-content:space-between;gap:40px}.login__logo{width:210px;height:auto}.login__hero h1{font-size:44px;font-weight:600;line-height:1.15;letter-spacing:-.02em;margin-bottom:20px;max-width:520px}.login__hero p{font-size:18px;line-height:1.6;color:#3f5878;max-width:520px}.login__tiles{display:grid;grid-template-columns:repeat(6,56px);grid-template-rows:repeat(3,56px);gap:8px}.login__tile{border-radius:16px;border:1.5px solid}.login__tile--ok{background:var(--ok-bg);border-color:var(--ok-bd)}.login__tile--busy{background:var(--busy-bg);border-color:var(--busy-bd)}.login__tile--clean{background:var(--clean-bg);border-color:var(--clean-bd)}.login__tile--fix{background:var(--fix-bg);border-color:var(--fix-bd)}.login__tile--plain{background:#fff;border-color:var(--line-strong)}.login__side{flex:1 1 480px;padding:40px;display:flex;align-items:center;justify-content:center}.login__card{width:100%;max-width:420px;background:#fff;border:1px solid var(--line);border-radius:28px;padding:40px 36px;box-shadow:0 12px 36px #0a66c814;display:flex;flex-direction:column;gap:20px}.login__card h2{font-size:26px;font-weight:600;letter-spacing:-.01em;margin-bottom:6px}.login__card .muted{font-size:14px}.login__hint{text-align:center;font-size:13px;color:var(--muted);line-height:1.5}.shell{display:flex;flex-wrap:wrap;min-height:100vh}.sidebar{flex:0 0 248px;background:#fff;border-right:1px solid var(--line);padding:24px 16px;display:flex;flex-direction:column;gap:6px;min-width:0;position:sticky;top:0;height:100vh;overflow-y:auto}.sidebar__logo{width:150px;height:auto;margin:4px 0 22px 10px}.sidebar__group{display:flex;flex-direction:column;gap:6px}.sidebar__label{font-size:11px;font-weight:500;letter-spacing:.08em;color:#5e7491;margin:12px 0 4px 12px}.navlink{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:12px;font-size:14px;font-weight:500;color:#44597a}.navlink:hover{background:var(--bg)}.navlink--on{font-weight:600;color:var(--blue-dark);background:var(--blue-soft)}.usercard{margin-top:auto;display:flex;align-items:center;gap:12px;padding:12px;border-radius:16px;background:var(--bg);border:1px solid var(--line)}.usercard__avatar{width:38px;height:38px;border-radius:50%;background:#cfe5ff;color:#0a4f9e;display:flex;align-items:center;justify-content:center;font-weight:600}.usercard__text{flex:1;min-width:0}.usercard__name{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.usercard__role{font-size:12px;color:var(--muted)}.main{flex:999 1 720px;min-width:0;padding:28px 36px 40px;display:flex;flex-direction:column;gap:24px}.pagehead{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}.pagehead h1{font-size:28px;font-weight:600;letter-spacing:-.01em}.pagehead p{font-size:14px;margin-top:4px}.pagehead__actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.datepill{height:44px;border:1.5px solid var(--line-strong);border-radius:999px;padding:0 16px;background:#fff;font-size:14px}.summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.summary__card{padding:16px 20px;display:flex;flex-direction:column;gap:14px}.summary__top{display:flex;align-items:center;gap:16px}.summary__count{font-size:26px;font-weight:600;line-height:1.1}.summary__types{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;border-top:1px solid #e6effa;padding-top:12px}.summary__n{font-size:16px;font-weight:600}.summary__n--zero{color:#9aaac0}.swatch{width:44px;height:44px;border-radius:14px;border:1.5px solid}.swatch--available,.tile--available,.badge--available{background:var(--ok-bg);border-color:var(--ok-bd);color:var(--ok-fg)}.swatch--occupied,.tile--occupied,.badge--occupied{background:var(--busy-bg);border-color:var(--busy-bd);color:var(--busy-fg)}.swatch--cleaning,.tile--cleaning,.badge--cleaning{background:var(--clean-bg);border-color:var(--clean-bd);color:var(--clean-fg)}.swatch--maintenance,.tile--maintenance,.badge--maintenance{background:var(--fix-bg);border-color:var(--fix-bd);color:var(--fix-fg)}.plan{background:#fff;border:1px solid var(--line);border-radius:28px;padding:28px 32px 32px;overflow-x:auto}.plan__rows{display:flex;flex-direction:column;gap:32px;min-width:min-content}.plan__row{display:flex;flex-wrap:nowrap;gap:36px;align-items:flex-start}.plan__row--bottom{align-items:stretch;flex-wrap:wrap}.typeblock{display:flex;flex-direction:column;gap:10px}.typeblock__title{font-size:15px;font-weight:600}.typeblock__grid{background:var(--canvas);border-radius:18px;padding:12px;display:grid;grid-template-rows:repeat(3,84px);gap:6px}.tile{border:1.5px solid;border-radius:14px;padding:8px 6px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;min-width:0}.tile:hover{filter:brightness(.97)}.tile--selected{box-shadow:0 0 0 3px #fff,0 0 0 5px var(--blue)}.tile__no{font-size:18px;font-weight:600;line-height:1.1}.tile__label{font-size:11px;font-weight:500;line-height:1.2}.tile__guest{font-size:11px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;min-height:13px}.panel{flex:1 1 380px;min-width:300px;background:var(--panel);border:1px solid var(--line);border-radius:22px;padding:22px 24px;display:flex;flex-direction:column;gap:14px;margin-top:34px}.panel__head{display:flex;align-items:center;justify-content:space-between;gap:12px}.panel__title{font-size:20px;font-weight:600}.badge{padding:6px 14px;border-radius:999px;font-size:13px;font-weight:600;border:1.5px solid;white-space:nowrap}.panel__dl{margin:0;display:grid;grid-template-columns:130px 1fr;row-gap:8px;column-gap:12px;font-size:14px}.panel__dl dt{color:var(--muted)}.panel__dl dd{margin:0;font-weight:500}.panel__note{font-size:14px;color:#44597a;line-height:1.5}.panel__actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}.panel__form{display:flex;flex-direction:column;gap:14px}.panel__form .field input[type=text]{height:46px;font-size:14px}.seg{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.seg__opt{height:40px;padding:0 16px;border-radius:999px;border:1.5px solid var(--line-strong);background:#fff;display:inline-flex;align-items:center;font-size:14px;font-weight:500;cursor:pointer}.seg__opt input{position:absolute;opacity:0;pointer-events:none}.seg__opt--on{border-color:var(--blue);background:var(--blue);color:#fff;font-weight:600}.seg__opt:focus-within{outline:3px solid rgba(10,102,200,.45);outline-offset:2px}.topbar,.scrim{display:none}body.noscroll{overflow:hidden}@media (max-width: 900px){.shell{flex-wrap:nowrap;flex-direction:column}.topbar{display:flex;align-items:center;gap:10px;position:sticky;top:0;z-index:30;height:56px;padding:0 12px;background:#fff;border-bottom:1px solid var(--line)}.topbar__btn{width:44px;height:44px}.topbar__logo{height:28px;width:auto}.scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#12304f73}.sidebar{position:fixed;top:0;left:0;bottom:0;z-index:50;width:min(300px,86vw);height:100%;flex:none;transform:translate(-102%);transition:transform .2s ease;box-shadow:0 0 40px #12304f40;visibility:hidden}.sidebar--open{transform:none;visibility:visible}.sidebar__logo{display:none}.navlink{min-height:44px}.main{flex:1 1 auto;width:100%;padding:20px 16px 32px}.summary{grid-template-columns:repeat(2,minmax(0,1fr))}.login__hero{padding:32px}.login__hero h1{font-size:32px}}.alert--ok{background:var(--ok-bg);border:1.5px solid var(--ok-bd);color:var(--ok-fg)}.btn--danger{background:var(--busy-fg);color:#fff}.link{color:var(--blue-dark);font-weight:600}.link:hover{text-decoration:underline}.warn{color:var(--busy-fg)}.okc{color:var(--ok-fg)}.badge--stay-reserved{background:var(--blue-soft);border-color:#9cc3f0;color:var(--blue-dark)}.badge--stay-checked_in{background:var(--ok-bg);border-color:var(--ok-bd);color:var(--ok-fg)}.badge--stay-checked_out{background:var(--fix-bg);border-color:var(--fix-bd);color:var(--fix-fg)}.badge--stay-cancelled{background:var(--busy-bg);border-color:var(--busy-bd);color:var(--busy-fg)}.filters{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.tabs{display:flex;flex-wrap:wrap;gap:8px}.tab{height:40px;padding:0 16px;border-radius:999px;border:1.5px solid var(--line-strong);background:#fff;color:#44597a;font-size:14px;font-weight:500;cursor:pointer}.tab--on{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:600}.search{display:flex;flex:1 1 280px;gap:8px;min-width:240px}.search input{flex:1;height:44px;border:1.5px solid var(--line-strong);border-radius:999px;padding:0 18px;font-size:14px;background:#fff;min-width:0}.tablecard{overflow-x:auto;padding:8px 8px 12px}.table{width:100%;border-collapse:collapse;font-size:14px;min-width:760px}.table--tight{min-width:0}.table th{text-align:left;color:var(--muted);font-size:12px;font-weight:500;letter-spacing:.04em;padding:14px 12px}.table td{padding:14px 12px;border-top:1px solid #e6effa}.table .num{text-align:right}.empty{padding:32px;text-align:center;color:var(--muted);font-size:14px}.pager{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}.pager__btns{display:flex;gap:8px}.steps{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:12px}.steps__item{display:flex;align-items:center;gap:10px;height:44px;padding:0 18px 0 8px;border-radius:999px;background:#fff;border:1.5px solid var(--line);font-size:14px;font-weight:500;color:#5e7491}.steps__item--on{border-color:var(--blue);color:var(--blue-dark);font-weight:600}.steps__dot{width:28px;height:28px;border-radius:50%;background:#e6effa;color:#5e7491;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600}.steps__dot--on{background:var(--blue);color:#fff}.booking{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-start}.booking__main{flex:2 1 520px;min-width:0;padding:28px 30px;display:flex;flex-direction:column;gap:20px}.booking__main h2{font-size:20px;font-weight:600}.booking__side{flex:1 1 280px;min-width:260px;margin-top:0}.booking__nav{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #e6effa;padding-top:20px}.formgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.field input[type=date],.field input[type=number],.field input[type=search]{height:46px;border:1.5px solid var(--line-strong);border-radius:14px;padding:0 14px;font-size:14px;background:#fff;width:100%}.dateinput{max-width:260px}.label{font-size:14px;font-weight:500}.picklist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.pick{width:100%;text-align:left;display:flex;flex-direction:column;gap:2px;padding:12px 16px;border-radius:14px;border:1.5px solid var(--line-strong);background:#fff;cursor:pointer}.pick--on{border-color:var(--blue);background:var(--blue-soft)}.picked{font-size:14px;color:var(--blue-dark)}.roomgroup{display:flex;flex-direction:column;gap:8px}.chips{display:flex;flex-wrap:wrap;gap:10px}.chip{min-width:56px;height:44px;border-radius:12px;border:1.5px solid;font-size:15px;font-weight:600;cursor:pointer}.chip:disabled{cursor:not-allowed;opacity:.45}.chip--available{background:var(--ok-bg);border-color:var(--ok-bd);color:var(--ok-fg)}.chip--cleaning{background:var(--clean-bg);border-color:var(--clean-bd);color:var(--clean-fg)}.chip--occupied{background:var(--busy-bg);border-color:var(--busy-bd);color:var(--busy-fg)}.chip--maintenance{background:var(--fix-bg);border-color:var(--fix-bd);color:var(--fix-fg)}.chip--on{background:var(--blue);border-color:var(--blue);color:#fff}.dl{margin:0;display:grid;grid-template-columns:140px 1fr;gap:12px 16px;font-size:14px}.dl dt{color:var(--muted)}.dl dd{margin:0;font-weight:500}.row{display:flex;justify-content:space-between;gap:12px;font-size:14px}.row--total{border-top:1px solid var(--line);padding-top:14px;align-items:baseline;font-weight:600}.total{font-size:22px;color:var(--blue-dark)}.detailgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(380px,100%),1fr));gap:20px;align-items:start}.detailcard{padding:24px 28px;display:flex;flex-direction:column;gap:14px;min-width:0;overflow-x:auto}.detailcard h2,.editbox h2,.confirmbox h2{font-size:18px;font-weight:600}.detailcard--wide{grid-column:1 / -1}.subhead{font-size:15px;font-weight:600;margin:8px 0 0}.billrow{display:flex;justify-content:space-between;gap:12px;font-size:14px}.billrow--total{border-top:1px solid var(--line);padding-top:12px;font-size:16px}.editbox,.confirmbox{padding:24px 28px;display:flex;flex-direction:column;gap:16px}.confirmbox{border-color:var(--line-strong);background:var(--panel)}.search--wide{max-width:560px;flex:none;width:100%}.clip{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.textbtn{margin-left:10px;border:0;background:none;color:var(--blue-dark);font-weight:600;font-size:13px;cursor:pointer;padding:0}.textbtn:hover{text-decoration:underline}.ktp{max-width:100%;max-height:360px;border-radius:14px;border:1px solid var(--line);object-fit:contain;background:#fff;align-self:flex-start}.summary--3{grid-template-columns:repeat(3,minmax(0,1fr))}.textbtn--danger{color:var(--busy-fg)}.subform{border-top:1px solid var(--line);padding-top:16px;display:flex;flex-direction:column;gap:14px}.proofbox,.pdfbox{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.invhead{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px}.invhead__no{font-size:18px;font-weight:600}.badge--pay-paid{background:var(--ok-bg);border-color:var(--ok-bd);color:var(--ok-fg)}.badge--pay-partial{background:var(--clean-bg);border-color:var(--clean-bd);color:var(--clean-fg)}.badge--pay-unpaid{background:var(--busy-bg);border-color:var(--busy-bd);color:var(--busy-fg)}.statlink{display:flex;flex-direction:column;gap:4px}.statlink:hover{border-color:var(--line-strong)}.tasklist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.task{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:var(--panel)}.task:hover{border-color:var(--line-strong)}.task--row{flex-direction:row;align-items:center;justify-content:space-between;gap:12px}.chip--link{display:inline-flex;align-items:center;justify-content:center}.range{display:flex;flex-direction:column;gap:12px}.range__custom{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.reportcard{margin-top:20px}.chart{display:flex;flex-direction:column;gap:6px}.chart__plot{display:flex;align-items:flex-end;gap:4px;border-bottom:1.5px solid var(--line)}.chart__col{flex:1 1 0;min-width:14px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%}.chart__bar{width:100%;max-width:34px;border-radius:8px 8px 0 0;background:var(--blue)}.chart__bar--extra{background:#cfe1f7;border-radius:8px 8px 0 0}.chart__bar--neg{background:var(--busy-fg)}.chart__col .chart__bar--extra+.chart__bar{border-radius:0}.chart__labels{display:flex;gap:4px}.chart__label{flex:1 1 0;min-width:14px;text-align:center;font-size:11px;color:var(--muted);white-space:nowrap;overflow:visible}.chartscroll{overflow-x:auto}.legend{display:inline-block;width:12px;height:12px;border-radius:4px;vertical-align:middle;margin:0 4px 0 10px}.legend--on{background:var(--blue)}.legend--extra{background:#cfe1f7}.hbar{display:flex;flex-direction:column;gap:6px}.hbar__head{display:flex;justify-content:space-between;font-size:14px}.hbar__track{height:10px;border-radius:999px;background:#e6effa}.hbar__fill{height:10px;border-radius:999px;background:var(--blue)}details summary{cursor:pointer;font-size:14px;margin:4px 0 10px}@media (max-width: 900px){.summary--3{grid-template-columns:1fr}}.usercard__link{display:flex;align-items:center;gap:12px;flex:1;min-width:0;border-radius:12px}.usercard__link:hover .usercard__name{text-decoration:underline}.nosep{border-top:0;padding-top:0}@media (max-width: 900px){.login__hero{flex:1 1 100%;padding:28px 20px;gap:24px}.login__hero h1{font-size:28px}.login__hero p{font-size:16px}.login__tiles{grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:none;grid-auto-rows:40px;max-width:100%}.login__side{flex:1 1 100%;padding:20px 16px}.login__card{padding:28px 20px}.pagehead h1{font-size:24px}.pagehead>.btn,.pagehead__actions .btn{flex:1 1 auto}.btn{padding:0 16px}.dl,.panel__dl{grid-template-columns:1fr;gap:2px 0}.dl dd,.panel__dl dd{margin-bottom:10px;overflow-wrap:anywhere}.detailcard,.editbox,.confirmbox,.booking__main{padding:20px 16px}.summary__card{padding:14px}.summary__top{gap:10px}.summary__types{grid-template-columns:1fr;gap:2px}.summary__types>div{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.summary__n{font-size:14px}.plan__row{flex-wrap:wrap;gap:24px}.plan__rows{min-width:0}.typeblock{max-width:100%;min-width:0}.typeblock__grid{overflow-x:auto}.swatch{width:36px;height:36px;flex:none}.plan{padding:16px}.search{min-width:0;flex-basis:100%}.filters{gap:10px}.tabs{flex-wrap:nowrap;overflow-x:auto;max-width:100%;padding-bottom:4px}.tab{flex:none}.panel{min-width:0;flex-basis:100%;margin-top:0}.panel__actions .btn,.subform .btn{flex:1 1 140px}.alert{flex-wrap:wrap}.pager__btns{width:100%}.pager__btns .btn{flex:1}}.strip{padding:14px 12px 12px;display:flex;flex-direction:column;gap:10px}.strip__bar{display:flex;align-items:center;gap:4px}.strip__nav{flex:none;width:40px;height:40px}.strip__days{flex:1 1 auto;min-width:0;display:flex;gap:6px;overflow-x:auto;padding:4px 2px 8px;scroll-snap-type:x proximity;scrollbar-width:thin}.strip__day{flex:none;width:64px;height:78px;scroll-snap-align:center;border:1.5px solid var(--line-strong);border-radius:14px;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;cursor:pointer;color:var(--ink)}.strip__day:hover{background:var(--bg)}.strip__dow{font-size:11px;font-weight:500;color:var(--muted)}.strip__num{font-size:20px;font-weight:600;line-height:1.1}.strip__mon{font-size:11px;color:var(--muted)}.strip__day--sun .strip__dow{color:var(--busy-fg)}.strip__day--today{border-color:var(--blue)}.strip__day--today .strip__mon:after{content:" ·";color:var(--blue);font-weight:700}.strip__day--on{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:0 6px 14px #0a66c847}.strip__day--on .strip__dow,.strip__day--on .strip__mon{color:#dbeaff}.strip__tools{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:0 4px}.boardwrap,.monthwrap{display:flex;flex-direction:column;gap:14px}.boardhead{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:10px}.boardhead h2{font-size:20px;font-weight:600}.legend2{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 18px;font-size:13px;color:#44597a}.legend2 li{display:inline-flex;align-items:center;gap:6px}.swatch--sm{width:16px;height:16px;border-radius:5px;display:inline-block}.plan2{background:#fff;border:1px solid var(--line);border-radius:24px;padding:18px;display:flex;gap:14px;align-items:flex-start}.typeblock2{display:flex;flex-direction:column;gap:8px;min-width:0}.typeblock2--5{flex:5 1 0}.typeblock2--3{flex:3 1 0}.typeblock2__grid{background:var(--canvas);border-radius:16px;padding:10px;display:grid;gap:6px;grid-template-rows:repeat(3,72px)}.typeblock2__grid--5{grid-template-columns:repeat(5,minmax(0,1fr))}.typeblock2__grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.typeblock2 .tile{padding:4px 2px;border-radius:12px}.typeblock2 .tile__no{font-size:16px}.typeblock2 .tile__label,.typeblock2 .tile__guest{font-size:10px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.panel--detail{margin-top:0;min-width:0;flex:none;width:100%}.hint{padding:4px 6px}.monthhead{align-items:center}.monthpick{display:flex;align-items:center;gap:6px}.monthpick .datepill{height:40px;padding:0 12px}.monthscroll{overflow-x:auto;padding:10px}.mtable{border-collapse:separate;border-spacing:0;width:100%;min-width:1006px;table-layout:fixed;font-size:12px}.mtable th,.mtable td{padding:0}.mtable__room{position:sticky;left:0;z-index:2;background:#fff;width:76px;text-align:left;padding:0 8px 0 4px;border-right:1px solid var(--line);white-space:nowrap}.mtable__no{font-weight:600;font-size:13px;margin-right:6px}.mtable__type{color:var(--muted);font-size:10px;font-weight:500}.mtable__th{font-weight:500;color:var(--muted);text-align:center;padding:4px 0 6px;border-radius:8px 8px 0 0}.mtable__dow{display:block;font-size:10px}.mtable__th--sun{color:var(--busy-fg)}.mtable__th--today{background:var(--blue-soft);color:var(--blue-dark);font-weight:700}.mtable__th--sel{box-shadow:inset 0 -3px 0 var(--blue)}.mtable__cell{padding:2px 1px!important}.mtable__cell--selcol{background:#0a66c80d}.mcell{display:block;width:100%;height:28px;border:1.5px solid;border-radius:7px;padding:0 4px;cursor:pointer;text-align:left;overflow:hidden}.mcell:hover{filter:brightness(.95)}.mcell--available{background:var(--ok-bg);border-color:var(--ok-bd);color:var(--ok-fg)}.mcell--occupied{background:var(--busy-bg);border-color:var(--busy-bd);color:var(--busy-fg)}.mcell--cleaning{background:var(--clean-bg);border-color:var(--clean-bd);color:var(--clean-fg)}.mcell--maintenance{background:var(--fix-bg);border-color:var(--fix-bd);color:var(--fix-fg)}.mcell--sel{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--blue);position:relative;z-index:1}.mcell__name{display:block;font-size:11px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 900px){.plan2{flex-direction:column;padding:14px}.typeblock2{width:100%;flex:none}.strip__nav{width:34px}.strip__day{width:58px;height:72px}.monthpick select.datepill{padding:0 34px 0 14px;background-position:right 12px center}}html{scrollbar-gutter:stable}select.datepill,.monthpick select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:40px;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2354698a' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;background-size:16px}.monthpick select.datepill{padding:0 40px 0 18px}.strip__days{scroll-behavior:auto;animation:stripSlide .32s cubic-bezier(.22,.8,.3,1) both}.strip__day{transition:transform .18s ease,background-color .18s ease,border-color .18s ease,box-shadow .22s ease,color .18s ease;animation:dayIn .34s cubic-bezier(.22,.8,.3,1) both}.strip__day:hover{transform:translateY(-3px);box-shadow:0 6px 12px #0a66c81f}.strip__day:active{transform:translateY(0) scale(.97)}.strip__day--on,.strip__day--on:hover{transform:translateY(-2px) scale(1.07)}.strip__nav:active svg{transform:scale(.85)}.strip__nav svg{transition:transform .15s ease}@keyframes stripSlide{0%{opacity:0;transform:translate(var(--dx, 0))}to{opacity:1;transform:none}}@keyframes dayIn{0%{opacity:0;transform:translateY(8px) scale(.94)}to{opacity:1}}.plan2{transition:opacity .2s ease}.plan2--stale{opacity:.55}@media (prefers-reduced-motion: reduce){.strip__days,.strip__day,.modal__box{animation:none;transition:none}}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:16px}.modal__scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:#12304f73;animation:fadeIn .2s ease both}.modal__box{position:relative;width:min(520px,100%);max-height:calc(100vh - 32px);overflow-y:auto;background:#fff;border-radius:24px;padding:8px;box-shadow:0 24px 60px #12304f4d;animation:popIn .22s cubic-bezier(.22,.8,.3,1) both;outline:none}.modal__box .panel{border:0;background:transparent;padding:18px 16px 16px}.modal__box>.muted{padding:24px}.modal__close{position:absolute;top:12px;right:12px;z-index:1}.modal__box .panel__head{padding-right:40px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes popIn{0%{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:none}}@media (max-width: 900px){.modal{align-items:flex-end;padding:0}.modal__box{width:100%;border-radius:24px 24px 0 0;max-height:88vh;animation-name:sheetIn}}@keyframes sheetIn{0%{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}
