.app{position:relative;min-height:100vh;min-height:100dvh;overflow-x:clip;width:100%;max-width:100vw;box-sizing:border-box}.app *,.app *:before,.app *:after{box-sizing:border-box}.acc-auth{display:none;min-height:100vh;min-height:100dvh;position:relative;padding:32px 0 64px}.acc-auth[data-visible=true]{display:block}.auth-aurora{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}.auth-aurora:before,.auth-aurora:after{content:"";position:absolute;width:60vmax;height:60vmax;border-radius:50%;filter:blur(110px);opacity:.5;animation:aur 18s ease-in-out infinite}.auth-aurora:before{background:radial-gradient(circle,#290CFF 0%,transparent 60%);top:-20vmax;left:-10vmax}.auth-aurora:after{background:radial-gradient(circle,#FF019A 0%,transparent 60%);bottom:-20vmax;right:-10vmax;animation-delay:-9s}@keyframes aur{0%,to{transform:translate(0) scale(1)}50%{transform:translate(40px,-30px) scale(1.1)}}.auth-inner{position:relative;z-index:1}.auth-brand{display:inline-flex;align-items:center;gap:8px;font-family:var(--sn-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#f4f1e8b3;margin-bottom:28px}.auth-dot{width:8px;height:8px;border-radius:50%;background:var(--sn-cyan);box-shadow:0 0 12px var(--sn-cyan);animation:pulse 1.8s ease-in-out infinite}.auth-card{width:100%;max-width:520px;margin:0 auto;padding:24px 20px 28px;background:var(--sn-ink-2);border:1px solid var(--sn-line-2);border-radius:var(--r-xl);backdrop-filter:blur(20px);box-sizing:border-box}.auth-card .input,.auth-card .auth-cta,.auth-form{width:100%;min-width:0;box-sizing:border-box}@media (min-width: 640px){.auth-card{padding:36px 36px 40px}}.auth-tabs{display:flex;padding:4px;background:var(--sn-ink-3);border-radius:var(--r-pill);width:100%;margin-bottom:24px}.auth-tab{flex:1;padding:10px 18px;background:transparent;color:#f4f1e8b3;border:none;border-radius:var(--r-pill);cursor:pointer;font-family:var(--sn-mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;transition:all .2s ease}.auth-tab.is-active{background:var(--sn-cyan);color:var(--sn-ink);box-shadow:0 0 20px #00f1ff66}.auth-form{display:none;flex-direction:column}.auth-form[data-visible=true]{display:flex;animation:fadein .4s cubic-bezier(.2,.9,.2,1)}@keyframes fadein{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.auth-h1{font-family:var(--sn-display);font-weight:900;text-transform:uppercase;font-size:clamp(40px,9vw,56px);line-height:1.05;margin:0}.auth-sub{color:#f4f1e8b3;margin:8px 0 0;font-size:15px}.input-wrap{position:relative}.input-wrap .input{padding-right:48px}.eye-btn{position:absolute;top:50%;right:12px;transform:translateY(-50%);background:transparent;border:none;cursor:pointer;color:#f4f1e899;padding:4px;line-height:0}.eye-btn:hover{color:var(--sn-cyan)}.eye-btn svg[hidden]{display:none!important}[hidden]{display:none!important}.auth-error{margin:14px 0 0;padding:10px 14px;background:#ff019a1a;border:1px solid rgba(255,1,154,.4);border-radius:var(--r-md);color:var(--sn-magenta);font-size:14px}.auth-cta{width:100%;justify-content:center;margin-top:20px}.auth-quick{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:18px;padding-top:18px;border-top:1px solid var(--sn-line)}.auth-quick-label{font-family:var(--sn-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#f4f1e880;width:100%;margin-bottom:4px}.auth-quick-pill{padding:6px 12px;background:var(--sn-ink-3);border:1px solid var(--sn-line-2);border-radius:var(--r-pill);color:var(--sn-bone);cursor:pointer;font-family:var(--sn-mono);font-size:11px;letter-spacing:.06em;transition:all .18s ease}.auth-quick-pill:hover{border-color:var(--sn-cyan);color:var(--sn-cyan)}.app-frame{padding-bottom:96px;min-height:100vh;min-height:100dvh}.app-top{position:sticky;top:0;z-index:10;backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);background:#07050eb3;border-bottom:1px solid var(--sn-line);padding:14px 0}.app-top-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.app-greet{display:flex;flex-direction:column;gap:4px}.app-greet-h{font-family:var(--sn-display);font-weight:900;text-transform:uppercase;font-size:clamp(24px,5vw,32px);line-height:1.1;margin:0}.app-avatar{width:44px;height:44px;border-radius:50%;background:var(--avatar-c, var(--sn-cyan));color:var(--sn-ink);display:inline-flex;align-items:center;justify-content:center;font-family:var(--sn-display);font-weight:900;font-size:16px;letter-spacing:.04em;box-shadow:0 0 24px color-mix(in srgb,var(--avatar-c, var(--sn-cyan)) 50%,transparent)}.app-main{padding:20px 0 32px}.panel{display:none;animation:panel-in .35s cubic-bezier(.2,.9,.2,1)}.panel[data-visible=true]{display:block}@keyframes panel-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.section-h{font-family:var(--sn-display);font-weight:900;text-transform:uppercase;font-size:clamp(18px,3vw,22px);margin:24px 0 12px;line-height:1.2}.card{background:var(--sn-ink-2);border:1px solid var(--sn-line);border-radius:var(--r-lg);padding:20px;margin-bottom:12px;position:relative;overflow:hidden}.card-h{font-family:var(--sn-display);font-weight:900;text-transform:uppercase;font-size:clamp(18px,3.4vw,22px);margin:0;line-height:1.2}.card-next{background:linear-gradient(135deg,var(--sn-ink-2) 0%,color-mix(in srgb,var(--accent, #00F1FF) 8%,var(--sn-ink-2)) 100%);border-color:color-mix(in srgb,var(--accent, #00F1FF) 30%,var(--sn-line-2))}.card-next:before{content:"";position:absolute;top:0;right:0;width:240px;height:240px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--accent, #00F1FF) 18%,transparent),transparent 60%);transform:translate(40%,-40%);pointer-events:none}.next-tag{display:inline-flex;font-family:var(--sn-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;padding:4px 10px;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);border-radius:var(--r-pill);margin-bottom:12px}.next-space{margin-bottom:14px}.next-when{display:flex;align-items:center;gap:10px;font-size:14px;margin-bottom:8px;color:#f4f1e8d9}.next-price{display:flex;justify-content:space-between;align-items:center;margin-top:16px;padding-top:16px;border-top:1px solid var(--sn-line)}.next-price span:first-child{font-family:var(--sn-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase}.next-price-val{font-family:var(--sn-display);font-weight:900;font-size:28px;line-height:1}.next-empty{text-align:center;padding:8px 0}.quick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:12px 0 0}@media (min-width: 640px){.quick-grid{grid-template-columns:repeat(4,1fr)}}.quick-action{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:18px 16px;background:var(--sn-ink-2);border:1px solid var(--sn-line);border-radius:var(--r-lg);color:var(--sn-bone);cursor:pointer;text-align:left;font-family:var(--sn-mono);font-size:13px;letter-spacing:.04em;transition:all .2s ease;text-decoration:none}.quick-action svg{color:var(--accent)}.quick-cyan{--accent: #00F1FF}.quick-magenta{--accent: #FF019A}.quick-lime{--accent: #06E176}.quick-violet{--accent: #9B00E8}.quick-action:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 12px 30px -10px color-mix(in srgb,var(--accent) 30%,transparent)}.card-stats{padding:0;overflow:hidden}.stat-row{display:grid;grid-template-columns:repeat(3,1fr)}.stat-item{padding:18px 14px;border-right:1px solid var(--sn-line);display:flex;flex-direction:column;gap:4px}.stat-item:last-child{border-right:none}.stat-label{font-family:var(--sn-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#f4f1e899}.stat-val{font-family:var(--sn-display);font-weight:900;font-size:clamp(20px,4vw,28px);line-height:1.1}.card-dog{padding:0;overflow:hidden}.dog-photo{position:relative;aspect-ratio:4/3;overflow:hidden}.dog-photo img{width:100%;height:100%;object-fit:cover}.dog-photo-empty{width:100%;height:100%;background:var(--sn-ink-3);display:flex;align-items:center;justify-content:center;font-family:var(--sn-display);font-size:80px;color:var(--accent, #00F1FF)}.dog-photo-grad{position:absolute;inset:0;background:linear-gradient(0deg,rgba(7,5,14,.95) 0%,transparent 50%)}.dog-photo-overlay{position:absolute;left:20px;right:20px;bottom:16px}.dog-name{font-family:var(--sn-display);font-weight:900;text-transform:uppercase;font-size:clamp(28px,6vw,40px);line-height:1.05;margin:0}.dog-meta{margin:4px 0 0;font-family:var(--sn-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#f4f1e8cc}.dog-body{padding:18px 20px 22px}.dog-bio{color:#f4f1e8d9;margin:0 0 16px;font-size:15px}.dog-energy{display:flex;flex-direction:column;gap:6px;margin:0 0 14px}.dog-energy-label{font-family:var(--sn-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#f4f1e899}.dog-energy-bars{display:flex;gap:4px}.energy-bar{width:100%;height:6px;background:var(--sn-line-2);border-radius:3px;transition:all .2s ease}.energy-bar[data-on=true]{background:var(--accent);box-shadow:0 0 6px var(--accent)}.dog-loves{display:flex;flex-wrap:wrap;gap:6px}.card-toggle{display:flex;align-items:center;gap:16px}.card-toggle-text{flex:1}.card-toggle-text .text-dim{font-size:13px;margin:6px 0 0;line-height:1.5}.big-toggle{position:relative;display:inline-block;flex-shrink:0}.big-toggle input{position:absolute;opacity:0;pointer-events:none}.big-toggle-track{display:block;width:56px;height:32px;background:var(--sn-ink-3);border:1.5px solid var(--sn-line-2);border-radius:var(--r-pill);position:relative;cursor:pointer;transition:all .2s ease}.big-toggle-track:after{content:"";position:absolute;top:2px;left:2px;width:24px;height:24px;background:var(--sn-bone);border-radius:50%;transition:all .25s cubic-bezier(.2,.9,.2,1)}.big-toggle input:checked+.big-toggle-track{background:var(--sn-lime);border-color:var(--sn-lime);box-shadow:0 0 16px #06e17666}.big-toggle input:checked+.big-toggle-track:after{left:28px;background:var(--sn-ink)}.card-cal{padding:20px}.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.cal-nav{width:36px;height:36px;background:var(--sn-ink-3);border:1px solid var(--sn-line-2);border-radius:var(--r-md);color:var(--sn-bone);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.cal-nav:hover{color:var(--sn-cyan);border-color:var(--sn-cyan)}.cal-title{font-family:var(--sn-display);font-weight:900;text-transform:uppercase;font-size:clamp(18px,4vw,22px);margin:0}.cal-dow{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:4px}.cal-dow span{font-family:var(--sn-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#f4f1e880;text-align:center;padding:6px 0}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal-cell{aspect-ratio:1;background:var(--sn-ink-3);border-radius:var(--r-sm);display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;transition:all .2s ease}.cal-cell.is-blank{background:transparent}.cal-cell.is-today{background:color-mix(in srgb,var(--sn-cyan) 14%,var(--sn-ink-3));box-shadow:0 0 0 1.5px var(--sn-cyan)}.cal-num{font-family:var(--sn-display);font-weight:900;font-size:14px}.cal-dots{position:absolute;bottom:4px;left:50%;transform:translate(-50%);display:flex;gap:2px}.cal-dot{width:4px;height:4px;border-radius:50%}.cal-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:14px;padding-top:14px;border-top:1px solid var(--sn-line)}.legend-item{display:inline-flex;align-items:center;gap:6px;font-family:var(--sn-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#f4f1e8b3}.legend-dot{width:8px;height:8px;border-radius:50%}.legend-dot.text-cyan{background:var(--sn-cyan);box-shadow:0 0 8px var(--sn-cyan)}.legend-dot.text-lime{background:var(--sn-lime);box-shadow:0 0 8px var(--sn-lime)}.legend-dot.text-magenta{background:var(--sn-magenta);box-shadow:0 0 8px var(--sn-magenta)}.seg-tabs{display:flex;padding:4px;background:var(--sn-ink-3);border-radius:var(--r-pill);margin-bottom:16px}.seg-tab{flex:1;padding:10px 18px;background:transparent;color:#f4f1e8b3;border:none;border-radius:var(--r-pill);cursor:pointer;font-family:var(--sn-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase}.seg-tab.is-active{background:var(--sn-cyan);color:var(--sn-ink)}.bk-list{display:none;flex-direction:column;gap:10px}.bk-list[data-visible=true]{display:flex;animation:panel-in .3s}.bk-card{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:14px 16px;margin:0}.bk-card .bk-date{display:flex;flex-direction:column;align-items:center;padding:10px 12px;min-width:60px;background:var(--sn-ink-3);border:1px solid color-mix(in srgb,var(--accent) 40%,var(--sn-line-2));border-radius:var(--r-md)}.bk-card .bk-d{font-family:var(--sn-display);font-weight:900;font-size:22px;line-height:1;color:var(--accent)}.bk-card .bk-m{font-family:var(--sn-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#f4f1e8b3;margin-top:2px}.bk-card .bk-body{display:flex;flex-direction:column;gap:4px}.bk-card .bk-space{font-family:var(--sn-display);font-weight:900;font-size:16px;line-height:1.1;margin:0}.bk-card .bk-time{font-family:var(--sn-mono);font-size:11px;letter-spacing:.06em;color:#f4f1e8b3;margin:0}.bk-card .bk-end{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.bk-card .bk-price{font-family:var(--sn-display);font-weight:900;font-size:18px;color:var(--accent)}.bk-card .bk-cancel{background:transparent;border:1px solid var(--sn-line-2);color:var(--sn-magenta);border-radius:var(--r-pill);padding:4px 10px;font-family:var(--sn-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer}.bk-card .bk-cancel:hover{border-color:var(--sn-magenta)}.bk-card .bk-status{font-family:var(--sn-mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;padding:2px 8px;border-radius:var(--r-pill);width:fit-content}.status-pending{background:#ffb15224;color:var(--sn-orange);border:1px solid rgba(255,177,82,.4)}.status-confirmed{background:#00f1ff1f;color:var(--sn-cyan);border:1px solid rgba(0,241,255,.4)}.status-paid{background:#06e17624;color:var(--sn-lime);border:1px solid rgba(6,225,118,.4)}.status-cancelled{background:#ff019a1f;color:var(--sn-magenta);border:1px solid rgba(255,1,154,.4)}.status-done{background:#9b00e824;color:var(--sn-violet);border:1px solid rgba(155,0,232,.4)}.empty-block{padding:32px 18px;text-align:center;background:var(--sn-ink-2);border:1px dashed var(--sn-line-2);border-radius:var(--r-lg)}.empty-block .text-dim{margin:0}.card-total{background:radial-gradient(ellipse at top right,rgba(6,225,118,.18),transparent 70%),var(--sn-ink-2);border-color:#06e1764d;text-align:left;display:flex;flex-direction:column;gap:4px}.card-total-label{font-family:var(--sn-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#f4f1e8b3}.card-total-val{font-family:var(--sn-display);font-weight:900;font-size:clamp(36px,8vw,52px);line-height:1;color:var(--sn-lime);text-shadow:0 0 24px rgba(6,225,118,.5)}.card-total-sub{font-family:var(--sn-mono);font-size:11px;letter-spacing:.12em;color:#f4f1e899;margin-top:4px}.pay-list{display:flex;flex-direction:column;gap:6px}.pay-row{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:14px 16px;background:var(--sn-ink-2);border:1px solid var(--sn-line);border-radius:var(--r-md)}.pay-icon{width:40px;height:40px;background:var(--sn-ink-3);border-radius:var(--r-md);display:inline-flex;align-items:center;justify-content:center;color:var(--sn-cyan)}.pay-body{display:flex;flex-direction:column;gap:2px}.pay-desc{font-size:14px}.pay-meta{font-family:var(--sn-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#f4f1e899}.pay-amount{font-family:var(--sn-display);font-weight:900;font-size:18px}.community-hero{margin-bottom:16px}.comm-grid{display:grid;grid-template-columns:1fr;gap:14px}@media (min-width: 640px){.comm-grid{grid-template-columns:repeat(2,1fr)}}.comm-card{background:var(--sn-ink-2);border:1px solid var(--sn-line);border-radius:var(--r-lg);overflow:hidden;transition:all .3s ease}.comm-card:hover{border-color:var(--accent);transform:translateY(-2px)}.comm-photo{position:relative;aspect-ratio:4/3;overflow:hidden}.comm-photo img{width:100%;height:100%;object-fit:cover}.comm-photo-empty{width:100%;height:100%;background:var(--sn-ink-3)}.comm-status{position:absolute;top:12px;left:12px;display:inline-flex;align-items:center;gap:6px;padding:5px 10px;background:#07050eb3;backdrop-filter:blur(10px);border:1px solid rgba(6,225,118,.4);border-radius:var(--r-pill);font-family:var(--sn-mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--sn-lime)}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--sn-lime);box-shadow:0 0 10px var(--sn-lime);animation:pulse 1.8s ease-in-out infinite}.comm-body{padding:16px 18px 18px;display:flex;flex-direction:column;gap:8px}.comm-name{font-family:var(--sn-display);font-weight:900;text-transform:uppercase;font-size:22px;line-height:1.1;margin:0}.comm-meta{font-family:var(--sn-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#f4f1e899;margin:0}.comm-bio{font-size:14px;color:#f4f1e8d9;margin:0}.comm-loves{display:flex;flex-wrap:wrap;gap:4px}.comm-cta{padding:12px 14px;font-size:13px;justify-content:center;width:100%}.app-tabbar{position:fixed;bottom:0;left:0;right:0;z-index:100;display:grid;grid-template-columns:repeat(6,1fr);background:#07050eeb;backdrop-filter:blur(22px) saturate(140%);border-top:1px solid var(--sn-line-2);padding:8px 0 calc(8px + env(safe-area-inset-bottom,0))}.tab{display:flex;flex-direction:column;align-items:center;gap:2px;background:transparent;border:none;color:#f4f1e88c;cursor:pointer;padding:6px 4px;transition:all .2s ease;position:relative}.tab svg{transition:transform .25s cubic-bezier(.2,.9,.2,1)}.tab span{font-family:var(--sn-mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase}.tab.is-active{color:var(--sn-cyan)}.tab.is-active svg{transform:translateY(-2px) scale(1.1);filter:drop-shadow(0 0 8px var(--sn-cyan))}.tab.is-active:before{content:"";position:absolute;top:0;left:50%;width:24px;height:2px;background:var(--sn-cyan);border-radius:2px;transform:translate(-50%);box-shadow:0 0 12px var(--sn-cyan)}.bk-skeleton{height:80px;background:linear-gradient(90deg,var(--sn-ink-3) 0%,rgba(255,255,255,.04) 50%,var(--sn-ink-3) 100%);background-size:200% 100%;border-radius:var(--r-md);animation:bk-shimmer 1.4s linear infinite}@keyframes bk-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}
