@font-face{font-family:Estate Numerals;src:url(/h5/fonts/texgyreheroscn-bold.otf) format("opentype");font-weight:700;font-style:normal;font-display:swap}:root{--ink: #14343a;--ink-2: #33545a;--muted: #5d7075;--faint: #8fa2a5;--line: #d6e0de;--paper: #f2f5f4;--white: #fff;--teal: #00838f;--teal-deep: #006a73;--teal-tint: #e0f1f2;--yellow: #f0c419;--yellow-deep: #6e5600;--yellow-tint: #fff4cc;--pink: #c2528f;--pink-deep: #96336b;--pink-tint: #fbe8f1;--green: #3e8e5e;--green-deep: #2b6644;--green-tint: #e4f2e8;--blue: #2f6fd0;--blue-deep: #2257a5;--blue-tint: #e6eefb;--red: #c01830;--red-tint: #fbe6e9;--app-max: 100vw;--font: "Noto Sans HK", "PingFang HK", "PingFang TC", "Microsoft JhengHei", "Noto Sans CJK HK", "Noto Sans TC", "Heiti TC", system-ui, sans-serif;--num: "Estate Numerals", "DIN Condensed", "Bahnschrift Condensed", "Roboto Condensed", "Arial Narrow", var(--font);--tone: var(--teal);--on-tone: #fff;--tone-deep: var(--teal-deep);--tone-tint: var(--teal-tint)}.tone-brand{--tone: var(--teal);--on-tone: #fff;--tone-deep: var(--teal-deep);--tone-tint: var(--teal-tint)}.tone-activity{--tone: var(--yellow);--on-tone: var(--ink);--tone-deep: var(--yellow-deep);--tone-tint: var(--yellow-tint)}.tone-consult{--tone: var(--pink);--on-tone: #fff;--tone-deep: var(--pink-deep);--tone-tint: var(--pink-tint)}.tone-job{--tone: var(--green);--on-tone: #fff;--tone-deep: var(--green-deep);--tone-tint: var(--green-tint)}.tone-school{--tone: var(--blue);--on-tone: #fff;--tone-deep: var(--blue-deep);--tone-tint: var(--blue-tint)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html{font-size:16px;-webkit-text-size-adjust:100%}body{min-height:100vh;font-family:var(--font);color:var(--ink);background:var(--paper);line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}button:disabled{cursor:not-allowed}input{font:inherit;color:inherit}img{max-width:100%}a{color:var(--tone-deep)}ul,ol{list-style:none}:focus-visible{outline:3px solid var(--ink);outline-offset:2px}.num{font-family:var(--num);font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:.02em}.muted{color:var(--muted);font-size:.9375rem}.center{text-align:center;padding:1rem}.rich-text,.rich-text *,input{-webkit-user-select:text;user-select:text}@media(orientation:portrait)and (min-width:431px){html{font-size:min(calc(100vw * 16 / 390),35.2px)}}@media(orientation:landscape)and (min-width:700px){:root{--app-max: 480px}body{background:#dce6e4}#app{max-width:480px;margin:0 auto;min-height:100vh;background:var(--paper);box-shadow:0 0 0 1px var(--line);position:relative}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;width:100%;min-height:3.25rem;padding:.625rem 1.25rem;border-radius:.875rem;font-size:1.0625rem;font-weight:800;letter-spacing:.03em;text-align:center;transition:filter .15s,background .15s}.btn svg{font-size:1.25rem;flex-shrink:0}.btn-primary{background:var(--tone);color:var(--on-tone)}.btn-primary:active{filter:brightness(.92)}.btn-secondary{background:var(--white);color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--line)}.btn-secondary:active{background:#eaf0ef}.btn-quiet{background:transparent;color:var(--muted)}.btn-danger{background:var(--red);color:#fff}.btn-text{width:auto;min-height:2.75rem;color:var(--teal-deep);font-weight:700}.btn:disabled{background:#e1e8e7;color:#6f8286;box-shadow:none;filter:none}.btn-sm{width:auto;min-height:2.5rem;padding:0 1rem;font-size:.9375rem;border-radius:.75rem}.btn-busy{width:1.125rem;height:1.125rem;border-radius:50%;border:2.5px solid currentColor;border-right-color:transparent;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.h5-toast{position:fixed;left:50%;bottom:6.5rem;z-index:10000;transform:translate(-50%,.5rem);max-width:calc(min(100vw,var(--app-max)) - 3rem);padding:.75rem 1.125rem;border-radius:.875rem;background:var(--white);color:var(--ink);box-shadow:0 0 0 1px var(--line),0 .5rem 1.5rem #14343a29;font-size:1rem;font-weight:700;line-height:1.45;text-align:center;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}.h5-toast.is-show{opacity:1;transform:translate(-50%)}.spinner{display:flex;justify-content:center;padding:4rem 0}.spinner span{width:2.25rem;height:2.25rem;border-radius:50%;border:.25rem solid var(--tone-tint);border-top-color:var(--tone);animation:spin .8s linear infinite}.empty{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:3.5rem 2rem;text-align:center}.empty-icon{width:4rem;height:4rem;border-radius:1.25rem;display:grid;place-items:center;font-size:2rem;background:var(--tone-tint);color:var(--tone-deep)}.empty-text{color:var(--muted);font-size:1rem;max-width:18rem}.empty .btn{width:auto;margin-top:.25rem}.brand-strip{background:var(--white);border-bottom:1px solid var(--line);padding:.625rem 1rem}.brand-strip img{display:block;width:100%;max-width:24rem;height:auto;margin:0 auto}.appbar{position:sticky;top:0;z-index:30;display:grid;grid-template-columns:1fr minmax(0,max-content) 1fr;align-items:center;gap:.5rem;height:3.5rem;padding:0 .375rem;background:var(--tone);color:var(--on-tone)}.appbar>:last-child{justify-self:end}.appbar-pill{display:inline-flex;align-items:center;gap:.375rem;height:2.375rem;margin-right:.375rem;padding:0 .875rem;border-radius:999px;background:var(--white);color:var(--ink);font-size:.9375rem;font-weight:800;white-space:nowrap}.appbar-pill:active{background:var(--paper)}.appbar-btn{width:2.75rem;height:2.75rem;display:grid;place-items:center;border-radius:50%;font-size:1.5rem}.appbar-btn:active{background:#0000001a}.appbar-title{text-align:center;font-size:1.1875rem;font-weight:900;letter-spacing:.06em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stepper{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:var(--tone-tint)}.stepper-item{display:flex;align-items:center;gap:.375rem;flex-shrink:0;color:var(--muted);font-size:.9375rem;font-weight:700}.stepper-num{width:1.75rem;height:1.75rem;border-radius:50%;display:grid;place-items:center;font-family:var(--num);font-size:1.0625rem;line-height:1;background:var(--white);color:var(--muted);box-shadow:inset 0 0 0 1.5px var(--line)}.stepper-item.is-active{color:var(--ink)}.stepper-item.is-active .stepper-num,.stepper-item.is-done .stepper-num{background:var(--tone);color:var(--on-tone);box-shadow:none}.tone-activity .stepper-item.is-active .stepper-num,.tone-activity .stepper-item.is-done .stepper-num{box-shadow:inset 0 0 0 1.5px var(--yellow-deep)}.stepper-line{flex:1;min-width:.5rem;height:2px;border-radius:1px;background:var(--line)}.stepper-line.is-done{background:var(--tone-deep)}.page{min-height:100vh;background:var(--paper);padding-bottom:2rem}.page.has-actionbar{padding-bottom:8rem}.sheet{background:var(--white);padding:1.25rem 1.25rem 1.5rem}.sheet+.sheet,.notice+.sheet{margin-top:.5rem}.title-xl{font-size:1.625rem;font-weight:900;line-height:1.3;letter-spacing:.01em;margin-top:.5rem;text-wrap:balance}.title-lg{font-size:1.375rem;font-weight:900;line-height:1.35;text-wrap:balance}.lead{color:var(--muted);margin-top:.375rem}.section-h{font-size:1.1875rem;font-weight:900;margin-bottom:.75rem}.rich-text{font-size:1.0625rem;line-height:1.8;color:var(--ink-2);overflow-wrap:anywhere}.rich-text p+p{margin-top:.5rem}.rich-text img{max-width:100%;height:auto;border-radius:.5rem}.rich-text.article img{width:100%!important;display:block;margin:.5rem 0}.rich-text ul,.rich-text ol{list-style:revert;padding-left:1.25rem}.chip{display:inline-flex;align-items:center;height:1.875rem;padding:0 .75rem;border-radius:999px;font-size:.875rem;font-weight:800;background:var(--tone-tint);color:var(--tone-deep)}.facts{display:grid;gap:1rem;margin-top:1.25rem}.fact{display:grid;grid-template-columns:2.5rem 1fr;gap:.75rem;align-items:start}.fact-icon{width:2.5rem;height:2.5rem;border-radius:.75rem;display:grid;place-items:center;font-size:1.3125rem;background:var(--tone-tint);color:var(--tone-deep)}.fact-label{font-size:.875rem;color:var(--muted);line-height:1.3}.fact-value{font-size:1.0625rem;font-weight:700;line-height:1.45;overflow-wrap:anywhere}.fact-value a{text-decoration:none}.fact-value .num{font-size:1.1875rem}.notice{display:flex;gap:.625rem;align-items:flex-start;margin:1rem 0 0;padding:.875rem 1rem;border-radius:.875rem;background:var(--paper);color:var(--ink-2);font-size:.9375rem;line-height:1.55}.notice svg{flex-shrink:0;font-size:1.25rem;margin-top:.0625rem;color:var(--tone-deep)}.notice.is-ok{margin:.5rem 0 0;border-radius:0;background:var(--green-tint);color:var(--green-deep);font-weight:600}.notice.is-ok svg{color:var(--green-deep)}.notice.is-warn{background:var(--red-tint);color:var(--red)}.notice.is-warn svg{color:var(--red)}.actionbar{position:fixed;left:0;right:0;bottom:0;z-index:40;margin:0 auto;max-width:var(--app-max);display:grid;gap:.625rem;padding:.75rem 1rem calc(.75rem + env(safe-area-inset-bottom));background:#fffffff7;border-top:1px solid var(--line)}.actionbar.is-row{grid-template-columns:minmax(0,2fr) minmax(0,3fr)}.login{min-height:100vh;background:var(--paper)}.login-main{padding:2.25rem 1.25rem 2rem;display:flex;flex-direction:column}.login-title{font-size:2.125rem;font-weight:900;letter-spacing:.04em;line-height:1.2}.login-lead{margin-top:.5rem;color:var(--muted);font-size:1rem}.field-label{display:flex;align-items:baseline;gap:.5rem;font-size:1.0625rem;font-weight:900;margin:1.75rem 0 .625rem}.field-label.is-first{margin-top:0}.field-label small{font-size:.9375rem;font-weight:700;color:var(--muted)}.field-label small.num{font-size:1.125rem;color:var(--ink)}.field-hint{margin-top:.5rem;color:var(--muted);font-size:.875rem}.phone-field{display:flex;align-items:center;gap:.5rem;min-height:4rem;padding:0 .5rem 0 .75rem;border-radius:1rem;background:var(--white);box-shadow:inset 0 0 0 2px var(--line)}.phone-field:focus-within{box-shadow:inset 0 0 0 2px var(--teal)}.area-btn{display:flex;align-items:center;gap:.125rem;height:2.5rem;padding-right:.75rem;border-right:1.5px solid var(--line);font-size:1.375rem;color:var(--ink)}.area-btn svg{font-size:1.25rem;color:var(--muted)}.phone-input{flex:1;min-width:0;height:3.5rem;border:0;outline:0;background:transparent;font-family:var(--num);font-size:1.625rem;letter-spacing:.1em;color:var(--ink)}.phone-input::placeholder{font-family:var(--font);font-size:1rem;font-weight:400;letter-spacing:0;color:var(--faint)}.eye-btn{width:2.75rem;height:2.75rem;display:grid;place-items:center;border-radius:50%;font-size:1.375rem;color:var(--muted)}.login-submit{margin-top:2rem}.login-main .btn-text{align-self:center;margin-top:.75rem}.home{min-height:100vh;padding-bottom:2rem}.hello{padding:1.5rem 1rem 1.25rem}.hello-title{font-size:2.5rem;font-weight:900;line-height:1.15;letter-spacing:.06em}.hello-lead{margin-top:.25rem;color:var(--muted);font-size:1.0625rem}.hello-guest{margin-top:1.25rem;display:grid;gap:.625rem}.hello-guest p{color:var(--muted);font-size:.9375rem;text-align:center}.resident{margin-top:1.25rem;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.125rem 1rem;padding:1.125rem 1.125rem 1rem;border-radius:1.25rem;background:var(--white);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}.resident-id{display:flex;flex-direction:column;min-width:0}.resident-name{font-size:1.3125rem;font-weight:900;letter-spacing:.04em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.resident-code{font-size:1.0625rem;letter-spacing:.12em;color:var(--muted)}.resident-points{text-align:right;line-height:1}.resident-points .num{display:block;font-size:2.75rem;color:var(--teal);letter-spacing:.02em}.resident-points small{font-size:.875rem;color:var(--muted)}.resident-next{grid-column:1 / -1;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.875rem;margin-top:1rem;padding-top:.875rem;border-top:1px solid var(--line);text-align:left;color:var(--ink)}.resident-next-date{width:3.25rem;height:3.5rem;border-radius:.75rem;background:var(--tone);color:var(--on-tone);display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}.resident-next-date .num{font-size:1.75rem}.resident-next-date small{font-size:.75rem;font-weight:800;margin-top:.125rem}.resident-next-text{display:flex;flex-direction:column;min-width:0;line-height:1.4}.resident-next-text small{font-size:.8125rem;color:var(--muted)}.resident-next-text b{font-size:1.0625rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.resident-next-text span{font-size:.875rem;color:var(--muted)}.resident-next-go{font-size:1.5rem;color:var(--faint)}.resident-empty{grid-column:1 / -1;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--line);color:var(--muted);font-size:.9375rem}.resident.is-compact{margin-top:0}.blocks{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;padding:0 1rem}.block{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;gap:1.5rem;min-height:11rem;padding:1.125rem 1rem 1rem;border-radius:1.25rem;background:var(--tone);color:var(--on-tone);text-align:left;transition:filter .15s}.block:active{filter:brightness(.94)}.block:after{content:"";position:absolute;right:.75rem;bottom:.75rem;width:3rem;height:3rem;opacity:.2;background:conic-gradient(from 90deg,currentColor 25%,transparent 0) 0 0 / 1rem 1rem}.block-icon{font-size:2.75rem}.block-label{position:relative;z-index:1;display:flex;flex-direction:column;line-height:1.2}.block-label b{font-size:1.4375rem;font-weight:900;letter-spacing:.04em}.block-label small{margin-top:.25rem;font-size:.875rem;font-weight:700;opacity:.85}.block-lock{position:absolute;top:.875rem;right:.875rem;display:inline-flex;align-items:center;gap:.25rem;height:1.75rem;padding:0 .625rem;border-radius:999px;background:#ffffffeb;color:var(--ink);font-size:.8125rem;font-weight:800}.home-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.75rem;padding:1rem 1rem 0}.home-actions .btn-quiet{width:auto}.carousel{display:flex;flex-direction:column;height:100vh;height:100dvh;background:var(--paper)}.carousel-stage{position:relative;flex:1;min-height:0}.carousel-stage>.spinner{height:100%;align-items:center;padding:0}.carousel-stage>.empty{height:100%;justify-content:center}.carousel .slide{padding:1rem 1rem .75rem}.carousel .slide-img{filter:drop-shadow(0 .375rem .875rem rgba(20,52,58,.2))}.carousel .slide-placeholder{border-radius:1rem}.carousel-caption{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1rem;padding:.875rem 1rem calc(1rem + env(safe-area-inset-bottom));background:var(--white);border-top:1px solid var(--line)}.carousel-caption .btn{width:auto;padding:0 1.375rem}.carousel-count{font-size:1.125rem;color:var(--tone-deep)}.carousel-name{font-size:1.0625rem;font-weight:700;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.swiper{position:relative;width:100%;height:100%;overflow:hidden;touch-action:pan-y;cursor:pointer}.swiper-track{display:flex;width:100%;height:100%;will-change:transform}.swiper-track.is-animating{transition:transform .35s ease}.slide{flex:0 0 100%;width:100%;height:100%}.slide-img{display:block;width:100%;height:100%;-webkit-user-select:none;user-select:none}.slide-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:2rem;text-align:center;font-size:1.375rem;font-weight:900;background:var(--tone);color:var(--on-tone)}.slide-placeholder svg{font-size:3rem;opacity:.6}.swiper-dots{position:absolute;left:0;right:0;bottom:1.5rem;display:flex;justify-content:center;gap:.5rem;pointer-events:none}.dot{width:.5rem;height:.5rem;border-radius:50%;background:#14343a38}.dot.is-active{background:var(--ink)}.idle-page{position:relative;width:100%;height:100vh;height:100dvh;background:var(--paper);overflow:hidden}.hit-layer{position:absolute;inset:0;z-index:20;cursor:pointer}.idle-hint{position:absolute;left:50%;bottom:2.5rem;z-index:21;transform:translate(-50%);padding:.75rem 1.5rem;border-radius:999px;background:var(--teal);color:#fff;box-shadow:0 .5rem 1.5rem #006a7347;font-size:1.125rem;font-weight:700;letter-spacing:.06em;pointer-events:none;white-space:nowrap}.act-head{display:grid;grid-template-columns:7rem minmax(0,1fr);gap:1rem;align-items:start}.act-poster{width:7rem;aspect-ratio:9 / 13;object-fit:cover;border-radius:.875rem;background:var(--tone-tint)}.act-poster.is-blank{display:grid;place-items:center;font-size:2.5rem;color:var(--tone-deep)}.act-head-text{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;min-width:0}.act-head .title-lg{overflow-wrap:anywhere}.status{display:inline-flex;align-items:center;height:1.75rem;padding:0 .625rem;border-radius:.5rem;font-size:.875rem;font-weight:800}.status.is-open{background:var(--green-tint);color:var(--green-deep)}.status.is-full{background:var(--red-tint);color:var(--red)}.status.is-soon{background:var(--yellow-tint);color:var(--yellow-deep)}.status.is-closed{background:#e6ecea;color:var(--muted)}.quota{width:100%;margin-top:.25rem}.quota-nums{display:flex;align-items:baseline;gap:.375rem}.quota-nums .num{font-size:2.25rem;line-height:1}.quota-nums small{color:var(--muted);font-size:.9375rem}.quota-bar{height:.5rem;margin-top:.5rem;border-radius:999px;background:#e3e9e8;overflow:hidden}.quota-bar span{display:block;height:100%;border-radius:999px;background:var(--tone-deep)}.quota-free{color:var(--muted);font-weight:700}.summary{display:grid;margin-top:1.25rem;border-top:1px solid var(--line)}.summary>div{display:grid;grid-template-columns:4rem minmax(0,1fr);gap:.75rem;padding:.875rem 0;border-bottom:1px solid var(--line)}.summary dt{color:var(--muted);font-size:.9375rem}.summary dd{font-weight:700;overflow-wrap:anywhere}.summary dd.is-strong{font-size:1.125rem;font-weight:900}.text-field{display:flex;align-items:center;gap:.625rem;min-height:3.5rem;padding:0 1rem;border-radius:.875rem;background:var(--white);box-shadow:inset 0 0 0 2px var(--line);color:var(--muted)}.text-field:focus-within{box-shadow:inset 0 0 0 2px var(--tone-deep)}.text-field svg{font-size:1.25rem;flex-shrink:0}.text-field input{flex:1;min-width:0;height:3rem;border:0;outline:0;background:transparent;font-size:1.0625rem;color:var(--ink)}.text-field input::placeholder{color:var(--faint)}.ticket{position:relative;margin:1rem;border-radius:1.25rem;background:var(--white);overflow:hidden;box-shadow:0 0 0 1px var(--line),0 .75rem 2rem #14343a1a}.ticket-top{display:flex;align-items:center;gap:.875rem;padding:1rem 1.25rem;background:var(--tone);color:var(--on-tone)}.ticket-top>svg{font-size:2rem;flex-shrink:0}.ticket-kicker{font-size:.875rem;font-weight:800;opacity:.85}.ticket-title{font-size:1.1875rem;font-weight:900;line-height:1.35;text-wrap:balance}.ticket-qr{display:grid;place-items:center;padding:1.5rem 0 .75rem}.qr-code{display:block;width:11rem;height:11rem}.ticket-code{display:flex;flex-direction:column;align-items:center;gap:.125rem}.ticket-code small{font-size:.875rem;color:var(--muted)}.ticket-code .num{font-size:2.25rem;letter-spacing:.14em;line-height:1.1}.ticket.is-void .ticket-qr,.ticket.is-void .ticket-code .num{opacity:.25;filter:grayscale(1)}.ticket .notice.is-warn{margin:1rem 1.25rem 0}.ticket-perf{position:relative;height:1.75rem;margin-top:1rem;background:radial-gradient(circle at 0 50%,var(--paper) .75rem,transparent .8rem),radial-gradient(circle at 100% 50%,var(--paper) .75rem,transparent .8rem)}.ticket-perf:before{content:"";position:absolute;left:1.25rem;right:1.25rem;top:50%;border-top:2px dashed var(--line)}.ticket-facts{display:grid;gap:.875rem;padding:.5rem 1.25rem 1.5rem}.ticket-hint{margin:0 1.5rem;color:var(--muted);font-size:.9375rem;text-align:center}.choices{display:grid;gap:.625rem}.choice{display:grid;grid-template-columns:1.375rem minmax(0,1fr);gap:.75rem;align-items:start;padding:.875rem 1rem;border-radius:.875rem;background:var(--white);box-shadow:inset 0 0 0 1.5px var(--line);text-align:left}.choice.is-active{background:var(--tone-tint);box-shadow:inset 0 0 0 2px var(--tone)}.radio{width:1.375rem;height:1.375rem;margin-top:.125rem;border-radius:50%;background:var(--white);box-shadow:inset 0 0 0 2px #9db0b3}.choice.is-active .radio{box-shadow:inset 0 0 0 .4375rem var(--tone)}.choice-text{display:flex;flex-direction:column;gap:.25rem;min-width:0}.choice-text b{font-size:1.0625rem;font-weight:800}.choice-text small{display:flex;gap:.25rem;align-items:flex-start;color:var(--muted);font-size:.875rem}.choice-text small svg{flex-shrink:0;margin-top:.1875rem}.pills{display:flex;flex-wrap:wrap;gap:.5rem}.pill{min-height:2.75rem;padding:0 1.125rem;border-radius:999px;background:var(--white);box-shadow:inset 0 0 0 1.5px var(--line);font-weight:700}.pill.is-active{background:var(--tone);color:var(--on-tone);box-shadow:none}.cal{padding:.75rem .625rem .875rem;border-radius:1rem;background:var(--white);box-shadow:inset 0 0 0 1.5px var(--line)}.cal.is-loading{opacity:.55}.cal-head{display:flex;align-items:center;justify-content:space-between;padding:0 .125rem .75rem}.cal-month{font-size:1rem;font-weight:800}.cal-month .num{font-size:1.5rem}.cal-nav{width:2.75rem;height:2.75rem;border-radius:50%;display:grid;place-items:center;font-size:1.5rem;background:var(--paper);color:var(--ink)}.cal-nav:disabled{color:#c3cfd0;background:transparent}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.25rem}.cal-wd{text-align:center;font-size:.8125rem;font-weight:700;color:var(--muted);padding-bottom:.25rem}.cal-day{aspect-ratio:1 / 1.05;border-radius:.625rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1875rem;color:#b1c0c2}.cal-day .num{font-size:1.25rem;line-height:1}.cal-day.has{background:var(--tone-tint);color:var(--ink)}.cal-dot{display:inline-block;width:.375rem;height:.375rem;border-radius:50%;background:var(--tone)}.cal-day.full .cal-dot,.cal-dot.is-full{background:#b1c0c2}.cal-day.today{box-shadow:inset 0 0 0 1.5px var(--ink)}.cal-day.selected{background:var(--tone);color:var(--on-tone)}.cal-day.selected .cal-dot{background:var(--on-tone)}.cal-legend{display:flex;align-items:center;gap:.375rem;margin-top:.75rem;padding:0 .25rem;font-size:.8125rem;color:var(--muted)}.cal-legend .cal-dot+*{margin-right:.5rem}.slot-group+.slot-group{margin-top:1rem}.slot-period{font-size:.9375rem;font-weight:800;color:var(--muted);margin-bottom:.5rem}.slots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.slot{min-height:4rem;border-radius:.875rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.125rem;background:var(--white);box-shadow:inset 0 0 0 1.5px var(--line)}.slot-time{font-size:1.375rem;line-height:1.1}.slot-left{font-size:.8125rem;font-weight:700;color:var(--green-deep)}.slot.is-active{background:var(--tone);color:var(--on-tone);box-shadow:none}.slot.is-active .slot-left{color:var(--on-tone)}.slot.is-full{opacity:.45}.slot.is-full .slot-left{color:var(--muted)}.mine-top{padding:1rem 1rem .25rem;display:grid;gap:1rem}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:.25rem;padding:.25rem;border-radius:1rem;background:#e2e9e8}.segmented button{min-height:2.875rem;border-radius:.8125rem;font-size:1rem;font-weight:800;color:var(--muted);display:inline-flex;align-items:center;justify-content:center;gap:.375rem}.segmented button.is-active{background:var(--white);color:var(--ink);box-shadow:0 1px 2px #14343a24}.badge{min-width:1.375rem;height:1.375rem;padding:0 .375rem;border-radius:999px;background:var(--red);color:#fff;font-size:.9375rem;line-height:1.375rem;text-align:center}.bookings{padding:.75rem 1rem 0;display:grid;gap:.75rem}.booking{display:grid;grid-template-columns:4.25rem minmax(0,1fr);border-radius:1rem;background:var(--white);overflow:hidden;box-shadow:0 0 0 1px var(--line)}.booking-stub{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.75rem .25rem;background:var(--tone);color:var(--on-tone);line-height:1;border-right:2px dashed rgba(255,255,255,.55)}.booking-day{font-size:2.25rem}.booking-month{margin-top:.25rem;font-size:.875rem;font-weight:800}.booking-body{padding:.875rem 1rem 1rem;min-width:0}.booking-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.booking-code{font-size:1.0625rem;letter-spacing:.1em;color:var(--muted)}.booking-title{margin-top:.5rem;font-size:1.125rem;font-weight:900;line-height:1.35;overflow-wrap:anywhere;text-wrap:balance}.booking-meta{margin-top:.375rem;display:grid;gap:.25rem;color:var(--ink-2);font-size:.9375rem}.booking-meta li{display:flex;gap:.375rem;align-items:flex-start}.booking-meta svg{flex-shrink:0;margin-top:.1875rem;color:var(--muted)}.booking-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.875rem}.booking.is-done .booking-stub{background:#c7d2d0;color:var(--ink-2)}.booking.is-done .booking-title{color:var(--muted)}.mask{position:fixed;inset:0;z-index:9998;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:#14343a80}.dialog{position:relative;width:100%;max-width:21rem;padding:1.75rem 1.25rem 1.25rem;border-radius:1.25rem;background:var(--white);text-align:center}.dialog-close{position:absolute;top:.5rem;right:.5rem;width:2.75rem;height:2.75rem;border-radius:50%;display:grid;place-items:center;font-size:1.375rem;color:var(--muted)}.dialog-icon{width:3.5rem;height:3.5rem;margin:0 auto 1rem;border-radius:1rem;display:grid;place-items:center;font-size:1.75rem;background:var(--teal-tint);color:var(--teal-deep)}.dialog-title{font-size:1.1875rem;font-weight:900;line-height:1.45}.dialog-text{margin-top:.5rem;color:var(--muted);font-size:1rem}.dialog-actions{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-top:1.5rem}.dialog-actions.is-single{grid-template-columns:1fr}.dialog .btn-primary{--tone: var(--teal);--on-tone: #fff}.mask.is-sheet{align-items:flex-end;padding:0}.sheet-panel{width:100%;max-width:var(--app-max);padding-bottom:env(safe-area-inset-bottom);border-radius:1.25rem 1.25rem 0 0;background:var(--white);animation:sheetUp .2s ease-out}@keyframes sheetUp{0%{transform:translateY(100%)}}.sheet-head{display:grid;grid-template-columns:5rem 1fr 5rem;align-items:center;padding:.5rem;border-bottom:1px solid var(--line)}.sheet-title{text-align:center;font-size:1.0625rem;font-weight:900}.sheet-cancel,.sheet-confirm{min-height:2.75rem;font-size:1rem;font-weight:700}.sheet-cancel{color:var(--muted)}.sheet-confirm{color:var(--teal-deep)}.sheet-options{padding:.5rem 1rem 1rem;display:grid;gap:.5rem}.sheet-option{display:flex;align-items:center;gap:.875rem;min-height:3.5rem;padding:0 1rem;border-radius:.875rem;box-shadow:inset 0 0 0 1.5px var(--line);text-align:left;font-size:1.0625rem;font-weight:700}.sheet-option .num{font-size:1.375rem;min-width:3.5rem}.sheet-option.is-active{background:var(--teal-tint);box-shadow:inset 0 0 0 2px var(--teal)}.sheet-check{margin-left:auto;font-size:1.375rem;color:var(--teal-deep)}
