:root{--skater-primary:#356AE6;--skater-primary-dark:#1E4FCC;--skater-secondary:#7C4DFF;--skater-accent:#2DD4BF;--skater-error:#D32F2F;--skater-surface:#FFFFFF;--skater-surface-container:#F7F9FF;--skater-surface-container-high:#EEF1FA;--skater-on-surface:#0D1129;--skater-on-surface-variant:#5B6678;--skater-outline-variant:#E2E8F5;--card-bg-office:linear-gradient(180deg,#F2F5FA,#E7ECF5);--card-bg-neon:linear-gradient(180deg,#111933,#27325C);--card-bg-sunset:linear-gradient(180deg,#FFE5CD,#FFB790);--card-bg-forest:linear-gradient(180deg,#D8F2E1,#B5DEC8);--card-bg-ocean:linear-gradient(180deg,#DCEEFF,#A8CCF5);--card-bg-graphite:linear-gradient(180deg,#E8EBF3,#C3CCD9);--card-bg-sand:linear-gradient(180deg,#FFF1D8,#F0D2A7);--card-bg-default:linear-gradient(180deg,#ECEFF6,#DDE5F4);--sp-xxs:4px;--sp-xs:8px;--sp-sm:12px;--sp-md:16px;--sp-lg:24px;--sp-xl:32px;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:24px}*{box-sizing:border-box;margin:0;padding:0}html{height:-webkit-fill-available;height:100%}body{min-height:100%;min-height:-webkit-fill-available;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:var(--skater-surface-container);color:var(--skater-on-surface);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}.safe-top{padding-top:env(safe-area-inset-top)}.safe-bottom{padding-bottom:env(safe-area-inset-bottom)}.swipe-label-apply{color:var(--skater-primary);border:3px solid var(--skater-primary)}.swipe-label-pass{color:var(--skater-error);border:3px solid var(--skater-error)}.card-draggable{touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}@keyframes spin{to{transform:rotate(1turn)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes slideUpSheet{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes shimmer{0%{background-position:-600px 0}to{background-position:600px 0}}@keyframes pulse-glow{0%,to{box-shadow:0 0 0 0 rgba(53,106,230,0)}50%{box-shadow:0 0 16px 4px rgba(53,106,230,.35)}}@keyframes ring-expand{0%{transform:scale(.85);opacity:.7}to{transform:scale(1.5);opacity:0}}@keyframes bounce-in{0%{transform:scale(0) rotate(-15deg);opacity:0}55%{transform:scale(1.18) rotate(8deg);opacity:1}75%{transform:scale(.94) rotate(-4deg)}to{transform:scale(1) rotate(0deg);opacity:1}}@keyframes checkPop{0%{transform:scale(0) rotate(-10deg);opacity:0}60%{transform:scale(1.25) rotate(5deg);opacity:1}to{transform:scale(1) rotate(0deg);opacity:1}}@keyframes statusDot{0%,to{transform:scale(1)}50%{transform:scale(1.6)}}.sk-shimmer{background:linear-gradient(90deg,var(--skater-surface-container-high) 0,rgba(255,255,255,.85) 45%,var(--skater-surface-container-high) 90%);background-size:600px 100%;animation:shimmer 1.6s ease-in-out infinite}.anim-fade-up{animation:fadeInUp .32s cubic-bezier(.22,.68,0,1.2) both}.anim-scale-in{animation:scaleIn .24s cubic-bezier(.22,.68,0,1.2) both}.anim-fade-in{animation:fadeIn .22s ease both}.anim-slide-up{animation:slideUpSheet .36s cubic-bezier(.32,.72,0,1) both}.tap-highlight{transition:transform .12s cubic-bezier(.22,.68,0,1.2),opacity .12s}.tap-highlight:active{transform:scale(.955);opacity:.85}@media (hover:hover){.tap-highlight:hover{opacity:.92}.glass-card.tap-highlight:hover{background:#FBFCFF;border-color:#D1D9F0}}.glass-card{background:#FFFFFF;border:1px solid #eef1fa;box-shadow:0 1px 4px rgba(13,17,41,.04)}input,select,textarea{font-family:inherit;color:var(--skater-on-surface)}input::placeholder,textarea::placeholder{color:var(--skater-on-surface-variant)}.scroll-native{overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;scroll-behavior:smooth}.ring-pulse{animation:ring-expand 2.2s ease-out infinite}.bubble-sent{background:linear-gradient(135deg,#356AE6,#5B44FF);color:#fff;border-radius:18px 18px 4px 18px;max-width:80%;align-self:flex-end}.bubble-recv{background:#FFFFFF;border:1px solid #e2e8f5;color:var(--skater-on-surface);border-radius:18px 18px 18px 4px;max-width:80%;align-self:flex-start}.keyboard-safe-bottom{padding-bottom:max(env(safe-area-inset-bottom),8px)}body,html{overscroll-behavior:none}.anim-bounce-in{animation:bounce-in .48s cubic-bezier(.22,.68,0,1.2) both}@keyframes like-pop{0%{transform:scale(1)}35%{transform:scale(1.28)}60%{transform:scale(.92)}to{transform:scale(1)}}.anim-like-pop{animation:like-pop .42s cubic-bezier(.22,.68,0,1.2)}@keyframes card-enter{0%{opacity:0;transform:translateY(20px) scale(.96) rotate(-.8deg)}to{opacity:1;transform:translateY(0) scale(1) rotate(0)}}.anim-card-enter{animation:card-enter .44s cubic-bezier(.22,.68,0,1.2) both}@keyframes float-soft{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.anim-float{animation:float-soft 3.2s ease-in-out infinite}@keyframes gradient-x{0%,to{background-position:0 50%}50%{background-position:100% 50%}}.anim-gradient{background-size:200% 200%;animation:gradient-x 4s ease infinite}@keyframes success-ring{0%{box-shadow:0 0 0 0 rgba(45,212,191,.5)}to{box-shadow:0 0 0 16px rgba(45,212,191,0)}}.anim-success-ring{animation:success-ring .7s ease-out}@keyframes wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-5deg)}75%{transform:rotate(5deg)}}.anim-wiggle{animation:wiggle .36s ease-in-out}@media (prefers-reduced-motion:reduce){.anim-card-enter,.anim-float,.anim-gradient,.anim-like-pop,.anim-success-ring,.anim-wiggle{animation:none}}@view-transition{navigation:auto}::view-transition-old(root){animation:fade-out .2s ease both}::view-transition-new(root){animation:fade-in-up-page .22s ease both}@keyframes fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.98)}}@keyframes fade-in-up-page{0%{opacity:0;transform:translateY(6px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}@media (prefers-reduced-motion:reduce){::view-transition-new(root),::view-transition-old(root){animation:none}}:focus-visible{outline:2px solid var(--skater-primary);outline-offset:2px;border-radius:4px}*{-webkit-overflow-scrolling:touch}[role=button],a,button{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.list-row{contain:layout style}img{display:block;max-width:100%;content-visibility:auto}.app-shell{display:flex;flex-direction:column;height:100dvh;max-width:480px;margin:0 auto;background:var(--skater-surface-container);position:relative}.app-content{flex:1 1;overflow:hidden;position:relative}.app-sidebar{display:none}.app-bottom-nav{display:flex}@media (min-width:768px){.app-shell{flex-direction:row;max-width:100%;width:100%;height:100dvh;background:var(--skater-surface-container)}.app-sidebar{display:flex;flex-direction:column;width:220px;min-width:220px;flex-shrink:0;border-right:1px solid rgba(255,255,255,.06);background:#FFFFFF;padding:20px 10px 16px;gap:3px;overflow-y:auto;position:relative;z-index:10}.app-sidebar-brand{padding:0 10px 18px;font-weight:900;font-size:1.25rem;letter-spacing:-.02em;background:linear-gradient(100deg,#356AE6,#7C4DFF);-webkit-background-clip:text;-webkit-text-fill-color:transparent;flex-shrink:0}.app-sidebar-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;text-decoration:none;color:var(--skater-on-surface-variant);font-size:.88rem;font-weight:500;transition:background .15s,color .15s;position:relative;cursor:pointer;border:none;background:transparent;width:100%;text-align:left}.app-sidebar-item:hover{background:rgba(255,255,255,.05);color:var(--skater-on-surface)}.app-sidebar-item.active{background:rgba(53,106,230,.14);color:#7FB3FF;font-weight:700}.app-sidebar-item .s-icon{font-size:1.1rem;width:26px;text-align:center;flex-shrink:0}.app-sidebar-item .s-badge{margin-left:auto;min-width:18px;height:18px;border-radius:999px;background:linear-gradient(135deg,#E64A35,#FF6B6B);color:#fff;font-size:.55rem;font-weight:900;display:flex;align-items:center;justify-content:center;padding:0 4px;box-shadow:0 2px 6px rgba(230,74,53,.5)}.app-content{flex:1 1;overflow:hidden;position:relative;display:flex;justify-content:center}.app-content>*{max-width:640px;width:100%}.app-bottom-nav{display:none}}.img-reveal{opacity:0;transition:opacity .28s ease}.img-reveal.loaded{opacity:1}@keyframes typing-dot{0%,60%,to{transform:translateY(0);opacity:.35}30%{transform:translateY(-5px);opacity:1}}@keyframes match-pop{0%{transform:scale(.5) rotate(-10deg);opacity:0}60%{transform:scale(1.2) rotate(6deg);opacity:1}80%{transform:scale(.92) rotate(-3deg)}to{transform:scale(1) rotate(0);opacity:1}}.anim-match-pop{animation:match-pop .5s cubic-bezier(.22,.68,0,1.2) both}@keyframes slideInRight{0%{transform:translateX(32px);opacity:0}to{transform:translateX(0);opacity:1}}.anim-slide-right{animation:slideInRight .28s cubic-bezier(.22,.68,0,1.2) both}@keyframes slow-pulse{0%,to{opacity:1}50%{opacity:.5}}.anim-slow-pulse{animation:slow-pulse 2s ease-in-out infinite}@keyframes number-flip{0%{transform:translateY(-50%) rotateX(90deg);opacity:0}to{transform:translateY(0) rotateX(0deg);opacity:1}}.anim-number{animation:number-flip .3s cubic-bezier(.22,.68,0,1.2) both;display:inline-block}@keyframes confetti-fall{0%{transform:translateY(0) rotate(0deg) scale(1);opacity:.9}80%{opacity:.7}to{transform:translateY(105dvh) rotate(2turn) scale(.6);opacity:0}}