@import"https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Be+Vietnam+Pro:ital,wght@0,300;0,400;0,500;0,600;1,400&display=swap";:root{--primary: #aa2c32;--primary-container: #ff7574;--primary-grad: linear-gradient(135deg,#aa2c32,#ff7574);--on-primary: #ffffff;--secondary: #6750a4;--secondary-container:#eaddff;--secondary-fixed-dim:#d0bcff;--on-secondary: #ffffff;--tertiary: #006a60;--tertiary-container: #9ef2e4;--on-tertiary: #ffffff;--surface: #f5f6f7;--surface-container: #ecedf0;--surface-container-low: #f0f1f4;--surface-container-high: #e5e6ea;--surface-container-highest:#dddee3;--surface-container-lowest: #ffffff;--on-surface: #2c2f30;--on-surface-variant: #44474e;--outline-variant: rgba(44,47,48,.15);--shadow-xs: 0 2px 8px rgba(44,47,48,.04);--shadow-sm: 0 4px 16px rgba(44,47,48,.06);--shadow-md: 0 8px 32px rgba(44,47,48,.08);--shadow-lg: 0 16px 48px rgba(44,47,48,.1);--shadow-xl: 0 32px 64px rgba(44,47,48,.12);--r-xs: .5rem;--r-sm: .75rem;--r-md: 1rem;--r-lg: 1.5rem;--r-xl: 2rem;--r-2xl: 3rem;--r-full: 100px;--font-display: "Plus Jakarta Sans", sans-serif;--font-body: "Be Vietnam Pro", sans-serif;--sidebar-w: 260px;--nav-h: 72px;--content-max: 680px;--red: var(--primary);--red-dark: #8a2228;--red-light: var(--primary-container);--red-muted: rgba(170,44,50,.08);--indigo: var(--secondary);--teal: var(--tertiary);--teal-dark: #004d44;--text: var(--on-surface);--text-muted: var(--on-surface-variant);--text-light: #72777d;--text-xlight: #9da3ab;--bg: var(--surface);--bg-card: var(--surface-container-lowest);--bg-muted: var(--surface-container-low);--bg-hover: var(--surface-container);--border: var(--outline-variant);--border-light:rgba(44,47,48,.08)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{height:100%;-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{font-family:var(--font-body);font-size:15px;line-height:1.5;background:var(--surface);color:var(--on-surface);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100%}#root{min-height:100dvh;display:flex;flex-direction:column}img{max-width:100%;display:block}button,input,textarea,select{font-family:var(--font-body);font-size:inherit;-webkit-tap-highlight-color:transparent}a{color:var(--secondary);text-decoration:none}h1,h2,h3,h4,h5{font-family:var(--font-display);font-weight:700;line-height:1.15;letter-spacing:-.02em}h1{font-size:clamp(1.8rem,4vw,2.6rem)}h2{font-size:clamp(1.3rem,3vw,1.8rem)}h3{font-size:1.1rem}p{line-height:1.65}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--surface-container-high);border-radius:10px}.app-shell{display:flex;min-height:100dvh}.main-area{flex:1;min-width:0;overflow-y:auto;padding-bottom:calc(var(--nav-h) + env(safe-area-inset-bottom,0px))}.page{max-width:var(--content-max);margin:0 auto;padding:20px 18px calc(var(--nav-h) + env(safe-area-inset-bottom,0px) + 20px);width:100%}@media (min-width:1024px){.sidebar{display:flex;flex-direction:column;width:var(--sidebar-w);min-height:100dvh;background:var(--surface-container-lowest);position:sticky;top:0;height:100dvh;overflow-y:auto;flex-shrink:0;box-shadow:var(--shadow-xs);z-index:50}.main-area{padding-bottom:0;background:var(--surface)}.page{padding:40px 32px 60px}.bottom-nav{display:none!important}}@media (min-width:1280px){:root{--sidebar-w:280px;--content-max:800px}.page{padding:48px 40px 60px}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-body);font-weight:600;font-size:.9rem;border:none;cursor:pointer;border-radius:var(--r-full);padding:13px 26px;transition:all .2s cubic-bezier(.34,1.56,.64,1);white-space:nowrap;-webkit-user-select:none;user-select:none;letter-spacing:-.01em;text-decoration:none}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none!important}.btn:hover:not(:disabled){transform:scale(1.02) translateY(-1px)}.btn-primary{background:var(--primary-grad);color:var(--on-primary);box-shadow:0 4px 16px #aa2c324d}.btn-primary:hover:not(:disabled){box-shadow:0 8px 24px #aa2c3266}.btn-secondary{background:var(--surface-container-highest);color:var(--secondary)}.btn-secondary:hover:not(:disabled){background:var(--secondary-fixed-dim);color:var(--secondary)}.btn-outline{background:transparent;color:var(--primary);border:2px solid var(--primary);padding:11px 24px}.btn-outline:hover:not(:disabled){background:var(--primary);color:#fff}.btn-ghost{background:transparent;color:var(--on-surface-variant)}.btn-ghost:hover:not(:disabled){background:var(--surface-container)}.btn-teal{background:var(--tertiary);color:#fff;box-shadow:0 4px 14px #006a6040}.btn-sm{padding:8px 18px;font-size:.8rem}.btn-lg{padding:16px 32px;font-size:1rem}.btn-xl{padding:18px 40px;font-size:1.05rem}.btn-block{width:100%}.btn-icon{width:40px;height:40px;padding:0;border-radius:var(--r-md)}.fab{width:56px;height:56px;border-radius:var(--r-xl);border:none;cursor:pointer;background:var(--secondary);color:#fff;font-size:1.5rem;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 24px #6750a466;transition:all .2s}.fab:hover{transform:scale(1.08);box-shadow:0 10px 32px #6750a480}.input-group{display:flex;flex-direction:column;gap:6px}.input-label{font-size:.72rem;font-weight:700;color:var(--on-surface-variant);text-transform:uppercase;letter-spacing:.07em}.input{width:100%;padding:13px 15px;border-radius:var(--r-md);border:none;background:var(--surface-container-high);font-family:var(--font-body);font-size:.95rem;color:var(--on-surface);transition:all .2s;outline:none}.input::placeholder{color:var(--text-xlight)}.input:focus{background:var(--surface-container-lowest);box-shadow:0 0 0 2px #6750a433}.card{background:var(--surface-container-lowest);border-radius:var(--r-xl);box-shadow:var(--shadow-sm);padding:22px}.card-hover{transition:transform .2s,box-shadow .2s;cursor:pointer}.card-hover:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.chip{display:inline-flex;align-items:center;gap:4px;padding:6px 14px;border-radius:var(--r-full);font-size:.78rem;font-weight:600;cursor:pointer;background:var(--tertiary-container);color:var(--tertiary);transition:all .15s;border:none}.chip:hover{background:var(--tertiary);color:#fff}.chip.active{background:var(--primary-grad);color:#fff}.chip-secondary{background:var(--secondary-container);color:var(--secondary)}.chip-secondary:hover{background:var(--secondary);color:#fff}.vibe-tag{display:inline-flex;align-items:center;gap:5px;padding:6px 14px;border-radius:var(--r-full);font-size:.78rem;font-weight:500;background:var(--surface-container);color:var(--on-surface-variant);cursor:pointer;transition:all .15s;border:none}.vibe-tag.active{background:var(--secondary-container);color:var(--secondary)}.vibe-tag:hover{background:var(--secondary-fixed-dim);color:var(--secondary)}.avatar{border-radius:50%;object-fit:cover;flex-shrink:0;background:var(--surface-container)}.avatar-xs{width:28px;height:28px}.avatar-sm{width:36px;height:36px}.avatar-md{width:48px;height:48px}.avatar-lg{width:72px;height:72px}.avatar-xl{width:96px;height:96px}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:var(--r-full);font-size:.72rem;font-weight:700}.badge-primary{background:#aa2c321a;color:var(--primary)}.badge-secondary{background:var(--secondary-container);color:var(--secondary)}.badge-teal{background:var(--tertiary-container);color:var(--tertiary)}.divider{height:1px;background:var(--outline-variant);margin:16px 0}.spinner{width:22px;height:22px;border-radius:50%;border:2.5px solid var(--surface-container-high);border-top-color:var(--primary);animation:spin .65s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:calc(var(--nav-h) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:#ffffffd9;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border-top:none;box-shadow:0 -4px 24px #2c2f300f;display:flex;align-items:center;justify-content:space-around;z-index:100}.progress-track{height:8px;background:var(--surface-container-high);border-radius:var(--r-full);overflow:hidden}.progress-fill{height:100%;border-radius:var(--r-full);background:var(--primary-grad);transition:width .8s ease}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@keyframes fadeUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pop{0%{transform:scale(.88);opacity:0}65%{transform:scale(1.04)}to{transform:scale(1);opacity:1}}@keyframes slideIn{0%{transform:translate(28px);opacity:0}to{transform:none;opacity:1}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:none}}@keyframes floatBubble{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.anim-fade-up{animation:fadeUp .4s cubic-bezier(.22,1,.36,1) both}.anim-fade-in{animation:fadeIn .3s ease both}.anim-pop{animation:pop .35s cubic-bezier(.34,1.56,.64,1) both}.anim-slide-in{animation:slideIn .3s cubic-bezier(.22,1,.36,1) both}.anim-slide-up{animation:slideUp .4s cubic-bezier(.22,1,.36,1) both}.skeleton{background:linear-gradient(90deg,var(--surface-container) 25%,var(--surface-container-high) 50%,var(--surface-container) 75%);background-size:200% 100%;animation:shimmer 1.4s ease-in-out infinite;border-radius:var(--r-sm)}@keyframes shimmer{0%,to{background-position:0 0}50%{background-position:-100% 0}}.story-ring{background:linear-gradient(135deg,var(--primary),var(--primary-container),var(--secondary));padding:2.5px;border-radius:50%}.story-ring-inner{background:var(--surface-container-lowest);padding:2px;border-radius:50%}.glass{background:#ffffffb3;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}.glass-dark{background:#2c2f30b3;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}.page-header{display:flex;align-items:center;gap:12px;padding:0 0 20px}.page-title{font-family:var(--font-display);font-size:1.6rem;font-weight:800;letter-spacing:-.03em}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:64px 24px;gap:12px}.empty-state-icon{font-size:56px;margin-bottom:4px}.empty-state h3{font-family:var(--font-display);font-size:1.3rem}.empty-state p{color:var(--on-surface-variant);max-width:300px;line-height:1.65}
