:root{--bg-primary:#050a14;--bg-secondary:#0a1122;--bg-tertiary:#0d1528;--bg-elevated:#162040;--bg-hover:#131d35;--bg-surface:#0d1528;--glass-bg:#0d152899;--glass-border:#ffffff14;--glass-bg-hover:#0d1528bf;--glass-bg-strong:#0d1528d9;--glass-border-hover:#ffffff26;--glass-blur:16px;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-tertiary:#7b8ba2;--text-inverse:#050a14;--accent:#3b82f6;--accent-light:#60a5fa;--accent-lighter:#93c5fd;--accent-dark:#2563eb;--accent-darker:#1d4ed8;--accent-glow:#3b82f626;--accent-glow-strong:#3b82f640;--accent-glow-intense:#3b82f666;--accent-gradient:linear-gradient(135deg, #2563eb, #3b82f6, #60a5fa);--accent-gradient-wide:linear-gradient(135deg, #1d4ed8, #2563eb, #3b82f6, #60a5fa, #93c5fd);--accent-gradient-subtle:linear-gradient(135deg, #3b82f614, #60a5fa0a);--secondary:#8b5cf6;--secondary-light:#a78bfa;--secondary-glow:#8b5cf626;--secondary-bg:#8b5cf61a;--tertiary:#f59e0b;--tertiary-light:#fbbf24;--tertiary-glow:#f59e0b26;--success:#22c55e;--success-light:#4ade80;--success-bg:#22c55e1a;--warning:#f59e0b;--warning-light:#fbbf24;--warning-bg:#f59e0b1a;--danger:#ef4444;--danger-light:#f87171;--danger-bg:#ef44441a;--info:#06b6d4;--info-light:#22d3ee;--info-bg:#06b6d41a;--priority-low:#64748b;--priority-medium:#3b82f6;--priority-high:#f59e0b;--priority-urgent:#ef4444;--font-family:"Space Grotesk", system-ui, -apple-system, sans-serif;--fs-2xs:.625rem;--fs-xs:.75rem;--fs-sm:.875rem;--fs-base:1rem;--fs-md:1.125rem;--fs-lg:1.25rem;--fs-xl:1.375rem;--fs-2xl:1.5rem;--fs-3xl:2rem;--fs-4xl:2.5rem;--fw-light:300;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--fw-extrabold:800;--lh-tight:1.15;--lh-snug:1.3;--lh-normal:1.5;--lh-relaxed:1.65;--sp-0:0;--sp-px:1px;--sp-0-5:.125rem;--sp-1:.25rem;--sp-1-5:.375rem;--sp-2:.5rem;--sp-2-5:.625rem;--sp-3:.75rem;--sp-3-5:.875rem;--sp-4:1rem;--sp-5:1.25rem;--sp-6:1.5rem;--sp-7:1.75rem;--sp-8:2rem;--sp-10:2.5rem;--sp-12:3rem;--sp-16:4rem;--sp-20:5rem;--radius-xs:4px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-2xl:24px;--radius-3xl:28px;--radius-pill:9999px;--radius-full:50%;--shadow-xs:0 1px 2px #0006, inset 0 1px 0 #ffffff08;--shadow-sm:0 1px 4px #0006, inset 0 1px 0 #ffffff0a;--shadow-md:0 4px 12px #0006, inset 0 1px 0 #ffffff0d;--shadow-lg:0 8px 24px #00000080, inset 0 1px 0 #ffffff0d;--shadow-xl:0 12px 40px #0009, inset 0 1px 0 #ffffff0d;--shadow-glow:0 0 15px var(--accent-glow);--shadow-glow-lg:0 0 30px var(--accent-glow-strong);--shadow-card:0 2px 8px #0000004d, inset 0 1px 0 #ffffff0a;--shadow-card-hover:0 8px 24px #0006, inset 0 1px 0 #ffffff0f;--ease-default:cubic-bezier(.4, 0, .2, 1);--ease-bounce:cubic-bezier(.34, 1.56, .64, 1);--ease-spring:cubic-bezier(.175, .885, .32, 1.275);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in:cubic-bezier(.4, 0, 1, 1);--duration-fast:.15s;--duration-normal:.2s;--duration-slow:.3s;--duration-slower:.5s;--duration-entrance:.4s;--nav-height:64px;--sidebar-width:260px;--sidebar-collapsed:72px;--content-max-width:1080px;--safe-bottom:env(safe-area-inset-bottom,0px)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-size:16px}body{font-family:var(--font-family);font-size:var(--fs-base);font-weight:var(--fw-regular);line-height:var(--lh-normal);color:var(--text-primary);background:var(--bg-primary);height:100dvh;position:relative;overflow:hidden}body:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(600px 400px at 15% 20%,#3b82f60f 0%,#0000 70%),radial-gradient(500px 500px at 85% 70%,#8b5cf60d 0%,#0000 70%),radial-gradient(400px 300px at 50% 90%,#06b6d40a 0%,#0000 70%);animation:12s ease-in-out infinite bg-breathe;position:fixed;inset:0}@keyframes bg-breathe{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.03)}}a{color:var(--accent-light);text-decoration:none}a:hover{text-decoration:underline}img,svg{max-width:100%;display:block}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit;background:0 0;border:none;outline:none}button{cursor:pointer}ul,ol{list-style:none}*{scrollbar-width:thin;scrollbar-color:#ffffff14 transparent}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:2px}::-webkit-scrollbar-thumb:hover{background:#ffffff24}::selection{background:var(--accent);color:#fff}#app{height:100dvh;display:flex;overflow:hidden}.page-content{padding:var(--sp-6) var(--sp-5) calc(var(--nav-height) + var(--safe-bottom) + var(--sp-6));max-width:var(--content-max-width);width:100%;animation:pageEnter var(--duration-entrance) var(--ease-out) both;flex:1;margin:0 auto;overflow:hidden auto}@keyframes pageEnter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.sidebar{display:none}@media (width>=768px){.sidebar{width:var(--sidebar-width);-webkit-backdrop-filter:blur(20px);border-right:1px solid var(--glass-border);height:100dvh;padding:var(--sp-5) var(--sp-4);z-index:50;background:#0a1122d9;flex-direction:column;flex-shrink:0;display:flex;overflow-y:auto}.page-content{padding-bottom:var(--sp-10);padding-left:var(--sp-8);padding-right:var(--sp-8);max-width:none}.page-dashboard{max-width:1360px;padding-left:var(--sp-8);padding-right:var(--sp-8)}.bottom-nav{display:none!important}}@media (width>=1280px){.page-dashboard{max-width:1400px;padding-left:var(--sp-10);padding-right:var(--sp-10)}}@media (width>=768px){.page-standard{max-width:1400px}.page-wide{max-width:none;padding-left:clamp(1.5rem,3vw,3rem);padding-right:clamp(1.5rem,3vw,3rem)}}@media (width>=1280px){.page-wide{padding-left:clamp(2rem,4vw,4rem);padding-right:clamp(2rem,4vw,4rem)}}.bottom-nav{height:calc(var(--nav-height) + var(--safe-bottom));padding-bottom:var(--safe-bottom);-webkit-backdrop-filter:blur(24px);border-top:1px solid var(--glass-border);z-index:100;background:#050a14f7;justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0}@media (width>=768px){.bottom-nav{display:none}}.text-2xs{font-size:var(--fs-2xs)}.text-xs{font-size:var(--fs-xs)}.text-sm{font-size:var(--fs-sm)}.text-base{font-size:var(--fs-base)}.text-md{font-size:var(--fs-md)}.text-lg{font-size:var(--fs-lg)}.text-xl{font-size:var(--fs-xl)}.text-2xl{font-size:var(--fs-2xl)}.text-3xl{font-size:var(--fs-3xl)}.text-regular{font-weight:var(--fw-regular)}.text-medium{font-weight:var(--fw-medium)}.text-semibold{font-weight:var(--fw-semibold)}.text-bold{font-weight:var(--fw-bold)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.text-accent{color:var(--accent-light)}.text-success{color:var(--success)}.text-warning{color:var(--warning)}.text-danger{color:var(--danger)}.card{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--sp-5);box-shadow:var(--shadow-card);transition:all var(--duration-normal) var(--ease-out);position:relative}.card:hover{border-color:var(--glass-border-hover);box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}.card:active,.glass-card:active{transition-duration:50ms;transform:scale(.985)}.card-solid{background:var(--bg-secondary);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--sp-5);box-shadow:var(--shadow-sm)}.section-header{margin-bottom:var(--sp-4);justify-content:space-between;align-items:center;display:flex}.section-title{font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.08em}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}@keyframes popIn{0%{transform:scale(0)}70%{transform:scale(1.06)}to{transform:scale(1)}}@keyframes checkmark{0%{stroke-dashoffset:24px}to{stroke-dashoffset:0}}@keyframes fade-in-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes glow-pulse{0%,to{box-shadow:0 0 8px #3b82f61f}50%{box-shadow:0 0 18px #3b82f638}}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes float-heavy{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes gradient-shift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes breathe{0%,to{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.02)}}@keyframes slideInRight{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}@keyframes border-glow{0%,to{border-color:var(--glass-border)}50%{border-color:#3b82f633}}.animate-fade-in{animation:fadeIn var(--duration-normal) var(--ease-default)}.animate-slide-up{animation:slideUp var(--duration-slow) var(--ease-default)}.animate-scale-in{animation:scaleIn var(--duration-normal) var(--ease-default)}.stagger-children>*{animation:fadeInUp var(--duration-entrance) var(--ease-out) both}.stagger-children>:first-child{animation-delay:0s}.stagger-children>:nth-child(2){animation-delay:50ms}.stagger-children>:nth-child(3){animation-delay:.1s}.stagger-children>:nth-child(4){animation-delay:.15s}.stagger-children>:nth-child(5){animation-delay:.2s}.stagger-children>:nth-child(6){animation-delay:.25s}.stagger-children>:nth-child(7){animation-delay:.3s}.stagger-children>:nth-child(8){animation-delay:.35s}.stagger-children>:nth-child(9){animation-delay:.4s}.stagger-children>:nth-child(10){animation-delay:.45s}.stagger-children>:nth-child(11){animation-delay:.5s}.stagger-children>:nth-child(12){animation-delay:.55s}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:var(--sp-1)}.gap-2{gap:var(--sp-2)}.gap-3{gap:var(--sp-3)}.gap-4{gap:var(--sp-4)}.gap-6{gap:var(--sp-6)}.w-full{width:100%}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.hidden{display:none!important}.line-through{text-decoration:line-through}.page-loading{justify-content:center;align-items:center;min-height:40vh;display:flex}.page-spinner{border:2px solid #ffffff14;border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.7s linear infinite spin}.fade-in-up{animation:fadeInUp .4s var(--ease-out) both}.glass-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);transition:all var(--duration-normal) var(--ease-out)}.glass-card:hover{border-color:var(--glass-border-hover);box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}.card--no-lift:hover,.glass-card--no-lift:hover{box-shadow:var(--shadow-card);transform:none}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg,#ffffff0a 25%,#ffffff14 50%,#ffffff0a 75%) 0 0/200% 100%;animation:1.5s ease-in-out infinite shimmer}.skeleton-text{width:80%;height:14px;margin-bottom:var(--sp-2)}.skeleton-title{width:60%;height:20px;margin-bottom:var(--sp-3)}.skeleton-circle{border-radius:var(--radius-full)}.glow-accent{animation:3s ease-in-out infinite glow-pulse}.glow-border{animation:3s ease-in-out infinite border-glow}.text-gradient{background:var(--accent-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.text-gradient-wide{background:var(--accent-gradient-wide);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}[data-theme=light]{--bg-primary:#f8fafc;--bg-secondary:#f1f5f9;--bg-tertiary:#e2e8f0;--bg-elevated:#fff;--bg-hover:#e2e8f0;--bg-surface:#f1f5f9;--glass-bg:#ffffffb3;--glass-border:#00000014;--glass-bg-hover:#ffffffd9;--glass-bg-strong:#ffffffeb;--glass-border-hover:#00000026;--text-primary:#0f172a;--text-secondary:#475569;--text-tertiary:#94a3b8;--text-inverse:#f1f5f9;--accent:#2563eb;--accent-light:#3b82f6;--accent-dark:#1d4ed8;--accent-glow:#2563eb1a;--shadow-card:0 1px 3px #0000000f, 0 1px 2px #0000000a;--shadow-card-hover:0 4px 12px #00000014;--shadow-md:0 4px 12px #00000014;--shadow-lg:0 8px 24px #0000001a}[data-theme=light] body{color:#0f172a;background:#f8fafc}[data-theme=light] .card{background:#fffc;border-color:#00000014;box-shadow:0 1px 3px #0000000f}[data-theme=light] .sidebar{background:#1e293b}[data-theme=light] .form-input,[data-theme=light] .form-select,[data-theme=light] .form-textarea{color:#0f172a;background:#fff;border-color:#cbd5e1}[data-theme=light] .form-input:focus,[data-theme=light] .form-select:focus,[data-theme=light] .form-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #2563eb26}[data-theme=light] .modal-content{background:#fff;border-color:#0000001a}[data-theme=light] .bottom-nav{background:#ffffffe6;border-color:#00000014}[data-theme=light] .settings-account-card{background:#ef444408;border-color:#ef444426}[data-theme=light] .settings-actions{background:#f8fafc;border-color:#ef44440f}.onboarding-overlay{z-index:10000;-webkit-backdrop-filter:blur(8px);padding:var(--sp-4);background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.onboarding-card{background:var(--bg-secondary);border:1px solid var(--glass-border);border-radius:var(--radius-xl);width:100%;max-width:420px;padding:var(--sp-8) var(--sp-6);text-align:center;align-items:center;gap:var(--sp-4);flex-direction:column;animation:.3s ease-out onboarding-in;display:flex}@keyframes onboarding-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.onboarding-progress{gap:var(--sp-2);display:flex}.onboarding-dot{background:var(--bg-tertiary);border-radius:50%;width:8px;height:8px;transition:all .3s}.onboarding-dot.active{background:var(--accent);transform:scale(1.3)}.onboarding-dot.done{background:var(--accent-light)}.onboarding-icon{font-size:3.5rem;line-height:1}.onboarding-title{font-size:var(--fs-xl);font-weight:var(--fw-bold);color:var(--text-primary)}.onboarding-text{font-size:var(--fs-sm);color:var(--text-secondary);line-height:var(--lh-relaxed);max-width:340px}.onboarding-templates{gap:var(--sp-2);flex-wrap:wrap;justify-content:center;display:flex}.onboarding-template{align-items:center;gap:var(--sp-1-5);padding:var(--sp-2) var(--sp-3);background:var(--bg-tertiary);border:1px solid var(--glass-border);border-radius:var(--radius-pill);font-size:var(--fs-sm);color:var(--text-secondary);display:flex}.onboarding-xp-badge{font-size:var(--fs-2xl);font-weight:var(--fw-extrabold);color:var(--accent-light);padding:var(--sp-2) var(--sp-5);border-radius:var(--radius-pill);background:#3b82f61f}.onboarding-actions{gap:var(--sp-3);width:100%;margin-top:var(--sp-2);justify-content:center;display:flex}.nav-item{align-items:center;gap:var(--sp-0-5);padding:var(--sp-2) var(--sp-3);color:var(--text-tertiary);font-size:var(--fs-2xs);font-weight:var(--fw-semibold);border-radius:var(--radius-md);transition:color var(--duration-fast) var(--ease-default);cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;flex-direction:column;text-decoration:none;display:flex;position:relative}.nav-item svg{stroke-width:1.75px;width:20px;height:20px;transition:color var(--duration-fast) var(--ease-default)}.nav-item.active{color:var(--accent-light)}.bottom-nav .nav-item{padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-md)}.bottom-nav .nav-item.active{color:var(--accent-light);background:#3b82f61a}.more-overlay{z-index:109;background:0 0;transition:background .24s cubic-bezier(.32,.72,0,1);position:fixed;inset:0}.more-overlay.open{background:#00000080;transition-duration:.3s}.more-overlay.hidden{display:none}.more-sheet{-webkit-backdrop-filter:blur(24px);border:1px solid var(--glass-border);border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:var(--sp-2) var(--sp-4) var(--sp-6);box-shadow:var(--shadow-xl);z-index:110;background:#0a1122fa;border-bottom:none;max-height:60vh;transition:transform .24s cubic-bezier(.32,.72,0,1);position:fixed;bottom:0;left:0;right:0;overflow-y:auto;transform:translateY(100%)}.more-sheet.open{transition-duration:.3s;transform:translateY(0)}.more-sheet.hidden{display:none}.more-sheet-handle{border-radius:var(--radius-pill);width:36px;height:4px;margin:var(--sp-2) auto var(--sp-4);background:#fff3}.more-sheet-items{gap:var(--sp-1);flex-direction:column;display:flex}.more-sheet-item{align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);color:var(--text-secondary);font-size:var(--fs-base);font-weight:var(--fw-medium);border-radius:var(--radius-md);transition:all var(--duration-fast) var(--ease-default);-webkit-tap-highlight-color:transparent;text-decoration:none;display:flex}.more-sheet-item:hover{color:var(--text-primary);background:#ffffff0d;text-decoration:none}.more-sheet-item svg{flex-shrink:0;width:20px;height:20px}.nav-item:hover{color:var(--text-secondary);text-decoration:none}.nav-item.active:hover{color:var(--accent-light)}.sidebar .nav-item{gap:var(--sp-3);padding:var(--sp-2-5) var(--sp-4);font-size:var(--fs-sm);font-weight:var(--fw-medium);border-radius:var(--radius-md);letter-spacing:0;width:100%;color:var(--text-tertiary);transition:all var(--duration-fast) var(--ease-default);flex-direction:row}.sidebar .nav-item svg{width:18px;height:18px;transition:transform var(--duration-normal) var(--ease-default);flex-shrink:0}.sidebar .nav-item.active{color:var(--accent-light);font-weight:var(--fw-semibold);background:#3b82f61f}.sidebar .nav-item.active svg{color:var(--accent-light)}.sidebar .nav-item:hover:not(.active){color:var(--text-secondary);background:#ffffff0d}.sidebar .nav-item:hover svg{transform:scale(1.08)}.sidebar-logo{align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-4) var(--sp-4);margin-bottom:0;display:flex}.sidebar-logo-img{flex-shrink:0;width:auto;height:22px}.sidebar-logo-text{align-items:baseline;gap:var(--sp-1-5);display:flex}.sidebar-logo-brand{font-size:var(--fs-base);font-weight:var(--fw-bold);color:var(--text-primary);letter-spacing:.04em;text-transform:uppercase}.sidebar-logo-life{font-size:var(--fs-sm);font-weight:var(--fw-light);color:var(--accent-light);letter-spacing:.06em;text-transform:uppercase}.sidebar-divider{background:var(--glass-border);height:1px;margin:0 var(--sp-2) var(--sp-3)}.sidebar-nav{gap:var(--sp-0-5);flex-direction:column;flex:1;display:flex;overflow-y:auto}.sidebar-section-label{font-size:var(--fs-2xs);font-weight:var(--fw-bold);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.08em;padding:var(--sp-4) var(--sp-4) var(--sp-2)}.sidebar-footer{padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--glass-border);align-items:center;gap:var(--sp-3);cursor:pointer;border-radius:var(--radius-lg);transition:background var(--transition-fast);margin-top:auto;text-decoration:none;display:flex}.sidebar-footer:hover{background:var(--glass-bg)}.sidebar-footer-avatar{border-radius:var(--radius-full);background:var(--accent-glow);border:1px solid var(--accent);width:32px;height:32px;font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--accent-light);flex-shrink:0;justify-content:center;align-items:center;display:flex}.sidebar-footer-info{flex-direction:column;gap:1px;display:flex;overflow:hidden}.sidebar-footer-name{font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.sidebar-footer-level{font-size:var(--fs-2xs);color:var(--text-tertiary)}.btn{justify-content:center;align-items:center;gap:var(--sp-2);padding:var(--sp-2-5) var(--sp-5);border-radius:var(--radius-md);font-size:var(--fs-sm);font-weight:var(--fw-semibold);transition:all var(--duration-fast) var(--ease-default);cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;display:inline-flex;position:relative}.btn:active{transform:scale(.97)}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-dark)}.btn-secondary{background:var(--bg-tertiary);border:1px solid var(--glass-border);color:var(--text-primary)}.btn-secondary:hover{background:var(--bg-elevated);border-color:var(--glass-border-hover)}.btn-ghost{color:var(--text-secondary);padding:var(--sp-2)}.btn-ghost:hover{color:var(--text-primary);background:#ffffff0a}.btn-danger{background:var(--danger-bg);color:var(--danger-light);border:1px solid #ef44442e}.btn-danger:hover{background:#ef444429;border-color:#ef44444d}.btn-sm{padding:var(--sp-1-5) var(--sp-3);font-size:var(--fs-xs);border-radius:var(--radius-sm)}.btn-icon{border-radius:var(--radius-md);width:44px;height:44px;color:var(--text-tertiary);padding:0}.btn-icon:hover{color:var(--text-primary);background:#ffffff0d}.btn-icon svg{width:16px;height:16px}.btn:focus-visible,.fab:focus-visible,.nav-item:focus-visible,.tab:focus-visible,.more-sheet-item:focus-visible,.modal-close:focus-visible,.color-option:focus-visible,.toggle-switch input:focus-visible+.toggle-slider,.checkbox-wrapper input:focus-visible+.checkbox-visual{outline:2px solid var(--accent-light);outline-offset:2px}.btn:focus-visible{box-shadow:0 0 0 3px #3b82f640}.filter-chip{padding:var(--sp-2) var(--sp-4);border-radius:var(--radius-pill);border:1px solid var(--glass-border);color:var(--text-secondary);font-size:var(--fs-sm);font-weight:var(--fw-semibold);cursor:pointer;white-space:nowrap;transition:all var(--duration-fast) var(--ease-default);-webkit-tap-highlight-color:transparent;background:#ffffff08;flex-shrink:0;font-family:inherit}.filter-chip:hover{color:var(--text-primary);border-color:var(--glass-border-hover);background:#ffffff0f}.filter-chip.active{color:var(--accent-light);background:#3b82f626;border-color:#3b82f64d;box-shadow:0 0 12px #3b82f61a}input[type=date],input[type=time],input[type=datetime-local]{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);color:var(--text-primary);font-family:inherit;font-size:var(--fs-sm);padding:var(--sp-2) var(--sp-3);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}input[type=date]:focus,input[type=time]:focus,input[type=datetime-local]:focus{border-color:var(--accent);outline:none}input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.7);cursor:pointer}input[type=time]::-webkit-calendar-picker-indicator{filter:invert(.7);cursor:pointer}input[type=datetime-local]::-webkit-calendar-picker-indicator{filter:invert(.7);cursor:pointer}a:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,[role=button]:focus-visible,.card:focus-visible,.filter-chip:focus-visible,.period-chip:focus-visible,.filter-btn:focus-visible,.rem-filter-btn:focus-visible,.settings-theme-btn:focus-visible,.settings-avatar-option:focus-visible{outline:2px solid var(--accent-light);outline-offset:2px}.fab{bottom:calc(var(--nav-height) + var(--safe-bottom) + var(--sp-4));right:var(--sp-5);border-radius:var(--radius-full);background:var(--accent);color:#fff;cursor:pointer;z-index:90;width:52px;height:52px;transition:background var(--duration-fast) var(--ease-default), transform var(--duration-fast) var(--ease-default);-webkit-tap-highlight-color:transparent;border:none;justify-content:center;align-items:center;display:flex;position:fixed}.fab:hover{background:var(--accent-dark);transform:scale(1.05)}.fab:active{transform:scale(.95)}.fab svg{width:22px;height:22px}@media (width>=768px){.fab{bottom:var(--sp-8);right:var(--sp-8)}}.form-group{gap:var(--sp-2);flex-direction:column;display:flex}.form-label{font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--text-secondary)}.form-input,.form-select,.form-textarea{width:100%;padding:var(--sp-2-5) var(--sp-3);background:var(--bg-tertiary);border:1px solid var(--glass-border);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--fs-sm);transition:border-color var(--duration-fast) var(--ease-default)}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--accent);background:var(--bg-elevated);outline:none;box-shadow:0 0 0 3px #3b82f633}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-tertiary)}.form-select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23555555' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--sp-3) center;padding-right:var(--sp-10)}.form-textarea{resize:vertical;min-height:80px}.form-row{gap:var(--sp-3);grid-template-columns:1fr 1fr;display:grid}.color-options{gap:var(--sp-2);flex-wrap:wrap;display:flex}.color-option{border-radius:var(--radius-full);cursor:pointer;width:28px;height:28px;transition:transform var(--duration-fast) var(--ease-default);border:2px solid #0000}.color-option:hover{transform:scale(1.15)}.color-option.selected{border-color:var(--text-primary);box-shadow:0 0 0 2px var(--bg-primary), 0 0 0 4px var(--text-primary)}.modal-overlay{-webkit-backdrop-filter:blur(8px);z-index:200;animation:fadeIn var(--duration-fast) var(--ease-default);background:#0009;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}@media (width>=768px){.modal-overlay{align-items:center}}.modal-container{-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:var(--radius-xl) var(--radius-xl) 0 0;width:100%;max-width:480px;max-height:90dvh;animation:slideUp var(--duration-slow) var(--ease-out);box-shadow:var(--shadow-xl);background:#0a1122f2;position:relative;overflow-y:auto}@media (width>=768px){.modal-container{border-radius:var(--radius-xl)}}.modal-header{padding:var(--sp-5) var(--sp-5) var(--sp-3);z-index:1;border-bottom:1px solid var(--glass-border);background:#0a1122f2;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.modal-title{font-size:var(--fs-md);font-weight:var(--fw-bold)}.modal-close{border-radius:var(--radius-md);width:44px;height:44px;color:var(--text-tertiary);cursor:pointer;transition:all var(--duration-fast) var(--ease-default);justify-content:center;align-items:center;display:flex}.modal-close:hover{color:var(--text-primary);background:#ffffff0d}.modal-body{padding:var(--sp-4) var(--sp-5) var(--sp-5);gap:var(--sp-4);flex-direction:column;display:flex}.modal-footer{padding:var(--sp-3) var(--sp-5) var(--sp-5);gap:var(--sp-3);border-top:1px solid var(--glass-border);justify-content:flex-end;display:flex}.modal-footer .btn{flex:1}#toast-root{top:var(--sp-4);right:var(--sp-4);left:var(--sp-4);z-index:300;gap:var(--sp-2);pointer-events:none;flex-direction:column;align-items:center;display:flex;position:fixed}.toast{-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:var(--sp-3) var(--sp-4);font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-primary);box-shadow:var(--shadow-lg);animation:slideDown var(--duration-normal) var(--ease-default);pointer-events:auto;align-items:center;gap:var(--sp-2);background:#0d1528e6;width:100%;max-width:360px;display:flex}.toast-success{border-left:3px solid var(--success)}.toast-error{border-left:3px solid var(--danger)}.toast-info{border-left:3px solid var(--info)}.toast-warning{border-left:3px solid var(--warning)}.checkbox-wrapper{flex-shrink:0;width:22px;height:22px;position:relative}.checkbox-wrapper input{opacity:0;cursor:pointer;z-index:1;width:100%;height:100%;margin:0;position:absolute}.checkbox-visual{border:1.5px solid var(--text-tertiary);width:22px;height:22px;transition:all var(--duration-fast) var(--ease-default);pointer-events:none;border-radius:5px;justify-content:center;align-items:center;display:flex}.checkbox-wrapper input:checked+.checkbox-visual{background:var(--accent);border-color:var(--accent)}.checkbox-visual svg{stroke:#fff;stroke-width:2.5px;fill:none;opacity:0;width:13px;height:13px;transition:all var(--duration-fast) var(--ease-default);transform:scale(0)}.checkbox-wrapper input:checked+.checkbox-visual svg{opacity:1;transform:scale(1)}.tabs{background:var(--bg-secondary);border-radius:var(--radius-lg);padding:var(--sp-0-5);gap:var(--sp-0-5);border:1px solid var(--glass-border);-webkit-overflow-scrolling:touch;scrollbar-width:none;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab{min-width:max-content;padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-md);font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-tertiary);text-align:center;cursor:pointer;transition:all var(--duration-fast) var(--ease-default);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;white-space:nowrap;flex:1}.tab.active{color:var(--accent-light);font-weight:var(--fw-semibold);background:#3b82f61f;border:1px solid #3b82f62e}.tab:hover:not(.active){color:var(--text-secondary);background:#ffffff08}@media (width<=600px){.tab{padding:var(--sp-2) var(--sp-3);flex:none}}.empty-state{padding:var(--sp-16) var(--sp-6);text-align:center;background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-xl);flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-state svg{width:48px;height:48px;color:var(--text-tertiary);margin-bottom:var(--sp-5);opacity:.5}.empty-state-title{font-size:var(--fs-base);font-weight:var(--fw-semibold);color:var(--text-secondary);margin-bottom:var(--sp-2)}.empty-state-text{font-size:var(--fs-sm);color:var(--text-tertiary);max-width:260px;line-height:var(--lh-relaxed)}.progress-ring{transform:rotate(-90deg)}.progress-ring-bg{stroke:var(--bg-tertiary)}.progress-ring-fill{transition:stroke-dashoffset var(--duration-slower) var(--ease-default)}.badge{padding:2px var(--sp-2);border-radius:var(--radius-pill);font-size:var(--fs-2xs);font-weight:var(--fw-bold);align-items:center;line-height:1.4;display:inline-flex}.badge-accent{color:var(--accent-light);background:#3b82f61f}.badge-success{background:var(--success-bg);color:var(--success-light)}.badge-warning{background:var(--warning-bg);color:var(--warning-light)}.badge-danger{background:var(--danger-bg);color:var(--danger-light)}.metric-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--sp-4);gap:var(--sp-1);box-shadow:var(--shadow-sm);transition:all var(--duration-normal) var(--ease-out);flex-direction:column;display:flex;position:relative;overflow:hidden}.metric-card:hover{border-color:var(--glass-border-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.metric-value{font-size:var(--fs-2xl);font-weight:var(--fw-bold);line-height:var(--lh-tight)}.metric-label{font-size:var(--fs-xs);color:var(--text-secondary);font-weight:var(--fw-medium);text-transform:uppercase;letter-spacing:.05em}.metric-delta{font-size:var(--fs-xs);font-weight:var(--fw-semibold)}.metric-delta.positive{color:var(--success)}.metric-delta.negative{color:var(--danger)}.metrics-grid{gap:var(--sp-3);grid-template-columns:1fr 1fr;display:grid}@media (width>=768px){.metrics-grid-4{grid-template-columns:repeat(4,1fr)}}.page-header{justify-content:space-between;align-items:flex-start;gap:var(--sp-3);margin-bottom:var(--sp-5);display:flex}.page-header-text{flex:1;min-width:0}.page-title{font-size:var(--fs-2xl);font-weight:var(--fw-extrabold);line-height:var(--lh-tight);margin-bottom:var(--sp-1);letter-spacing:-.02em}.page-subtitle{font-size:var(--fs-sm);color:var(--text-tertiary);font-weight:var(--fw-medium)}.toggle-row{justify-content:space-between;align-items:center;gap:var(--sp-3);display:flex}.toggle-switch{flex-shrink:0;width:44px;height:24px;display:inline-block;position:relative}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{cursor:pointer;background:var(--bg-tertiary);border:1px solid var(--glass-border);border-radius:var(--radius-pill);transition:background var(--duration-fast) var(--ease-default);position:absolute;inset:0}.toggle-slider:before{content:"";background:var(--text-tertiary);width:16px;height:16px;transition:all var(--duration-fast) var(--ease-default);border-radius:50%;position:absolute;top:50%;left:3px;transform:translateY(-50%)}.toggle-switch input:checked+.toggle-slider{background:var(--accent);border-color:var(--accent)}.toggle-switch input:checked+.toggle-slider:before{background:#fff;transform:translateY(-50%)translate(20px)}.date-input-row{gap:var(--sp-2);align-items:center;display:flex}.date-input-row .form-input{flex:1}.weekly-summary{gap:var(--sp-4);flex-direction:column;display:flex}.ws-metrics{gap:var(--sp-3);grid-template-columns:1fr 1fr;display:grid}.ws-metric{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--sp-4);align-items:center;gap:var(--sp-1);flex-direction:column;display:flex}.ws-metric-value{font-size:var(--fs-2xl);font-weight:var(--fw-bold);color:var(--accent-light)}.ws-metric-label{font-size:var(--fs-xs);color:var(--text-secondary);text-align:center}.ws-delta{font-size:var(--fs-xs);font-weight:var(--fw-semibold)}.ws-delta.positive{color:var(--success)}.ws-delta.negative{color:var(--danger)}.ws-days{gap:var(--sp-2);justify-content:center;display:flex}.ws-day{align-items:center;gap:var(--sp-1);flex-direction:column;flex:1;display:flex}.ws-day-bar-track{background:var(--bg-tertiary);border-radius:var(--radius-xs);align-items:flex-end;width:100%;height:56px;display:flex;overflow:hidden}.ws-day-bar-fill{background:var(--accent);border-radius:var(--radius-xs);width:100%;transition:height .4s var(--ease-default)}.ws-day-label{font-size:var(--fs-xs);color:var(--text-tertiary)}.ws-day-pct{font-size:var(--fs-xs);color:var(--text-secondary);font-weight:var(--fw-medium)}.review-form{gap:var(--sp-4);flex-direction:column;display:flex}.review-intro{font-size:var(--fs-sm);color:var(--text-secondary);margin:0}.review-question{gap:var(--sp-1);flex-direction:column;display:flex}.notif-bell{cursor:pointer;padding:var(--sp-1);-webkit-tap-highlight-color:transparent;background:0 0;border:none;font-size:1.1rem;line-height:1;position:relative}.notif-badge{background:var(--danger);color:#fff;min-width:16px;height:16px;font-size:10px;font-weight:var(--fw-bold);border-radius:8px;justify-content:center;align-items:center;padding:0 3px;display:flex;position:absolute;top:-2px;right:-4px}.notif-badge.hidden{display:none}.notif-panel{background:var(--glass-bg-strong,var(--bg-secondary));border-left:1px solid var(--glass-border);-webkit-backdrop-filter:blur(20px);z-index:10000;flex-direction:column;width:340px;max-width:100vw;height:100vh;animation:.2s ease-out notif-slide-in;display:flex;position:fixed;top:0;right:0;box-shadow:-4px 0 24px #0006}@keyframes notif-slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}.notif-panel-header{padding:var(--sp-4) var(--sp-4) var(--sp-3);border-bottom:1px solid var(--glass-border);justify-content:space-between;align-items:center;display:flex}.notif-panel-title{font-size:var(--fs-base);font-weight:var(--fw-bold);color:var(--text-primary)}.notif-panel-close{color:var(--text-tertiary);font-size:var(--fs-lg);cursor:pointer;padding:var(--sp-1);background:0 0;border:none}.notif-panel-list{padding:var(--sp-2);flex:1;overflow-y:auto}.notif-empty{text-align:center;color:var(--text-tertiary);font-size:var(--fs-sm);padding:var(--sp-8) var(--sp-4)}.notif-item{gap:var(--sp-2);padding:var(--sp-3);border-radius:var(--radius-md);transition:background var(--duration-fast);display:flex}.notif-item.unread{background:#3b82f60f}.notif-item-body{gap:var(--sp-0-5);flex-direction:column;flex:1;min-width:0;display:flex}.notif-item-title{font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--text-primary)}.notif-item-text{font-size:var(--fs-2xs);color:var(--text-secondary)}.notif-item-time{font-size:var(--fs-3xs);color:var(--text-tertiary)}.notif-item-link{font-size:var(--fs-2xs);color:var(--accent-light);flex-shrink:0;align-self:center;text-decoration:none}.pomo-overlay{z-index:9999;-webkit-backdrop-filter:blur(20px);padding:var(--sp-4);background:#050a14eb;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.pomo-card{text-align:center;width:100%;max-width:380px}.pomo-header{margin-bottom:var(--sp-6);justify-content:space-between;align-items:center;display:flex}.pomo-title{font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--text-primary);margin:0}.pomo-close{color:var(--text-tertiary);font-size:var(--fs-lg);cursor:pointer;padding:var(--sp-1);background:0 0;border:none}.pomo-durations{gap:var(--sp-2);margin-bottom:var(--sp-4);justify-content:center;display:flex}.pomo-dur-btn{padding:var(--sp-2) var(--sp-3);border:1px solid var(--glass-border);border-radius:var(--radius-lg);color:var(--text-secondary);font-size:var(--fs-sm);cursor:pointer;transition:all var(--duration-fast);background:#ffffff0a;font-family:inherit}.pomo-dur-btn.active{border-color:var(--accent);color:var(--accent-light);background:#3b82f626}.pomo-label-input{width:100%;padding:var(--sp-3);border:1px solid var(--glass-border);border-radius:var(--radius-lg);color:var(--text-primary);font-size:var(--fs-sm);text-align:center;margin-bottom:var(--sp-4);box-sizing:border-box;background:#ffffff0a;outline:none;font-family:inherit}.pomo-label-input:focus{border-color:var(--accent)}.pomo-label-input::placeholder{color:var(--text-tertiary)}.pomo-start-btn{width:100%;padding:var(--sp-3) var(--sp-5);background:var(--accent);color:#fff;border-radius:var(--radius-lg);font-size:var(--fs-base);font-weight:var(--fw-bold);cursor:pointer;transition:background var(--duration-fast);border:none;font-family:inherit}.pomo-start-btn:hover{background:var(--accent-light)}.pomo-timer,.pomo-break,.pomo-done{align-items:center;gap:var(--sp-4);flex-direction:column;display:flex}.pomo-timer.hidden,.pomo-break.hidden,.pomo-done.hidden,.pomo-setup.hidden{display:none}.pomo-ring-wrap{width:180px;height:180px;position:relative}.pomo-ring-wrap svg{display:block}.pomo-ring-inner{flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.pomo-time{font-size:var(--fs-4xl,2.5rem);font-weight:var(--fw-extrabold);color:var(--text-primary);font-variant-numeric:tabular-nums}.pomo-status{font-size:var(--fs-xs);color:var(--text-tertiary)}.pomo-label-display{font-size:var(--fs-sm);color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.pomo-timer-actions{gap:var(--sp-3);display:flex}.pomo-action-btn{padding:var(--sp-2) var(--sp-4);border:1px solid var(--glass-border);border-radius:var(--radius-lg);color:var(--text-secondary);font-size:var(--fs-sm);cursor:pointer;transition:all var(--duration-fast);background:#ffffff0f;font-family:inherit}.pomo-action-btn:hover{color:var(--text-primary);background:#ffffff1a}.pomo-action-btn.danger:hover{color:var(--danger-light);border-color:#ef44444d}.pomo-break-icon,.pomo-done-icon{font-size:3rem}.pomo-break h3,.pomo-done h3{font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--text-primary);margin:0}.pomo-done p{font-size:var(--fs-sm);color:var(--text-secondary);margin:0}.pomo-fab{bottom:calc(var(--nav-height) + var(--safe-bottom) + var(--sp-4) + 56px);right:var(--sp-4);color:#fff;cursor:pointer;z-index:100;width:48px;height:48px;transition:transform var(--duration-fast), box-shadow var(--duration-fast);-webkit-tap-highlight-color:transparent;background:linear-gradient(135deg,#7c3aed,#a78bfa);border:none;border-radius:50%;justify-content:center;align-items:center;font-size:1.3rem;display:flex;position:fixed;box-shadow:0 4px 16px #7c3aed4d}.pomo-fab:hover{transform:scale(1.08);box-shadow:0 6px 24px #7c3aed66}@media (width>=768px){.pomo-fab{bottom:var(--sp-6);right:var(--sp-6)}}.dashboard{gap:var(--sp-5);flex-direction:column;display:flex}.page-dashboard.page-content{padding-top:var(--sp-4)}.dz-hero{gap:var(--sp-4);background:linear-gradient(135deg, #3b82f61a 0%, #8b5cf60d 50%, var(--glass-bg) 100%);border-radius:var(--radius-2xl);padding:var(--sp-5);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid #3b82f638;grid-template-columns:1fr;display:grid;position:relative;overflow:hidden}.dz-hero--morning{background:linear-gradient(135deg, #fbbf2414 0%, #3b82f614 60%, var(--glass-bg) 100%)}.dz-hero--morning:after{content:"☀️";top:var(--sp-4);right:var(--sp-4);opacity:.4;pointer-events:none;font-size:1.5rem;position:absolute}.dz-hero--afternoon{background:linear-gradient(135deg, #3b82f61f 0%, #8b5cf60f 50%, var(--glass-bg) 100%)}.dz-hero--night{background:linear-gradient(135deg, #1e1b4b66 0%, #3b82f614 60%, var(--glass-bg) 100%);border-color:#8b5cf640}.dz-hero--night:before{content:"";pointer-events:none;opacity:.5;background-image:radial-gradient(1px 1px at 20% 30%,#ffffff4d,#0000),radial-gradient(1px 1px at 60% 70%,#fff3,#0000),radial-gradient(1px 1px at 80% 20%,#ffffff40,#0000),radial-gradient(1px 1px at 40% 80%,#fff3,#0000);position:absolute;inset:0}.dz-hero-left{gap:var(--sp-4);z-index:1;flex-direction:column;min-width:0;display:flex;position:relative}.dz-hero-right{z-index:1;position:relative}.dz-hero-greeting{font-size:var(--fs-xl);font-weight:var(--fw-bold);color:var(--text-primary);line-height:var(--lh-tight);letter-spacing:-.01em;margin:0}.dz-hero-date{font-size:var(--fs-xs);color:var(--text-tertiary);margin:var(--sp-1) 0 0;text-transform:capitalize}.dz-hero-focus{align-items:center;gap:var(--sp-4);margin-top:var(--sp-3);flex-wrap:wrap;display:flex}.dz-ring-wrap{flex-shrink:0;width:120px;height:120px;position:relative}.dz-ring-wrap svg{display:block}.dz-ring-progress{transition:stroke-dashoffset .9s var(--ease-out)}.dz-ring-inner{justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.dz-ring-pct{font-size:var(--fs-2xl);font-weight:var(--fw-extrabold);color:var(--text-primary);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.dz-ring-legend{font-size:var(--fs-xs);color:var(--text-tertiary);font-weight:var(--fw-medium);margin-top:calc(var(--sp-2) * -1)}.dz-next-action{align-items:center;gap:var(--sp-3);min-width:220px;padding:var(--sp-3) var(--sp-4);background:var(--glass-bg-strong);border:1px solid var(--glass-border);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(var(--glass-blur));flex:1;display:flex}.dz-next-icon{font-size:var(--fs-2xl);flex-shrink:0;line-height:1}.dz-next-body{gap:var(--sp-0-5);flex-direction:column;flex:1;min-width:0;display:flex}.dz-next-label{font-size:var(--fs-2xs);font-weight:var(--fw-bold);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em}.dz-next-desc{font-size:var(--fs-sm);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-weight:var(--fw-medium);overflow:hidden}.dz-next-btn{background:var(--accent);color:#fff;font-size:var(--fs-xs);font-weight:var(--fw-semibold);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-md);transition:all var(--duration-fast);white-space:nowrap;flex-shrink:0;text-decoration:none;box-shadow:0 2px 8px #3b82f64d}.dz-next-btn:hover{background:var(--accent-dark);transform:translateY(-1px);box-shadow:0 4px 12px #3b82f666}.dz-next-btn--secondary{background:var(--glass-bg);color:var(--accent-light);border:1px solid var(--glass-border);box-shadow:none}.dz-next-btn--secondary:hover{background:var(--glass-bg-hover);border-color:var(--accent)}.dz-mood-row{align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border:1px solid var(--glass-border);border-radius:var(--radius-lg);background:#ffffff08;display:flex}.dz-mood-label{font-size:var(--fs-xs);color:var(--text-tertiary);font-weight:var(--fw-medium);white-space:nowrap}.dz-mood-options{gap:var(--sp-1);flex:1;justify-content:flex-end;display:flex}.dz-mood-btn{cursor:pointer;width:36px;height:36px;transition:all var(--duration-fast);-webkit-tap-highlight-color:transparent;opacity:.55;background:0 0;border:2px solid #0000;border-radius:50%;justify-content:center;align-items:center;font-size:1.2rem;display:flex}.dz-mood-btn:hover{opacity:1;transform:scale(1.15)}.dz-mood-btn.active{opacity:1;border-color:var(--accent);background:#3b82f61f;transform:scale(1.08)}.dz-rhythm{gap:var(--sp-2);grid-template-columns:1fr 1fr;height:100%;display:none}.dz-rhythm-cell{gap:var(--sp-1);padding:var(--sp-3);border:1px solid var(--glass-border);border-radius:var(--radius-lg);min-height:96px;transition:border-color var(--duration-fast);background:#ffffff08;flex-direction:column;display:flex;position:relative}.dz-rhythm-cell:hover{border-color:var(--glass-border-hover)}.dz-rhythm-icon{font-size:var(--fs-lg);line-height:1}.dz-rhythm-num{font-size:var(--fs-2xl);font-weight:var(--fw-extrabold);color:var(--text-primary);font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1}.dz-rhythm-num-sm{font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--text-primary);line-height:1.2}.dz-rhythm-label{font-size:var(--fs-2xs);color:var(--text-tertiary);font-weight:var(--fw-medium);text-transform:uppercase;letter-spacing:.04em;margin-top:auto}.dz-rhythm-bar-wrap{border-radius:var(--radius-full);background:#ffffff0f;height:4px;overflow:hidden}.dz-rhythm-bar{border-radius:var(--radius-full);background:linear-gradient(90deg, var(--secondary), var(--secondary-light));height:100%;transition:width .8s var(--ease-out)}.dz-rhythm-bar--challenge{background:linear-gradient(90deg, var(--tertiary), var(--tertiary-light))}.dz-rhythm-badge{top:var(--sp-2);right:var(--sp-2);font-size:var(--fs-3xs);color:var(--text-tertiary);position:absolute}.dz-rhythm-sparkline{align-items:flex-end;gap:var(--sp-0-5);height:36px;padding:var(--sp-1) 0;display:flex}.dz-spark-bar{background:var(--accent);min-height:4px;transition:height .5s var(--ease-out);opacity:.7;border-radius:1px;flex:1}.dz-spark-bar.today{background:var(--accent-light);opacity:1;box-shadow:0 0 6px var(--accent-glow)}.dz-spark-bar.empty{opacity:1;background:#ffffff14;min-height:3px}.dz-rhythm-strip{gap:var(--sp-2);flex-wrap:wrap;display:flex}.dz-strip-chip{font-size:var(--fs-xs);font-weight:var(--fw-semibold);padding:var(--sp-1-5) var(--sp-3);border:1px solid var(--glass-border);border-radius:var(--radius-pill);color:var(--text-secondary);white-space:nowrap;background:#ffffff0a}.dz-chips-bar{gap:var(--sp-2);-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:var(--sp-2) 0;margin:0 calc(var(--sp-4) * -1);padding-left:var(--sp-4);padding-right:var(--sp-4);z-index:5;background:var(--bg-primary);-webkit-backdrop-filter:blur(12px);display:flex;position:sticky;top:56px;overflow-x:auto}.dz-chips-bar::-webkit-scrollbar{display:none}.dz-chip{align-items:center;gap:var(--sp-1);padding:var(--sp-2) var(--sp-3);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-pill);font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--text-secondary);transition:all var(--duration-fast);white-space:nowrap;-webkit-tap-highlight-color:transparent;flex-shrink:0;text-decoration:none;display:inline-flex}.dz-chip:hover,.dz-chip:active{background:var(--glass-bg-hover);border-color:var(--accent);color:var(--text-primary);transform:scale(.98)}.dz-fronts{gap:var(--sp-4);grid-template-columns:1fr;display:grid}.dz-front-card{gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(var(--glass-blur));transition:all var(--duration-normal) var(--ease-out);flex-direction:column;display:flex}.dz-front-card:hover{border-color:var(--glass-border-hover);box-shadow:var(--shadow-card-hover)}.dz-front-header{align-items:center;gap:var(--sp-2);display:flex}.dz-front-icon{font-size:var(--fs-md);flex-shrink:0;line-height:1}.dz-front-title{font-size:var(--fs-md);font-weight:var(--fw-bold);color:var(--text-primary);flex-shrink:0}.dz-front-count{font-size:var(--fs-xs);color:var(--text-tertiary);font-weight:var(--fw-medium);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.dz-front-link{font-size:var(--fs-xs);color:var(--accent-light);font-weight:var(--fw-semibold);opacity:.8;transition:opacity var(--duration-fast);flex-shrink:0;text-decoration:none}.dz-front-link:hover{opacity:1}.dz-front-list{gap:var(--sp-1);flex-direction:column;display:flex}.dz-front-item{align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-md);cursor:pointer;transition:background var(--duration-fast), opacity var(--duration-fast);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;border-left:3px solid var(--hcolor,transparent);min-height:48px;display:flex}.dz-front-item:hover{background:#ffffff0a}.dz-front-item.is-done{opacity:.5}.dz-front-item.is-done .dz-front-item-name{text-decoration:line-through}.dz-front-item.just-checked{animation:dz-check-pop .5s var(--ease-out)}@keyframes dz-check-pop{0%{transform:scale(1)}30%{transform:scale(1.02)}to{transform:scale(1)}}.dz-front-item-icon{font-size:var(--fs-md);text-align:center;flex-shrink:0;width:24px;line-height:1}.dz-front-item-name{min-width:0;font-size:var(--fs-sm);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-weight:var(--fw-medium);flex:1;overflow:hidden}.dz-front-item-check{width:28px;height:28px;font-size:var(--fs-sm);color:var(--text-tertiary);border:1.5px solid var(--glass-border);transition:all var(--duration-fast);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.dz-front-item-check.checked{color:var(--success);border-color:var(--success);background:#22c55e1f}.dz-front-item-meta{align-items:center;gap:var(--sp-2);flex-shrink:0;display:flex}.dz-task-prio{border-radius:50%;flex-shrink:0;width:8px;height:8px}.dz-task-deadline{font-size:var(--fs-2xs);color:var(--text-tertiary);font-weight:var(--fw-medium)}.dz-task-deadline.overdue{color:var(--danger-light)}.dz-front-item--goal{cursor:default}.dz-front-item-goal-body{gap:var(--sp-1);flex-direction:column;flex:1;min-width:0;display:flex}.dz-goal-bar-wrap{border-radius:var(--radius-full);background:#ffffff0f;height:4px;overflow:hidden}.dz-goal-bar{border-radius:var(--radius-full);height:100%;transition:width .6s var(--ease-out)}.dz-goal-pct{font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--accent-light);text-align:right;font-variant-numeric:tabular-nums;flex-shrink:0;min-width:32px}.dz-front-empty{justify-content:center;align-items:center;gap:var(--sp-2);padding:var(--sp-4);text-align:center;flex-direction:column;min-height:144px;display:flex}.dz-front-empty-icon{opacity:.7;font-size:1.75rem}.dz-front-empty>span{font-size:var(--fs-sm);color:var(--text-tertiary)}.dz-front-empty-cta{margin-top:var(--sp-1);font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--accent-light);padding:var(--sp-1-5) var(--sp-3);border-radius:var(--radius-md);transition:all var(--duration-fast);background:#3b82f61a;border:1px solid #3b82f640;text-decoration:none}.dz-front-empty-cta:hover{background:#3b82f62e}.dz-front-footer{text-align:center;font-size:var(--fs-xs);color:var(--text-tertiary);padding:var(--sp-2) 0;border-top:1px solid var(--glass-border);transition:color var(--duration-fast);font-weight:var(--fw-medium);margin-top:auto;text-decoration:none;display:block}.dz-front-footer:hover{color:var(--accent-light)}.dz-pair{gap:var(--sp-4);grid-template-columns:1fr;display:grid}.dz-finance,.dz-community{gap:var(--sp-4);padding:var(--sp-4) var(--sp-5);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(var(--glass-blur));transition:all var(--duration-normal) var(--ease-out);flex-direction:column;display:flex}.dz-finance:hover,.dz-community:hover{border-color:var(--glass-border-hover);box-shadow:var(--shadow-card-hover)}.dz-finance-body{gap:var(--sp-4);grid-template-columns:1fr;display:grid}.dz-finance-nums{gap:var(--sp-3);flex-direction:column;display:flex}.dz-finance-metric{gap:var(--sp-0-5);flex-direction:column;display:flex}.dz-finance-label{font-size:var(--fs-2xs);font-weight:var(--fw-bold);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em}.dz-finance-value{font-size:var(--fs-xl);font-weight:var(--fw-bold);color:var(--text-primary);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.dz-finance-value--income{color:var(--success-light)}.dz-finance-value--expense{color:var(--danger-light)}.dz-finance-chart{gap:var(--sp-3);flex-direction:column;display:flex}.dz-sparkline{width:100%;max-width:100%;height:auto;display:block}.dz-finance-chart-empty{font-size:var(--fs-xs);color:var(--text-tertiary);text-align:center;padding:var(--sp-4) 0}.dz-finance-cats{gap:var(--sp-2);flex-wrap:wrap;display:flex}.dz-cat-pill{font-size:var(--fs-2xs);font-weight:var(--fw-semibold);padding:var(--sp-1-5) var(--sp-2-5);border:1px solid var(--glass-border);border-radius:var(--radius-pill);color:var(--text-secondary);transition:all var(--duration-fast);white-space:nowrap;background:#ffffff0a;text-decoration:none}.dz-cat-pill:hover{border-color:var(--accent);color:var(--text-primary);background:#ffffff14}.dz-finance-budget{gap:var(--sp-1-5);padding-top:var(--sp-3);border-top:1px solid var(--glass-border);flex-direction:column;display:flex}.dz-budget-bar-wrap{border-radius:var(--radius-full);background:#ffffff0f;height:6px;overflow:hidden}.dz-budget-bar{border-radius:var(--radius-full);background:linear-gradient(90deg, var(--success) 0%, var(--success-light) 100%);height:100%;transition:width .8s var(--ease-out)}.dz-budget-bar.warn{background:linear-gradient(90deg, var(--warning) 0%, var(--warning-light) 100%)}.dz-budget-bar.over{background:linear-gradient(90deg, var(--danger) 0%, var(--danger-light) 100%)}.dz-budget-label{font-size:var(--fs-xs);color:var(--text-tertiary);font-weight:var(--fw-medium)}.dz-community-body{gap:var(--sp-4);flex-direction:column;display:flex}.dz-community-section-title{font-size:var(--fs-2xs);font-weight:var(--fw-bold);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--sp-2);display:block}.dz-community-empty{justify-content:center;align-items:center;gap:var(--sp-2);padding:var(--sp-4);text-align:center;border-radius:var(--radius-lg);border:1px dashed var(--glass-border);background:#ffffff05;flex-direction:column;display:flex}.dz-community-empty>span:not(.dz-front-empty-icon){font-size:var(--fs-sm);color:var(--text-tertiary);max-width:240px}.dz-community-feed-item{gap:var(--sp-3);padding:var(--sp-3);border:1px solid var(--glass-border);border-radius:var(--radius-md);background:#ffffff08;display:flex}.dz-feed-avatar{font-size:var(--fs-lg);background:#ffffff0a;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;line-height:1;display:flex}.dz-feed-body{gap:var(--sp-0-5);flex-direction:column;flex:1;min-width:0;display:flex}.dz-feed-text{font-size:var(--fs-sm);color:var(--text-primary);font-weight:var(--fw-medium);text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.dz-feed-time{font-size:var(--fs-2xs);color:var(--text-tertiary)}.dz-insights{gap:var(--sp-3);grid-template-columns:1fr;display:grid}.dz-insight-tile{gap:var(--sp-1);padding:var(--sp-3) var(--sp-4);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg);transition:all var(--duration-fast);flex-direction:column;display:flex}.dz-insight-tile:hover{border-color:var(--glass-border-hover);background:var(--glass-bg-hover)}.dz-insight-icon{font-size:var(--fs-md);line-height:1}.dz-insight-label{font-size:var(--fs-2xs);font-weight:var(--fw-bold);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em}.dz-insight-value{font-size:var(--fs-sm);color:var(--text-primary);font-weight:var(--fw-semibold);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.perfect-day-confetti{pointer-events:none;z-index:1;position:absolute;inset:0}@media (width>=768px){.dashboard{gap:var(--sp-6)}.dz-chips-bar,.dz-rhythm-strip{display:none}.dz-rhythm{display:grid}.dz-hero{gap:var(--sp-6);padding:var(--sp-6);grid-template-columns:1.2fr 1fr}.dz-hero-greeting{font-size:var(--fs-2xl)}.dz-fronts{grid-template-columns:1fr 1fr}.dz-fronts .dz-front-card:nth-child(3){grid-column:1/-1}.dz-insights{grid-template-columns:repeat(4,1fr)}}@media (width>=1024px){.dz-hero-greeting{font-size:var(--fs-3xl)}.dz-hero{padding:var(--sp-7) var(--sp-7);grid-template-columns:1.35fr 1fr}.dz-fronts{grid-template-columns:1fr 1fr 1fr}.dz-fronts .dz-front-card:nth-child(3){grid-column:auto}.dz-pair{grid-template-columns:1.4fr 1fr}.dz-finance-body{grid-template-columns:1fr 1.4fr}}@media (width<=420px){.dz-hero-greeting{font-size:var(--fs-lg)}.dz-hero{padding:var(--sp-4)}.dz-ring-wrap,.dz-ring-wrap svg{width:100px;height:100px}.dz-ring-pct{font-size:var(--fs-xl)}.dz-next-action{min-width:0;padding:var(--sp-2) var(--sp-3);flex-wrap:wrap}.dz-next-btn{text-align:center;width:100%}.dz-front-card,.dz-finance,.dz-community{padding:var(--sp-3) var(--sp-4)}}.habits-page{flex-direction:column;display:flex}.habits-page-header{justify-content:space-between;align-items:flex-start;gap:var(--sp-3);margin-bottom:var(--sp-4);display:flex}.habits-page-header .btn{white-space:nowrap;flex-shrink:0}.week-navigator{gap:var(--sp-2);margin-bottom:var(--sp-4);flex-direction:column;display:flex}.week-header{justify-content:space-between;align-items:center;gap:var(--sp-2);display:flex;position:relative}.week-arrow{border-radius:var(--radius-md);background:var(--glass-bg);width:44px;height:44px;-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);color:var(--text-secondary);cursor:pointer;transition:all var(--duration-fast) var(--ease-default);-webkit-tap-highlight-color:transparent;flex-shrink:0;justify-content:center;align-items:center;display:flex}.week-arrow:hover:not(.disabled){background:var(--glass-bg-hover);color:var(--text-primary);border-color:var(--glass-border-hover)}.week-arrow:active:not(.disabled){transform:scale(.92)}.week-arrow.disabled{opacity:.25;cursor:not-allowed}.week-label{justify-content:center;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-md);cursor:pointer;color:var(--text-primary);font-size:var(--fs-base);font-weight:var(--fw-semibold);transition:all var(--duration-fast) var(--ease-default);-webkit-tap-highlight-color:transparent;flex:1;min-width:0;font-family:inherit;display:flex}.week-label:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-hover)}.week-label:active{transform:scale(.98)}.week-days{gap:var(--sp-1);grid-template-columns:repeat(7,1fr);display:grid}.week-day{align-items:center;gap:var(--sp-0-5);padding:var(--sp-2) var(--sp-1);border-radius:var(--radius-md);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);cursor:pointer;transition:all var(--duration-fast) var(--ease-default);-webkit-tap-highlight-color:transparent;color:var(--text-secondary);flex-direction:column;font-family:inherit;display:flex}.week-day:hover:not(.future){background:var(--glass-bg-hover);border-color:var(--glass-border-hover)}.week-day:active:not(.future){transform:scale(.95)}.week-day.selected{border-color:var(--accent);color:var(--accent-light);background:#3b82f61a}.week-day.is-today .week-day-num{color:var(--accent-light);font-weight:var(--fw-extrabold)}.week-day.future{opacity:.3;cursor:not-allowed}.week-day-name{font-size:var(--fs-2xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary)}.week-day-num{font-size:var(--fs-sm);font-weight:var(--fw-bold);line-height:1}.week-day-dot{border-radius:var(--radius-full);width:6px;height:6px;transition:background var(--duration-fast)}.week-day-dot.dot-empty{background:var(--bg-tertiary)}.week-day-dot.dot-partial{background:var(--warning)}.week-day-dot.dot-done{background:var(--success)}.week-today-btn{justify-content:center;align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-3);background:var(--bg-tertiary);border:1px solid var(--glass-border);border-radius:var(--radius-pill);color:var(--accent-light);font-size:var(--fs-2xs);font-weight:var(--fw-semibold);cursor:pointer;transition:all var(--duration-fast) var(--ease-default);-webkit-tap-highlight-color:transparent;text-transform:uppercase;letter-spacing:.04em;align-self:center;font-family:inherit;display:flex}.week-today-btn:hover{background:#3b82f614;border-color:#3b82f633}.week-today-btn:active{transform:scale(.95)}.date-picker-hidden{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.habits-today-layout{gap:var(--sp-5);flex-direction:column;display:flex}.habits-today-main{flex:1;min-width:0}.habits-today-sidebar{gap:var(--sp-4);flex-direction:column;display:flex}.habits-daily-summary{align-items:center;gap:var(--sp-5);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-xl);padding:var(--sp-4) var(--sp-5);box-shadow:var(--shadow-card);display:flex;position:relative;overflow:hidden}.habits-daily-ring-wrap{flex-shrink:0;width:60px;height:60px;position:relative}.habits-daily-ring{width:100%;height:100%;display:block}.habits-daily-ring-pct{font-size:var(--fs-xs);font-weight:var(--fw-extrabold);color:var(--accent-light);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.habits-daily-right{gap:var(--sp-2);flex-direction:column;flex:1;min-width:0;display:flex}.habits-daily-stats{align-items:center;gap:var(--sp-3);display:flex}.habits-daily-done-text{align-items:baseline;gap:var(--sp-1-5);display:flex}.habits-daily-done{font-size:var(--fs-xl);font-weight:var(--fw-extrabold);color:var(--accent-light);line-height:1}.habits-daily-of{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-tertiary)}.habits-streak-badge{font-size:var(--fs-2xs);font-weight:var(--fw-bold);color:var(--warning);border-radius:var(--radius-pill);white-space:nowrap;background:#f59e0b1a;border:1px solid #f59e0b33;padding:2px 8px}.habits-daily-label{font-size:var(--fs-xs);color:var(--text-secondary);font-weight:var(--fw-medium)}.habits-progress-bar{background:var(--bg-tertiary);border-radius:var(--radius-pill);width:100%;height:4px;overflow:hidden}.habits-progress-fill{background:var(--accent);border-radius:var(--radius-pill);height:100%;transition:width .4s var(--ease-default)}.habits-section-divider{align-items:center;gap:var(--sp-2);padding:var(--sp-3) 0 var(--sp-2);margin-top:var(--sp-2);display:flex}.habits-section-divider span:first-child{font-size:var(--fs-2xs);font-weight:var(--fw-semibold);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em}.habits-section-count{font-size:var(--fs-2xs);font-weight:var(--fw-bold);color:var(--success);background:var(--success-bg);border-radius:var(--radius-pill);padding:1px 6px;line-height:1.4}.habits-section-divider:after{content:"";background:var(--glass-border);flex:1;height:1px}.habits-list{flex-direction:column;display:flex}.habits-pending-section,.habits-completed-section{gap:var(--sp-2);flex-direction:column;display:flex}.habit-card{gap:var(--sp-2);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-left:3px solid var(--habit-color,var(--accent));border-radius:var(--radius-lg);padding:var(--sp-3) var(--sp-4);min-height:56px;box-shadow:var(--shadow-sm);transition:all var(--duration-normal) var(--ease-out), transform .25s var(--ease-default), opacity .3s;flex-direction:column;justify-content:center;display:flex;position:relative;overflow:hidden}.habit-card:hover{border-color:var(--glass-border-hover);border-left-color:var(--habit-color,var(--accent));box-shadow:var(--shadow-md);transform:translateY(-1px)}.habit-card.habit-just-completed:after{content:"";border-radius:inherit;background:var(--habit-color,var(--success));opacity:0;pointer-events:none;animation:habitFlash .5s var(--ease-default);z-index:0;position:absolute;inset:0}@keyframes habitFlash{0%{opacity:0}25%{opacity:.12}to{opacity:0}}.habit-card.habit-completed{opacity:.62;border-left-color:var(--success)}.habit-card.habit-completed:hover{opacity:.8}.swipe-bg{background:var(--success);color:#fff;opacity:0;z-index:0;border-radius:var(--radius-lg) 0 0 var(--radius-lg);pointer-events:none;justify-content:center;align-items:center;width:100px;transition:opacity .15s;display:flex;position:absolute;top:0;bottom:0;left:0}.habit-card-main{align-items:center;gap:var(--sp-3);z-index:1;display:flex;position:relative}.habit-icon-wrap{border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.habit-icon{font-size:1.1rem;line-height:1}.habit-card-info{gap:var(--sp-0-5);flex-direction:column;flex:1;min-width:0;display:flex}.habit-card-name{font-size:var(--fs-base);font-weight:var(--fw-semibold);line-height:var(--lh-snug);transition:color var(--duration-fast);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.habit-completed .habit-card-name{color:var(--text-tertiary);text-decoration:line-through}.habit-card-tags{gap:var(--sp-1);flex-wrap:wrap;display:flex}.habit-tag{font-size:var(--fs-2xs);font-weight:var(--fw-semibold);color:var(--text-tertiary);background:var(--bg-tertiary);border:1px solid var(--glass-border);border-radius:var(--radius-pill);text-transform:uppercase;padding:1px 6px}.habit-tag-risk{color:var(--warning);background:#f59e0b14;border-color:#f59e0b2e;animation:2s ease-in-out infinite riskPulse}.habit-tag-note{cursor:help;background:#3b82f60f;border-color:#3b82f626}.habit-paused{opacity:.5}.habits-paused-toggle{cursor:pointer}.habits-paused-toggle:hover{opacity:.8}@keyframes riskPulse{0%,to{opacity:1}50%{opacity:.6}}.habit-menu{flex-shrink:0;position:relative}.habit-menu-btn{border-radius:var(--radius-md);width:36px;height:36px;color:var(--text-tertiary);cursor:pointer;transition:all var(--duration-fast);-webkit-tap-highlight-color:transparent;opacity:.55;justify-content:center;align-items:center;display:flex}.habit-card:hover .habit-menu-btn,.habit-menu.open .habit-menu-btn{opacity:1}.habit-menu-btn:hover{color:var(--text-secondary);background:#ffffff0d}.habit-menu-dropdown{background:var(--bg-elevated);border:1px solid var(--glass-border-hover);border-radius:var(--radius-md);z-index:20;min-width:130px;box-shadow:var(--shadow-lg);margin-top:4px;display:none;position:absolute;top:100%;right:0;overflow:hidden}.habit-menu.open .habit-menu-dropdown{flex-direction:column;display:flex}.habit-menu-item{align-items:center;gap:var(--sp-2);padding:var(--sp-2-5) var(--sp-3);font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-secondary);cursor:pointer;transition:all var(--duration-fast);white-space:nowrap;font-family:inherit;display:flex}.habit-menu-item:hover{color:var(--text-primary);background:#ffffff0a}.habit-menu-danger:hover{color:var(--danger-light);background:var(--danger-bg)}.habit-mini-progress{background:var(--bg-tertiary);border-radius:var(--radius-pill);z-index:1;height:3px;position:relative;overflow:hidden}.habit-mini-progress-fill{border-radius:var(--radius-pill);height:100%;transition:width .4s var(--ease-default)}.habit-stepper{align-items:center;gap:var(--sp-2);flex-shrink:0;display:flex}.habit-stepper-btn{border-radius:var(--radius-md);background:var(--bg-tertiary);border:1px solid var(--glass-border);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;transition:all var(--duration-fast) var(--ease-default);-webkit-tap-highlight-color:transparent;font-size:var(--fs-base);font-weight:var(--fw-bold);justify-content:center;align-items:center;line-height:1;display:flex}.habit-stepper-btn:hover{color:var(--accent-light);background:#3b82f614;border-color:#3b82f633}.habit-stepper-btn:active{transform:scale(.9)}.habit-stepper-value{font-size:var(--fs-sm);font-weight:var(--fw-bold);text-align:center;min-width:44px;color:var(--accent-light)}.habit-measurement{align-items:center;gap:var(--sp-1-5);flex-shrink:0;display:flex}.habit-measurement-input{width:64px;padding:var(--sp-1-5) var(--sp-2);border-radius:var(--radius-md);background:var(--bg-tertiary);border:1px solid var(--glass-border);color:var(--accent-light);font-size:var(--fs-sm);font-weight:var(--fw-bold);text-align:center;transition:border-color var(--transition-fast);font-family:inherit}.habit-measurement-input:focus{border-color:var(--accent);outline:none}.habit-measurement-input::placeholder{color:var(--text-tertiary)}.habit-measurement-goal{font-size:var(--fs-xs);color:var(--text-tertiary);white-space:nowrap}.habit-check-btn{cursor:pointer;width:38px;height:38px;color:var(--text-tertiary);border-radius:var(--radius-md);transition:all var(--duration-fast) var(--ease-default);-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.habit-check-btn:hover{background:#ffffff0a}.habit-check-btn.checked{color:var(--success);animation:popIn .25s var(--ease-spring)}.habit-check-btn:active{transform:scale(.85)}.month-view{gap:var(--sp-4);flex-direction:column;display:flex}.month-navigator{justify-content:center;align-items:center;gap:var(--sp-4);display:flex}.month-label{font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--text-primary);text-align:center;min-width:160px}.month-matrix-wrap{-webkit-overflow-scrolling:touch;border-radius:var(--radius-lg);border:1px solid var(--glass-border);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));overflow-x:auto}.month-matrix{border-collapse:collapse;width:100%;min-width:700px}.month-matrix th,.month-matrix td{text-align:center;border:1px solid #ffffff0a;padding:0}.matrix-habit-header{font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em;z-index:3;background:var(--bg-secondary);min-width:140px;position:sticky;left:0;text-align:left!important;padding:var(--sp-2) var(--sp-3)!important}.matrix-day-header{font-size:var(--fs-2xs);font-weight:var(--fw-semibold);color:var(--text-tertiary);background:var(--bg-secondary);width:28px;min-width:28px;padding:var(--sp-2) 0!important}.matrix-day-header.weekend{color:var(--text-tertiary);opacity:.6}.matrix-rate-header{font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--text-tertiary);background:var(--bg-secondary);z-index:3;min-width:48px;position:sticky;right:0;padding:var(--sp-2) var(--sp-2)!important}.matrix-habit-name{z-index:2;background:var(--bg-surface);align-items:center;gap:var(--sp-2);vertical-align:middle;min-width:140px;display:table-cell;position:sticky;left:0;text-align:left!important;padding:var(--sp-2) var(--sp-3)!important}.matrix-habit-icon{border-radius:var(--radius-xs);vertical-align:middle;width:22px;height:22px;margin-right:var(--sp-1-5);justify-content:center;align-items:center;font-size:.75rem;display:inline-flex}.matrix-name-text{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;vertical-align:middle;max-width:120px;display:inline-block;overflow:hidden}.month-rate{font-size:var(--fs-sm);font-weight:var(--fw-bold);z-index:2;background:var(--bg-surface);position:sticky;right:0;padding:var(--sp-2)!important}.matrix-cell{cursor:pointer;width:28px;height:28px;transition:all var(--duration-fast);position:relative}.matrix-cell.cell-done{background:var(--cell-color,var(--accent));opacity:.75}.matrix-cell.cell-done:hover{opacity:1}.matrix-cell.cell-empty{background:0 0}.matrix-cell.cell-empty:hover{background:#ffffff0a}.matrix-cell.cell-future{cursor:default;opacity:.15;background:0 0}.matrix-cell.cell-no-habit{cursor:default;background:#ffffff03}.matrix-cell.cell-no-habit:after{content:"·";color:var(--text-tertiary);opacity:.2;font-size:var(--fs-2xs)}.month-overall-bar{padding:var(--sp-1) 0}.month-overall-track{border:1px solid var(--glass-border);border-radius:var(--radius-pill);background:#ffffff0f;width:100%;height:36px;position:relative;overflow:hidden}.month-overall-fill{background:linear-gradient(90deg, var(--accent), var(--accent-light));border-radius:var(--radius-pill);padding-right:var(--sp-3);min-width:fit-content;transition:width .6s var(--ease-default);justify-content:flex-end;align-items:center;display:flex;position:absolute;inset:0 auto 0 0}.month-overall-pct{font-size:var(--fs-sm);font-weight:var(--fw-extrabold);color:#fff;text-shadow:0 1px 2px #0000004d;white-space:nowrap}.month-overall-label{right:var(--sp-3);font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--text-tertiary);white-space:nowrap;position:absolute;top:50%;transform:translateY(-50%)}.matrix-dot{border-radius:var(--radius-full);width:10px;height:10px;margin:auto;display:block;position:absolute;inset:0}.cell-done .matrix-dot{opacity:.9;background:#fff;width:8px;height:8px}.cell-empty .matrix-dot{background:var(--bg-tertiary);opacity:.4}.cell-future .matrix-dot{background:var(--bg-tertiary);opacity:.15}.cell-no-habit .matrix-dot{display:none}.month-matrix-section{gap:var(--sp-3);flex-direction:column;display:flex}.month-habit-rates{gap:var(--sp-2);flex-direction:column;display:flex}.month-rate-row{align-items:center;gap:var(--sp-3);padding:var(--sp-2-5) var(--sp-3);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);transition:border-color var(--duration-fast);display:flex}.month-rate-row:hover{border-color:var(--glass-border-hover)}.month-rate-info{align-items:center;gap:var(--sp-2);flex-shrink:0;min-width:140px;display:flex}.month-rate-icon{border-radius:var(--radius-xs);flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:.8rem;display:inline-flex}.month-rate-name{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.month-rate-bar-wrap{align-items:center;gap:var(--sp-3);flex:1;min-width:0;display:flex}.month-rate-bar-track{background:var(--bg-tertiary);border-radius:var(--radius-pill);flex:1;height:8px;overflow:hidden}.month-rate-bar-fill{border-radius:var(--radius-pill);height:100%;transition:width var(--duration-slower) var(--ease-default);min-width:2px}.month-rate-pct{font-size:var(--fs-sm);font-weight:var(--fw-bold);text-align:right;flex-shrink:0;min-width:36px}.month-stats-grid{gap:var(--sp-3);grid-template-columns:repeat(2,1fr);display:grid}.month-stat-card{gap:var(--sp-1);padding:var(--sp-4);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);flex-direction:column;display:flex}.month-stat-value{font-size:var(--fs-2xl);font-weight:var(--fw-extrabold);letter-spacing:-.02em;line-height:1}.month-stat-label{font-size:var(--fs-xs);color:var(--text-tertiary);font-weight:var(--fw-medium);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.habits-dashboard{flex-direction:column;display:flex}.dash-sections,.dash-charts-grid{gap:var(--sp-5);flex-direction:column;display:flex}.habit-days-selector{gap:var(--sp-1);flex-wrap:wrap;display:flex}.habit-day-chip{padding:var(--sp-1-5) var(--sp-3);border-radius:var(--radius-pill);background:var(--bg-tertiary);border:1px solid var(--glass-border);font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;transition:all var(--duration-fast) var(--ease-default);-webkit-tap-highlight-color:transparent}.habit-day-chip input{display:none}.habit-day-chip.selected{border-color:var(--accent);color:var(--accent-light);background:#3b82f61a}.habit-day-chip:has(input:checked){border-color:var(--accent);color:var(--accent-light);background:#3b82f61a}.icon-picker{gap:var(--sp-2);max-height:220px;padding:var(--sp-2);background:var(--bg-tertiary);border-radius:var(--radius-md);border:1px solid var(--glass-border);flex-wrap:wrap;display:flex;overflow-y:auto}.icon-pick-btn{border:1px solid var(--glass-border);border-radius:var(--radius-md);background:var(--bg-tertiary);cursor:pointer;width:44px;height:44px;transition:all var(--duration-fast);-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;font-size:1.1rem;display:flex}.icon-pick-btn:hover{border-color:var(--glass-border-hover);background:var(--bg-elevated);transform:scale(1.1)}.icon-pick-btn.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);background:#3b82f61a}.habit-templates-section{margin-top:var(--sp-4)}.habit-templates-grid{gap:var(--sp-2);flex-wrap:wrap;display:flex}.habit-template-chip{align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:var(--fs-sm);cursor:pointer;transition:all var(--duration-normal) var(--ease-default);background:#ffffff08;border:1px solid #ffffff12;font-family:inherit;display:inline-flex}.habit-template-chip:hover{background:color-mix(in srgb, var(--tpl-color) 12%, transparent);border-color:color-mix(in srgb, var(--tpl-color) 30%, transparent);color:var(--text-primary)}.habit-template-chip:disabled{opacity:.5;cursor:not-allowed}.habit-template-icon{font-size:1rem}.habit-template-name{font-weight:var(--fw-medium)}.drag-handle{cursor:grab;color:var(--text-tertiary);padding:var(--sp-1);-webkit-tap-highlight-color:transparent;touch-action:none;opacity:.55;transition:opacity var(--duration-fast);align-items:center;display:flex}.habit-card:hover .drag-handle{opacity:.85}.drag-handle:active{cursor:grabbing}.habit-card.dragging{opacity:.35;background:#3b82f60f}.drag-placeholder{border:2px dashed var(--accent);border-radius:var(--radius-lg);background:#3b82f60a}@media (width<=480px){.habits-daily-summary{text-align:center;gap:var(--sp-3);flex-direction:column}.habits-daily-stats,.habits-daily-done-text{justify-content:center}.week-day{padding:var(--sp-1-5) 0}.week-day-name{font-size:.55rem}.habit-stepper-value{min-width:36px;font-size:var(--fs-xs)}.habit-menu-btn{opacity:.6}.month-stats-grid{grid-template-columns:1fr 1fr}.month-rate-info{min-width:110px}.month-rate-name{max-width:80px}.month-overall-track{height:32px}.month-overall-pct{font-size:var(--fs-xs)}}@media (width>=768px){.habits-today-layout{gap:var(--sp-6);grid-template-columns:1fr 300px;align-items:start;display:grid}.habits-today-sidebar{top:var(--sp-6);position:sticky}.habits-pending-section,.habits-completed-section{gap:var(--sp-3)}.habit-card{padding:var(--sp-4) var(--sp-5)}.habit-card-name{-webkit-line-clamp:1;white-space:nowrap;text-overflow:ellipsis}.habits-daily-summary{padding:var(--sp-5) var(--sp-5);gap:var(--sp-5)}.habits-daily-ring-wrap{width:72px;height:72px}.habits-daily-ring-pct{font-size:var(--fs-sm)}.week-day{padding:var(--sp-2) var(--sp-2);gap:var(--sp-1)}.week-day-num{font-size:var(--fs-base)}.week-day-dot{width:7px;height:7px}.habit-icon-wrap{width:40px;height:40px}.habit-icon{font-size:1.2rem}.matrix-cell{width:32px;height:32px}.matrix-day-header{width:32px;min-width:32px}.cell-done .matrix-dot{width:10px;height:10px}.cell-empty .matrix-dot{width:12px;height:12px}.month-overall-track{height:40px}.month-rate-info{min-width:180px}.month-rate-bar-track{height:10px}.month-stats-grid{grid-template-columns:repeat(4,1fr)}.dash-charts-grid{gap:var(--sp-5);grid-template-columns:1fr 1fr;display:grid}.habit-templates-grid{gap:var(--sp-2);grid-template-columns:repeat(2,1fr);display:grid}}@media (width>=1200px){.habits-today-layout{gap:var(--sp-8);grid-template-columns:1fr 360px}.matrix-cell{width:36px;height:36px}.matrix-day-header{width:36px;min-width:36px}.matrix-name-text{max-width:180px}}@media (width>=1600px){.matrix-cell{width:40px;height:40px}.matrix-day-header{width:40px;min-width:40px}}.tasks-page{flex-direction:column;display:flex}.tasks-summary-row{gap:var(--sp-3);margin-bottom:var(--sp-5);grid-template-columns:repeat(3,1fr);display:grid}.tasks-summary-card{gap:var(--sp-1);padding:var(--sp-4) var(--sp-4) var(--sp-3);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:all var(--duration-normal) var(--ease-out);flex-direction:column;display:flex;position:relative;overflow:hidden}.tasks-summary-card:before{content:"";border-radius:var(--radius-md) var(--radius-md) 0 0;height:2px;position:absolute;top:0;left:0;right:0}.tasks-summary-card:first-child:before{background:var(--accent)}.tasks-summary-card:nth-child(2):before{background:var(--success)}.tasks-summary-card:nth-child(3):before{background:var(--secondary)}.tasks-summary-card:hover{border-color:var(--glass-border-hover);box-shadow:var(--shadow-md);transform:translateY(-2px)}.tasks-summary-value{font-size:var(--fs-2xl);font-weight:var(--fw-extrabold);letter-spacing:-.02em;line-height:1}.tasks-summary-label{font-size:var(--fs-xs);color:var(--text-tertiary);font-weight:var(--fw-medium);text-transform:uppercase;letter-spacing:.06em}.task-section{margin-bottom:var(--sp-5)}.task-section:last-child{margin-bottom:0}.task-section-header{margin-bottom:var(--sp-3);padding-bottom:var(--sp-3);border-bottom:1px solid #ffffff12;justify-content:space-between;align-items:center;display:flex}.task-section-left{align-items:center;gap:var(--sp-2);color:var(--text-secondary);display:flex}.task-section-left i,.task-section-left svg{opacity:.7}.task-section-title{font-size:var(--fs-sm);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.08em}.task-section-count{min-width:22px;height:22px;padding:0 var(--sp-2);font-size:var(--fs-2xs);font-weight:var(--fw-bold);border-radius:var(--radius-pill);color:var(--accent-light);background:#3b82f61f;border:1px solid #3b82f633;justify-content:center;align-items:center;display:inline-flex}.task-section-danger .task-section-left{color:var(--danger-light)}.task-section-danger .task-section-count{background:var(--danger-bg);color:var(--danger-light);border-color:#ef444433}.task-section-danger .task-section-header{border-bottom-color:#ef44441a}.tasks-list{gap:var(--sp-2);flex-direction:column;display:flex}.task-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:var(--sp-4);min-height:72px;box-shadow:var(--shadow-sm);transition:all var(--duration-normal) var(--ease-out);flex-direction:column;justify-content:center;gap:0;display:flex;position:relative;overflow:hidden}.task-card:before{content:"";width:3px;height:100%;transition:background var(--duration-fast) var(--ease-default);background:0 0;border-radius:3px 0 0 3px;position:absolute;top:0;left:0}.task-card[data-priority=urgent]:before{background:var(--danger)}.task-card[data-priority=high]:before{background:var(--warning)}.task-card[data-priority=medium]:before{background:var(--accent)}.task-card[data-priority=low]:before{background:var(--text-tertiary)}.task-card:hover{border-color:var(--glass-border-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.task-card:active{transform:scale(.985)translateY(0)}.task-card.task-overdue{background:#ef444408;border-color:#ef444440;animation:3s ease-in-out infinite overdue-pulse}@keyframes overdue-pulse{0%,to{border-color:#ef444440}50%{border-color:#ef444473}}.task-card.task-overdue:before{background:var(--danger)!important}.task-card.task-done{opacity:.65;background:#ffffff04;border-color:#ffffff0a}.task-card.task-done:before{opacity:.5;background:var(--success)!important}.task-card.task-done:hover{opacity:.85;border-color:#ffffff14}.task-card-main{align-items:flex-start;gap:var(--sp-3);width:100%;display:flex}.task-check{cursor:pointer;width:36px;height:36px;color:var(--text-tertiary);transition:all var(--duration-fast) var(--ease-default);-webkit-tap-highlight-color:transparent;border-radius:var(--radius-sm);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.task-check:hover{color:var(--accent-light);background:#3b82f614}.task-card.task-done .task-check{color:var(--success)}.task-check:active{transform:scale(.8)}.task-info{gap:var(--sp-1);cursor:pointer;flex-direction:column;flex:1;min-width:0;display:flex}.task-title{font-size:var(--fs-base);font-weight:var(--fw-semibold);line-height:var(--lh-tight);color:var(--text-primary)}.task-done .task-title{color:var(--text-tertiary);text-decoration:line-through}.task-desc{font-size:var(--fs-xs);color:var(--text-tertiary);line-height:var(--lh-snug);-webkit-line-clamp:2;line-clamp:2;opacity:.8;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.task-meta{align-items:center;gap:var(--sp-2);margin-top:var(--sp-1);flex-wrap:wrap;display:flex}.task-meta-chip{align-items:center;gap:var(--sp-0-5);font-size:var(--fs-2xs);font-weight:var(--fw-medium);color:var(--text-secondary);border-radius:var(--radius-pill);background:#ffffff0a;border:1px solid #ffffff12;padding:3px 8px;display:inline-flex}.task-meta-chip.overdue-chip{color:var(--danger-light);background:var(--danger-bg);border-color:#ef444426}.task-delete-btn{opacity:0;transition:all var(--duration-normal) var(--ease-default);color:var(--text-tertiary);border-radius:var(--radius-sm);flex-shrink:0}.task-delete-btn:hover{color:var(--danger-light);background:var(--danger-bg)}.task-card:hover .task-delete-btn{opacity:1}@media (width<=767px){.task-delete-btn{opacity:.6;min-width:44px;min-height:44px}}.subtask-badge{align-items:center;gap:var(--sp-0-5);font-size:var(--fs-2xs);font-weight:var(--fw-semibold);color:var(--accent-light);border-radius:var(--radius-pill);background:#3b82f61a;border:1px solid #3b82f633;padding:2px 8px;display:inline-flex}.subtask-list{margin-top:var(--sp-2);padding-left:calc(30px + var(--sp-3));border-left:1px solid #ffffff0f;flex-direction:column;gap:0;margin-left:14px;display:flex}.subtask-item{align-items:center;gap:var(--sp-2);min-height:36px;padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-sm);transition:background var(--duration-fast) var(--ease-default);display:flex}.subtask-item:hover{background:#ffffff05}.subtask-check{cursor:pointer;width:36px;min-width:44px;height:36px;min-height:44px;color:var(--text-tertiary);transition:all var(--duration-fast) var(--ease-default);-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.subtask-item:not(.subtask-done) .subtask-check:hover{color:var(--accent-light)}.subtask-done .subtask-check{color:var(--success)}.subtask-check:active{transform:scale(.85)}.subtask-title{font-size:var(--fs-sm);color:var(--text-secondary);line-height:1.3}.subtask-done .subtask-title{color:var(--text-tertiary);opacity:.7;text-decoration:line-through}.modal-subtasks-list{gap:var(--sp-0-5);flex-direction:column;max-height:200px;display:flex;overflow-y:auto}.modal-subtask-item{align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:var(--bg-tertiary);border-radius:var(--radius-sm);transition:background var(--duration-fast) var(--ease-default);display:flex}.modal-subtask-done{opacity:.6}.modal-subtask-check{cursor:pointer;width:24px;height:24px;color:var(--text-tertiary);border-radius:var(--radius-sm);transition:all var(--duration-fast) var(--ease-default);-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.modal-subtask-check:hover{color:var(--accent-light)}.modal-subtask-checked{color:var(--success)}.modal-subtask-title{font-size:var(--fs-sm);color:var(--text-primary);flex:1}.modal-subtask-done .modal-subtask-title{color:var(--text-tertiary);text-decoration:line-through}.subtask-add-row{gap:var(--sp-2);margin-top:var(--sp-2);display:flex}.subtask-add-row .form-input{flex:1}.recurrence-badge{font-size:var(--fs-2xs);font-weight:var(--fw-semibold);color:var(--text-secondary);background:var(--bg-tertiary);border-radius:var(--radius-pill);border:1px solid #ffffff12;align-items:center;padding:1px 6px;display:inline-flex}.tasks-page .empty-state i,.tasks-page .empty-state svg{width:48px;height:48px;color:var(--text-tertiary);opacity:.5}.tasks-page .empty-state-title{font-size:var(--fs-lg);font-weight:var(--fw-bold)}.task-analytics-section{gap:var(--sp-5);flex-direction:column;display:flex}.task-analytics-metrics{gap:var(--sp-3);grid-template-columns:repeat(3,1fr);display:grid}.task-analytics-stat{gap:var(--sp-1);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:var(--sp-4);box-shadow:var(--shadow-sm);transition:all var(--duration-normal) var(--ease-out);flex-direction:column;display:flex}.task-analytics-stat:hover{border-color:var(--glass-border-hover);transform:translateY(-1px)}.task-priority-grid{gap:var(--sp-3);grid-template-columns:repeat(4,1fr);display:grid}.task-priority-item{align-items:center;gap:var(--sp-1);padding:var(--sp-3);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);border-left:3px solid var(--prio-color,var(--accent));flex-direction:column;display:flex}.task-priority-count{font-size:var(--fs-xl);font-weight:var(--fw-extrabold);color:var(--prio-color,var(--text-primary));line-height:1}.task-priority-label{font-size:var(--fs-xs);color:var(--text-tertiary);font-weight:var(--fw-medium)}.tasks-search-row{align-items:center;gap:var(--sp-2);margin-top:var(--sp-3);display:flex}.tasks-search-wrap{align-items:center;gap:var(--sp-2);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:0 var(--sp-3);transition:border-color var(--duration-fast) var(--ease-default);flex:1;display:flex}.tasks-search-wrap:focus-within{border-color:var(--accent)}.tasks-search-wrap i,.tasks-search-wrap svg{color:var(--text-tertiary);flex-shrink:0}.tasks-search-input{color:var(--text-primary);font-size:var(--fs-sm);padding:var(--sp-2) 0;background:0 0;border:none;outline:none;flex:1;font-family:inherit}.tasks-search-input::placeholder{color:var(--text-tertiary)}.tasks-filter-select{border:1px solid var(--glass-border);border-radius:var(--radius-pill);color:var(--text-secondary);font-size:var(--fs-sm);font-weight:var(--fw-semibold);padding:var(--sp-2) var(--sp-4);cursor:pointer;transition:all var(--duration-fast) var(--ease-default);background:#ffffff08;min-width:100px;font-family:inherit}.tasks-filter-select:focus{border-color:var(--accent);outline:none}.tasks-filter-counter{font-size:var(--fs-xs);color:var(--text-tertiary);font-weight:var(--fw-medium);padding:var(--sp-1) 0;min-height:1.2em}.task-tag-chip{font-size:var(--fs-2xs);font-weight:var(--fw-semibold);color:var(--accent-light);border-radius:var(--radius-pill);background:#3b82f61a;border:1px solid #3b82f633;align-items:center;padding:2px 8px;display:inline-flex}.task-tag-removable{cursor:pointer;transition:background var(--duration-fast) var(--ease-default)}.task-tag-removable:hover{color:var(--danger-light);background:#ef444426;border-color:#ef44444d}.task-tags-container{gap:var(--sp-1);min-height:24px;margin-bottom:var(--sp-1);flex-wrap:wrap;display:flex}.task-card{cursor:grab}.task-card:active{cursor:grabbing}@media (width<=600px){.tasks-search-row{flex-wrap:wrap}.tasks-search-wrap{width:100%}.tasks-filter-select{flex:1;min-width:80px}.tasks-summary-card{padding:var(--sp-2-5) var(--sp-2)}.tasks-summary-val{font-size:var(--fs-lg)}.tasks-summary-label{font-size:var(--fs-2xs)}}@media (width<=400px){.tasks-summary-row{gap:var(--sp-2);grid-template-columns:repeat(3,1fr)}.task-analytics-metrics{grid-template-columns:1fr 1fr}.task-priority-grid{grid-template-columns:repeat(2,1fr)}}.analytics-page{flex-direction:column;display:flex}.analytics-sections{gap:var(--sp-5);flex-direction:column;display:flex}.analytics-period-bar{gap:var(--sp-2);padding:var(--sp-1) 0;-webkit-overflow-scrolling:touch;scrollbar-width:none;display:flex;overflow-x:auto}.analytics-period-bar::-webkit-scrollbar{display:none}.custom-range{align-items:flex-end;gap:var(--sp-3);padding:var(--sp-4);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);margin-top:var(--sp-2);display:flex}.custom-range-field{gap:var(--sp-1);flex-direction:column;flex:1;min-width:0;display:flex}.form-input-sm{padding:var(--sp-2) var(--sp-3);font-size:var(--fs-sm)}.analytics-hero{align-items:center;gap:var(--sp-5);padding:var(--sp-6) var(--sp-4);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-xl);text-align:center;flex-direction:column;display:flex;position:relative;overflow:hidden}.analytics-hero:before,.analytics-hero:after{display:none}.analytics-hero-main{align-items:center;gap:var(--sp-1);z-index:1;flex-direction:column;display:flex}.analytics-hero-pct{font-size:4rem;font-weight:var(--fw-extrabold);letter-spacing:-.03em;color:var(--accent-light);line-height:1}.analytics-hero-label{font-size:var(--fs-sm);color:var(--text-tertiary);font-weight:var(--fw-medium);text-transform:uppercase;letter-spacing:.1em}.analytics-hero-stats{gap:var(--sp-3);z-index:1;grid-template-columns:repeat(3,1fr);width:100%;max-width:400px;display:grid}.analytics-hero-stat{align-items:center;gap:var(--sp-1);padding:var(--sp-3) var(--sp-2);border:1px solid var(--glass-border);border-radius:var(--radius-md);transition:all var(--duration-fast) var(--ease-default);background:#ffffff08;flex-direction:column;display:flex}.analytics-hero-stat:hover{border-color:var(--glass-border-hover);background:#ffffff0d}.analytics-hero-stat-value{font-size:var(--fs-xl);font-weight:var(--fw-bold);line-height:1}.analytics-hero-stat-label{font-size:var(--fs-xs);color:var(--text-tertiary);font-weight:var(--fw-medium);text-transform:uppercase;letter-spacing:.06em}.chart-container{width:100%;height:220px;padding:var(--sp-2);background:var(--bg-tertiary);border-radius:var(--radius-sm);position:relative}.chart-container-sm{height:180px}.heatmap{gap:var(--sp-2);padding:var(--sp-2) 0;display:flex;overflow-x:auto}.heatmap-days{gap:var(--sp-0-5);flex-direction:column;flex-shrink:0;padding-top:0;display:flex}.heatmap-day-label{height:14px;line-height:14px;font-size:var(--fs-2xs);color:var(--text-tertiary);width:24px}.heatmap-grid{gap:var(--sp-0-5);flex:1;display:flex}.heatmap-week{gap:var(--sp-0-5);flex-direction:column;display:flex}.heatmap-cell{width:14px;height:14px;transition:all var(--duration-fast) var(--ease-default);cursor:default;border-radius:3px}.heatmap-cell-empty{background:0 0}.heatmap-level-0{background:var(--bg-tertiary)}.heatmap-level-1{background:#3b82f633}.heatmap-level-2{background:#3b82f666}.heatmap-level-3{background:#3b82f6a6}.heatmap-level-4{background:#3b82f6e6}.heatmap-today{outline:2px solid var(--accent-light);outline-offset:1px}.heatmap-cell:hover{transform:scale(1.3)}.heatmap-legend{align-items:center;gap:var(--sp-1);padding-top:var(--sp-2);justify-content:flex-end;display:flex}.habit-ranking{gap:var(--sp-3);flex-direction:column;display:flex}.habit-rank-item{align-items:center;gap:var(--sp-3);padding:var(--sp-2) 0;transition:background var(--duration-fast) var(--ease-default);display:flex}.habit-rank-info{align-items:center;gap:var(--sp-2);flex-shrink:0;width:30%;min-width:100px;display:flex}.habit-rank-name{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.habit-rank-bar-container{background:var(--bg-tertiary);border-radius:var(--radius-pill);flex:1;height:8px;overflow:hidden}.habit-rank-bar{border-radius:var(--radius-pill);height:100%;transition:width .6s var(--ease-default);min-width:2px;position:relative}.habit-rank-pct{font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--text-primary);text-align:right;min-width:40px}.analytics-bw-grid{gap:var(--sp-3);grid-template-columns:1fr 1fr;display:grid}.analytics-bw-card{gap:var(--sp-2);padding:var(--sp-4);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);transition:all var(--duration-normal) var(--ease-default);flex-direction:column;display:flex}.analytics-bw-card:hover{border-color:var(--glass-border-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.analytics-bw-header{align-items:center;gap:var(--sp-2);font-size:var(--fs-xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.08em;display:flex}.analytics-bw-name{font-size:var(--fs-base);font-weight:var(--fw-semibold);color:var(--text-primary)}.analytics-bw-rate{font-size:var(--fs-sm);font-weight:var(--fw-medium)}.task-analytics-metrics{gap:var(--sp-3);margin-bottom:var(--sp-4);grid-template-columns:repeat(3,1fr);display:grid}.task-analytics-stat{gap:var(--sp-1);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--sp-4);flex-direction:column;display:flex}.task-analytics-value{font-size:var(--fs-2xl);font-weight:var(--fw-extrabold);color:var(--text-primary);letter-spacing:-.02em;line-height:1}.task-analytics-label{font-size:var(--fs-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em;font-weight:var(--fw-medium)}.task-analytics-delta{font-size:var(--fs-xs);font-weight:var(--fw-semibold);margin-top:var(--sp-1)}.task-analytics-delta.positive{color:var(--success)}.task-analytics-delta.negative{color:var(--danger)}.task-cat-section-label{font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.08em;margin-top:var(--sp-4);margin-bottom:var(--sp-3)}.task-cat-bars{gap:var(--sp-2);flex-direction:column;display:flex}.task-cat-row{align-items:center;gap:var(--sp-3);display:flex}.task-cat-name{width:25%;min-width:80px;color:var(--text-secondary);font-size:var(--fs-sm);white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;overflow:hidden}.task-cat-bar-track{background:var(--bg-tertiary);border-radius:var(--radius-pill);flex:1;height:8px;overflow:hidden}.task-cat-bar-fill{background:var(--accent);border-radius:var(--radius-pill);height:100%;transition:width .6s var(--ease-default);min-width:2px}.task-cat-count{text-align:right;min-width:28px;color:var(--text-primary);font-weight:var(--fw-semibold);font-size:var(--fs-sm)}@media (width<=400px){.task-analytics-metrics{grid-template-columns:1fr 1fr}.analytics-bw-grid{grid-template-columns:1fr}}.mood-corr-grid{gap:var(--sp-2);flex-direction:column;display:flex}.mood-corr-row{align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);background:var(--bg-tertiary);border-radius:var(--radius-sm);transition:background var(--duration-fast) var(--ease-default);display:flex}.mood-corr-row:hover{background:#ffffff08}.mood-corr-emoji{text-align:center;flex-shrink:0;width:32px;font-size:1.4rem}.mood-corr-label{font-size:var(--fs-xs);color:var(--text-secondary);width:56px;font-weight:var(--fw-medium);flex-shrink:0}.mood-corr-bar-track{background:var(--bg-secondary);border-radius:var(--radius-pill);flex:1;height:8px;overflow:hidden}.mood-corr-bar-fill{background:var(--accent);border-radius:var(--radius-pill);height:100%;transition:width .4s var(--ease-default)}.mood-corr-pct{font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--text-primary);text-align:right;min-width:36px}.mood-corr-count{min-width:28px;font-size:var(--fs-xs);color:var(--text-tertiary)}.settings-page{gap:var(--sp-5);flex-direction:column;display:flex}.settings-page>.page-header{margin-bottom:0}.settings-header-accent{border-radius:var(--radius-pill);background:var(--accent);width:32px;height:2px;margin-top:var(--sp-2)}.settings-stat-icon{width:40px;height:40px;transition:transform var(--duration-normal) var(--ease-default);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.settings-stat:hover .settings-stat-icon{transform:scale(1.08)}.settings-stats{gap:var(--sp-3);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--sp-4);flex-direction:column;display:flex}.settings-stat{align-items:center;gap:var(--sp-3);font-size:var(--fs-base);color:var(--text-secondary);padding:var(--sp-1) 0;transition:color var(--duration-normal) var(--ease-default);display:flex}.settings-stat:hover{color:var(--text-primary)}.settings-stat+.settings-stat{padding-top:var(--sp-3);border-top:1px solid #ffffff0a}.settings-tags{gap:var(--sp-2);flex-wrap:wrap;display:flex}.settings-tag{align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:var(--bg-tertiary);border-radius:var(--radius-pill);font-size:var(--fs-sm);color:var(--text-secondary);transition:all var(--duration-normal) var(--ease-default);border:1px solid #ffffff12;display:inline-flex}.settings-tag:hover{background:#ffffff0a;border-color:#ffffff1f}.settings-tag-remove{width:28px;min-width:44px;height:28px;min-height:44px;color:var(--text-tertiary);cursor:pointer;border-radius:var(--radius-full);transition:all var(--duration-normal) var(--ease-default);background:0 0;border:none;justify-content:center;align-items:center;font-size:14px;line-height:1;display:flex}.settings-tag-remove:hover{color:var(--danger-light);background:#ef44441f;transform:scale(1.1)}.settings-account-card{background:#ef444408;border:1px solid #ef444438}.settings-privacy{gap:var(--sp-3);flex-direction:column;display:flex}.settings-actions{gap:var(--sp-3);background:var(--bg-tertiary);border-radius:var(--radius-sm);padding:var(--sp-4);border:1px solid #ef444414;flex-direction:column;display:flex}.settings-actions .btn-danger{color:var(--danger-light);transition:all var(--duration-normal) var(--ease-default);background:#ef44441a;border:1px solid #ef444459}.settings-actions .btn-danger:hover{background:#ef44442e;border-color:#ef44448c}.settings-about{text-align:center;padding:var(--sp-4) var(--sp-2);align-items:center;gap:var(--sp-1-5);flex-direction:column;display:flex}.settings-about-line{border-radius:var(--radius-pill);width:36px;height:1px;margin-bottom:var(--sp-2);background:#ffffff0f}.settings-version{font-size:var(--fs-xs);color:var(--text-tertiary);opacity:.5;margin-top:var(--sp-1);letter-spacing:.08em;font-weight:var(--fw-medium)}.settings-profile-form{gap:var(--sp-4);flex-direction:column;max-width:500px;display:flex}.settings-profile-form .btn-primary{align-self:flex-end;width:auto}.form-counter{text-align:right;font-size:var(--fs-2xs);color:var(--text-tertiary);margin-top:var(--sp-1);display:block}.form-counter-warn{color:var(--warning-light)}.settings-avatar-grid{gap:var(--sp-2);grid-template-columns:repeat(8,1fr);display:grid}.settings-avatar-option{aspect-ratio:1;background:var(--bg-tertiary);border-radius:var(--radius-md);cursor:pointer;width:100%;transition:all var(--duration-fast) var(--ease-default);border:2px solid #0000;justify-content:center;align-items:center;font-size:1.5rem;display:flex}.settings-avatar-option:hover{background:var(--bg-hover);border-color:var(--glass-border-hover);transform:scale(1.1)}.settings-avatar-option.selected{border-color:var(--accent);background:#3b82f61f}.settings-theme-options{gap:var(--sp-2);display:flex}.settings-theme-btn{justify-content:center;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-3);background:var(--bg-tertiary);border-radius:var(--radius-lg);color:var(--text-secondary);font-size:var(--fs-sm);font-weight:var(--fw-semibold);cursor:pointer;transition:all var(--duration-fast) var(--ease-default);border:2px solid #0000;flex-direction:row;flex:1;font-family:inherit;display:flex}.settings-theme-btn:hover{background:var(--bg-hover);border-color:var(--glass-border-hover)}.settings-theme-btn.active{border-color:var(--accent);color:var(--accent-light);background:#3b82f614}.settings-theme-icon{font-size:1.25rem;line-height:1}.settings-account-info{margin-bottom:var(--sp-2);padding-bottom:var(--sp-2);border-bottom:1px solid #ffffff0f}.settings-delete-account-btn{margin-top:var(--sp-1);color:var(--danger-light)!important}.settings-delete-account-btn:hover{background:#ef444414!important}@media (width<=600px){.settings-avatar-grid{grid-template-columns:repeat(6,1fr)}.settings-theme-options{flex-direction:row}.settings-page>.page-header .page-subtitle,.settings-header-accent{display:none}}.login-page{min-height:100vh;padding:var(--sp-4);background:var(--bg-primary);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.login-page:before{content:"";background:radial-gradient(circle,#3b82f61f 0%,#0000 70%);border-radius:50%;width:500px;height:500px;animation:8s ease-in-out infinite breathe;position:absolute;top:-100px;right:-100px}.login-page:after{content:"";background:radial-gradient(circle,#8b5cf614 0%,#0000 70%);border-radius:50%;width:400px;height:400px;animation:10s ease-in-out 2s infinite breathe;position:absolute;bottom:-80px;left:-80px}.login-card{-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:var(--radius-xl);width:100%;max-width:420px;padding:var(--sp-10) var(--sp-8) var(--sp-8);animation:fade-in-up .6s var(--ease-out);z-index:1;box-shadow:var(--shadow-xl);background:#0a1122e6;position:relative}.login-card:before{content:"";border-radius:inherit;z-index:-1;opacity:0;transition:opacity var(--duration-slower) var(--ease-default);background:linear-gradient(135deg,#3b82f64d,#0000 40% 60%,#8b5cf633);position:absolute;inset:-1px}.login-card:hover:before{opacity:1}.login-header{text-align:center;margin-bottom:var(--sp-8)}.login-brand{justify-content:center;align-items:baseline;gap:var(--sp-2);margin-bottom:var(--sp-3);display:flex}.login-logo{font-size:var(--fs-3xl);font-weight:var(--fw-bold);background:var(--accent-gradient);-webkit-text-fill-color:transparent;letter-spacing:.04em;-webkit-background-clip:text;background-clip:text;line-height:1.1}.login-logo-life{font-size:var(--fs-lg);font-weight:var(--fw-light);color:var(--text-secondary);letter-spacing:.08em}.login-subtitle{color:var(--text-tertiary);font-size:var(--fs-sm);font-weight:var(--fw-medium);letter-spacing:.02em}.login-tabs{gap:var(--sp-1);border-radius:var(--radius-md);margin-bottom:var(--sp-6);border:1px solid var(--glass-border);background:#050a1499;padding:3px;display:flex}.login-tab{padding:var(--sp-2-5) 0;color:var(--text-tertiary);font-size:var(--fs-sm);font-weight:var(--fw-semibold);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--duration-normal) var(--ease-default);-webkit-tap-highlight-color:transparent;background:0 0;border:1px solid #0000;flex:1;font-family:inherit}.login-tab.active{color:var(--accent-light);background:#3b82f61f;border:1px solid #3b82f633}.login-tab:hover:not(.active){color:var(--text-secondary);background:#ffffff08}.login-form{gap:var(--sp-4);flex-direction:column;display:flex}.form-input-icon-wrap{position:relative}.form-input-icon{color:var(--text-tertiary);pointer-events:none;width:18px;height:18px;transition:color var(--duration-normal) var(--ease-default);position:absolute;top:50%;left:14px;transform:translateY(-50%)}.form-input-icon-wrap:focus-within .form-input-icon{color:var(--accent-light)}.form-input-with-icon{padding-left:46px}.login-btn{width:100%;padding:var(--sp-3-5) var(--sp-5);font-size:var(--fs-md);font-weight:var(--fw-bold);margin-top:var(--sp-3);justify-content:center;align-items:center;gap:var(--sp-2);border-radius:var(--radius-md);letter-spacing:.04em;text-transform:uppercase;background:var(--accent);min-height:52px;transition:all var(--duration-normal) var(--ease-default);display:flex;position:relative;overflow:hidden}.login-btn:after{content:"";width:100%;height:100%;transition:left var(--duration-slower) var(--ease-default);background:linear-gradient(90deg,#0000,#ffffff1f,#0000);position:absolute;top:0;left:-100%}.login-btn:hover:not(:disabled):after{left:100%}.login-btn:hover:not(:disabled){background:var(--accent-dark);box-shadow:var(--shadow-glow-lg);transform:translateY(-2px)}.login-btn:active:not(:disabled){transform:translateY(0)}.login-btn:disabled{opacity:.6;cursor:not-allowed}.login-forgot-btn{width:100%;color:var(--text-tertiary);font-size:var(--fs-sm);cursor:pointer;padding:var(--sp-2) 0;transition:color var(--duration-normal);background:0 0;border:none;display:block}.login-forgot-btn:hover{color:var(--accent-light)}.login-error{padding:var(--sp-3) var(--sp-4);background:var(--danger-bg);border-radius:var(--radius-sm);color:var(--danger-light);font-size:var(--fs-sm);text-align:center;border:1px solid #ef444433}.login-error.login-success{background:var(--success-bg);color:var(--success-light);border-color:#22c55e33}.login-spinner{border:2.5px solid #fff3;border-top-color:#fff;border-radius:50%;width:22px;height:22px;animation:.6s linear infinite spin}@media (width<=400px){.login-card{padding:var(--sp-8) var(--sp-5) var(--sp-5)}.login-header{margin-bottom:var(--sp-5)}}.achievement-overlay{z-index:1100;padding:var(--sp-4);-webkit-backdrop-filter:blur(8px);animation:fadeIn var(--duration-normal) var(--ease-default);background:#000000d9;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.achievement-card{background:var(--bg-secondary);border-radius:var(--radius-lg);padding:var(--sp-10) var(--sp-6) var(--sp-6);text-align:center;align-items:center;gap:var(--sp-3);border:1px solid #ffffff14;flex-direction:column;width:100%;max-width:360px;display:flex;position:relative;overflow:hidden;box-shadow:0 24px 80px #0009}.achievement-card:before{content:"";pointer-events:none;background:linear-gradient(90deg,#0000,#ffffff08,#0000);width:100%;height:100%;animation:2s ease-out .3s ach-shimmer-pass;position:absolute;top:0;left:-100%}.achievement-counter{font-size:var(--fs-2xs);font-weight:var(--fw-semibold);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.12em}.achievement-label{font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.14em}.achievement-icon-wrap{border-radius:var(--radius-full);background:var(--ach-popup-glow,#3b82f61a);border:2px solid var(--ach-popup-color,var(--accent));width:96px;height:96px;animation:ach-icon-bounce .6s var(--ease-default) .15s both;justify-content:center;align-items:center;display:flex;position:relative}.achievement-icon-lg{font-size:3rem;line-height:1}.achievement-name{font-size:var(--fs-xl);font-weight:var(--fw-bold);color:var(--text-primary);line-height:var(--lh-tight)}.achievement-desc{font-size:var(--fs-sm);color:var(--text-secondary);line-height:1.5}.achievement-xp-badge{background:var(--ach-popup-glow,#3b82f61a);border:1px solid var(--ach-popup-color,var(--accent));color:var(--ach-popup-color,var(--accent-light));font-size:var(--fs-sm);font-weight:var(--fw-bold);padding:var(--sp-1-5) var(--sp-5);border-radius:var(--radius-pill);letter-spacing:.02em}.ach-confetti-area{pointer-events:none;position:absolute;inset:0;overflow:hidden}@keyframes ach-icon-bounce{0%{opacity:0;transform:scale(0)}60%{opacity:1;transform:scale(1.15)}80%{transform:scale(.95)}to{transform:scale(1)}}@keyframes ach-shimmer-pass{0%{left:-100%}to{left:200%}}.ach-page{gap:var(--sp-5);padding-bottom:var(--sp-8);flex-direction:column;display:flex}.ach-hero{align-items:center;gap:var(--sp-3);padding:var(--sp-5) var(--sp-5) var(--sp-5);text-align:center;background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-xl);flex-direction:column;display:flex;position:relative;overflow:hidden}.ach-hero:before{display:none}.ach-hero-badge{z-index:1;width:96px;height:96px;position:relative}.ach-hero-badge svg.ach-ring-svg{width:100%;height:100%;position:absolute;inset:0;transform:rotate(-90deg)}.ach-ring-bg{fill:none;stroke:var(--bg-tertiary);stroke-width:4px}.ach-ring-fill{fill:none;stroke:var(--ach-era-color,var(--accent));stroke-width:4px;stroke-linecap:round;transition:stroke-dashoffset 1.2s var(--ease-default)}.ach-hero-badge-inner{inset:var(--sp-2);border-radius:var(--radius-full);background:var(--bg-secondary);justify-content:center;align-items:center;gap:var(--sp-0-5);border:1px solid #ffffff0f;flex-direction:column;display:flex;position:absolute}.ach-hero-era-icon{font-size:2rem;line-height:1}.ach-hero-level-num{font-size:.7rem;font-weight:var(--fw-extrabold);color:var(--ach-era-color,var(--accent));letter-spacing:-.02em;line-height:1}.ach-hero-title{align-items:center;gap:var(--sp-1-5);z-index:1;flex-direction:column;display:flex}.ach-hero-level{font-size:1.75rem;font-weight:var(--fw-extrabold);color:var(--ach-era-color,var(--accent));letter-spacing:-.02em;line-height:1}.ach-hero-era-name{align-items:center;gap:var(--sp-1);font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--ach-era-color,var(--accent));background:var(--ach-era-glow,#3b82f614);border-radius:var(--radius-pill);letter-spacing:.02em;border:1px solid color-mix(in srgb, var(--ach-era-color,var(--accent)) 15%, transparent);padding:4px 14px;display:inline-flex}.ach-hero-xp-wrap{gap:var(--sp-2);z-index:1;flex-direction:column;width:100%;max-width:300px;display:flex}.ach-hero-xp-bar{background:var(--bg-tertiary);border-radius:var(--radius-pill);width:100%;height:6px;overflow:hidden}.ach-hero-xp-fill{border-radius:var(--radius-pill);height:100%;transition:width 1s var(--ease-default);min-width:3px;position:relative}.ach-hero-xp-fill:after{content:"";background:linear-gradient(90deg,#0000,#fff3,#0000);animation:3s ease-in-out infinite ach-xp-shimmer;position:absolute;inset:0}@keyframes ach-xp-shimmer{0%{transform:translate(-100%)}to{transform:translate(200%)}}.ach-hero-xp-text{font-size:var(--fs-xs);color:var(--text-tertiary);text-align:center;font-weight:var(--fw-medium)}.ach-hero-pill{align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-5);background:var(--bg-tertiary);border-radius:var(--radius-pill);font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text-primary);z-index:1;border:1px solid #ffffff12;display:flex}.ach-hero-pill-pct{font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--accent-light);border-radius:var(--radius-pill);letter-spacing:.02em;background:#3b82f61f;padding:2px 10px}.ach-section{gap:var(--sp-3);flex-direction:column;display:flex}.ach-section-title{font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--text-primary);align-items:center;gap:var(--sp-2);letter-spacing:.01em;display:flex}.ach-section-count{font-size:var(--fs-2xs);font-weight:var(--fw-semibold);color:var(--text-tertiary);background:var(--bg-tertiary);border-radius:var(--radius-pill);padding:2px 10px}.ach-section-count.all-done{color:var(--success);background:var(--success-bg)}.ach-quest{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);transition:all var(--duration-normal) var(--ease-default);overflow:hidden}.ach-quest:hover{border-color:var(--glass-border-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.ach-quest-top{align-items:center;gap:var(--sp-3);padding:var(--sp-4);display:flex}.ach-quest-icon-box{background:var(--qcg,#3b82f61a);border:1px solid color-mix(in srgb, var(--qc,#3b82f6) 25%, transparent);border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;width:54px;height:54px;font-size:1.75rem;line-height:1;display:flex;position:relative}.ach-quest-info{gap:var(--sp-1);flex-direction:column;flex:1;min-width:0;display:flex}.ach-quest-name{font-size:var(--fs-base);font-weight:var(--fw-bold);color:var(--text-primary);line-height:var(--lh-tight)}.ach-quest-desc{font-size:var(--fs-xs);color:var(--text-tertiary);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;line-height:1.4;display:-webkit-box;overflow:hidden}.ach-quest-pct-wrap{flex-shrink:0;align-items:baseline;gap:1px;display:flex}.ach-quest-pct-num{font-size:2rem;font-weight:var(--fw-extrabold);letter-spacing:-.03em;line-height:1}.ach-quest-pct-sym{font-size:var(--fs-sm);font-weight:var(--fw-bold)}.ach-quest-bottom{padding:0 var(--sp-4) var(--sp-4);gap:var(--sp-2);flex-direction:column;display:flex}.ach-quest-bar{background:var(--bg-tertiary);border-radius:var(--radius-pill);width:100%;height:6px;overflow:hidden}.ach-quest-bar-fill{border-radius:var(--radius-pill);background:var(--qc,#3b82f6);height:100%;animation:ach-bar-fill-in .8s var(--ease-default) both;position:relative}.ach-quest-bar-fill:after{content:"";background:linear-gradient(90deg,#0000 0%,#fff3 50%,#0000 100%);animation:2.5s ease-in-out 1s infinite ach-bar-shimmer;position:absolute;inset:0}.ach-quest-foot-row{justify-content:space-between;align-items:center;gap:var(--sp-2);display:flex}.ach-quest-stat{font-size:var(--fs-xs);color:var(--text-tertiary);font-weight:var(--fw-medium)}.ach-quest-xp{font-size:var(--fs-2xs);font-weight:var(--fw-bold);border-radius:var(--radius-pill);letter-spacing:.02em;border:1px solid;flex-shrink:0;padding:2px 10px}.ach-badge-grid{gap:var(--sp-3);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.ach-badge{justify-content:center;align-items:center;gap:var(--sp-2);padding:var(--sp-6) var(--sp-3) var(--sp-4);background:var(--bg,#3b82f60a);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid color-mix(in srgb, var(--bc,var(--accent)) 20%, transparent);border-radius:var(--radius-lg);text-align:center;min-height:160px;transition:all var(--duration-slow) var(--ease-default);cursor:default;flex-direction:column;display:flex;position:relative;overflow:hidden}.ach-badge:hover{border-color:color-mix(in srgb, var(--bc,var(--accent)) 40%, transparent);background:var(--bg,#3b82f612);box-shadow:var(--shadow-md);transform:translateY(-2px)}.ach-badge-glow{display:none}.ach-badge-icon{z-index:1;font-size:2.75rem;line-height:1;animation:3.5s ease-in-out infinite ach-icon-idle}.ach-badge-name{font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--text-primary);line-height:var(--lh-tight);z-index:1}.ach-badge-meta{align-items:center;gap:var(--sp-1);z-index:1;flex-direction:column;display:flex}.ach-badge-date{font-size:var(--fs-2xs);color:var(--text-tertiary);font-weight:var(--fw-medium)}.ach-badge-xp{font-size:var(--fs-2xs);font-weight:var(--fw-bold);color:var(--bc,var(--accent-light));background:var(--bg,#3b82f60f);border:1px solid color-mix(in srgb, var(--bc,var(--accent)) 25%, transparent);border-radius:var(--radius-pill);letter-spacing:.02em;padding:2px 8px}.ach-empty{padding:var(--sp-8) var(--sp-5);text-align:center;align-items:center;gap:var(--sp-3);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-xl);flex-direction:column;display:flex}.ach-empty-icon{opacity:.8;font-size:4rem;line-height:1}.ach-empty-heading{font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--text-primary)}.ach-empty-sub{font-size:var(--fs-sm);color:var(--text-tertiary);max-width:280px;line-height:1.6}.ach-locked-group{gap:var(--sp-2);flex-direction:column;display:flex}.ach-locked-cat{font-size:var(--fs-2xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.08em;margin-top:var(--sp-3);align-items:center;gap:var(--sp-1);display:flex}.ach-locked-group:first-child .ach-locked-cat{margin-top:0}.ach-locked-grid{gap:var(--sp-1);flex-direction:column;display:flex}.ach-locked-pill{align-items:center;gap:var(--sp-3);padding:var(--sp-2-5) var(--sp-3);border-radius:var(--radius-sm);opacity:.5;transition:all var(--duration-normal) var(--ease-default);background:#ffffff05;border:1px solid #ffffff0d;display:flex}.ach-locked-pill:hover{opacity:.7;background:#ffffff08;border-color:#ffffff12}.ach-locked-icon{filter:grayscale()blur(.5px);flex-shrink:0;font-size:1.2rem;line-height:1}.ach-locked-text{gap:var(--sp-0-5);flex-direction:column;min-width:0;display:flex}.ach-locked-name{font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--text-secondary)}.ach-locked-req{font-size:var(--fs-2xs);color:var(--text-tertiary);line-height:1.3}.ach-share-btn{top:var(--sp-2);right:var(--sp-2);border-radius:var(--radius-full);width:44px;height:44px;color:var(--text-tertiary);cursor:pointer;opacity:.35;transition:all var(--duration-normal) var(--ease-default);-webkit-tap-highlight-color:transparent;background:#0009;border:none;justify-content:center;align-items:center;display:flex;position:absolute}.ach-badge:hover .ach-share-btn{opacity:1}.ach-share-btn:hover{background:var(--bg-tertiary);color:var(--text-primary);transform:scale(1.1)}@media (hover:none){.ach-share-btn{opacity:.6}}@keyframes ach-icon-idle{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes ach-bar-fill-in{0%{width:0}}@keyframes ach-bar-shimmer{0%{transform:translate(-100%)}to{transform:translate(200%)}}@keyframes ach-glow-pulse{0%,to{opacity:.08}50%{opacity:.16}}@media (width<=390px){.ach-hero-badge{width:80px;height:80px}.ach-hero-level{font-size:1.5rem}}.profile-page{gap:var(--sp-5);flex-direction:column;display:flex}.profile-hero{text-align:center;padding:var(--sp-10) var(--sp-5) var(--sp-7);align-items:center;gap:var(--sp-4);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-xl);flex-direction:column;display:flex;position:relative;overflow:hidden}.profile-hero:before{display:none}.profile-hero-bg-icon{opacity:.03;pointer-events:none;-webkit-user-select:none;user-select:none;font-size:9rem;line-height:1;position:absolute;top:-16px;right:-16px;transform:rotate(15deg)}.profile-avatar{justify-content:center;align-items:center;width:112px;height:112px;display:flex;position:relative}.profile-avatar-emoji{z-index:1;font-size:3.5rem;line-height:1}.profile-avatar-ring{background-image:var(--accent-gradient-wide);-webkit-mask-composite:xor;background-origin:border-box;background-clip:border-box;border:3px solid #0000;border-radius:50%;padding:3px;animation:8s linear infinite profile-ring-spin;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}@keyframes profile-ring-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.profile-info{align-items:center;gap:var(--sp-1-5);flex-direction:column;display:flex}.profile-level{font-size:var(--fs-2xl);font-weight:var(--fw-extrabold);letter-spacing:-.02em;line-height:1}.profile-era{font-size:var(--fs-lg);font-weight:var(--fw-semibold);letter-spacing:.01em}.profile-title-badge{font-size:var(--fs-xs);font-weight:var(--fw-bold);border-radius:var(--radius-pill);letter-spacing:.04em;background:#ffffff08;border:1px solid;padding:3px 14px}.profile-xp-bar{width:100%;max-width:300px}.profile-stats-scroll{gap:var(--sp-3);scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding-bottom:var(--sp-1);scrollbar-width:none;display:flex;overflow-x:auto}.profile-stats-scroll::-webkit-scrollbar{display:none}.profile-stat-card{align-items:center;gap:var(--sp-2);min-width:128px;padding:var(--sp-5) var(--sp-3);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);scroll-snap-align:start;text-align:center;transition:all var(--duration-normal) var(--ease-out);flex-direction:column;flex:1;display:flex}.profile-stat-card:hover{border-color:var(--glass-border-hover);box-shadow:var(--shadow-md);transform:translateY(-2px)}.profile-stat-icon{font-size:1.75rem;line-height:1}.profile-stat-value{font-size:var(--fs-2xl);font-weight:var(--fw-extrabold);color:var(--text-primary);letter-spacing:-.02em;line-height:1}.profile-stat-label{font-size:var(--fs-xs);color:var(--text-tertiary);white-space:nowrap;font-weight:var(--fw-medium);letter-spacing:.02em}.profile-ach-bar-track{background:var(--bg-tertiary);border-radius:var(--radius-pill);height:6px;overflow:hidden}.profile-ach-bar-fill{background:var(--accent);border-radius:var(--radius-pill);height:100%;transition:width .6s var(--ease-default);position:relative}.profile-ach-bar-fill:after{content:"";background:linear-gradient(90deg,#0000,#fff3,#0000);animation:2.5s ease-in-out infinite profile-bar-shimmer;position:absolute;inset:0}@keyframes profile-bar-shimmer{0%{transform:translate(-100%)}to{transform:translate(200%)}}.profile-ach-recent{gap:var(--sp-3);margin-top:var(--sp-3);justify-content:center;display:flex}.profile-ach-icon{transition:transform var(--duration-normal) var(--ease-default);cursor:default;font-size:2.25rem;line-height:1}.profile-ach-icon:hover{transform:scale(1.2)translateY(-2px)}.profile-titles-crown{margin-right:var(--sp-1);font-size:1.1em}.profile-titles-list{gap:var(--sp-2);flex-direction:column;display:flex}.profile-title-item{align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border:1px solid var(--glass-border);border-radius:var(--radius-md);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));cursor:pointer;text-align:left;color:var(--text-primary);transition:all var(--duration-normal) var(--ease-default);-webkit-tap-highlight-color:transparent;width:100%;display:flex}.profile-title-item:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-hover)}.profile-title-item.active{border-color:var(--accent);background:#3b82f614}@keyframes title-active-glow{0%,to{box-shadow:0 0 20px #3b82f626,inset 0 0 0 1px #3b82f61a}50%{box-shadow:0 0 32px #3b82f640,inset 0 0 0 1px #3b82f626}}.profile-title-name{font-size:var(--fs-sm);font-weight:var(--fw-semibold);flex-shrink:0}.profile-title-desc{font-size:var(--fs-xs);color:var(--text-tertiary);flex:1;min-width:0}.profile-title-active-badge{font-size:var(--fs-2xs);font-weight:var(--fw-bold);color:var(--accent-light);border-radius:var(--radius-pill);letter-spacing:.04em;text-transform:uppercase;background:#3b82f626;flex-shrink:0;padding:2px 10px}.profile-title-locked{opacity:.5;cursor:default}.profile-title-locked:hover{background:var(--glass-bg);border-color:var(--glass-border)}.profile-xp-summary{gap:var(--sp-3);margin-bottom:var(--sp-3);display:flex}.profile-xp-sum-item{align-items:center;gap:var(--sp-1);padding:var(--sp-3);background:var(--bg-tertiary);border-radius:var(--radius-md);flex-direction:column;flex:1;display:flex}.profile-xp-sum-val{font-size:var(--fs-lg);font-weight:var(--fw-extrabold);color:var(--accent-light)}.profile-xp-sum-label{font-size:var(--fs-xs);color:var(--text-tertiary)}.profile-xp-history{gap:var(--sp-1);flex-direction:column;max-height:300px;display:flex;overflow-y:auto}.profile-xp-entry{align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-sm);transition:background var(--duration-fast) var(--ease-default);display:flex}.profile-xp-entry:hover{background:#ffffff08}.profile-xp-entry-label{font-size:var(--fs-sm);color:var(--text-secondary);flex:1}.profile-xp-entry-date{font-size:var(--fs-xs);color:var(--text-tertiary)}.profile-xp-entry-val{font-size:var(--fs-sm);font-weight:var(--fw-bold);text-align:right;min-width:60px}.profile-mood-grid{gap:var(--sp-1);margin-bottom:var(--sp-3);grid-template-columns:repeat(10,1fr);display:grid}.profile-mood-cell{aspect-ratio:1;border-radius:var(--radius-sm);transition:transform var(--duration-fast);background:#ffffff0a;border:1px solid #ffffff0a;justify-content:center;align-items:center;font-size:1.1rem;display:flex}.profile-mood-cell:hover{transform:scale(1.15)}.profile-mood-cell.empty{opacity:.3}.profile-mood-legend{justify-content:center;gap:var(--sp-3);flex-wrap:wrap;display:flex}.profile-mood-legend-item{font-size:var(--fs-2xs);color:var(--text-tertiary)}@media (width<=600px){.profile-mood-grid{grid-template-columns:repeat(6,1fr)}}.fin-page{padding-bottom:var(--sp-10)}.fin-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-xl);padding:var(--sp-5);margin-bottom:var(--sp-4);box-shadow:var(--shadow-card);transition:all var(--duration-normal) var(--ease-out)}.fin-card:hover{border-color:var(--glass-border-hover);box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}.fin-card-accent{padding:var(--sp-4) var(--sp-5);background:linear-gradient(135deg,#3b82f60f 0%,#3b82f605 100%);border-color:#3b82f62e}.fin-card-danger{background:#ef44440a;border-color:#ef44442e}.fin-card-header{margin-bottom:var(--sp-4);justify-content:space-between;align-items:center;display:flex}.fin-card-label{font-size:var(--fs-2xs);font-weight:var(--fw-bold);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.09em;margin-bottom:var(--sp-2);display:block}.fin-card-big{font-size:var(--fs-2xl);font-weight:var(--fw-extrabold);color:var(--text-primary);letter-spacing:-.03em;margin-bottom:var(--sp-2);line-height:1;display:block}.fin-card-accent-val{font-size:var(--fs-sm);font-weight:var(--fw-bold)}.fin-section-label{font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--text-secondary)}.fin-ov-row{gap:var(--sp-2);flex-wrap:wrap;display:flex}.fin-ov-chip{font-size:var(--fs-2xs);font-weight:var(--fw-semibold);color:var(--text-tertiary);border-radius:var(--radius-pill);background:#ffffff0d;border:1px solid #ffffff12;padding:2px 8px}.fin-metrics-row{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-xl);padding:var(--sp-4) var(--sp-3);margin-bottom:var(--sp-4);box-shadow:var(--shadow-sm);align-items:center;display:flex}.fin-metric{align-items:center;gap:var(--sp-1);flex-direction:column;flex:1;display:flex}.fin-metric-val{font-size:var(--fs-base);font-weight:var(--fw-extrabold);color:var(--text-primary);white-space:nowrap;line-height:1}.fin-metric-label{font-size:var(--fs-2xs);color:var(--text-tertiary);font-weight:var(--fw-medium);text-transform:uppercase;letter-spacing:.05em}.fin-metric-div{background:#ffffff0f;flex-shrink:0;width:1px;height:32px}.fin-alloc-bars{gap:var(--sp-3);flex-direction:column;display:flex}.fin-alloc-item{gap:var(--sp-1);flex-direction:column;display:flex}.fin-alloc-info{justify-content:space-between;align-items:center;display:flex}.fin-alloc-name{font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--text-primary)}.fin-alloc-val{font-size:var(--fs-2xs);color:var(--text-tertiary);font-weight:var(--fw-medium)}.fin-alloc-track{border-radius:var(--radius-pill);background:#ffffff0f;height:4px;overflow:hidden}.fin-alloc-fill{border-radius:var(--radius-pill);height:100%;transition:width var(--duration-slower) var(--ease-default)}.fin-alloc-stacked{margin-top:var(--sp-3)}.fin-alloc-stacked-bar{border-radius:var(--radius-pill);height:8px;margin-bottom:var(--sp-3);display:flex;overflow:hidden}.fin-alloc-stacked-seg{min-width:3px;transition:width var(--duration-slower) var(--ease-default)}.fin-alloc-legend{gap:var(--sp-2) var(--sp-3);flex-wrap:wrap;display:flex}.fin-alloc-legend-item{align-items:center;gap:var(--sp-1);font-size:var(--fs-2xs);color:var(--text-tertiary);font-weight:var(--fw-medium);display:flex}.fin-alloc-dot{border-radius:2px;flex-shrink:0;width:8px;height:8px}.fin-alert-list{gap:var(--sp-1);margin-top:var(--sp-2);flex-direction:column;display:flex}.fin-alert-item{font-size:var(--fs-xs);color:var(--danger-light);font-weight:var(--fw-semibold)}.fin-goals-mini{gap:var(--sp-3);margin-top:var(--sp-2);flex-direction:column;display:flex}.fin-goal-mini{gap:var(--sp-1);flex-direction:column;display:flex}.fin-goal-mini-info{justify-content:space-between;display:flex}.fin-goal-mini-name{font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--text-primary)}.fin-goal-mini-pct{font-size:var(--fs-2xs);font-weight:var(--fw-bold);color:var(--accent-light)}.fin-goal-mini-track{border-radius:var(--radius-pill);background:#ffffff0f;height:4px;overflow:hidden}.fin-goal-mini-fill{background:var(--accent);border-radius:var(--radius-pill);height:100%;transition:width var(--duration-slower) var(--ease-default)}.fin-month-row{justify-content:space-between;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-4);flex-wrap:wrap;display:flex}.fin-month-select{max-width:150px}.fin-month-summary{align-items:center;gap:var(--sp-1-5);font-size:var(--fs-xs);font-weight:var(--fw-bold);display:flex}.fin-month-sep{color:var(--text-tertiary);opacity:.5}.fin-tx-list{gap:var(--sp-1-5);flex-direction:column;display:flex}.fin-tx-item{align-items:center;gap:var(--sp-3);padding:var(--sp-3);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--duration-normal) var(--ease-out);display:flex}.fin-tx-item:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-hover);transform:translateY(-1px)}.fin-tx-indicator{border-radius:2px;flex-shrink:0;width:3px;height:28px}.fin-tx-indicator.income{background:var(--success)}.fin-tx-indicator.expense{background:var(--danger)}.fin-tx-body{gap:var(--sp-0-5);flex-direction:column;flex:1;min-width:0;display:flex}.fin-tx-desc{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.fin-tx-meta{font-size:var(--fs-2xs);color:var(--text-tertiary);font-weight:var(--fw-medium)}.fin-tx-amount{font-size:var(--fs-sm);font-weight:var(--fw-extrabold);white-space:nowrap;flex-shrink:0}.fin-type-toggle{gap:var(--sp-1);background:var(--bg-primary);border-radius:var(--radius-sm);padding:var(--sp-0-5);border:1px solid #ffffff12;display:flex}.fin-type-btn{padding:var(--sp-2) 0;color:var(--text-tertiary);font-size:var(--fs-sm);font-weight:var(--fw-semibold);cursor:pointer;border-radius:var(--radius-xs);transition:all var(--duration-normal) var(--ease-default);background:0 0;border:none;flex:1;font-family:inherit}.fin-type-btn.active{color:var(--accent-light);background:#3b82f61f;border:1px solid #3b82f633}.fin-budget-list{gap:var(--sp-3);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));display:grid}.fin-budget-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:var(--sp-4);cursor:pointer;box-shadow:var(--shadow-sm);transition:all var(--duration-normal) var(--ease-out)}.fin-budget-card:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-hover);box-shadow:var(--shadow-md);transform:translateY(-2px)}.fin-budget-header{margin-bottom:var(--sp-2);justify-content:space-between;align-items:center;display:flex}.fin-budget-cat{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text-primary)}.fin-budget-pct{font-size:var(--fs-xs);font-weight:var(--fw-extrabold)}.fin-budget-ok{color:var(--success-light)}.fin-budget-warn{color:var(--warning-light)}.fin-budget-over{color:var(--danger-light)}.fin-budget-track{border-radius:var(--radius-pill);height:5px;margin-bottom:var(--sp-2);background:#ffffff0f;overflow:hidden}.fin-budget-fill{border-radius:var(--radius-pill);height:100%;transition:width var(--duration-slower) var(--ease-default)}.fin-budget-fill.fin-budget-ok{background:var(--success)}.fin-budget-fill.fin-budget-warn{background:var(--warning)}.fin-budget-fill.fin-budget-over{background:var(--danger)}.fin-budget-footer{font-size:var(--fs-2xs);color:var(--text-tertiary);font-weight:var(--fw-medium);justify-content:space-between;display:flex}.fin-budget-spent{color:var(--text-secondary)}.fin-inv-list{gap:var(--sp-1-5);margin-top:var(--sp-3);flex-direction:column;display:flex}.fin-inv-row{padding:var(--sp-3);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--duration-normal) var(--ease-out);justify-content:space-between;align-items:center;display:flex}.fin-inv-row:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-hover);transform:translateY(-1px)}.fin-inv-body{gap:var(--sp-0-5);flex-direction:column;flex:1;min-width:0;display:flex}.fin-inv-name{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.fin-inv-ticker{font-size:var(--fs-2xs);font-weight:var(--fw-bold);color:var(--accent-light);border-radius:var(--radius-xs);background:#3b82f61a;margin-left:4px;padding:1px 5px}.fin-inv-class{font-size:var(--fs-2xs);color:var(--text-tertiary);font-weight:var(--fw-medium)}.fin-inv-vals{align-items:flex-end;gap:var(--sp-0-5);flex-direction:column;flex-shrink:0;display:flex}.fin-inv-current{font-size:var(--fs-sm);font-weight:var(--fw-extrabold);color:var(--text-primary)}.fin-inv-profit{font-size:var(--fs-2xs);font-weight:var(--fw-bold)}.fin-inv-detail{gap:var(--sp-3);flex-direction:column;display:flex}.fin-inv-detail-row{padding-bottom:var(--sp-2);border-bottom:1px solid #ffffff0d;justify-content:space-between;align-items:center;display:flex}.fin-inv-detail-row:last-child{border-bottom:none;padding-bottom:0}.fin-goal-list{gap:var(--sp-3);flex-direction:column;display:flex}.fin-goal-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-xl);padding:var(--sp-5);cursor:pointer;box-shadow:var(--shadow-sm);transition:all var(--duration-normal) var(--ease-out)}.fin-goal-card:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-hover);box-shadow:var(--shadow-md);transform:translateY(-2px)}.fin-goal-header{margin-bottom:var(--sp-3);justify-content:space-between;align-items:center;display:flex}.fin-goal-name{font-size:var(--fs-base);font-weight:var(--fw-bold);color:var(--text-primary)}.fin-goal-pct{font-size:var(--fs-lg);font-weight:var(--fw-extrabold);color:var(--accent-light)}.fin-goal-track{border-radius:var(--radius-pill);height:6px;margin-bottom:var(--sp-3);background:#ffffff0f;overflow:hidden}.fin-goal-fill{border-radius:var(--radius-pill);background:var(--accent);height:100%;transition:width var(--duration-slower) var(--ease-default)}.fin-goal-fill.complete{background:var(--success)}.fin-goal-footer{align-items:center;gap:var(--sp-2);font-size:var(--fs-xs);margin-bottom:var(--sp-1);display:flex}.fin-goal-current{font-weight:var(--fw-bold);color:var(--text-primary)}.fin-goal-target{color:var(--text-tertiary);font-weight:var(--fw-medium)}.fin-goal-date{color:var(--text-tertiary);font-weight:var(--fw-medium);margin-left:auto}.fin-goal-remaining{font-size:var(--fs-2xs);color:var(--text-tertiary);font-weight:var(--fw-medium)}.fin-accounts-grid{gap:var(--sp-3);margin-top:var(--sp-3);grid-template-columns:repeat(auto-fill,minmax(160px,1fr));display:grid}.fin-account-card{gap:var(--sp-1);padding:var(--sp-3) var(--sp-4);background:var(--bg-tertiary);border-radius:var(--radius-md);transition:all var(--duration-fast) var(--ease-default);flex-direction:column;display:flex}.fin-account-card:hover{background:#ffffff0f}.fin-account-name{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text-primary)}.fin-account-type{font-size:var(--fs-2xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em}.fin-account-balance{font-size:var(--fs-lg);font-weight:var(--fw-extrabold);margin-top:var(--sp-1)}.fin-filter-chips{align-items:center;gap:var(--sp-2);margin-top:var(--sp-2);flex-wrap:wrap;display:flex}.fin-filter-chip{font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--accent-light);border-radius:var(--radius-pill);cursor:pointer;transition:all var(--duration-fast) var(--ease-default);background:#3b82f61a;border:1px solid #3b82f633;align-items:center;padding:4px 10px;display:inline-flex}.fin-filter-chip:hover{color:var(--danger-light);background:#ef444426;border-color:#ef44444d}.fin-filter-clear-all{color:var(--text-tertiary);font-size:var(--fs-xs);cursor:pointer;background:0 0;border:none;padding:4px 6px;font-family:inherit}.fin-filter-clear-all:hover{color:var(--text-primary)}.fin-donut-row{align-items:center;gap:var(--sp-5);margin-top:var(--sp-3);display:flex}.chart-container-donut{flex-shrink:0;width:160px;height:160px}.fin-donut-legend{gap:var(--sp-2);flex-direction:column;display:flex}.fin-donut-legend-item{align-items:center;gap:var(--sp-2);display:flex}.fin-donut-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.fin-donut-legend-label{font-size:var(--fs-sm);color:var(--text-secondary)}@media (width<=900px){.fin-budget-list{grid-template-columns:1fr 1fr}}@media (width<=600px){.fin-donut-row{flex-direction:column}.chart-container-donut{width:140px;height:140px}.fin-donut-legend{gap:var(--sp-1) var(--sp-3);flex-flow:wrap}.fin-metrics-row{gap:var(--sp-2);flex-wrap:wrap}.fin-metric-div{display:none}.fin-month-row{flex-direction:column;align-items:flex-start}.fin-budget-list{grid-template-columns:1fr}}.goals-page{gap:var(--sp-5);flex-direction:column;display:flex}.goals-page>.page-header{margin-bottom:0}.goals-summary{gap:var(--sp-3);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));display:grid}.goals-summary-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--sp-5);text-align:center;transition:transform var(--duration-normal) var(--ease-out), box-shadow var(--duration-normal) var(--ease-out), border-color var(--duration-normal) var(--ease-out);position:relative;overflow:hidden}.goals-summary-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.goals-summary-card:first-child{background:linear-gradient(135deg, #3b82f614 0%, var(--glass-bg) 100%);border-color:#3b82f626}.goals-summary-card:first-child .goals-summary-value{color:var(--accent-light)}.goals-summary-card:nth-child(2){background:linear-gradient(135deg, #22c55e14 0%, var(--glass-bg) 100%);border-color:#22c55e26}.goals-summary-card:nth-child(2) .goals-summary-value{color:var(--success-light)}.goals-summary-card:nth-child(3){background:linear-gradient(135deg, #8b5cf614 0%, var(--glass-bg) 100%);border-color:#8b5cf626}.goals-summary-card:nth-child(3) .goals-summary-value{color:var(--secondary-light)}.goals-summary-card:nth-child(4){background:linear-gradient(135deg, #f59e0b14 0%, var(--glass-bg) 100%);border-color:#f59e0b26}.goals-summary-card:nth-child(4) .goals-summary-value{color:var(--warning-light)}.goals-summary-value{font-size:var(--fs-2xl);font-weight:var(--fw-extrabold);color:var(--text-primary);margin-bottom:var(--sp-1);line-height:1}.goals-summary-label{font-size:var(--fs-xs);color:var(--text-secondary);font-weight:var(--fw-medium);text-transform:uppercase;letter-spacing:.04em}.goals-filters{gap:var(--sp-2);scrollbar-width:none;-webkit-overflow-scrolling:touch;flex-wrap:wrap;display:flex;overflow-x:auto}.goals-filters::-webkit-scrollbar{display:none}@media (width<=600px){.goals-filters{flex-wrap:nowrap}}.goals-grid{gap:var(--sp-5);grid-template-columns:repeat(auto-fill,minmax(320px,1fr));display:grid}.goal-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-xl);padding:var(--sp-5);transition:transform var(--duration-normal) var(--ease-out), box-shadow var(--duration-normal) var(--ease-out), border-color var(--duration-normal) var(--ease-out);box-shadow:var(--shadow-card);position:relative;overflow:hidden}.goal-card:hover{border-color:var(--glass-border-hover);box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}.goal-card:before{content:"";background:var(--goal-color,var(--accent));border-radius:var(--radius-lg) var(--radius-lg) 0 0;height:3px;position:absolute;top:0;left:0;right:0}.goal-card-header{margin-bottom:var(--sp-4);justify-content:space-between;align-items:flex-start;gap:var(--sp-2);display:flex}.goal-card-icon{border-radius:var(--radius-md);width:40px;height:40px;color:var(--accent-light);background:#3b82f61f;flex-shrink:0;justify-content:center;align-items:center;display:flex}.goal-card-icon svg{width:20px;height:20px}.goal-card-info{flex:1;min-width:0}.goal-card-title{font-size:var(--fs-base);font-weight:var(--fw-semibold);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;margin-bottom:2px;overflow:hidden}.goal-card-category{font-size:var(--fs-xs);color:var(--text-tertiary)}.goal-card-actions{gap:var(--sp-1);flex-shrink:0;display:flex}.goal-card-actions button{color:var(--text-tertiary);cursor:pointer;padding:var(--sp-2);border-radius:var(--radius-sm);min-width:44px;min-height:44px;transition:color var(--duration-fast), background var(--duration-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.goal-card-actions button:hover{color:var(--text-primary);background:#ffffff0d}.goal-card-actions button.goal-delete-btn:hover{color:var(--danger)}.goal-card-desc{font-size:var(--fs-sm);color:var(--text-secondary);margin-bottom:var(--sp-4);line-height:var(--lh-normal);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.goal-progress-section{margin-bottom:var(--sp-4)}.goal-progress-header{margin-bottom:var(--sp-1);justify-content:space-between;align-items:baseline;display:flex}.goal-progress-text{font-size:var(--fs-sm);color:var(--text-secondary)}.goal-progress-pct{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text-primary)}.goal-progress-bar{border-radius:var(--radius-pill);background:#ffffff14;width:100%;height:8px;overflow:hidden;box-shadow:inset 0 1px 2px #0003}.goal-progress-fill{border-radius:var(--radius-pill);background:var(--goal-color,var(--accent));height:100%;transition:width var(--duration-entrance) var(--ease-default);position:relative}.goal-progress-fill:after{content:"";background:linear-gradient(90deg,#0000,#fff3,#0000);animation:2s infinite goal-shimmer;position:absolute;inset:0}@keyframes goal-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.goal-update-row{gap:var(--sp-2);margin-bottom:var(--sp-4);align-items:center;display:flex}.goal-update-input{padding:var(--sp-2-5) var(--sp-3);background:var(--bg-tertiary);border:1px solid var(--glass-border);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--fs-sm);min-width:0;transition:border-color var(--duration-fast);flex:1;font-family:inherit}.goal-update-input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #3b82f61a}.goal-update-btn{padding:var(--sp-2-5) var(--sp-4);background:var(--accent);color:#fff;border-radius:var(--radius-md);font-size:var(--fs-sm);font-family:inherit;font-weight:var(--fw-semibold);cursor:pointer;white-space:nowrap;transition:background var(--duration-fast);border:none}.goal-update-btn:hover{background:var(--accent-dark)}.goal-card-footer{padding-top:var(--sp-4);border-top:1px solid #ffffff0a;justify-content:space-between;align-items:center;display:flex}.goal-deadline{align-items:center;gap:var(--sp-1);font-size:var(--fs-xs);color:var(--text-tertiary);display:flex}.goal-deadline svg{width:14px;height:14px}.goal-deadline.overdue{color:var(--danger)}.goal-deadline.soon{color:var(--warning)}.goal-status-badge{font-size:var(--fs-xs);border-radius:var(--radius-pill);font-weight:var(--fw-medium);padding:2px 10px}.goal-status-badge.active{color:var(--accent-light);background:#3b82f61f}.goal-status-badge.completed{color:var(--success);background:#22c55e1f}.goal-status-badge.paused{color:var(--warning);background:#f59e0b1f}.goal-status-badge.cancelled{color:var(--danger);background:#ef44441f}.goal-card.is-completed{opacity:.75}.goal-card.is-completed .goal-card-actions button.goal-delete-btn{display:none}.goal-card.is-completed .goal-progress-fill:after{animation:none}.goals-empty{text-align:center;padding:var(--sp-16) var(--sp-5);background:linear-gradient(135deg, #3b82f60a 0%, var(--glass-bg) 50%, #8b5cf60a 100%);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-xl)}.goals-empty svg{width:48px;height:48px;color:var(--text-tertiary);margin-bottom:var(--sp-4)}.goals-empty-title{font-size:var(--fs-lg);font-weight:var(--fw-semibold);color:var(--text-primary);margin-bottom:var(--sp-1)}.goals-empty-text{font-size:var(--fs-sm);color:var(--text-secondary);margin-bottom:var(--sp-5)}.goals-empty-btn{align-items:center;gap:var(--sp-2);padding:var(--sp-2-5) var(--sp-5);background:var(--accent);color:#fff;border-radius:var(--radius-md);font-size:var(--fs-sm);font-family:inherit;font-weight:var(--fw-medium);cursor:pointer;transition:background var(--duration-fast);border:none;display:inline-flex}.goals-empty-btn:hover{background:var(--accent-dark)}.goals-empty-btn svg{width:16px;height:16px;margin:0}.goal-form-grid{gap:var(--sp-4);display:grid}.goal-form-row{gap:var(--sp-3);grid-template-columns:1fr 1fr;display:grid}.goal-form-group{gap:var(--sp-2);flex-direction:column;display:flex}.goal-form-group label{font-size:var(--fs-xs);color:var(--text-secondary);font-weight:var(--fw-semibold)}.goal-form-group input,.goal-form-group select,.goal-form-group textarea{padding:var(--sp-2-5) var(--sp-3);background:var(--bg-tertiary);border:1px solid var(--glass-border);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--fs-sm);transition:border-color var(--duration-fast);font-family:inherit}.goal-form-group input:focus,.goal-form-group select:focus,.goal-form-group textarea:focus{border-color:var(--accent);background:var(--bg-elevated);outline:none;box-shadow:0 0 0 3px #3b82f61a}.goal-form-group input::placeholder,.goal-form-group textarea::placeholder{color:var(--text-tertiary)}.goal-form-group textarea{resize:vertical;min-height:60px}.goal-color-options{gap:var(--sp-2);flex-wrap:wrap;display:flex}.goal-color-option{cursor:pointer;width:44px;height:44px;transition:transform var(--duration-fast), border-color var(--duration-fast);border:2px solid #0000;border-radius:50%}.goal-color-option:hover{transform:scale(1.15)}.goal-color-option.selected{border-color:var(--text-primary);transform:scale(1.15)}@media (width<=640px){.goals-grid{grid-template-columns:1fr}.goals-summary{grid-template-columns:repeat(2,1fr)}.goal-form-row{grid-template-columns:1fr}}.reminders-page{gap:var(--sp-5);flex-direction:column;display:flex}.reminders-page>.page-header{margin-bottom:0}.rem-summary{gap:var(--sp-3);scrollbar-width:none;padding-bottom:var(--sp-1);display:flex;overflow-x:auto}.rem-summary::-webkit-scrollbar{display:none}.rem-summary-item{align-items:center;gap:var(--sp-1);min-width:120px;padding:var(--sp-4) var(--sp-3);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(var(--glass-blur));transition:transform var(--duration-normal) var(--ease-out), box-shadow var(--duration-normal) var(--ease-out);flex-direction:column;flex:1;display:flex}.rem-summary-item:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.rem-summary-item:first-child{background:linear-gradient(135deg, #3b82f614 0%, var(--glass-bg) 100%);border-color:#3b82f626}.rem-summary-item:first-child .rem-summary-val{color:var(--accent-light)}.rem-summary-item:nth-child(2){background:linear-gradient(135deg, #f59e0b14 0%, var(--glass-bg) 100%);border-color:#f59e0b26}.rem-summary-item:nth-child(2) .rem-summary-val{color:var(--warning-light)}.rem-summary-item:nth-child(3){background:linear-gradient(135deg, #ef444414 0%, var(--glass-bg) 100%);border-color:#ef444426}.rem-summary-item:nth-child(3) .rem-summary-val{color:var(--danger-light)}.rem-summary-item:nth-child(4){background:linear-gradient(135deg, #22c55e14 0%, var(--glass-bg) 100%);border-color:#22c55e26}.rem-summary-item:nth-child(4) .rem-summary-val{color:var(--success-light)}.rem-summary-val{font-size:var(--fs-2xl);font-weight:var(--fw-extrabold);color:var(--text-primary);line-height:1}.rem-summary-label{font-size:var(--fs-2xs);font-weight:var(--fw-medium);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em;text-align:center}.rem-filters{gap:var(--sp-2);flex-wrap:wrap;display:flex}.rem-list{gap:var(--sp-2);flex-direction:column;display:flex}.rem-card{align-items:flex-start;gap:var(--sp-3);padding:var(--sp-4);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(var(--glass-blur));transition:all var(--duration-normal) var(--ease-default);box-shadow:var(--shadow-card);display:flex}.rem-card:hover{border-color:var(--glass-border-hover);box-shadow:var(--shadow-card-hover);transform:translateY(-1px)}.rem-card.is-today{background:linear-gradient(135deg, #3b82f60f 0%, var(--glass-bg) 100%);border-color:#3b82f640;box-shadow:0 0 20px #3b82f60f}.rem-card.is-past{opacity:.7}.rem-card.is-completed{opacity:.55}.rem-card-indicator{border-radius:2px;flex-shrink:0;align-self:stretch;width:4px;min-height:40px}.rem-card-body{gap:var(--sp-1);flex-direction:column;flex:1;min-width:0;display:flex}.rem-card-title{font-size:var(--fs-base);font-weight:var(--fw-semibold);color:var(--text-primary);line-height:var(--lh-snug)}.rem-card-desc{font-size:var(--fs-xs);color:var(--text-tertiary);line-height:var(--lh-normal)}.rem-card-meta{align-items:center;gap:var(--sp-2);margin-top:var(--sp-1);flex-wrap:wrap;display:flex}.rem-card-chip{align-items:center;gap:var(--sp-1);border-radius:var(--radius-pill);font-size:var(--fs-2xs);font-weight:var(--fw-medium);color:var(--text-tertiary);white-space:nowrap;background:#ffffff0a;border:1px solid #ffffff0f;padding:2px 8px;display:inline-flex}.rem-card-chip.urgent{color:var(--danger-light);background:#ef444414;border-color:#ef444426}.rem-card-chip.today{color:var(--accent-light);background:#3b82f614;border-color:#3b82f626}.rem-card-chip.soon{color:var(--warning-light);background:#f59e0b14;border-color:#f59e0b26}.rem-card-actions{gap:var(--sp-1);flex-shrink:0;display:flex}.rem-card-action{width:40px;min-width:44px;height:40px;min-height:44px;color:var(--text-tertiary);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--duration-fast);opacity:.65;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.rem-card-action:hover{opacity:1;color:var(--text-primary);background:#ffffff0f}.rem-card-action.danger:hover{color:var(--danger-light);background:#ef44441f}.rem-type-badge{align-items:center;gap:var(--sp-1);font-size:var(--fs-2xs);font-weight:var(--fw-bold);border-radius:var(--radius-pill);padding:2px 8px;display:inline-flex}.rem-type-badge.birthday{color:#f472b6;background:#f472b614;border:1px solid #f472b626}.rem-type-badge.event{color:var(--accent-light);background:#3b82f614;border:1px solid #3b82f626}.rem-type-badge.deadline{color:var(--danger-light);background:#ef444414;border:1px solid #ef444426}.rem-type-badge.custom{color:var(--secondary-light);background:#8b5cf614;border:1px solid #8b5cf626}.rem-section-header{font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em;padding:var(--sp-3) var(--sp-1) var(--sp-2);margin-top:var(--sp-3);border-bottom:1px solid #ffffff0f}.rem-section-header:first-child{margin-top:0}.rem-form-row{gap:var(--sp-3);display:flex}.rem-form-row>*{flex:1}.rem-color-options{gap:var(--sp-2);flex-wrap:wrap;display:flex}.rem-color-option{cursor:pointer;width:32px;height:32px;transition:all var(--duration-fast);background:0 0;border:2px solid #0000;border-radius:50%;padding:0}.rem-color-option:hover{transform:scale(1.15)}.rem-color-option.active{box-shadow:0 0 0 2px var(--accent);border-color:#fff}.rem-color-option-inner{border-radius:50%;width:100%;height:100%}.rem-calendar{gap:var(--sp-3);flex-direction:column;display:flex}.rem-cal-nav{justify-content:center;align-items:center;gap:var(--sp-3);display:flex}.rem-cal-month{font-size:var(--fs-lg);font-weight:var(--fw-bold);text-transform:capitalize;text-align:center;min-width:160px}.rem-cal-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.rem-cal-header{text-align:center;font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--text-tertiary);padding:var(--sp-2) 0;text-transform:uppercase;letter-spacing:.05em}.rem-cal-cell{aspect-ratio:1;border-radius:var(--radius-md);cursor:default;transition:background var(--duration-fast) var(--ease-default);flex-direction:column;justify-content:center;align-items:center;gap:3px;display:flex;position:relative}.rem-cal-cell.empty{background:0 0}.rem-cal-cell.has-items{cursor:pointer}.rem-cal-cell.has-items:hover{background:#ffffff0f}.rem-cal-cell.is-today{background:#3b82f61f;border:1px solid #3b82f64d}.rem-cal-day{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-secondary)}.rem-cal-cell.is-today .rem-cal-day{color:var(--accent-light);font-weight:var(--fw-bold)}.rem-cal-dots{gap:3px;display:flex}.rem-cal-dot{border-radius:50%;width:6px;height:6px}.rem-cal-detail{margin-top:var(--sp-2)}.rem-cal-detail-header{font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--text-primary);margin-bottom:var(--sp-2);text-transform:capitalize}.rem-cal-detail-item{align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:var(--glass-bg);border-radius:var(--radius-sm);margin-bottom:var(--sp-1);display:flex}.rem-cal-detail-icon{font-size:var(--fs-base)}.rem-cal-detail-title{font-size:var(--fs-sm);color:var(--text-primary);flex:1}.rem-cal-detail-time{font-size:var(--fs-xs);color:var(--text-tertiary)}@media (width<=600px){.rem-summary{gap:var(--sp-2);grid-template-columns:1fr 1fr;display:grid;overflow-x:visible}.rem-summary-item{min-width:0;padding:var(--sp-2)}.rem-summary-val{font-size:var(--fs-xl)}.rem-form-row{gap:var(--sp-2);flex-direction:column}.rem-card{padding:var(--sp-3);flex-wrap:wrap}.rem-card-body{flex-basis:calc(100% - 24px)}.rem-card-actions{width:100%;padding-top:var(--sp-2);margin-top:var(--sp-1);border-top:1px solid #ffffff0a;justify-content:flex-end}}.community-page{gap:var(--sp-5);flex-direction:column;display:flex}.community-page>.page-header{margin-bottom:0}.comm-tabs{gap:var(--sp-1);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);scrollbar-width:none;-ms-overflow-style:none;padding:3px;display:flex;overflow-x:auto}.comm-tabs::-webkit-scrollbar{display:none}.comm-tab{padding:var(--sp-2) var(--sp-2);color:var(--text-tertiary);font-size:var(--fs-xs);font-weight:var(--fw-semibold);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--duration-fast);-webkit-tap-highlight-color:transparent;white-space:nowrap;background:0 0;border:none;flex:1;min-width:0;font-family:inherit}.comm-tab.active{color:var(--accent-light);background:#3b82f626;border:1px solid #3b82f640;box-shadow:0 0 12px #3b82f614}.comm-tab:hover:not(.active){color:var(--text-secondary);background:#ffffff08}#comm-content{gap:var(--sp-4);flex-direction:column;display:flex}.comm-feed-header{justify-content:flex-end;display:flex}.comm-publish-btn{padding:var(--sp-2) var(--sp-4);background:var(--accent);color:#fff;border-radius:var(--radius-lg);font-size:var(--fs-sm);font-weight:var(--fw-bold);cursor:pointer;transition:all var(--duration-fast);-webkit-tap-highlight-color:transparent;border:none;font-family:inherit}.comm-publish-btn:hover{background:var(--accent-light);transform:translateY(-1px)}.comm-feed-list{gap:var(--sp-3);flex-direction:column;display:flex}.comm-feed-item{align-items:flex-start;gap:var(--sp-3);padding:var(--sp-4);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-xl);-webkit-backdrop-filter:blur(var(--glass-blur));transition:all var(--duration-fast);box-shadow:var(--shadow-card);display:flex}.comm-feed-item:hover{border-color:var(--glass-border-hover);box-shadow:var(--shadow-card-hover)}.comm-feed-item.is-own{border-color:#3b82f61f}.comm-feed-avatar{background:var(--bg-tertiary);border:1px solid var(--glass-border);width:40px;height:40px;font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--text-secondary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.comm-feed-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:1.1rem;display:flex}.comm-feed-icon.achievement{background:#f59e0b1a}.comm-feed-icon.level_up{background:#8b5cf61a}.comm-feed-icon.streak{background:#ef44441a}.comm-feed-icon.goal_completed{background:#22c55e1a}.comm-feed-body{gap:var(--sp-1-5);flex-direction:column;flex:1;min-width:0;display:flex}.comm-feed-meta{align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.comm-feed-author{font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--accent-light)}.comm-feed-auto-tag{font-size:var(--fs-3xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);border-radius:var(--radius-sm);background:#ffffff0f;padding:1px 6px}.comm-feed-time{font-size:var(--fs-2xs);color:var(--text-tertiary)}.comm-feed-text{font-size:var(--fs-sm);color:var(--text-primary);line-height:var(--lh-normal);word-break:break-word}.comm-feed-text strong{font-weight:var(--fw-bold);color:var(--accent-light)}.comm-feed-attach{align-items:center;gap:var(--sp-1);font-size:var(--fs-xs);color:var(--text-secondary);padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-sm);background:#ffffff0a;border:1px solid #ffffff0f;display:inline-flex}.comm-feed-attach-icon{font-size:var(--fs-sm)}.comm-feed-reactions-display{gap:var(--sp-1);flex-wrap:wrap;display:flex}.comm-reaction-badge{font-size:var(--fs-xs);border-radius:var(--radius-pill);background:#ffffff0f;border:1px solid #ffffff14;padding:2px 8px}.comm-feed-actions{align-items:center;gap:var(--sp-1);flex-wrap:wrap;display:flex;position:relative}.comm-action-btn{border-radius:var(--radius-md);padding:var(--sp-1) var(--sp-2);font-size:var(--fs-2xs);color:var(--text-tertiary);cursor:pointer;transition:all var(--duration-fast);-webkit-tap-highlight-color:transparent;background:0 0;border:1px solid #ffffff0f;font-family:inherit}.comm-action-btn:hover{color:var(--text-secondary);background:#ffffff0f;border-color:#ffffff1f}.comm-action-btn.danger:hover{color:var(--danger-light);border-color:#ef444433}.comm-reaction-picker{gap:var(--sp-1);padding:var(--sp-1);background:var(--glass-bg-strong);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);display:flex}.comm-reaction-picker.hidden{display:none}.comm-react-emoji{font-size:var(--fs-lg);cursor:pointer;padding:var(--sp-1);border-radius:var(--radius-sm);transition:transform var(--duration-fast), background var(--duration-fast);background:0 0;border:none;line-height:1}.comm-react-emoji:hover{background:#ffffff14;transform:scale(1.3)}.comm-comments-section{margin-top:var(--sp-2);padding-top:var(--sp-2);border-top:1px solid var(--glass-border);gap:var(--sp-2);flex-direction:column;display:flex}.comm-comments-section.hidden{display:none}.comm-comments-list{gap:var(--sp-2);flex-direction:column;display:flex}.comm-comments-loading,.comm-comments-empty{font-size:var(--fs-xs);color:var(--text-tertiary);padding:var(--sp-1) 0}.comm-comment{gap:var(--sp-2);align-items:flex-start;display:flex}.comm-comment-avatar{background:var(--bg-tertiary);border:1px solid var(--glass-border);width:28px;height:28px;font-size:var(--fs-2xs);font-weight:var(--fw-bold);color:var(--text-tertiary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.comm-comment-body{flex:1;min-width:0}.comm-comment-body strong{font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--accent-light);margin-right:var(--sp-1)}.comm-comment-text{font-size:var(--fs-xs);color:var(--text-primary);word-break:break-word}.comm-comment-time{font-size:var(--fs-3xs);color:var(--text-tertiary);margin-left:var(--sp-1)}.comm-comment-input-row{gap:var(--sp-2);display:flex}.comm-comment-input{padding:var(--sp-2) var(--sp-3);border:1px solid var(--glass-border);border-radius:var(--radius-lg);color:var(--text-primary);font-size:var(--fs-xs);transition:border-color var(--duration-fast);background:#ffffff0a;outline:none;flex:1;font-family:inherit}.comm-comment-input:focus{border-color:var(--accent)}.comm-comment-input::placeholder{color:var(--text-tertiary)}.comm-comment-send{padding:var(--sp-2) var(--sp-3);background:var(--accent);color:#fff;border-radius:var(--radius-lg);font-size:var(--fs-xs);font-weight:var(--fw-semibold);cursor:pointer;transition:background var(--duration-fast);border:none;flex-shrink:0;font-family:inherit}.comm-comment-send:hover{background:var(--accent-light)}.comm-publish-form{gap:var(--sp-3);flex-direction:column;display:flex}.comm-publish-meta{justify-content:space-between;align-items:center;gap:var(--sp-2);font-size:var(--fs-2xs);color:var(--text-tertiary);display:flex}.comm-publish-hint{font-size:var(--fs-2xs);color:var(--text-tertiary);margin:0}.comm-coming-soon{text-align:center;padding:var(--sp-10) var(--sp-5);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-xl);-webkit-backdrop-filter:blur(var(--glass-blur))}.comm-coming-icon{margin-bottom:var(--sp-3);font-size:3rem;display:block}.comm-coming-soon h3{font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--text-primary);margin:0 0 var(--sp-2)}.comm-coming-soon p{font-size:var(--fs-sm);color:var(--text-secondary);max-width:360px;margin:0 auto var(--sp-4);line-height:var(--lh-normal)}.comm-coming-badge{padding:var(--sp-1) var(--sp-3);color:#a78bfa;border-radius:var(--radius-full);font-size:var(--fs-xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.06em;background:#8b5cf61f;display:inline-block}.comm-rank-filters{align-items:center;gap:var(--sp-3);flex-wrap:wrap;display:flex}.comm-rank-metric-group{gap:var(--sp-1);display:flex}.comm-podium{justify-content:center;align-items:flex-end;gap:var(--sp-3);padding:var(--sp-8) var(--sp-5) var(--sp-5);background:linear-gradient(180deg, #f59e0b0a 0%, var(--glass-bg) 40%, #8b5cf608 100%);-webkit-backdrop-filter:blur(var(--glass-blur));border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);border:1px solid #f59e0b1f;display:flex;position:relative;overflow:hidden}.comm-podium:before{content:"";pointer-events:none;background:radial-gradient(circle,#f59e0b14 0%,#0000 70%);border-radius:50%;width:200px;height:200px;position:absolute;top:-40px;left:50%;transform:translate(-50%)}.comm-podium-item{align-items:center;gap:var(--sp-2);flex-direction:column;flex:1;max-width:170px;display:flex}.comm-podium-pillar{border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;padding:var(--sp-3) var(--sp-2);justify-content:flex-start;align-items:center;gap:var(--sp-1);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);transition:all var(--duration-normal);border-bottom:none;flex-direction:column;display:flex}.comm-podium-item:first-child .comm-podium-pillar{background:linear-gradient(180deg, #c0c0c01a 0%, var(--glass-bg) 100%);border-color:#c0c0c01f;height:110px}.comm-podium-item:nth-child(2) .comm-podium-pillar{background:linear-gradient(180deg, #f59e0b1f 0%, var(--glass-bg) 100%);border-color:#f59e0b38;height:145px;box-shadow:0 0 30px #f59e0b0f}.comm-podium-item:nth-child(3) .comm-podium-pillar{background:linear-gradient(180deg, #cd7f321a 0%, var(--glass-bg) 100%);border-color:#cd7f321f;height:85px}.comm-podium-medal{filter:drop-shadow(0 2px 4px #0000004d);font-size:2rem;line-height:1}.comm-podium-avatar{background:var(--bg-elevated);border:2px solid var(--glass-border-hover);width:52px;height:52px;font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--text-primary);border-radius:50%;justify-content:center;align-items:center;display:flex;box-shadow:0 4px 16px #0000004d}.comm-podium-item:nth-child(2) .comm-podium-avatar{width:64px;height:64px;font-size:var(--fs-xl);background:linear-gradient(135deg, var(--bg-elevated), #f59e0b14);border-color:#f59e0b66;box-shadow:0 4px 20px #f59e0b26}.comm-podium-name{font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--text-primary);text-align:center;white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}.comm-podium-xp{font-size:var(--fs-2xs);font-weight:var(--fw-semibold);color:var(--accent-light)}.comm-podium-level{font-size:var(--fs-2xs);font-weight:var(--fw-medium);color:var(--text-tertiary)}.comm-ranking-list{gap:var(--sp-1-5);flex-direction:column;display:flex}.comm-rank-row{align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(var(--glass-blur));transition:all var(--duration-fast);box-shadow:var(--shadow-card);cursor:pointer;display:flex}.comm-rank-row:hover{border-color:var(--glass-border-hover);box-shadow:var(--shadow-card-hover);background:#ffffff0a;transform:translateY(-1px)}.comm-rank-row.is-me{background:linear-gradient(135deg, #3b82f60f 0%, var(--glass-bg) 100%);border-color:#3b82f640;box-shadow:0 0 20px #3b82f60f}.comm-rank-row.expanded{background:#ffffff0a}.comm-rank-pos{width:28px;font-size:var(--fs-sm);font-weight:var(--fw-extrabold);color:var(--text-tertiary);text-align:center;flex-shrink:0}.comm-rank-row:nth-child(-n+3) .comm-rank-pos{color:var(--warning-light)}.comm-rank-avatar{background:var(--bg-tertiary);border:1px solid var(--glass-border);width:40px;height:40px;font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--text-secondary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.comm-rank-info{gap:var(--sp-0-5);flex-direction:column;flex:1;min-width:0;display:flex}.comm-rank-name{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.comm-rank-title{color:var(--accent-light);font-size:var(--fs-2xs);font-weight:var(--fw-medium)}.comm-rank-meta{align-items:center;gap:var(--sp-2);display:flex}.comm-rank-chip{font-size:var(--fs-2xs);font-weight:var(--fw-medium);color:var(--text-tertiary);align-items:center;gap:var(--sp-1);display:inline-flex}.comm-rank-chip.level{color:var(--accent-light);font-weight:var(--fw-bold)}.comm-rank-xp{font-size:var(--fs-sm);font-weight:var(--fw-extrabold);color:var(--accent-light);white-space:nowrap;flex-shrink:0}.comm-rank-detail{padding:var(--sp-2) var(--sp-3) var(--sp-2) 60px;border-bottom:1px solid var(--border);background:#ffffff05}.comm-rank-detail.hidden{display:none}.comm-rank-ach-list{gap:var(--sp-1-5);flex-wrap:wrap;display:flex}.comm-rank-ach-item{cursor:default;padding:var(--sp-1);border-radius:var(--radius-sm);background:#ffffff0a;font-size:1.25rem}.comm-my-position{align-items:center;gap:var(--sp-4);padding:var(--sp-4) var(--sp-5);background:linear-gradient(135deg, #3b82f60f 0%, var(--glass-bg) 100%);border-radius:var(--radius-xl);-webkit-backdrop-filter:blur(var(--glass-blur));box-shadow:var(--shadow-lg);border:1px solid #3b82f626;display:flex}.comm-my-rank-num{font-size:var(--fs-3xl);font-weight:var(--fw-extrabold);background:var(--accent-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;line-height:1}.comm-my-rank-label{font-size:var(--fs-2xs);color:var(--text-tertiary);font-weight:var(--fw-medium);text-transform:uppercase;letter-spacing:.06em}.comm-my-info{gap:var(--sp-0-5);flex-direction:column;flex:1;display:flex}.comm-my-name{font-size:var(--fs-base);font-weight:var(--fw-bold);color:var(--text-primary)}.comm-my-stats{font-size:var(--fs-xs);color:var(--text-secondary)}@media (width<=600px){.comm-tab{padding:var(--sp-2) var(--sp-1);font-size:var(--fs-2xs)}.comm-podium{gap:var(--sp-2);padding:var(--sp-4) var(--sp-2) var(--sp-3)}.comm-podium-avatar{width:40px;height:40px}.comm-podium-item:nth-child(2) .comm-podium-avatar{width:48px;height:48px}.comm-rank-row{padding:var(--sp-2-5) var(--sp-3);gap:var(--sp-2)}.comm-rank-detail{padding-left:var(--sp-10)}.comm-my-position{padding:var(--sp-3) var(--sp-4);gap:var(--sp-3)}.comm-feed-item{padding:var(--sp-3);gap:var(--sp-2)}.comm-feed-avatar,.comm-feed-icon{width:32px;height:32px}}
