.search-sheet.search-sheet{top:calc(var(--vv-offset-top, 0px) + env(safe-area-inset-top,0px) + 44px);bottom:calc(100dvh - var(--vv-offset-top, 0px) - var(--app-height, 100dvh));margin-top:0;height:auto;max-height:none;border-radius:var(--radius-hero, 20px) var(--radius-hero, 20px) 0 0;padding-bottom:env(safe-area-inset-bottom,0px);overflow:hidden}:root{--portal-primary: #1E3A5F;--portal-primary-light: #3B82F6;--portal-accent: #3B82F6;--portal-success: #10B981;--portal-warning: #F59E0B;--portal-error: #EF4444;--portal-background: #F8FAFC;--portal-surface: #FFFFFF;--portal-surface-elevated: #FFFFFF;--portal-text-primary: #0F172A;--portal-text-secondary: #475569;--portal-text-tertiary: #94A3B8;--portal-text-inverse: #FFFFFF;--portal-border: #E2E8F0;--portal-border-light: #F1F5F9;--portal-page-inset: 16px;--portal-card-radius: 16px;--portal-touch-target: 48px;--portal-bottom-nav-height: 64px;--portal-safe-area-top: env(safe-area-inset-top, 0px);--portal-safe-area-bottom: env(safe-area-inset-bottom, 0px);--portal-safe-area-left: env(safe-area-inset-left, 0px);--portal-safe-area-right: env(safe-area-inset-right, 0px)}.portal-root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:15px;line-height:1.5;color:var(--portal-text-primary);background-color:var(--portal-background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.portal-root *{touch-action:manipulation}.portal-safe-top{padding-top:var(--portal-safe-area-top)}.portal-safe-bottom{padding-bottom:var(--portal-safe-area-bottom)}.portal-safe-x{padding-left:var(--portal-safe-area-left);padding-right:var(--portal-safe-area-right)}.portal-page{min-height:100vh;min-height:100dvh;padding-bottom:calc(var(--portal-bottom-nav-height) + var(--portal-safe-area-bottom) + 16px)}.portal-card{background:var(--portal-surface);border-radius:var(--portal-card-radius);box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a;transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s cubic-bezier(.4,0,.2,1)}.portal-card:active{transform:scale(.98)}.portal-card-elevated{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a}.portal-button{min-height:var(--portal-touch-target);padding:12px 24px;border-radius:12px;font-weight:600;font-size:15px;transition:all .15s cubic-bezier(.4,0,.2,1);display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;border:none}.portal-button:active{transform:scale(.98)}.portal-button-primary{background-color:var(--portal-primary);color:var(--portal-text-inverse)}.portal-button-primary:hover{opacity:.9}.portal-button-secondary{background-color:var(--portal-background);color:var(--portal-text-primary);border:1px solid var(--portal-border)}.portal-button-secondary:hover{background-color:var(--portal-border-light)}.portal-bottom-nav{position:fixed;bottom:0;left:0;right:0;height:calc(var(--portal-bottom-nav-height) + var(--portal-safe-area-bottom));padding-bottom:var(--portal-safe-area-bottom);background:var(--portal-surface);border-top:1px solid var(--portal-border);display:flex;align-items:center;justify-content:space-around;z-index:100}.portal-bottom-nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:var(--portal-touch-target);min-height:var(--portal-touch-target);padding:8px 16px;color:var(--portal-text-tertiary);text-decoration:none;font-size:10px;font-weight:500;gap:4px;transition:color .15s ease}.portal-bottom-nav-item.active{color:var(--portal-primary)}.portal-bottom-nav-item svg{width:24px;height:24px}.portal-progress{height:8px;background:var(--portal-border-light);border-radius:4px;overflow:hidden}.portal-progress-fill{height:100%;background:var(--portal-primary);border-radius:4px;transition:width .5s cubic-bezier(.4,0,.2,1)}.portal-input{min-height:var(--portal-touch-target);padding:12px 16px;border:1px solid var(--portal-border);border-radius:12px;font-size:16px;background:var(--portal-surface);color:var(--portal-text-primary);width:100%;transition:border-color .15s ease,box-shadow .15s ease}.portal-input:focus{outline:none;border-color:var(--portal-primary);box-shadow:0 0 0 3px var(--portal-primary) 20}.portal-input::-moz-placeholder{color:var(--portal-text-tertiary)}.portal-input::placeholder{color:var(--portal-text-tertiary)}.portal-skeleton{background:linear-gradient(90deg,var(--portal-border-light) 0%,var(--portal-border) 50%,var(--portal-border-light) 100%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:8px}.portal-badge{display:inline-flex;align-items:center;padding:4px 12px;border-radius:9999px;font-size:12px;font-weight:600}.portal-badge-success{background:#d1fae5;color:#059669}.portal-badge-warning{background:#fef3c7;color:#d97706}.portal-badge-error{background:#fee2e2;color:#dc2626}.portal-badge-info{background:#dbeafe;color:#2563eb}.portal-badge-default{background:var(--portal-border-light);color:var(--portal-text-secondary)}.portal-focus-visible:focus-visible{outline:none;box-shadow:0 0 0 2px var(--portal-surface),0 0 0 4px var(--portal-primary)}.portal-hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.portal-hide-scrollbar::-webkit-scrollbar{display:none}.portal-text-primary{color:var(--portal-text-primary)}.portal-text-secondary{color:var(--portal-text-secondary)}.portal-text-tertiary{color:var(--portal-text-tertiary)}.portal-text-accent{color:var(--portal-primary)}@media(min-width:640px){:root{--portal-page-inset: 24px}}@media(min-width:1024px){:root{--portal-page-inset: 32px}}@media(prefers-reduced-motion:reduce){.portal-card,.portal-button,.portal-progress-fill,.portal-input{transition:none}.portal-animate-fade-in,.portal-animate-slide-in-right,.portal-animate-slide-in-bottom,.portal-animate-scale-in,.portal-animate-card-press,.portal-animate-success,.portal-animate-spin,.portal-animate-pulse,.portal-animate-shimmer{animation:none}}@keyframes slideInFromRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideOutToLeft{0%{transform:translate(0);opacity:1}to{transform:translate(-100%);opacity:0}}@keyframes slideInFromLeft{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideInFromBottom{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideInFromTop{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes scaleIn{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}@keyframes scaleOut{0%{transform:scale(1);opacity:1}to{transform:scale(.95);opacity:0}}@keyframes cardPress{0%,to{transform:scale(1)}50%{transform:scale(.98)}}@keyframes progressFill{0%{width:0}to{width:var(--progress-width, 100%)}}@keyframes checkmarkDraw{0%{stroke-dashoffset:24}to{stroke-dashoffset:0}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10%)}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-5px)}20%,40%,60%,80%{transform:translate(5px)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes successPop{0%{transform:scale(0);opacity:0}50%{transform:scale(1.2)}to{transform:scale(1);opacity:1}}@keyframes confetti{0%{transform:translateY(0) rotate(0);opacity:1}to{transform:translateY(100vh) rotate(720deg);opacity:0}}@keyframes pullRefreshSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes countUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes connectorGrow{0%{height:0}to{height:100%}}@keyframes glowPulse{0%,to{box-shadow:0 0 0 0 var(--portal-primary, #1E3A5F) 40}50%{box-shadow:0 0 20px 5px var(--portal-primary, #1E3A5F) 20}}.portal-animate-fade-in{animation:fadeIn .2s cubic-bezier(0,0,.2,1) forwards}.portal-animate-slide-in-right{animation:slideInFromRight .3s cubic-bezier(.23,1,.32,1) forwards}.portal-animate-slide-in-bottom{animation:slideInFromBottom .3s cubic-bezier(.23,1,.32,1) forwards}.portal-animate-scale-in{animation:scaleIn .2s cubic-bezier(.175,.885,.32,1.275) forwards}.portal-animate-card-press{animation:cardPress .15s cubic-bezier(.4,0,.2,1)}.portal-animate-success{animation:successPop .5s cubic-bezier(.175,.885,.32,1.275) forwards}.portal-animate-spin{animation:spin 1s linear infinite}.portal-animate-pulse{animation:pulse 1.5s ease-in-out infinite}.portal-animate-shimmer{background:linear-gradient(90deg,#f1f5f9,#e2e8f0,#f1f5f9);background-size:200% 100%;animation:shimmer 1.5s infinite}.portal-animate-shake{animation:shake .4s cubic-bezier(.4,0,.2,1)}.portal-animate-count-up{animation:countUp .4s cubic-bezier(.23,1,.32,1) forwards}@keyframes floatOrb{0%,to{transform:translate(0) scale(1)}25%{transform:translate(10px,-15px) scale(1.05)}50%{transform:translate(-5px,10px) scale(.95)}75%{transform:translate(-15px,-5px) scale(1.02)}}@keyframes floatOrbReverse{0%,to{transform:translate(0) scale(1)}25%{transform:translate(-15px,10px) scale(.98)}50%{transform:translate(10px,-10px) scale(1.03)}75%{transform:translate(5px,15px) scale(.97)}}@keyframes floatOrbSlow{0%,to{transform:translate(0) scale(1) rotate(0)}33%{transform:translate(20px,-10px) scale(1.1) rotate(5deg)}66%{transform:translate(-10px,20px) scale(.9) rotate(-5deg)}}@keyframes glowPulseSubtle{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.2)}}@keyframes navIndicatorSlide{0%{transform:scaleX(0);opacity:0}to{transform:scaleX(1);opacity:1}}@keyframes cardLift{0%{transform:translateY(0);box-shadow:0 1px 2px #0000000a,0 2px 4px #0000000a}to{transform:translateY(-4px);box-shadow:0 4px 8px #0000000f,0 8px 16px #00000014,0 16px 32px #0000000f}}@keyframes statCountUp{0%{opacity:0;transform:translateY(20px) scale(.8)}60%{opacity:1;transform:translateY(-5px) scale(1.05)}to{transform:translateY(0) scale(1)}}@keyframes progressRingFill{0%{stroke-dashoffset:var(--circumference, 283)}to{stroke-dashoffset:var(--progress-offset, 0)}}@keyframes staggerFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes buttonShine{0%{left:-100%}to{left:200%}}@keyframes iconBounce{0%,to{transform:scale(1)}50%{transform:scale(.85)}75%{transform:scale(1.1)}}@keyframes breathe{0%,to{transform:scale(1);opacity:.8}50%{transform:scale(1.02);opacity:1}}.portal-float-orb{animation:floatOrb 20s ease-in-out infinite}.portal-float-orb-reverse{animation:floatOrbReverse 25s ease-in-out infinite}.portal-float-orb-slow{animation:floatOrbSlow 30s ease-in-out infinite}.portal-glow-pulse{animation:glowPulseSubtle 2s ease-in-out infinite}.portal-stat-animate{animation:statCountUp .6s cubic-bezier(.34,1.56,.64,1) forwards}.portal-stagger-1{animation-delay:0ms}.portal-stagger-2{animation-delay:50ms}.portal-stagger-3{animation-delay:.1s}.portal-stagger-4{animation-delay:.15s}.portal-stagger-5{animation-delay:.2s}.portal-card-interactive{transition:transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .2s cubic-bezier(.4,0,.2,1)}.portal-card-interactive:hover{transform:translateY(-2px)}.portal-card-interactive:active{transform:translateY(0) scale(.98)}.portal-icon-bounce:active{animation:iconBounce .2s cubic-bezier(.34,1.56,.64,1)}.portal-breathe{animation:breathe 3s ease-in-out infinite}.portal-nav-indicator{transition:transform .3s cubic-bezier(.34,1.56,.64,1),width .3s cubic-bezier(.34,1.56,.64,1)}.portal-color-transition{transition:color .15s ease,background-color .15s ease,border-color .15s ease}.portal-progress-ring{transition:stroke-dashoffset .8s cubic-bezier(.4,0,.2,1)}.portal-viewport-enter{opacity:0;transform:translateY(20px);transition:opacity .4s ease,transform .4s cubic-bezier(.34,1.56,.64,1)}.portal-viewport-enter.visible{opacity:1;transform:translateY(0)}
