.app{--bar-h: 60px;--tab-h: 72px;--app-max: 960px;background:var(--snow);color:var(--ink);font-size:max(17px,1.0625rem);padding-bottom:calc(var(--tab-h) + env(safe-area-inset-bottom))}.app-bar{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:calc(var(--bar-h) + env(safe-area-inset-top));padding:env(safe-area-inset-top) max(16px,env(safe-area-inset-right)) 0 max(16px,env(safe-area-inset-left));background:var(--night);color:var(--snow);border-bottom:1px solid var(--line-night)}.app-logo{display:inline-flex;align-items:center;gap:10px;min-height:48px;text-decoration:none;line-height:1}.app-logo svg{width:26px;height:26px;color:var(--frost)}.app-logo .logo__word{font-size:1.45rem}.app-logo__sub{font-family:var(--serif-jp);font-size:.95rem;letter-spacing:.2em;color:var(--gold)}.app .size-toggle{height:48px;min-width:64px;font-size:.85rem;opacity:1}.app-offline{position:sticky;top:calc(var(--bar-h) + env(safe-area-inset-top));z-index:29;margin:0;padding:12px 16px;background:#fff3d6;color:#5a4210;border-bottom:1px solid #e8cf8f;font-weight:500;text-align:center}.app-main{min-height:70vh}.view{animation:view-in .5s var(--ease)}@keyframes view-in{0%{opacity:0}}.app-hero{padding:28px var(--gutter) 34px;background:radial-gradient(120% 90% at 50% 0%,var(--night-3) 0%,var(--night) 72%)}.app-hero>*{max-width:var(--app-max);margin-inline:auto}.app-hero .eyebrow{display:flex;font-size:1.05rem}.app-title{margin-top:6px;font-family:var(--serif-jp);font-weight:500;font-size:clamp(1.7rem,1.4rem + 1.4vw,2.3rem);line-height:1.5;letter-spacing:.1em;outline:none}.app-hero__lead{margin-top:8px;color:#d8dee9;line-height:1.8}.app-body{padding:32px var(--gutter) 56px}.app-body>*{max-width:var(--app-max);margin-inline:auto}.app-h2{margin:48px auto 18px;font-family:var(--serif-jp);font-weight:500;font-size:1.3rem;letter-spacing:.1em}.app-h2--first{margin-top:0}.app-note{margin-top:14px;color:var(--ink-soft);font-size:1rem;line-height:1.8}.app-card{margin-top:28px;padding:24px 22px;border-radius:18px;background:var(--paper);border:1px solid var(--line-day)}.app-card:first-child{margin-top:0}.app-card__title{margin-bottom:10px;font-family:var(--serif-jp);font-weight:500;font-size:1.2rem;letter-spacing:.08em}.app-card--done{border-color:#2f7d5c;background:#eef7f2;font-weight:500}.app-card--warn{border-color:#e8cf8f;background:#fff8e6;margin-bottom:24px}.app-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}.app-actions .btn{flex:1 1 220px}.app-actions--stack{display:grid;gap:14px;margin-top:0}.app .btn{min-height:60px;padding:0 24px;font-size:1.05rem;letter-spacing:.06em}.app .btn svg{flex:none}.install-hint{position:relative;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:12px 14px;max-width:var(--app-max);margin:0 auto;padding:18px 64px 18px 18px;background:var(--night-2);color:var(--snow);border-top:1px solid var(--line-night)}.install-hint svg{width:36px;height:36px;color:var(--gold)}.install-hint p{line-height:1.6}.install-hint .btn{grid-column:1 / -1;min-height:56px}.install-hint__close{position:absolute;top:8px;right:8px;width:48px;height:48px;border:0;border-radius:50%;background:none;color:var(--snow);font-size:1.6rem;line-height:1;cursor:pointer}@media(min-width:640px){.install-hint{grid-template-columns:auto 1fr auto}.install-hint .btn{grid-column:auto}}.app .steps{margin-bottom:40px}.app .steps li{font-size:.95rem}.app .step__title{font-size:1.4rem;margin-bottom:22px;outline:none}.app .sched__bar{gap:12px}.app .tabs{width:100%}.app .tabs button{flex:1 1 auto;min-height:56px;padding:0 12px;font-size:1rem;letter-spacing:.02em;white-space:nowrap}.app .week-nav{width:100%;justify-content:space-between}.app .week-nav button{width:56px;height:56px}.app .week-nav span{min-width:0;font-size:1rem}.app .board__head b{font-size:1.55rem}.app .board__head small{font-size:.9rem}.app .board__none{font-size:.95rem}.app .box{min-height:128px;padding:14px 8px;gap:4px}.app .box__tag{font-size:.85rem}.app .box__time{font-size:1.2rem}.app .box__name{font-size:1rem}.app .box__place,.app .box__state{font-size:.9rem}.app .board__swipe,.app .legend,.app .picked span,.app .confirm dt{font-size:.95rem}.app .notes{font-size:1rem}.app .field input,.app .field textarea{font-size:1.15rem}.app .agree{align-items:flex-start}.app .agree input{margin-top:4px}@media(max-width:899px){.app .board{grid-template-columns:repeat(7,minmax(46vw,1fr))}}@media(min-width:900px){[data-view=book]{--app-max: 1240px}.app .tabs,.app .week-nav{width:auto}}.mine-list{display:grid;gap:36px}.mine-ticket .ticket{margin:0 auto}.mine-ticket .app-actions{max-width:420px;margin:16px auto 0}.mine-today{padding:2px 14px;border-radius:999px;background:var(--gold);color:var(--night);font-weight:700;letter-spacing:.2em;line-height:1.8}.mine-empty{display:grid;justify-items:center;gap:20px}.mine-empty .btn{min-width:240px}.mine-past-list{border-top:1px solid var(--line-day)}.mine-past{display:grid;gap:2px;padding:16px 4px;border-bottom:1px solid var(--line-day);color:var(--ink-soft)}.mine-past__when{font-weight:500;color:var(--ink)}.mine-past__code b{font-family:var(--serif-en);font-size:1.15rem;letter-spacing:.2em;color:var(--ink)}.profile{display:grid;grid-template-columns:6em 1fr;margin:6px 0 18px}.profile dt,.profile dd{padding:8px 0;border-bottom:1px solid var(--line-day)}.profile dt{color:var(--ink-soft);font-size:.95rem}.profile dd{word-break:break-all}.app-news .news-item a{padding:22px 4px}.app-news .news-item__title{font-size:1.1rem}.app-news .news-item .cat{font-size:.8rem}.app-more{width:100%;margin-top:24px}.app-back{margin-bottom:28px;font-size:1.15rem;min-height:48px}.app-article .article__title{margin:12px 0 28px;outline:none}.app-article .article__body{font-size:1.08rem}.places{display:grid;gap:16px}.place{padding:20px 20px 22px;border-radius:16px;background:var(--paper);border:1px solid var(--line-day)}.place__name{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;font-family:var(--serif-jp);font-weight:500;font-size:1.15rem;letter-spacing:.08em}.place__name small{font-family:var(--sans);font-size:.9rem;color:var(--ink-soft);letter-spacing:.04em}.place p{margin-top:6px;line-height:1.8}.place .text-link{margin-top:10px;min-height:48px}.app-links{border-top:1px solid var(--line-day)}.app-links a{display:flex;align-items:center;min-height:60px;padding:0 4px;border-bottom:1px solid var(--line-day);text-decoration:none;font-weight:500}.app-links a:after{content:"›";margin-left:auto;font-size:1.6rem;color:var(--ink-soft)}.guides{display:grid;gap:0}.guide__steps{display:grid;gap:14px;margin-top:8px;counter-reset:g}.guide__steps li{position:relative;padding-left:52px;min-height:40px;line-height:1.8;counter-increment:g}.guide__steps li:before{content:counter(g);position:absolute;left:0;top:0;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--ink);color:var(--paper);font-family:var(--serif-en);font-size:1.2rem}.key{display:inline-flex;align-items:center;gap:4px;padding:0 10px;margin:0 2px;border:1px solid var(--line-day);border-radius:8px;background:#fff;font-weight:500;white-space:nowrap;vertical-align:1px}.key svg{width:20px;height:20px}.apk summary{display:flex;align-items:center;min-height:48px;cursor:pointer;font-family:var(--serif-jp);font-weight:500;font-size:1.15rem;letter-spacing:.06em}.apk summary:after{content:"＋";margin-left:auto;padding-left:12px}.apk[open] summary:after{content:"−"}.apk>p{margin-top:14px;line-height:1.8}.apk .guide__steps{margin:18px 0}.apk .btn{width:100%;margin-top:18px}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:repeat(4,1fr);padding:0 env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);background:var(--night);color:#c9d1de;border-top:1px solid var(--line-night)}.tabbar a{position:relative;display:grid;justify-items:center;align-content:center;gap:4px;min-height:var(--tab-h);padding:6px 2px;text-decoration:none;font-size:min(.85rem,3.7vw);font-weight:500;letter-spacing:0;line-height:1.3;text-align:center;word-break:keep-all}.tabbar svg{width:28px;height:28px}.tabbar a[aria-current=page]{color:var(--snow)}.tabbar a[aria-current=page]:before{content:"";position:absolute;top:0;left:22%;right:22%;height:3px;border-radius:0 0 3px 3px;background:var(--gold)}.tabbar a[aria-current=page] svg{color:var(--gold)}.tabbar__badge{position:absolute;top:8px;left:calc(50% + 8px);min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--rose);color:var(--night);font-size:.8rem;font-weight:700;line-height:22px}@media(min-width:900px){.tabbar{left:50%;right:auto;width:min(640px,100%);transform:translate(-50%);border-radius:20px 20px 0 0;border:1px solid var(--line-night);border-bottom:0}}html.text-large .tabbar a{font-size:min(.85rem,3.9vw)}@media(prefers-reduced-motion:reduce){.view{animation:none}}
