:root{--bg:#f2f2f7;--card:#fff;--card-press:#f4f4f7;--text:#1c1c1e;--text-2:#3a3a3c;--muted:#8a8a8e;--border:#e3e3e8;--separator:#3c3c431f;--fill-secondary:#76768014;--fill-tertiary:#7676801f;--accent:#007aff;--accent-press:#0062cc;--accent-soft:#007aff1a;--accent-soft-strong:#007aff2e;--on-accent:#fff;--danger:#ff3b30;--warn-bg:#fff4e5;--warn-border:#ffe0b2;--warn-text:#9a5b00;--warn-icon:#f5870a;--radius:14px;--radius-lg:20px;--radius-pill:999px;--maxw:600px;--shadow-sm:0 1px 2px #0000000a;--shadow-md:0 6px 20px #0000000f;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}@media (prefers-color-scheme:dark){:root{--bg:#000;--card:#1c1c1e;--card-press:#2c2c2e;--text:#fff;--text-2:#ebebf5;--muted:#98989f;--border:#38383a;--separator:#545458a6;--fill-secondary:#7676803d;--fill-tertiary:#76768052;--accent:#0a84ff;--accent-press:#409cff;--accent-soft:#0a84ff2e;--accent-soft-strong:#0a84ff47;--danger:#ff453a;--warn-bg:#2e2410;--warn-border:#5c4a1d;--warn-text:#ffcf8a;--warn-icon:#ffb74d;--shadow-sm:0 1px 2px #0006;--shadow-md:0 6px 20px #00000080}}*{box-sizing:border-box}html,body{margin:0;padding:0}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--bg);color:var(--text);letter-spacing:-.01em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:17px;line-height:1.45}a,button{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.app{max-width:var(--maxw);flex-direction:column;min-height:100dvh;margin:0 auto;display:flex}.topbar{z-index:20;padding:calc(.6rem + var(--safe-top)) 1rem .6rem;background:color-mix(in srgb, var(--card) 92%, var(--text) 8%);-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);border-bottom:.5px solid var(--separator);justify-content:space-between;align-items:center;gap:.75rem;min-height:52px;display:flex;position:sticky;top:0;box-shadow:0 2px 16px #00000029}.topbar h1{letter-spacing:-.02em;margin:0;font-size:1.0625rem;font-weight:600}.topbar .sub{color:var(--muted);letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;max-width:60vw;margin-top:1px;font-size:.8125rem;overflow:hidden}.topbar-actions{align-items:center;gap:.25rem;display:flex}.topbar-actions form{margin:0;display:inline-flex}.topbar-lead{align-items:center;min-width:0;display:inline-flex}.icon-btn{border-radius:var(--radius-pill);width:44px;height:44px;color:var(--accent);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;transition:background-color .15s,opacity .15s;display:inline-flex}.icon-btn svg{width:22px;height:22px;display:block}.icon-btn:active{background:var(--fill-secondary)}.icon-btn:disabled{opacity:.4;cursor:default}.icon-btn.spinning svg{animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.content{width:100%;padding:1rem 1rem calc(1.5rem + var(--safe-bottom));flex:1}.center{text-align:center;padding:2rem 1.5rem calc(2rem + var(--safe-bottom));flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.5rem;min-height:100dvh;display:flex}.center h1{letter-spacing:-.03em;margin:0;font-size:1.75rem;font-weight:700}.center .muted{margin:0 0 1rem}.center .btn,.center .notice{width:100%;max-width:360px}.hero-mark{background:var(--accent-soft);width:84px;height:84px;color:var(--accent);box-shadow:var(--shadow-md);border-radius:22px;justify-content:center;align-items:center;margin-bottom:.5rem;display:inline-flex}.hero-mark svg{width:42px;height:42px}.hero-mark--error{background:color-mix(in srgb, var(--danger) 14%, transparent);color:var(--danger)}.error-code{letter-spacing:-.04em;font-variant-numeric:tabular-nums;margin:0;font-size:3.25rem;font-weight:800;line-height:1}.btn{border-radius:var(--radius);background:var(--accent);min-height:50px;color:var(--on-accent);letter-spacing:-.01em;cursor:pointer;border:none;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-size:1.0625rem;font-weight:600;text-decoration:none;transition:background-color .15s,transform 60ms;display:inline-flex}.btn svg{width:20px;height:20px}.btn:active{background:var(--accent-press);transform:scale(.985)}.btn-block{width:100%}.btn-ghost{background:var(--card);color:var(--accent);border:.5px solid var(--separator);box-shadow:var(--shadow-sm)}.btn-ghost:active{background:var(--card-press)}.btn-link{color:var(--accent);font:inherit;letter-spacing:-.01em;cursor:pointer;background:0 0;border:none;align-items:center;gap:.15rem;min-height:44px;padding:.5rem .25rem;font-weight:400;text-decoration:none;display:inline-flex}.btn-link:active{opacity:.5}.btn-link svg{width:18px;height:18px}.day-head{align-items:stretch;gap:.5rem;margin:.25rem 0 1.25rem;display:flex}.date-hero{border-radius:var(--radius);background:var(--card);min-width:0;box-shadow:var(--shadow-sm);cursor:pointer;color:inherit;font:inherit;text-align:left;border:none;flex-direction:column;flex:auto;gap:2px;padding:.6rem 2.85rem .6rem .95rem;transition:background-color .15s,transform 60ms;display:flex;position:relative}.date-hero:active{background:var(--card-press);transform:scale(.99)}.date-hero .kicker{letter-spacing:.04em;text-transform:uppercase;color:var(--accent);align-items:center;gap:.3rem;font-size:.75rem;font-weight:600;line-height:1.1;display:inline-flex}.date-hero .kicker.is-other{color:var(--muted)}.date-hero .kicker svg{width:14px;height:14px}.date-hero .headline{flex-wrap:wrap;align-items:baseline;gap:.4rem;margin-top:1px;display:flex}.date-hero .headline .day-month{letter-spacing:-.03em;color:var(--accent);font-size:1.5rem;font-weight:700;line-height:1.15}.date-pick-btn{background:var(--accent-soft);width:34px;height:34px;color:var(--accent);pointer-events:none;border-radius:10px;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:50%;right:.5rem;transform:translateY(-50%)}.date-pick-btn svg{width:19px;height:19px}.date-hero .headline .year{color:var(--muted);letter-spacing:-.01em;font-size:1rem;font-weight:500}.date-hero input[type=date]{opacity:0;cursor:pointer;appearance:none;color:#0000;background:0 0;border:none;width:100%;height:100%;margin:0;padding:0;position:absolute;inset:0}.date-hero input[type=date]::-webkit-calendar-picker-indicator{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.date-hero input[type=date]::-webkit-date-and-time-value{opacity:0}.day-nav{flex-direction:column;flex:none;gap:.5rem;display:flex}.nav-btn{width:48px;color:var(--accent);background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow-sm);cursor:pointer;border:none;flex:none;justify-content:center;align-self:stretch;align-items:center;text-decoration:none;transition:background-color .15s,transform 60ms;display:inline-flex}.nav-btn svg{width:18px;height:18px;display:block}.nav-btn:active{background:var(--card-press);transform:scale(.96)}.today-jump{justify-content:center;margin:-.5rem 0 1.25rem;display:flex}.today-jump a{border-radius:var(--radius-pill);background:var(--accent-soft);min-height:36px;color:var(--accent);align-items:center;gap:.35rem;padding:.35rem .95rem;font-size:.875rem;font-weight:600;text-decoration:none;display:inline-flex}.today-jump a:active{background:var(--accent-soft-strong)}.today-jump svg{width:15px;height:15px}.section-label{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin:0 0 .5rem .25rem;font-size:.8125rem;font-weight:600}.list-head{align-items:center;gap:.5rem;margin:0 0 .5rem .25rem;display:flex}.list-head .label{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:.8125rem;font-weight:600}.list-head .count{border-radius:var(--radius-pill);background:var(--accent-soft);min-width:1.4rem;height:1.4rem;color:var(--accent);font-variant-numeric:tabular-nums;justify-content:center;align-items:center;padding:0 .4rem;font-size:.75rem;font-weight:700;display:inline-flex}.event-list{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin:0;padding:0;list-style:none;overflow:hidden}.event-list>li+li .event-item:before{content:"";border-top:.5px solid var(--separator);position:absolute;top:0;left:1rem;right:0}.event-item{color:inherit;align-items:center;gap:.875rem;padding:.875rem 1rem;text-decoration:none;transition:background-color .12s;display:flex;position:relative}.event-item:active{background:var(--card-press)}.event-item .time{font-variant-numeric:tabular-nums;min-width:3.25rem;color:var(--text);letter-spacing:-.01em;white-space:nowrap;flex:none;justify-content:center;align-items:center;font-size:.9375rem;font-weight:600;display:inline-flex}.event-item .time.all-day{border-radius:var(--radius-pill);background:var(--accent-soft);color:var(--accent);letter-spacing:0;padding:.15rem .45rem;font-size:.75rem;font-weight:600}.event-item .body{flex-direction:column;flex:auto;gap:1px;min-width:0;display:flex}.event-item .title{letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;font-size:1.0625rem;font-weight:500;overflow:hidden}.event-item .loc{color:var(--muted);align-items:center;gap:.25rem;min-width:0;font-size:.875rem;display:flex}.event-item .loc svg{opacity:.85;flex:none;width:13px;height:13px}.event-item .loc span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.event-item .chevron{width:16px;height:16px;color:var(--muted);opacity:.55;flex:none}.muted{color:var(--muted)}.empty{text-align:center;background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow-sm);color:var(--muted);flex-direction:column;align-items:center;gap:.5rem;padding:3rem 1.5rem;display:flex}.empty .empty-icon{border-radius:var(--radius-pill);background:var(--fill-secondary);width:60px;height:60px;color:var(--muted);justify-content:center;align-items:center;margin-bottom:.25rem;display:inline-flex}.empty .empty-icon svg{width:28px;height:28px}.empty .empty-title{color:var(--text);font-size:1.0625rem;font-weight:600}.empty .empty-sub{max-width:24ch;font-size:.9375rem}.detail-head{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin-bottom:1.25rem;padding:1.25rem}.detail-head h2{letter-spacing:-.02em;margin:0 0 .5rem;font-size:1.375rem;font-weight:700;line-height:1.25}.detail-meta{color:var(--text-2);align-items:flex-start;gap:.5rem;margin-top:.35rem;font-size:.9375rem;display:flex}.detail-meta svg{width:17px;height:17px;color:var(--muted);flex:none;margin-top:2px}.pnr-badge{border-radius:var(--radius-pill);background:var(--accent-soft);color:var(--accent);letter-spacing:.01em;font-variant-numeric:tabular-nums;align-items:center;gap:.35rem;margin-top:.875rem;padding:.3rem .7rem;font-size:.8125rem;font-weight:600;display:inline-flex}.pnr-badge svg{width:14px;height:14px}.pnr-badge .pnr-key{opacity:.7;letter-spacing:.05em;font-weight:700}.notice{background:var(--warn-bg);border:.5px solid var(--warn-border);color:var(--warn-text);border-radius:var(--radius);align-items:flex-start;gap:.65rem;padding:1rem 1.125rem;font-size:.9375rem;line-height:1.5;display:flex}.notice svg{width:20px;height:20px;color:var(--warn-icon);flex:none;margin-top:1px}.notice strong{font-weight:700}.jotform-wrap{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}.jotform-wrap iframe{background:var(--card);border:none;width:100%;max-width:100%;height:600px;display:block}@media (prefers-reduced-motion:reduce){*{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
