:root{--bg:#0e0e10;--surface:#161618;--surface-2:#1d1d20;--surface-3:#26262a;--line:#2e2e33;--line-soft:#232327;--accent:#c8973a;--accent-hi:#e0b45a;--accent-dim:#8a6b2e;--accent-wash:#c8973a1f;--on-accent:#1a1208;--green:#1db954;--green-dim:#0e5c2a;--green-wash:#1db95421;--red:#e4564a;--red-dim:#7a2a24;--red-wash:#e4564a21;--orange:#e68a2e;--orange-dim:#7a4712;--orange-wash:#e68a2e21;--green-text:#5be08b;--red-text:#ff8b80;--orange-text:#f4b868;--text:#f4f1ea;--text-2:#b5b2ac;--text-3:#807d78;--text-4:#545250;--font-display:"Space Grotesk", system-ui, sans-serif;--font-ui:"Hanken Grotesk", system-ui, sans-serif;--font-mono:"Space Mono", ui-monospace, monospace;--fs-hero:30px;--fs-title:22px;--fs-lead:17px;--fs-body:16px;--fs-sm:15px;--fs-num:44px;--r-sm:10px;--r-md:16px;--r-lg:22px;--r-xl:30px;--r-pill:999px;--sp-1:6px;--sp-2:10px;--sp-3:14px;--sp-4:18px;--sp-5:22px;--sp-6:28px;--gutter:20px;--page-max:520px;--sh-card:0 8px 30px -12px #0000008c;--sh-menu:0 18px 50px -16px #000000b3;--sh-accent:0 14px 34px -14px #c8973abf;--tap-min:44px}*{box-sizing:border-box}html,body{overscroll-behavior:none;height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}.cm-mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.cm-pill{border-radius:var(--r-pill);font-family:var(--font-ui);align-items:center;gap:6px;font-weight:600;display:inline-flex}.cm-ellipsis{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--surface-3);border-radius:8px}::-webkit-scrollbar-track{background:0 0}@keyframes cmSpin{to{transform:rotate(360deg)}}@keyframes cmFade{0%{opacity:0}to{opacity:1}}@keyframes cmPulse{0%,to{opacity:1}50%{opacity:.45}}@keyframes cmUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes cmPop{0%{opacity:0;transform:scale(.88)}to{opacity:1;transform:scale(1)}}@keyframes cmTick{0%{transform:scale(1.22)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:root{--accent:#c8973a;--accent-hi:#e0b45a;--accent-dim:#8a6b2e;--accent-wash:#c8973a1f;--on-accent:#1a1208;--gold:var(--accent);--gold-hi:var(--accent-hi);--gold-dim:var(--accent-dim);--gold-wash:var(--accent-wash);--sh-accent:0 14px 34px -14px #c8973abf}.app{touch-action:pan-y;flex-direction:column;display:flex;position:absolute;inset:0;overflow:hidden}.view{padding:8px var(--gutter) 18px;touch-action:pan-y;max-width:var(--page-max);flex-direction:column;flex:1;width:100%;margin:0 auto;display:flex;overflow:hidden auto}.view::-webkit-scrollbar{width:0}.pushDown{margin-top:auto}.appHeader{justify-content:space-between;align-items:center;padding:2px 0 14px;display:flex}.brand{align-items:center;gap:11px;display:flex}.brand .logo{width:auto;height:26px;display:block}.brandName{font-family:var(--font-display);letter-spacing:-.5px;border-left:2px solid var(--line);padding-left:11px;font-size:17px;font-weight:700}.brandName em{color:var(--accent);font-style:normal}.appHeader--overlay{padding:58px var(--gutter) 12px;z-index:5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(#0e0e10f5,#0e0e1099);position:relative}.acct{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-pill);cursor:pointer;min-height:36px;font-family:var(--font-ui);color:var(--text);align-items:center;gap:8px;padding:4px 11px 4px 4px;display:flex}.avatar{border-radius:var(--r-pill);background:linear-gradient(135deg,var(--accent-hi),var(--accent-dim));width:28px;height:28px;color:var(--on-accent);flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.acctName{font-size:var(--fs-sm);text-overflow:ellipsis;white-space:nowrap;max-width:88px;font-weight:600;overflow:hidden}.acctChevron{transition:transform .2s}.acct[aria-expanded=true] .acctChevron{transform:rotate(180deg)}.acctMenu{z-index:30;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);min-width:218px;box-shadow:var(--sh-menu);animation:.15s cmFade;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden}.acctMenu button{text-align:left;width:100%;color:var(--text);font-family:var(--font-ui);font-size:var(--fs-sm);cursor:pointer;background:0 0;border:0;padding:13px 16px}.acctMenu button:hover{background:var(--surface-2)}h1.title{font-family:var(--font-display);font-weight:700;font-size:var(--fs-hero);letter-spacing:-1px;margin:0 0 8px;line-height:1.08}p.sub{color:var(--text-2);font-size:var(--fs-lead);margin:0;line-height:1.45}.sectionKick{font-size:var(--fs-sm);letter-spacing:2px;text-transform:uppercase;color:var(--text-3);margin:0 0 10px;font-weight:700}.label{font-size:var(--fs-sm);letter-spacing:1.6px;text-transform:uppercase;color:var(--accent);margin-bottom:7px;font-weight:700;display:block}.btn{border-radius:var(--r-pill);width:100%;font-family:var(--font-ui);font-weight:700;font-size:var(--fs-body);cursor:pointer;min-height:var(--tap-min);border:none;justify-content:center;align-items:center;gap:10px;padding:15px 18px;display:flex}.btn:disabled{opacity:.4;cursor:not-allowed}.btn:active{transform:translateY(1px)}.btn-primary{background:linear-gradient(135deg,var(--accent-hi),var(--accent));color:var(--on-accent)}.btn-ghost{background:var(--surface-2);border:1px solid var(--line);color:var(--text-2)}.btn-google{background:var(--surface-3);color:var(--text);border:1px solid var(--line)}.btn-danger{background:var(--red-wash);border:1px solid var(--red);color:var(--red-text)}.btn-row{gap:10px;margin-top:auto;padding-top:16px;display:flex}.btn-row .btn{flex:1}.stack{flex-direction:column;gap:14px;padding-bottom:14px;display:flex}.bigBtn{background:var(--accent);width:100%;color:var(--on-accent);font-family:var(--font-display);letter-spacing:-.7px;cursor:pointer;box-shadow:var(--sh-accent);border:none;border-radius:28px;flex-direction:column;align-items:center;gap:9px;padding:31px 18px;font-size:30px;font-weight:700;display:flex}.bigBtn small{font-family:var(--font-ui);font-weight:600;font-size:var(--fs-sm);opacity:.66;letter-spacing:0}.bigBtn:active{transform:translateY(2px);box-shadow:0 8px 22px -14px #000000bf}.bigBtn:disabled{background:var(--surface-2);color:var(--text-3);box-shadow:none;cursor:not-allowed}.iconBtn{border-radius:var(--r-pill);border:1px solid var(--line);background:var(--surface-2);width:36px;height:36px;color:var(--text-2);cursor:pointer;font-family:var(--font-ui);flex-shrink:0;justify-content:center;align-items:center;display:flex}.iconBtn--accent{background:var(--accent);color:var(--on-accent);border-color:#0000}.card{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--r-md);padding:13px}.card--accent{background:linear-gradient(135deg,var(--accent-wash),var(--surface));border-color:var(--accent);box-shadow:var(--sh-card)}.card--ok{border-color:var(--green-dim)}.note{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);font-size:var(--fs-sm);color:var(--text-2);text-align:left;padding:13px 14px;line-height:1.5}.choice{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);cursor:pointer;text-align:left;width:100%;font-family:var(--font-ui);color:var(--text);align-items:center;gap:14px;padding:18px;display:flex}.choiceIcon{background:var(--accent-wash);border:1px solid var(--accent-dim);width:52px;height:52px;color:var(--accent-hi);border-radius:16px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.choiceBody{min-width:0}.choiceT{font-size:16.5px;font-weight:700;display:block}.choiceS{font-size:var(--fs-sm);color:var(--text-2);margin-top:2px;display:block}.pill{border-radius:var(--r-pill);font-size:var(--fs-sm);background:var(--surface-2);border:1px solid var(--line);color:var(--text-2);align-items:center;gap:8px;padding:7px 14px;font-weight:600;display:inline-flex}.pill.ok{background:var(--green-wash);border-color:var(--green);color:var(--green-text)}.pill.ko{background:var(--red-wash);border-color:var(--red);color:var(--red-text)}.pill.warn{background:var(--orange-wash);border-color:var(--orange);color:var(--orange-text)}input[type=text],input[type=email],textarea,select{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);width:100%;color:var(--text);font-family:var(--font-ui);font-size:var(--fs-body);resize:none;outline:none;padding:13px 14px}input:focus,textarea:focus,select:focus{border-color:var(--accent-dim)}.counter{text-align:right;font-size:var(--fs-sm);color:var(--text-3);font-variant-numeric:tabular-nums;margin-top:6px}.counter.warn{color:var(--accent-hi)}.pickZone{border:1.5px dashed var(--line);border-radius:var(--r-lg);color:var(--text-2);text-align:center;cursor:pointer;flex-direction:column;align-items:center;gap:10px;padding:26px 18px;display:flex}.center{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex}.bigIcon{border-radius:var(--r-pill);justify-content:center;align-items:center;width:88px;height:88px;margin-bottom:16px;display:flex}.bigIcon.ok{background:var(--green-wash);border:1px solid var(--green)}.bigIcon.ko{background:var(--red-wash);border:1px solid var(--red)}.bigIcon.wait{background:var(--accent-wash);border:1px solid var(--accent-dim)}.spinner{border-radius:var(--r-pill);border:5px solid var(--surface-3);border-top-color:var(--accent);width:64px;height:64px;margin-bottom:20px;animation:1s linear infinite cmSpin}.spinner--sm{border-width:3px;width:34px;height:34px;margin:0}.bar{background:var(--surface-3);border-radius:9px;width:180px;height:5px;overflow:hidden}.bar>i{background:linear-gradient(90deg,var(--accent-dim),var(--accent-hi));height:100%;transition:width .3s;display:block}.empty{text-align:center;color:var(--text-3);font-size:var(--fs-sm);padding:20px 0}.countdown{font-family:var(--font-display);font-weight:700;font-size:var(--fs-num);letter-spacing:-1.5px;color:var(--accent);font-variant-numeric:tabular-nums;margin:2px 0 6px;line-height:1}.countdown.urgent{color:var(--red-text)}.banner{border-radius:var(--r-md);background:var(--accent-wash);border:1px solid var(--accent-dim);align-items:flex-start;gap:11px;padding:13px 14px;display:flex}.banner b{font-size:var(--fs-sm);font-weight:700;display:block}.banner span{font-size:var(--fs-sm);color:var(--text-3);margin-top:2px;display:block}.status{border-radius:var(--r-sm);font-size:var(--fs-sm);background:var(--green-wash);border:1px solid var(--green-dim);color:var(--green-text);padding:10px 13px}.overlay{z-index:80;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;align-items:flex-end;animation:.2s cmFade;display:flex;position:absolute;inset:0}.sheet{background:var(--surface);border-top:1px solid var(--line);border-top-left-radius:var(--r-xl);border-top-right-radius:var(--r-xl);width:100%;padding:14px var(--gutter) 38px;animation:.32s cubic-bezier(.2,.9,.2,1) cmUp}.sheet--tall{max-height:80vh;padding-bottom:48px;overflow-y:auto}.grip{background:var(--surface-3);border-radius:9px;width:38px;height:5px;margin:0 auto 18px}.row{border-radius:var(--r-sm);align-items:center;gap:12px;padding:9px 6px;display:flex}.row:active{background:var(--surface-2)}.rowThumb{object-fit:cover;background:var(--surface-2);border-radius:9px;flex-shrink:0;width:48px;height:48px}.rowMain{flex:1;min-width:0}.rowTitle{font-size:var(--fs-body);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.rowSub{font-size:var(--fs-sm);color:var(--text-3);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.rowSub--wrap{white-space:normal;line-height:1.45;overflow:visible}.appHeader{padding-left:var(--gutter);padding-right:var(--gutter)}.kv{border-bottom:1px solid var(--line-soft);font-size:var(--fs-sm);justify-content:space-between;align-items:baseline;gap:12px;padding:11px 0;display:flex}.kv:last-child{border-bottom:none}.kv span{color:var(--text-2)}.kv b{text-align:right;font-weight:700}.banner.ok{background:var(--green-wash);border-color:var(--green)}.banner.danger{background:var(--red-wash);border-color:var(--red)}.parking-list{flex-direction:column;gap:8px;margin:14px 0 0;padding:0;list-style:none;display:flex}.parking-list li{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);font-size:var(--fs-sm);align-items:center;gap:10px;padding:10px 12px;font-weight:600;display:flex}.parking-list .pin{background:var(--accent);border-radius:50%;flex-shrink:0;width:8px;height:8px}.parking-map-trigger{cursor:pointer;background:0 0;border:none;width:100%;margin-top:14px;padding:0;display:block}.parking-map-img{border:1px solid var(--line);border-radius:var(--r-md);width:100%;height:auto;display:block}.map-caption{font-size:var(--fs-sm);color:var(--text-3);text-align:center;margin:8px 0 4px}.map-lightbox{padding:var(--gutter);cursor:zoom-out;touch-action:auto;justify-content:center;align-items:center;position:fixed}.map-lightbox-img{border-radius:var(--r-md);max-width:100%;max-height:100%;box-shadow:0 12px 40px #0006}.cal-range{font-family:var(--font-display);font-weight:700;font-size:var(--fs-body);margin:18px 0 10px}.date-strip{grid-template-columns:repeat(7,1fr);gap:8px;display:grid}.date-chip-pad{visibility:hidden}.date-chip{border-radius:var(--r-md);background:var(--surface-2);height:68px;font-family:var(--font-ui);color:var(--text);cursor:pointer;appearance:none;font:inherit;border:1px solid #0000;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:0;display:flex;position:relative}.date-chip:disabled{cursor:not-allowed}.date-chip .chip-month{letter-spacing:.05em;text-transform:uppercase;color:var(--accent);font-size:9px;font-weight:700}.date-chip .chip-weekday{letter-spacing:.05em;text-transform:uppercase;color:var(--text-3);font-size:10px;font-weight:700}.date-chip .chip-day{font-variant-numeric:tabular-nums;font-size:17px;font-weight:700}.date-chip.past{color:var(--text-4);opacity:.5;background:0 0}.date-chip.closed{border-color:var(--line-soft);color:var(--red-text);opacity:.65;background:0 0}.date-chip.closed .chip-weekday{color:var(--red-text)}.date-chip.full{background:var(--red-wash);color:var(--red-text)}.date-chip.full .chip-weekday{color:var(--red-text)}.date-chip.open:hover{border-color:var(--accent-dim)}.date-chip.selected{background:linear-gradient(135deg,var(--accent-hi),var(--accent));color:var(--on-accent);border-color:#0000}.date-chip.selected .chip-weekday,.date-chip.selected .chip-month{color:var(--on-accent);opacity:.8}.date-chip .cal-dot{background:var(--red);border-radius:50%;width:4px;height:4px;position:absolute;bottom:6px}.cal-legend{flex-wrap:wrap;gap:16px;margin-top:6px;display:flex}.cal-legend-item{color:var(--text-3);align-items:center;gap:6px;font-size:12px;display:flex}.cal-dot-legend{border-radius:50%;width:9px;height:9px;display:inline-block}.cal-dot-legend.full{background:var(--red-wash);border:1px solid var(--red)}.cal-dot-legend.closed{border:1px solid var(--red-text);background:0 0}.link-btn{color:var(--accent-dim);font-family:var(--font-ui);font-weight:700;font-size:var(--fs-sm);cursor:pointer;text-align:center;text-underline-offset:2px;background:0 0;border:none;width:100%;padding:10px 4px;text-decoration:underline}.rule-block+.rule-block{margin-top:16px}.rule-block b{font-size:var(--fs-sm);margin-bottom:3px;font-weight:700;display:block}.rule-block p{font-size:var(--fs-sm);color:var(--text-2);margin:0;line-height:1.5}.acctAnchor{position:relative}.acct .acctChevron{color:var(--text-3);flex-shrink:0}.acctMenu{max-width:calc(100vw - 2 * var(--gutter))}.acctMenuHead{border-bottom:1px solid var(--line-soft);align-items:center;gap:11px;padding:12px 16px;display:flex}.acctMenuHead .avatar{width:34px;height:34px;font-size:13px}.acctIdentity{min-width:0}.acctIdentityName{font-weight:700;font-size:var(--fs-sm);color:var(--text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.acctIdentityMail{font-size:var(--fs-sm);color:var(--text-3);overflow-wrap:anywhere}.acctMenu .acctLogout{color:var(--red-text);align-items:center;gap:10px;font-weight:700;display:flex}html,body,#root{height:100%}
