:root{--mist:#eef0f3;--surface:#fff;--ink:#1f2a44;--muted:#6b7287;--line:#dde1e8;--night:#10131c;--him:#3b5ba5;--her:#c8577a;--both:#4e8a6a;--danger:#b4423a;--cal-teson-work:#1f3f9e;--cal-teson-private:#2f9fdc;--cal-eriko-work:#7a3fc4;--cal-eriko-private:#b394e6;--cal-birthday:#d9a400;--cal-daiai:#e2508c;--shift-nikkin:#ec7a14;--shift-nichiri:#d9a000;--shift-yakin:#2f62c0;--shift-ake:#9050c8;--shift-yasumi:#dc2430;--shift-yukyu:#4a9a28;--mincho:"Shippori Mincho B1", "Hiragino Mincho ProN", serif;--gothic:"Zen Kaku Gothic New", "Hiragino Sans", system-ui, sans-serif;--tabbar-pad:max(calc(env(safe-area-inset-bottom) - 18px), 4px);--tabbar:calc(50px + var(--tabbar-pad));--radius:14px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--mist:#141824;--surface:#1c2131;--ink:#e6e9f0;--muted:#9aa1b4;--line:#2c3345;--him:#7f9be0;--her:#ec8fae;--both:#7fbf9a;--danger:#f08a80;--cal-teson-work:#7f9cf0;--cal-teson-private:#6cc6f2;--cal-eriko-work:#b48cf0;--cal-eriko-private:#d6c4f7;--cal-birthday:#f2c94c;--cal-daiai:#f27fb0;--shift-nikkin:#ffa04d;--shift-nichiri:#f5c842;--shift-yakin:#7fa6f0;--shift-ake:#c79af0;--shift-yasumi:#ff7078;--shift-yukyu:#8fd06a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--mist:#141824;--surface:#1c2131;--ink:#e6e9f0;--muted:#9aa1b4;--line:#2c3345;--him:#7f9be0;--her:#ec8fae;--both:#7fbf9a;--danger:#f08a80;--cal-teson-work:#7f9cf0;--cal-teson-private:#6cc6f2;--cal-eriko-work:#b48cf0;--cal-eriko-private:#d6c4f7;--cal-birthday:#f2c94c;--cal-daiai:#f27fb0;--shift-nikkin:#ffa04d;--shift-nichiri:#f5c842;--shift-yakin:#7fa6f0;--shift-ake:#c79af0;--shift-yasumi:#ff7078;--shift-yukyu:#8fd06a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{height:100%}body,#root{min-height:100%}html[data-tab=home],html[data-tab=home] body{background:var(--night)}html[data-tab=schedule],html[data-tab=prayers]{background:var(--mist)}body{background:var(--mist);color:var(--ink);font-family:var(--gothic);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0;font-size:16px;line-height:1.6}button,input,textarea{font:inherit;color:inherit}button,label,a{cursor:pointer;touch-action:manipulation}img{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}html{overscroll-behavior-y:none;-webkit-text-size-adjust:100%}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}:focus-visible{outline:2px solid var(--him);outline-offset:2px}.boot{background:var(--night);height:100%}.btn{background:var(--ink);min-height:48px;color:var(--surface);letter-spacing:.04em;border:0;border-radius:999px;justify-content:center;align-items:center;padding:0 22px;font-weight:700;display:inline-flex}.btn:disabled{opacity:.5}.btn.ghost{color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--line);background:0 0}.link{min-height:44px;color:var(--muted);background:0 0;border:0;padding:0 6px}.link.danger{color:var(--danger)}.muted{color:var(--muted)}.small{font-size:13px}.pad{padding:0 20px}.error{color:var(--danger);padding:0 20px;font-size:14px}.shell{min-height:100%}.screen{min-height:100%;padding-bottom:var(--tabbar)}.tabbar{z-index:20;height:var(--tabbar);padding:0 env(safe-area-inset-right) var(--tabbar-pad) env(safe-area-inset-left);background:color-mix(in srgb, var(--surface) 88%, transparent);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--line);grid-template-columns:repeat(3,1fr);display:grid;position:fixed;inset:auto 0 0}.tab-home .tabbar{color:#fff;background:#10131cb8;border-color:#ffffff14}.tabbar button{letter-spacing:.08em;opacity:.5;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:11px;display:flex}.tabbar button.on{opacity:1;font-weight:700}.tabbar button:active{transform:scale(.94)}.tab-icon{width:22px;height:22px;-webkit-mask:var(--m) center / contain no-repeat;-webkit-mask:var(--m) center / contain no-repeat;mask:var(--m) center / contain no-repeat;background:currentColor}.icon-home{--m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Crect x='3' y='4' width='18' height='16' rx='3'/%3E%3Cpath d='M3 16l5-5 4 4 3-3 6 6'/%3E%3Ccircle cx='16' cy='9' r='1.6'/%3E%3C/svg%3E")}.icon-schedule{--m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Crect x='3' y='5' width='18' height='16' rx='3'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E")}.icon-prayers{--m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Cpath d='M12 3c2.5 3 3.5 5 3.5 7a3.5 3.5 0 0 1-7 0c0-2 1-4 3.5-7z'/%3E%3Cpath d='M9 15h6v6H9z'/%3E%3C/svg%3E")}.demo-flag-unused{top:calc(env(safe-area-inset-top) + 6px);z-index:30;color:#1f2a44;background:#ffffffd9;border-radius:999px;padding:2px 10px;font-size:11px;position:fixed;left:50%;transform:translate(-50%)}.login{min-height:100dvh;padding:calc(env(safe-area-inset-top) + 40px) 28px calc(env(safe-area-inset-bottom) + 40px);background:var(--night);color:#fff;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex}.login h1{font-family:var(--mincho);letter-spacing:.18em;margin:0 0 0 .18em;font-size:34px;font-weight:700}.login p{color:#ffffffb3;max-width:22em;margin:0 0 12px}.login .btn{color:var(--night);background:#fff}.login .error{color:#f3a39b}.login-mark{width:84px;height:52px;position:relative}.login-mark .dot{border-radius:50%;width:52px;height:52px;position:absolute;top:0}.login-mark .him{background:#6e8cd2;left:0}.login-mark .her{background:#e280a0d9;right:0}.home{background:var(--night);color:#fff;touch-action:pan-y;height:100dvh;position:fixed;inset:0;overflow:hidden}.slides{touch-action:none}.home.held .home-foot,.home.held .date-vertical,.home.held .photo-btn{opacity:0}.home-foot,.date-vertical,.photo-btn{transition:opacity .3s}.home.paused .slide.in img{animation-play-state:paused}.slides,.slide{position:absolute;inset:0}.slide img{object-fit:cover;-webkit-user-select:none;user-select:none;width:100%;height:100%}.slide.in{z-index:2;animation:1.2s both fade-in}.slide.in img{animation:7s ease-out both drift}.slide.out{z-index:1}.slide.placeholder{background:radial-gradient(60% 50% at 30% 35%, #6e8cd28c, transparent 70%), radial-gradient(55% 45% at 72% 60%, #e280a073, transparent 70%), var(--night)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes drift{0%{transform:scale(1.12)translate(1.5%,1%)}to{transform:scale(1.02)translate(0)}}.progress{z-index:5;left:14px;right:14px;top:calc(env(safe-area-inset-top) + 10px);pointer-events:none;gap:4px;display:flex;position:absolute}.progress span{background:#ffffff4d;border-radius:2px;flex:1;height:2.5px;overflow:hidden}.progress span.done{background:#ffffffe6}.progress i{transform-origin:0;background:#fff;height:100%;animation:linear both fill;display:block}@keyframes fill{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.date-vertical{z-index:5;left:calc(env(safe-area-inset-left) + 18px);top:calc(env(safe-area-inset-top) + 30px);writing-mode:vertical-rl;font-family:var(--mincho);letter-spacing:.14em;text-shadow:0 1px 18px #00000073;pointer-events:none;font-size:30px;font-weight:700;line-height:1;position:absolute}.date-vertical small{letter-spacing:.1em;opacity:.85;margin-top:.6em;font-size:15px}.photo-btn{z-index:6;right:calc(env(safe-area-inset-right) + 14px);top:calc(env(safe-area-inset-top) + 22px);-webkit-backdrop-filter:blur(8px);color:#fff;letter-spacing:.08em;background:#10131c73;border:0;border-radius:999px;min-height:40px;padding:0 18px;font-size:13px;position:absolute}.home-foot{z-index:5;left:0;right:0;bottom:var(--tabbar);padding:80px calc(env(safe-area-inset-right) + 18px) 16px calc(env(safe-area-inset-left) + 18px);pointer-events:none;background:linear-gradient(#0000,#0a0c128c 45%,#0a0c12d9);position:absolute}.counts{letter-spacing:.06em;flex-wrap:wrap;align-items:baseline;gap:4px;margin:0 0 10px;font-size:14px;display:flex}.counts b{font-family:var(--mincho);margin:0 3px;font-size:26px;font-weight:700;line-height:1}.counts .sep{background:#fff6;align-self:center;width:1px;height:14px;margin:0 10px}.hint{color:#ffffffbf;margin:0 0 10px;font-size:13px}.events{gap:6px;margin:0;padding:0;list-style:none;display:grid}.event{background:var(--surface);border-radius:10px;grid-template-columns:3.4em minmax(0,1fr) auto;align-items:baseline;gap:8px;padding:8px 12px;font-size:15px;display:grid}.event-who{color:var(--who);letter-spacing:.04em;font-size:12px;font-weight:700}.event-time{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px}.event.none,.event.muted{color:var(--muted);background:0 0;padding-left:0;display:block}.home .event{-webkit-backdrop-filter:blur(6px);background:#ffffff1f}.home .event-who{color:color-mix(in srgb, var(--who) 55%, #fff)}.home .event-time,.home .event.muted{color:#ffffffb3}.page{padding:env(safe-area-inset-top) env(safe-area-inset-right) 96px env(safe-area-inset-left);max-width:640px;margin:0 auto}.page:before{content:"";z-index:12;height:env(safe-area-inset-top);background:var(--night);position:fixed;inset:0 0 auto}.page-head{z-index:10;top:env(safe-area-inset-top);background:var(--mist);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:16px 20px 12px;display:flex;position:sticky}.page-head h1{font-family:var(--mincho);letter-spacing:.2em;margin:0;font-size:30px;font-weight:700}.legend{color:var(--muted);gap:12px;margin:0;padding:0;font-size:12px;list-style:none;display:flex}.legend li:before{content:"";background:var(--who);border-radius:50%;width:8px;height:8px;margin-right:5px;display:inline-block}.days{margin:0;padding:0 20px;list-style:none}.day{border-top:1px solid var(--line);grid-template-columns:52px 1fr;gap:12px;padding:12px 0;display:grid}.day-date{flex-direction:column;align-items:flex-start;line-height:1.1;display:flex}.day-num{font-family:var(--mincho);font-size:26px;font-weight:700}.day-wd{color:var(--muted);margin-top:3px;font-size:12px}.day-month{color:var(--muted);font-size:11px}.day.sun .day-wd{color:var(--her)}.day.sat .day-wd,.day.is-today .day-num{color:var(--him)}.day.is-today .day-wd{color:var(--him);font-weight:700}.note{color:var(--muted);padding:16px 20px 0;font-size:13px}.segmented{background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);border-radius:999px;padding:3px;display:inline-flex}.segmented button{min-height:38px;color:var(--muted);background:0 0;border:0;border-radius:999px;align-items:center;gap:6px;padding:0 14px;font-size:13px;display:inline-flex}.segmented button[aria-selected=true]{background:var(--ink);color:var(--surface);font-weight:700}.badge{background:var(--both);color:#fff;border-radius:9px;min-width:18px;padding:0 5px;font-size:11px}.family{margin:8px 20px 18px}.family h2{font-family:var(--mincho);letter-spacing:.12em;align-items:center;gap:10px;margin:0 0 8px;font-size:19px;font-weight:700;display:flex}.family h2:after{content:"";background:var(--line);flex:1;height:1px}.family ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.prayer:active{transform:scale(.985)}.prayer{text-align:left;border-radius:var(--radius);background:var(--surface);border:0;gap:2px;width:100%;padding:12px 14px;display:grid}.prayer-person{color:var(--him);font-size:13px;font-weight:700}.prayer-text{white-space:pre-wrap;font-size:15px;line-height:1.75}.empty{text-align:center;color:var(--muted);padding:40px 20px}.empty .btn{margin-top:8px}.fab{z-index:15;right:18px;bottom:calc(var(--tabbar) + 16px);background:var(--ink);min-height:48px;color:var(--surface);letter-spacing:.04em;right:calc(env(safe-area-inset-right) + 18px);border:0;border-radius:999px;padding:0 20px;font-weight:700;position:fixed;box-shadow:0 8px 24px #10131c40}.btn:active,.fab:active{transform:scale(.97)}.sheet-backdrop{z-index:40;background:#0a0c1273;justify-content:center;align-items:flex-end;animation:.2s both fade-in;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);width:100%;max-width:640px;max-height:88dvh;color:var(--ink);border-radius:20px 20px 0 0;flex-direction:column;transition:transform .2s,margin-bottom .15s;animation:.25s ease-out both rise;display:flex}.sheet.dragging{transition:none}.sheet-top{touch-action:none;padding:8px 20px 4px}.grabber{background:var(--line);border-radius:3px;width:40px;height:5px;margin:0 auto 6px;display:block}.sheet-body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:6px 20px calc(env(safe-area-inset-bottom) + 20px);flex-direction:column;gap:14px;display:flex;overflow-y:auto}.add-photo.is-busy{opacity:.7}@keyframes rise{0%{opacity:.6;transform:translateY(24px)}to{opacity:1;transform:none}}.sheet header{justify-content:space-between;align-items:center;display:flex}.sheet h2{font-family:var(--mincho);letter-spacing:.1em;margin:0;font-size:20px;font-weight:700}.sheet h2 small{font-family:var(--gothic);color:var(--muted);letter-spacing:0;margin-left:6px;font-size:13px;font-weight:400}.sheet .error{padding:0}.sheet-actions{justify-content:space-between;align-items:center;display:flex}.field{color:var(--muted);gap:6px;font-size:13px;display:grid}.field input,.field textarea{border:1px solid var(--line);background:var(--mist);width:100%;color:var(--ink);resize:vertical;border-radius:12px;padding:11px 12px;font-size:16px;line-height:1.6}.add-photo{cursor:pointer}.grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;display:grid}.grid figure{aspect-ratio:1;margin:0;position:relative}.grid img{object-fit:cover;border-radius:6px;width:100%;height:100%}.grid button.armed{background:var(--danger);border-radius:16px;width:auto;padding:0 10px;font-size:12px}.link.danger.armed{font-weight:700}.grid button{color:#fff;background:#10131c99;border:0;border-radius:50%;width:32px;height:32px;font-size:16px;line-height:1;position:absolute;top:2px;right:2px}@media (prefers-reduced-motion:reduce){.slide.in,.slide.in img,.sheet,.sheet-backdrop{animation:none}.slide.in{opacity:1}}.schedule .page-head{grid-template-columns:minmax(0,1fr) auto;align-items:start;display:grid}.schedule .page-head .segmented{grid-area:1/2}.cal-filter{grid-area:1/1;gap:0;display:grid}.cal-row{white-space:nowrap;align-items:center;gap:2px;display:flex}.cal-row .cal-owner{flex:none;width:3.6em;font-size:12px;font-weight:700}.cal-check{min-height:28px;color:var(--muted);white-space:nowrap;background:0 0;border:0;flex:none;align-items:center;gap:5px;padding:0 8px 0 2px;font-size:13px;display:inline-flex}.cal-check.on{color:var(--ink)}.cal-check .check{border:2px solid var(--who);border-radius:5px;flex:none;width:17px;height:17px;position:relative}.cal-check.on .check{background:var(--who)}.cal-check.on .check:after{content:"";border:solid var(--surface);border-width:0 2px 2px 0;width:5px;height:10px;position:absolute;top:0;left:4px;transform:rotate(45deg)}.month{padding:0 12px}.month-nav{align-items:center;gap:4px;padding:4px 4px 10px;display:flex}.month-nav h2{line-height:1;font-family:var(--mincho);letter-spacing:.06em;font-variant-numeric:tabular-nums;align-items:baseline;gap:6px;margin:0 6px;font-size:26px;font-weight:700;display:flex}.month-nav h2 small{font-family:var(--gothic);color:var(--muted);letter-spacing:0;font-size:13px;font-weight:500}.icon-btn{background:var(--surface);width:40px;height:40px;color:var(--ink);border:0;border-radius:50%;flex:none;place-items:center;padding:0;display:grid}.icon-btn svg{display:block}.today-btn{border:1.5px solid var(--line);background:var(--surface);border-radius:999px;height:40px;margin-left:auto;padding:0 16px;font-size:13px;font-weight:700}.month-grid{background:var(--surface);border-radius:var(--radius);touch-action:pan-y;-webkit-user-select:none;user-select:none;grid-template-columns:repeat(7,minmax(0,1fr));display:grid;overflow:hidden}.wd{text-align:center;color:var(--muted);border-bottom:1px solid var(--line);padding:6px 0 4px;font-size:11px}.wd.sat{color:var(--him)}.wd.sun{color:var(--danger)}.cell{border:0;border-bottom:1px solid var(--line);border-right:1px solid var(--line);text-align:left;min-width:0;min-height:112px;font:inherit;background:0 0;flex-direction:column;align-items:stretch;gap:2px;padding:3px 2px 4px;display:flex;position:relative}.cell:nth-child(7n){border-right:0}.cell .num{font-variant-numeric:tabular-nums;border-radius:11px;align-self:flex-start;place-items:center;min-width:22px;height:22px;padding:0 4px;font-size:13px;font-weight:700;line-height:1;display:inline-grid}.cell.sat .num{color:var(--him)}.cell.sun .num{color:var(--danger)}.cell.out{opacity:.38}.cell.today .num{background:var(--ink);color:var(--surface)}.cell.selected{background:color-mix(in srgb, var(--ink) 7%, transparent)}.cell.selected:after{content:"";box-shadow:inset 0 0 0 2px var(--ink);pointer-events:none;position:absolute;inset:0}.bars{gap:2px;min-width:0;display:grid}.bar{white-space:nowrap;text-overflow:clip;background:color-mix(in srgb, var(--who) 24%, var(--surface));min-width:0;color:var(--ink);border-radius:3px;padding:0 3px;font-size:9.5px;line-height:15px;display:block;overflow:hidden}.more{color:var(--muted);padding-left:3px;font-size:9.5px;line-height:13px}.cell .shift{text-align:center;letter-spacing:.02em;margin-top:auto;font-size:15px;font-weight:700;line-height:1.1}.day-detail{background:var(--surface);border-radius:var(--radius);margin:14px 0 0;overflow:hidden}.day-detail header{background:color-mix(in srgb, var(--ink) 8%, var(--surface));align-items:center;gap:10px;padding:10px 14px;display:flex}.day-detail h3{font-variant-numeric:tabular-nums;margin:0;font-size:18px;font-weight:500}.day-detail h3 small{font-size:14px}.shift-badge{color:var(--shift);background:var(--surface);border-radius:999px;margin-left:auto;padding:2px 12px;font-size:15px;font-weight:700}.day-detail .events{padding:10px 12px 12px}.day-detail .event{background:var(--mist)}.shift-text{font-weight:700}.who{border:0;justify-content:center;gap:10px;margin:4px 0 0;padding:0;display:flex}.who legend{color:#ffffffb3;width:100%;margin-bottom:8px;font-size:13px}.who button{color:#fff;letter-spacing:.06em;background:0 0;border:1.5px solid #ffffff4d;border-radius:999px;min-width:112px;min-height:48px;font-weight:700}.who button.on{color:var(--night);background:#fff;border-color:#fff}.pass{text-align:left;color:#ffffffb3;gap:6px;width:min(100%,280px);font-size:13px;display:grid}.pass input{color:#fff;background:#ffffff14;border:1.5px solid #ffffff40;border-radius:12px;width:100%;min-height:48px;padding:0 14px;font-size:16px}.thumb{aspect-ratio:1;background:var(--mist);border:0;border-radius:6px;padding:0;position:relative;overflow:hidden}.thumb img{object-fit:cover;width:100%;height:100%;display:block}.empty-note{color:var(--muted);text-align:center;padding:12px 0;font-size:14px}.viewer{z-index:60;color:#fff;touch-action:pan-y;background:#0a0c12;place-items:center;display:grid;position:fixed;inset:0}.viewer img{object-fit:contain;max-width:100%;max-height:100dvh}.viewer-top,.viewer-bottom{padding:0 calc(env(safe-area-inset-right) + 16px) 0 calc(env(safe-area-inset-left) + 16px);background:linear-gradient(var(--fade-dir,to bottom), #0000008c, transparent);justify-content:space-between;align-items:center;display:flex;position:absolute;left:0;right:0}.viewer-top{padding-top:calc(env(safe-area-inset-top) + 8px);padding-bottom:20px;font-size:14px;top:0}.viewer-top .link{color:#fff}.viewer-bottom{--fade-dir:to top;padding-bottom:calc(env(safe-area-inset-bottom) + 14px);gap:10px;padding-top:24px;bottom:0}.muted-light{color:#ffffffbf;font-size:13px}.viewer-delete{color:#fff;background:0 0;border:1.5px solid #ffffff59;border-radius:999px;min-height:40px;padding:0 14px;font-size:13px}.viewer-delete.armed{background:var(--danger);border-color:var(--danger);font-weight:700}.install-hint{z-index:25;left:12px;right:12px;bottom:calc(var(--tabbar) + 10px);background:var(--ink);color:var(--surface);border-radius:14px;align-items:center;gap:8px;padding:8px 8px 8px 14px;display:flex;position:fixed;box-shadow:0 10px 30px #10131c4d}.login~.install-hint{bottom:calc(env(safe-area-inset-bottom) + 14px);color:var(--night);background:#fff}.install-hint p{flex:1;min-width:0;margin:0;font-size:13px;line-height:1.5}.install-how{background:var(--surface);min-height:36px;color:var(--ink);border:0;border-radius:999px;flex:none;padding:0 14px;font-size:13px;font-weight:700}.login~.install-hint .install-how{background:var(--night);color:#fff}.install-close{width:36px;height:36px;color:inherit;opacity:.7;background:0 0;border:0;flex:none;font-size:18px}.install-steps{gap:12px;margin:0;padding-left:1.4em;line-height:1.7;display:grid}.tab-home .install-hint{color:var(--night);background:#ffffffeb}.tab-home .install-hint .install-how{background:var(--night);color:#fff}.ptr{color:var(--muted);justify-content:center;align-items:flex-end;gap:8px;font-size:12px;transition:height .2s;display:flex;overflow:hidden}.ptr-icon{border:2px solid var(--line);border-top-color:var(--ink);border-radius:50%;width:16px;height:16px;margin-bottom:14px;transition:transform .2s}.ptr-label{margin-bottom:14px}.ptr.ready .ptr-icon{transform:rotate(180deg)}.ptr.busy .ptr-icon{animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.standalone body{-webkit-user-select:none;user-select:none}.standalone input,.standalone textarea,.standalone .prayer-text{-webkit-user-select:text;user-select:text}.has-hint .fab{bottom:calc(var(--tabbar) + 86px)}.login-fields{gap:14px;width:min(100%,300px);margin-bottom:6px;display:grid}.login-fields .pass{width:100%}.login-switch{color:#ffffffb3;text-underline-offset:3px;font-size:14px;text-decoration:underline}html:has(.login){background:var(--night)}html:has(.login) body{background:var(--night)}.event-who{white-space:nowrap}.event-title{overflow-wrap:anywhere;min-width:0}.screen{min-height:calc(100lvh + env(safe-area-inset-top))}.tabbar button{justify-content:flex-start;padding-top:7px}.schedule .page-head .segmented button{padding:0 12px}.page .event{grid-template-columns:3.4em minmax(0,1fr);grid-template-areas:"who title""who time";align-items:start;row-gap:1px}.page .event-who{grid-area:who;padding-top:2px}.page .event-title{grid-area:title;line-height:1.5}.page .event-time{grid-area:time;font-size:12px}.page .event.none{display:block}.home .event-title{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.schedule .page-head{padding:2px 20px 6px}.schedule .cal-check{min-height:24px}.schedule .cal-row .cal-owner{line-height:24px}.schedule .page-head .segmented{align-self:start;padding:2px}.schedule .month-nav{padding:2px 4px 6px}.condition{gap:10px;padding:8px 16px 6px;display:grid}.tab-prayers .page{padding-top:calc(env(safe-area-inset-top) + 6px)}.cond-card,.pray-card,.roster-card{background:var(--surface);border-radius:var(--radius);padding:14px 16px}.cond-title{color:var(--muted);margin:0;font-size:13px}.cond-day{align-items:baseline;gap:4px;margin:2px 0 8px;font-size:15px;display:flex}.cond-day b{font-family:var(--mincho);font-size:40px;font-weight:700;line-height:1}.cond-of{color:var(--muted);font-size:14px}.cond-bar{background:var(--line);border-radius:2px;height:4px;overflow:hidden}.cond-bar i{background:var(--ink);border-radius:2px;height:100%;display:block}.pray-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.pray-time{font-family:var(--mincho);font-variant-numeric:tabular-nums;margin:0;font-size:40px;font-weight:700;line-height:1}.tracks{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:12px;display:grid}.tracks button{border:1.5px solid var(--line);color:var(--muted);background:0 0;border-radius:12px;justify-items:center;gap:2px;padding:8px 0 6px;font-size:11px;display:grid}.tracks button span{font-size:20px;line-height:1.2}.tracks button.on{border-color:var(--ink);color:var(--ink);font-weight:700}.roster-card{justify-content:space-between;align-items:center;gap:12px;display:flex}.roster-card .btn{width:100%}.roster-thumb{color:var(--ink);background:0 0;border:0;align-items:center;gap:12px;padding:0;font-size:15px;font-weight:700;display:flex}.roster-thumb img{object-fit:cover;object-position:top;border-radius:8px;width:56px;height:56px}.roster-change{cursor:pointer;font-size:13px}.roster-full{z-index:70;background:var(--night);color:#fff;grid-template-rows:auto minmax(0,1fr) auto;display:grid;position:fixed;inset:0}.roster-top{padding:calc(env(safe-area-inset-top) + 6px) 16px 8px;align-items:center;gap:12px;display:flex}.roster-count{font-family:var(--mincho);font-variant-numeric:tabular-nums;margin:0;font-size:34px;font-weight:700;line-height:1}.roster-label{margin:0;font-size:15px;font-weight:700}.roster-day{color:#ffffffb3;font-size:13px}.roster-top .link{color:#fff;margin-left:auto}.roster-scroll{position:relative;overflow:hidden}.roster-scroll img{width:100%;max-width:none;height:auto;display:block}.roster-empty{text-align:center;color:#ffffffb3;padding:40px 16px}.roster-bottom{padding:10px 16px calc(env(safe-area-inset-bottom) + 10px);background:#10131cf0;gap:8px;display:grid}.roster-bottom .tracks{margin-top:0}.roster-bottom .tracks button{color:#ffffffb3;border-color:#fff3}.roster-bottom .tracks button.on{color:#fff;border-color:#fff}.roster-stop{color:#ffffffb3;justify-self:center}.roster-bottom .btn{color:var(--night);background:#fff}.zoom-box{touch-action:none;-webkit-user-select:none;user-select:none;position:absolute;inset:0;overflow:hidden}.zoom-box img{transform-origin:0 0;will-change:transform;max-width:none;height:auto;position:absolute;top:0;left:0}.month-viewport{touch-action:pan-y;margin:0 -5px;overflow:hidden}.month-track{will-change:transform;align-items:flex-start;width:300%;display:flex}.month-slot{flex:none;width:33.3333%;padding:0 5px}.schedule .page-head .segmented button{min-height:32px;padding:0 16px;font-size:14px}.schedule .page-head{position:static}
