:root{--bg-primary:#0d0d0d;--bg-secondary:#111;--bg-tertiary:#1a1a1a;--bg-elevated:#1f1f1f;--bg-hover:#232323;--bg-surface:#141414;--glass-bg:#ffffff08;--glass-border:#ffffff12;--glass-bg-hover:#ffffff0d;--glass-bg-strong:#ffffff0f;--glass-border-hover:#ffffff1f;--text-primary:#ebebeb;--text-secondary:#8a8a8a;--text-tertiary:#555;--text-inverse:#0d0d0d;--accent:#3b82f6;--accent-light:#60a5fa;--accent-lighter:#93c5fd;--accent-dark:#2563eb;--accent-darker:#1d4ed8;--accent-glow:#3b82f61a;--accent-glow-strong:#3b82f633;--accent-glow-intense:#3b82f659;--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, #3b82f60f, #60a5fa08);--cyan:#06b6d4;--cyan-light:#22d3ee;--cyan-glow:#06b6d41f;--success:#10b981;--success-light:#34d399;--success-bg:#10b9811a;--warning:#f59e0b;--warning-light:#fbbf24;--warning-bg:#f59e0b1a;--danger:#ef4444;--danger-light:#f87171;--danger-bg:#ef44441a;--info:#3b82f6;--info-bg:#3b82f61a;--priority-low:#555;--priority-medium:#3b82f6;--priority-high:#f59e0b;--priority-urgent:#ef4444;--font-family:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--fs-2xs:.625rem;--fs-xs:.6875rem;--fs-sm:.8125rem;--fs-base:.9375rem;--fs-md:1.0625rem;--fs-lg:1.1875rem;--fs-xl:1.375rem;--fs-2xl:1.75rem;--fs-3xl:2.25rem;--fs-4xl:3rem;--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:6px;--radius-md:8px;--radius-lg:10px;--radius-xl:12px;--radius-2xl:14px;--radius-3xl:18px;--radius-pill:9999px;--radius-full:50%;--shadow-xs:0 1px 2px #00000080;--shadow-sm:0 1px 4px #00000080;--shadow-md:0 2px 8px #00000080;--shadow-lg:0 4px 16px #00000080;--shadow-xl:0 8px 32px #0009;--shadow-glow:0 0 12px #3b82f626;--shadow-glow-lg:0 0 24px #3b82f633;--shadow-card:0 1px 3px #0006;--shadow-card-hover:0 4px 16px #00000080;--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:.12s;--duration-normal:.2s;--duration-slow:.3s;--duration-slower:.5s;--duration-entrance:.4s;--nav-height:64px;--sidebar-width:220px;--content-max-width:680px;--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);min-height:100dvh;overflow-x:hidden}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}::-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{min-height:100dvh;display:flex}.page-content{min-height:100dvh;padding:var(--sp-6) var(--sp-5) calc(var(--nav-height) + var(--safe-bottom) + var(--sp-6));max-width:var(--content-max-width);flex:1;width:100%;margin:0 auto}.sidebar{display:none}@media (width>=768px){.sidebar{width:var(--sidebar-width);min-height:100dvh;padding:var(--sp-5) var(--sp-3);z-index:50;background:#111;border-right:1px solid #ffffff0f;flex-direction:column;display:flex;position:fixed;top:0;left:0}.page-content{margin-left:var(--sidebar-width);padding-bottom:var(--sp-10);max-width:calc(var(--content-max-width) + var(--sp-10))}.page-dashboard{max-width:1100px;padding-left:var(--sp-7);padding-right:var(--sp-7)}.bottom-nav{display:none!important}}@media (width>=1280px){.page-dashboard{max-width:1240px;padding-left:var(--sp-10);padding-right:var(--sp-10)}}.bottom-nav{height:calc(var(--nav-height) + var(--safe-bottom));padding-bottom:var(--safe-bottom);background:var(--bg-secondary);border-top:1px solid var(--glass-border);z-index:100;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(--bg-surface);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--sp-5);transition:border-color var(--duration-fast) var(--ease-default);position:relative}.card:hover{border-color:var(--glass-border-hover)}.card-solid{background:var(--bg-secondary);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--sp-5)}.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(200%)}}@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}50%{opacity:1}}@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}.nav-item{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;align-items:center;gap:3px;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-4);border-radius:var(--radius-md)}.bottom-nav .nav-item.active{color:var(--accent-light);background:#3b82f614}.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-3);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:color var(--duration-fast), background var(--duration-fast);border-left:none;flex-direction:row}.sidebar .nav-item svg{flex-shrink:0;width:17px;height:17px}.sidebar .nav-item.active{background:var(--accent);color:#fff;font-weight:var(--fw-semibold)}.sidebar .nav-item.active svg{color:#fff}.sidebar .nav-item:hover:not(.active){color:var(--text-secondary);background:#ffffff0d}.sidebar-logo{align-items:center;gap:var(--sp-2-5);padding:var(--sp-1) var(--sp-3) var(--sp-3);margin-bottom:0;display:flex}.sidebar-logo svg{flex-shrink:0}.sidebar-logo span{font-size:var(--fs-sm);font-weight:var(--fw-extrabold);color:var(--text-primary);letter-spacing:-.01em;text-transform:uppercase}.sidebar-divider{height:1px;margin:0 0 var(--sp-3);background:#ffffff0f}.sidebar-nav{flex-direction:column;flex:1;gap:2px;display:flex}.sidebar-footer{padding:var(--sp-2) var(--sp-3);gap:var(--sp-1);flex-direction:column;margin-top:auto;display:flex}.sidebar-footer-label{font-size:var(--fs-2xs);font-weight:var(--fw-bold);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.08em;opacity:.4}.sidebar-footer-version{font-size:var(--fs-2xs);color:var(--text-tertiary);opacity:.25}.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:34px;height:34px;color:var(--text-tertiary);padding:0}.btn-icon:hover{color:var(--text-primary);background:#ffffff0d}.btn-icon svg{width:16px;height:16px}.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}.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{z-index:200;animation:fadeIn var(--duration-fast) var(--ease-default);background:#000000b3;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}@media (width>=768px){.modal-overlay{align-items:center}}.modal-container{background:var(--bg-secondary);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);position:relative;overflow-y:auto}@media (width>=768px){.modal-container{border-radius:var(--radius-xl);box-shadow:var(--shadow-xl)}}.modal-header{padding:var(--sp-5) var(--sp-5) var(--sp-3);background:var(--bg-secondary);z-index:1;border-bottom:1px solid var(--glass-border);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:32px;height:32px;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{background:var(--bg-elevated);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);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);border:1px solid var(--glass-border);gap:2px;padding:3px;display:flex}.tab{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;flex:1}.tab.active{background:var(--bg-elevated);color:var(--text-primary);font-weight:var(--fw-semibold)}.tab:hover:not(.active){color:var(--text-secondary)}.empty-state{padding:var(--sp-16) var(--sp-6);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-state svg{width:44px;height:44px;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 .6s 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(--bg-surface);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--sp-4);gap:var(--sp-1);flex-direction:column;display:flex;position:relative;overflow:hidden}.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{margin-bottom:var(--sp-5)}.page-title{font-size:var(--fs-xl);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 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}.date-input-row{gap:var(--sp-2);align-items:center;display:flex}.modal-subtasks-list{gap:var(--sp-2);flex-direction:column;display:flex}.modal-subtask-item{align-items:center;gap:var(--sp-2);padding:var(--sp-2);background:var(--bg-tertiary);border-radius:var(--radius-sm);border:1px solid var(--glass-border);display:flex}.modal-subtask-item.modal-subtask-done .modal-subtask-title{color:var(--text-tertiary);text-decoration:line-through}.modal-subtask-check{width:22px;height:22px;color:var(--text-tertiary);cursor:pointer;border-radius:var(--radius-xs);transition:color var(--duration-fast);flex-shrink:0;justify-content:center;align-items:center;display:flex}.modal-subtask-check.modal-subtask-checked{color:var(--accent-light)}.modal-subtask-title{font-size:var(--fs-sm);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(--bg-tertiary);border:1px solid var(--glass-border);border-radius:var(--radius-md);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)}.clr-warning{color:var(--warning-light)!important}.clr-accent{color:var(--accent-light)!important}.clr-danger{color:var(--danger-light)!important}.clr-success{color:var(--success-light)!important}.dash-block-label{font-size:var(--fs-2xs);font-weight:var(--fw-bold);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.09em}.dash-block-header{margin-bottom:var(--sp-4);justify-content:space-between;align-items:center;display:flex}.dash-block-link{font-size:var(--fs-2xs);font-weight:var(--fw-semibold);color:var(--accent-light);opacity:.75;transition:opacity var(--duration-fast);text-decoration:none}.dash-block-link:hover{opacity:1;text-decoration:none}.dash-header,.dash-habits-card,.dash-tasks-card,.dash-xp-card,.dash-challenge-card,.dash-week-card{border-radius:var(--radius-xl);padding:var(--sp-5);border:1px solid #ffffff12}.dash-header{background:linear-gradient(135deg,#3b82f614 0%,#ffffff05 100%);border-color:#3b82f62e;box-shadow:inset 0 0 0 1px #3b82f60d,0 8px 40px #0000004d}.dash-habits-card,.dash-tasks-card{background:#ffffff06;box-shadow:inset 0 1px #ffffff0a,0 4px 20px #0003}.dash-week-card{background:#ffffff05;box-shadow:inset 0 1px #ffffff0a,0 4px 20px #0003}.dash-xp-card{background:linear-gradient(160deg,#ffffff0a 0%,#ffffff05 100%);border-color:#ffffff17;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff0f,0 4px 24px #00000040}.dash-xp-card:before{content:"";background:var(--era-color,var(--accent));opacity:.06;filter:blur(60px);pointer-events:none;border-radius:50%;width:180px;height:180px;position:absolute;top:-60px;right:-40px}.dash-challenge-card{background:#ffffff05;box-shadow:inset 0 1px #ffffff0a}.dashboard{gap:var(--sp-4);padding-bottom:var(--sp-10);flex-direction:column;display:flex}.dash-header{align-items:center;gap:var(--sp-6);display:flex}.dash-header-left{gap:var(--sp-3);flex-direction:column;flex:1;min-width:0;display:flex}.dash-header-meta{align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.dash-header-date{font-size:var(--fs-xs);color:var(--text-tertiary);font-weight:var(--fw-medium);text-transform:capitalize}.dash-header-title-badge{font-size:var(--fs-2xs);font-weight:var(--fw-bold);color:var(--accent-light);border-radius:var(--radius-pill);background:#3b82f61f;border:1px solid #3b82f633;padding:2px 10px}.dash-quote{border:none;margin:0;padding:0}.dash-quote-text{font-size:var(--fs-base);font-weight:var(--fw-medium);color:var(--text-primary);line-height:var(--lh-snug);margin:0 0 var(--sp-1) 0;opacity:.9;font-style:italic}.dash-quote-author{font-size:var(--fs-xs);color:var(--accent-light);font-style:normal;font-weight:var(--fw-semibold);opacity:.85}.dash-header-right{align-items:center;gap:var(--sp-3);flex-direction:column;flex-shrink:0;display:flex}.dash-progress-ring-wrap{flex-shrink:0;width:108px;height:108px;position:relative}.dash-progress-ring-inner{flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex;position:absolute;inset:0}.dash-progress-pct{font-size:var(--fs-2xl);font-weight:var(--fw-extrabold);color:var(--text-primary);letter-spacing:-.02em;line-height:1}.dash-progress-sub{font-size:var(--fs-2xs);color:var(--text-tertiary);font-weight:var(--fw-medium)}.dash-header-stats{align-items:center;gap:var(--sp-3);display:flex}.dash-header-stat{flex-direction:column;align-items:center;gap:2px;display:flex}.dash-header-stat-val{font-size:var(--fs-sm);font-weight:var(--fw-extrabold);color:var(--text-primary);white-space:nowrap;line-height:1}.dash-header-stat-label{font-size:var(--fs-2xs);color:var(--text-tertiary);font-weight:var(--fw-medium);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.dash-header-stat-div{background:#ffffff12;width:1px;height:28px}.dash-main-grid{gap:var(--sp-4);flex-direction:column;display:flex}@media (width>=768px){.dash-main-grid{gap:var(--sp-4);grid-template-columns:57fr 43fr;align-items:start;display:grid}}.dash-col-left,.dash-col-right{gap:var(--sp-4);flex-direction:column;display:flex}.dash-habits-title-row{gap:var(--sp-1);flex-direction:column;display:flex}.dash-habits-pct-badge{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:1px;display:flex}.dash-habits-pct-num{font-size:2rem;font-weight:var(--fw-extrabold);color:var(--accent-light);letter-spacing:-.03em;line-height:1}.dash-habits-pct-sym{font-size:1.1rem;font-weight:var(--fw-bold);opacity:.7;vertical-align:super}.dash-habits-pct-sub{font-size:var(--fs-2xs);color:var(--text-tertiary);font-weight:var(--fw-medium)}.dash-habits-pct-badge.done .dash-habits-pct-num{color:var(--success-light)}.dash-habits-empty{align-items:center;gap:var(--sp-2);padding:var(--sp-6) var(--sp-4);text-align:center;font-size:var(--fs-sm);color:var(--text-tertiary);flex-direction:column;display:flex}.dash-habits-week-header{margin-bottom:var(--sp-2);padding-left:calc(3px + var(--sp-2));grid-template-columns:repeat(7,1fr);gap:2px;padding-right:36px;display:grid}.dash-habits-week-day{font-size:.6rem;font-weight:var(--fw-bold);color:var(--text-tertiary);text-align:center;text-transform:uppercase;letter-spacing:.04em;opacity:.6}.dash-habits-week-day.is-today{color:var(--accent-light);opacity:1}.dash-habits-week-day.is-future{opacity:.25}.dash-habits-list{flex-direction:column;gap:2px;display:flex}.dash-habit-row{align-items:center;gap:var(--sp-2);padding:var(--sp-2) 0;border-bottom:1px solid #ffffff0a;display:flex;position:relative}.dash-habit-row:last-of-type{border-bottom:none}.dash-habit-row-indicator{background:var(--hcolor,var(--accent));opacity:.8;width:3px;height:28px;transition:opacity var(--duration-fast);border-radius:2px;flex-shrink:0}.dash-habit-row.is-done .dash-habit-row-indicator{opacity:.4}.dash-habit-row-body{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.dash-habit-row-name{font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;transition:opacity var(--duration-fast);line-height:1.2;overflow:hidden}.dash-habit-row.is-done .dash-habit-row-name{opacity:.45;-webkit-text-decoration:line-through #fff3;text-decoration:line-through #fff3}.dash-habit-row-dots{align-items:center;gap:3px;display:flex}.dash-habit-dot{width:7px;height:7px;transition:background var(--duration-fast), opacity var(--duration-fast);border-radius:2px;flex-shrink:0}.dash-habit-dot.done{background:var(--hcolor,var(--accent));opacity:.9}.dash-habit-dot.miss{background:#ef444480;border:1px solid #ef44444d}.dash-habit-dot.future{background:#ffffff12;border:1px solid #ffffff0f}.dash-habit-dot.nodue{background:#ffffff0a}.dash-habit-row-pct{font-size:var(--fs-2xs);font-weight:var(--fw-bold);color:var(--text-tertiary);text-align:right;width:30px;transition:color var(--duration-fast);flex-shrink:0}.dash-habit-row-pct.perfect{color:var(--success-light)}.dash-habit-row-pct.low{color:var(--danger-light)}.dash-habits-more{padding:var(--sp-2) var(--sp-3);text-align:center;font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--accent-light);opacity:.7;border-radius:var(--radius-sm);transition:all var(--duration-fast);margin-top:var(--sp-1);border:1px dashed #3b82f633;text-decoration:none;display:block}.dash-habits-more:hover{opacity:1;background:#3b82f60d;text-decoration:none}.dash-tasks-metrics{margin-bottom:var(--sp-4);padding:var(--sp-3) 0;border-top:1px solid #ffffff0d;border-bottom:1px solid #ffffff0d;align-items:center;gap:0;display:flex}.dash-tasks-metric{flex-direction:column;flex:1;align-items:center;gap:3px;display:flex}.dash-tasks-metric-val{font-size:var(--fs-3xl,2rem);font-weight:var(--fw-extrabold);color:var(--text-primary);letter-spacing:-.03em;transition:color var(--duration-fast);line-height:1}.dash-tasks-metric.danger .dash-tasks-metric-val{color:var(--danger-light)}.dash-tasks-metric.success .dash-tasks-metric-val{color:var(--success-light)}.dash-tasks-metric-label{font-size:var(--fs-2xs);color:var(--text-tertiary);font-weight:var(--fw-medium);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.dash-tasks-metric-div{background:#ffffff0f;flex-shrink:0;width:1px;height:36px}.dash-tasks-urgent-list{gap:var(--sp-1-5);flex-direction:column;display:flex}.dash-task-row{align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-md);transition:background var(--duration-fast), border-color var(--duration-fast);background:#ffffff08;border:1px solid #ffffff0f;display:flex}.dash-task-row.overdue{background:#ef44440a;border-color:#ef444426}.dash-task-row:hover{background:#ffffff0d}.dash-task-row-btn{cursor:pointer;width:28px;height:28px;color:var(--text-tertiary);border-radius:var(--radius-sm);transition:color var(--duration-fast), background var(--duration-fast);-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.dash-task-row-btn:hover{color:var(--accent-light);background:#3b82f61a}.dash-task-row-name{min-width:0;font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;line-height:var(--lh-tight);flex:1;overflow:hidden}.dash-task-row-pri{font-size:var(--fs-2xs);font-weight:var(--fw-bold);border-radius:var(--radius-pill);white-space:nowrap;border:1px solid #0000;flex-shrink:0;padding:2px 7px}.dash-task-row-pri--urgent{color:var(--danger-light);background:var(--danger-bg);border-color:#ef444433}.dash-task-row-pri--high{color:var(--warning-light);background:#f59e0b14;border-color:#f59e0b26}.dash-task-row-pri--medium{color:var(--accent-light);background:#3b82f614;border-color:#3b82f626}.dash-task-row-pri--low{color:var(--text-tertiary);background:#ffffff0a;border-color:#ffffff12}.dash-tasks-clear{align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-3);font-size:var(--fs-xs);color:var(--text-tertiary);font-weight:var(--fw-medium);display:flex}.dash-xp-top{align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-4);display:flex}.dash-xp-era-badge{border-radius:var(--radius-md);background:#ffffff0f;border:1px solid #ffffff1a;flex-shrink:0;justify-content:center;align-items:center;width:46px;height:46px;display:flex}.dash-xp-era-icon{font-size:1.5rem;line-height:1}.dash-xp-identity{flex-direction:column;flex:1;gap:3px;display:flex}.dash-xp-level-row{align-items:center;gap:var(--sp-2);display:flex}.dash-xp-level{font-size:var(--fs-xl);font-weight:var(--fw-extrabold);color:var(--text-primary);line-height:1}.dash-xp-combo{font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--warning-light);border-radius:var(--radius-pill);white-space:nowrap;background:#f59e0b1a;border:1px solid #f59e0b2e;padding:2px 8px}.dash-xp-era-name{font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--era-color,var(--accent-light));text-transform:uppercase;letter-spacing:.07em}.dash-xp-bar-section{margin-bottom:var(--sp-4)}.dash-xp-bar-track{border-radius:var(--radius-pill);height:6px;margin-bottom:var(--sp-1-5);background:#ffffff0f;position:relative;overflow:hidden}.dash-xp-bar-fill{border-radius:var(--radius-pill);background:var(--era-color,var(--accent));height:100%;transition:width .7s var(--ease-default);position:relative;overflow:hidden}.dash-xp-bar-fill:after{content:"";background:linear-gradient(90deg,#0000,#ffffff38,#0000);animation:2.5s ease-in-out infinite shimmer;position:absolute;inset:0}.dash-xp-bar-meta{font-size:var(--fs-2xs);color:var(--text-tertiary);font-weight:var(--fw-medium);justify-content:space-between;display:flex}.dash-xp-total{color:var(--accent-light);font-weight:var(--fw-bold)}.dash-xp-rem{color:var(--text-tertiary)}.dash-xp-counters{align-items:center;gap:var(--sp-3);padding:var(--sp-3) 0;margin-bottom:var(--sp-4);border-top:1px solid #ffffff0d;border-bottom:1px solid #ffffff0d;display:flex}.dash-xp-counter{flex-direction:column;flex:1;align-items:center;gap:3px;display:flex}.dash-xp-counter-val{font-size:var(--fs-xl);font-weight:var(--fw-extrabold);color:var(--text-primary);letter-spacing:-.02em;line-height:1}.dash-xp-counter-sub{font-size:var(--fs-sm);color:var(--text-tertiary);font-weight:var(--fw-medium)}.dash-xp-counter-label{font-size:var(--fs-2xs);color:var(--text-tertiary);font-weight:var(--fw-medium);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.dash-xp-counter-div{background:#ffffff0f;flex-shrink:0;width:1px;height:28px}.dash-xp-next-ach{padding:var(--sp-3);border-radius:var(--radius-md);margin-bottom:var(--sp-3);background:#ffffff08;border:1px solid #ffffff0f}.dash-xp-next-label{font-size:var(--fs-2xs);font-weight:var(--fw-bold);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--sp-2);display:block}.dash-xp-next-row{align-items:center;gap:var(--sp-2);display:flex}.dash-xp-next-icon{flex-shrink:0;font-size:1.1rem}.dash-xp-next-body{flex:1;min-width:0}.dash-xp-next-name{font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--text-primary);margin-bottom:var(--sp-1-5);white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.dash-xp-next-track{border-radius:var(--radius-pill);background:#ffffff0f;height:3px;overflow:hidden}.dash-xp-next-fill{background:var(--accent);border-radius:var(--radius-pill);height:100%;transition:width .5s var(--ease-default)}.dash-xp-next-pct{font-size:var(--fs-sm);font-weight:var(--fw-extrabold);color:var(--accent-light);flex-shrink:0}.dash-xp-links{gap:var(--sp-2);display:flex}.dash-xp-link{padding:var(--sp-1-5) var(--sp-3);border-radius:var(--radius-sm);font-size:var(--fs-2xs);font-weight:var(--fw-semibold);color:var(--text-secondary);transition:all var(--duration-fast);white-space:nowrap;background:#ffffff0a;border:1px solid #ffffff12;align-items:center;gap:5px;text-decoration:none;display:inline-flex}.dash-xp-link:hover{color:var(--accent-light);background:#3b82f612;border-color:#3b82f638;text-decoration:none}.dash-challenge-header{align-items:flex-start;gap:var(--sp-2);margin-bottom:var(--sp-3);display:flex}.dash-challenge-icon{flex-shrink:0;margin-top:2px;font-size:1.1rem}.dash-challenge-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.dash-challenge-super{font-size:var(--fs-2xs);font-weight:var(--fw-bold);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.08em}.dash-challenge-name{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text-primary);line-height:var(--lh-snug)}.dash-challenge-xp-badge{font-size:var(--fs-2xs);font-weight:var(--fw-bold);color:#67e8f9;border-radius:var(--radius-pill);white-space:nowrap;background:#67e8f914;border:1px solid #67e8f929;flex-shrink:0;padding:2px 8px}.dash-challenge-bar-track{border-radius:var(--radius-pill);height:5px;margin-bottom:var(--sp-2);background:#ffffff0f;overflow:hidden}.dash-challenge-bar-fill{background:var(--accent);border-radius:var(--radius-pill);height:100%;transition:width .5s var(--ease-default)}.dash-challenge-footer{justify-content:space-between;align-items:center;display:flex}.dash-challenge-frac{font-size:var(--fs-xs);color:var(--text-tertiary);font-weight:var(--fw-medium)}.dash-challenge-pct{font-size:var(--fs-sm);font-weight:var(--fw-extrabold);color:var(--accent-light)}.dash-week-header-right{align-items:center;gap:var(--sp-2);display:flex}.dash-week-badge-perfect{font-size:var(--fs-2xs);font-weight:var(--fw-bold);color:#facc15;border-radius:var(--radius-pill);background:#facc1514;border:1px solid #facc1526;padding:2px 8px}.dash-week-delta{font-size:var(--fs-2xs);font-weight:var(--fw-bold);border-radius:var(--radius-pill);padding:2px 8px}.dash-week-delta.up{color:var(--success-light);background:#10b98114}.dash-week-delta.down{color:var(--danger-light);background:#ef444414}.dash-week-bars{gap:var(--sp-2);height:88px;margin-bottom:var(--sp-3);align-items:flex-end;display:flex}.dash-week-col{flex-direction:column;flex:1;align-items:center;gap:4px;height:100%;display:flex}.dash-week-col-pct{color:var(--text-tertiary);font-size:.55rem;font-weight:var(--fw-semibold);height:12px;line-height:12px}.dash-week-col-track{background:#ffffff0a;border-radius:4px 4px 2px 2px;flex:1;align-items:flex-end;width:100%;min-height:0;display:flex;overflow:hidden}.is-future .dash-week-col-track{background:#ffffff05;border:1px dashed #ffffff0d}.is-today .dash-week-col-track{border:1px solid #3b82f638}.dash-week-col-fill{width:100%;min-height:0;transition:height .6s var(--ease-default);background:#3b82f673;border-radius:4px 4px 2px 2px}.is-today .dash-week-col-fill{background:#3b82f6bf}.is-perfect .dash-week-col-fill{background:#f59e0b99}.dash-week-col-label{font-size:var(--fs-2xs);color:var(--text-tertiary);font-weight:var(--fw-medium);text-transform:capitalize}.is-today .dash-week-col-label{color:var(--accent-light);font-weight:var(--fw-bold)}.is-perfect .dash-week-col-pct{color:#facc15}.dash-week-footer{align-items:center;gap:var(--sp-2);padding-top:var(--sp-3);font-size:var(--fs-xs);color:var(--text-tertiary);font-weight:var(--fw-medium);border-top:1px solid #ffffff0d;flex-wrap:wrap;display:flex}.dash-week-footer strong{color:var(--text-primary);font-weight:var(--fw-bold)}.dash-week-footer .sep{opacity:.4}@media (width<=600px){.dash-header{align-items:flex-start;gap:var(--sp-4);flex-direction:column}.dash-header-right{flex-direction:row;justify-content:space-between;align-items:center;width:100%}.dash-progress-ring-wrap{width:80px;height:80px}.dash-progress-pct{font-size:var(--fs-lg)}.dash-header-stats{align-items:flex-start;gap:var(--sp-2);flex-direction:column}.dash-header-stat-div{display:none}.dash-habits-week-header{padding-right:28px}}.habits-page{flex-direction:column;display:flex}.habits-daily-summary{align-items:center;gap:var(--sp-5);background:var(--bg-surface);border:1px solid var(--glass-border);border-radius:var(--radius-xl);padding:var(--sp-4) var(--sp-5);margin-bottom:var(--sp-4);display:flex;position:relative;overflow:hidden}.habits-daily-summary:before{display:none}.habits-daily-ring-wrap{flex-shrink:0;width:60px;height:60px;position:relative}.habits-daily-ring{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-done-text{align-items:baseline;gap:6px;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-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-list{gap:var(--sp-2);flex-direction:column;display:flex}.habit-card{gap:var(--sp-2);background:var(--bg-surface);border:1px solid var(--glass-border);border-left:3px solid var(--habit-color,var(--accent));border-radius:var(--radius-lg);padding:var(--sp-4);min-height:60px;transition:border-color var(--duration-fast) var(--ease-default);flex-direction:column;justify-content:center;display:flex}.habit-card:hover{border-color:var(--glass-border-hover);border-left-color:var(--habit-color,var(--accent))}.habit-card:active{transform:scale(.99)}.habit-card.habit-completed{opacity:.5;border-left-color:var(--success)}.habit-card.habit-completed:hover{opacity:.65}.habit-card-main{justify-content:space-between;align-items:center;gap:var(--sp-3);display:flex}.habit-card-info{gap:var(--sp-1);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-tight);white-space:nowrap;text-overflow:ellipsis;transition:color var(--duration-fast);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:.625rem;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:2px 7px}.habit-mini-progress{background:var(--bg-tertiary);border-radius:var(--radius-pill);height:3px;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:30px;height:30px;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-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)}.habits-all-header{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-3);display:flex}.habits-all-list{gap:var(--sp-2);flex-direction:column;display:flex}.habit-row{background:var(--bg-surface);border:1px solid var(--glass-border);border-radius:var(--radius-lg);transition:border-color var(--duration-fast) var(--ease-default);display:flex;overflow:hidden}.habit-row:hover{border-color:var(--glass-border-hover)}.habit-row-accent{flex-shrink:0;width:4px}.habit-row-body{gap:var(--sp-2);min-width:0;padding:var(--sp-3) var(--sp-4);flex-direction:column;flex:1;display:flex}.habit-row-top{justify-content:space-between;align-items:center;gap:var(--sp-2);display:flex}.habit-row-name{font-size:var(--fs-base);font-weight:var(--fw-semibold);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.habit-row-actions{gap:var(--sp-1);flex-shrink:0;align-items:center;display:flex}.habit-row-meta{align-items:center;gap:var(--sp-1);flex-wrap:wrap;display:flex}.habit-meta-chip{font-size:.625rem;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:2px 7px}.habit-meta-ended{color:var(--danger);background:#ef444412;border-color:#ef444424}.habit-meta-period{color:var(--accent-light);background:#3b82f614;border-color:#3b82f624}.habit-streak-dots{align-items:center;gap:4px;display:flex}.habit-dot{border-radius:var(--radius-full);background:var(--bg-elevated);border:1px solid var(--glass-border);flex-shrink:0;width:9px;height:9px}.habit-dot.done{border-color:#0000}.habit-dot.today{border-color:var(--accent);border-width:2px}.habit-dot.done.today{border-color:#0000}.habit-row-stats{align-items:center;gap:var(--sp-3);display:flex}.habit-stat-item{flex-direction:column;align-items:center;gap:1px;display:flex}.habit-stat-value{font-size:var(--fs-base);font-weight:var(--fw-bold);color:var(--text-primary);line-height:1}.habit-stat-label{font-size:.6rem;font-weight:var(--fw-semibold);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em}.habit-stat-divider{background:var(--glass-border);flex-shrink:0;width:1px;height:22px}.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}.toggle-switch input:checked+.toggle-slider{background:var(--accent);border-color:var(--accent)}.date-navigator{justify-content:center;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-4);padding:var(--sp-1) 0;display:flex}.date-nav-btn{border-radius:var(--radius-md);background:var(--bg-surface);border:1px solid var(--glass-border);width:32px;height:32px;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}.date-nav-btn:hover:not(.disabled){background:var(--bg-elevated);color:var(--text-primary);border-color:var(--glass-border-hover)}.date-nav-btn:active:not(.disabled){transform:scale(.92)}.date-nav-btn.disabled{opacity:.25;cursor:not-allowed}.date-nav-center{align-items:center;gap:var(--sp-1);flex-direction:column;flex:1;min-width:0;display:flex;position:relative}.date-nav-label{justify-content:center;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);background:var(--bg-surface);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;width:100%;font-family:inherit;display:flex}.date-nav-label:hover{background:var(--bg-elevated);border-color:var(--glass-border-hover)}.date-nav-label:active{transform:scale(.98)}.date-nav-label.date-nav-past{color:var(--accent-light);background:#3b82f614;border-color:#3b82f633}.date-picker-hidden{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.date-nav-today-btn{padding:3px var(--sp-3);background:var(--bg-tertiary);border:1px solid var(--glass-border);border-radius:var(--radius-pill);color:var(--accent-light);font-size:.625rem;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;justify-content:center;align-items:center;gap:4px;font-family:inherit;display:flex}.date-nav-today-btn:hover{background:#3b82f614;border-color:#3b82f633}.date-nav-today-btn:active{transform:scale(.95)}.habit-mini-cal{margin-top:var(--sp-2);padding:var(--sp-2);background:var(--bg-tertiary);border-radius:var(--radius-sm);grid-template-columns:repeat(13,1fr);gap:2px;display:grid}.habit-mini-cal-day{aspect-ratio:1;background:var(--bg-elevated);min-width:0;transition:background var(--duration-fast);border-radius:2px}.habit-mini-cal-day.today{outline:1px solid var(--accent);outline-offset:1px}.drag-handle{cursor:grab;color:var(--text-tertiary);-webkit-tap-highlight-color:transparent;touch-action:none;opacity:.4;transition:opacity var(--duration-fast);align-items:center;padding:4px;display:flex}.habit-row:hover .drag-handle{opacity:.8}.drag-handle:active{cursor:grabbing}.habit-row.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-done-text{justify-content:center}}.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(--bg-surface);border-radius:var(--radius-md);transition:border-color var(--duration-fast) var(--ease-default);border:1px solid #ffffff12;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:#10b981}.tasks-summary-card:nth-child(3):before{background:#8b5cf6}.tasks-summary-card:hover{border-color:#ffffff1f}.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 #ffffff0a;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:.65rem;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(--bg-surface);border-radius:var(--radius-md);padding:var(--sp-4) var(--sp-4) var(--sp-4) var(--sp-4);min-height:72px;transition:border-color var(--duration-normal) var(--ease-default);border:1px solid #ffffff12;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:#ffffff1f}.task-card:active{transform:scale(.985)translateY(0)}.task-card.task-overdue{background:var(--bg-surface);border-color:#ef444426}.task-card.task-overdue:before{background:var(--danger)!important}.task-card.task-done{opacity:.55;background:#ffffff04;border-color:#ffffff0a}.task-card.task-done:before{opacity:.5;background:var(--success)!important}.task-card.task-done:hover{opacity:.75;border-color:#ffffff14}.task-card-main{align-items:flex-start;gap:var(--sp-3);width:100%;display:flex}.task-check{cursor:pointer;width:30px;height:30px;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;margin-top:1px;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{font-size:.65rem;font-weight:var(--fw-medium);color:var(--text-tertiary);border-radius:var(--radius-pill);background:#ffffff08;border:1px solid #ffffff0f;align-items:center;gap:3px;padding:2px 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:.5;min-width:40px;min-height:40px}}.subtask-badge{font-size:.65rem;font-weight:var(--fw-semibold);color:var(--accent-light);border-radius:var(--radius-pill);background:#3b82f61a;border:1px solid #3b82f633;align-items:center;gap:3px;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:18px;height:18px;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{flex-direction:column;gap:2px;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:.6rem;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}.date-input-row{align-items:center;gap:var(--sp-2);display:flex}.date-input-row .form-input{flex:1}.toggle-row{padding:var(--sp-2) 0;justify-content:space-between;align-items:center;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;position:absolute}.toggle-slider{background:var(--bg-hover);border-radius:var(--radius-pill);cursor:pointer;transition:background var(--duration-normal) var(--ease-default);border:1px solid #ffffff12;position:absolute;inset:0}.toggle-slider:before{content:"";background:var(--text-secondary);width:18px;height:18px;transition:transform var(--duration-normal) var(--ease-default), background var(--duration-normal);border-radius:50%;position:absolute;top:50%;left:2px;transform:translateY(-50%)}.toggle-switch input:checked+.toggle-slider{border-color:var(--accent);background:#3b82f633}.toggle-switch input:checked+.toggle-slider:before{background:var(--accent-light);transform:translate(20px,-50%)}.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)}@media (width<=400px){.tasks-summary-row{gap:var(--sp-2);grid-template-columns: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}.period-chip{padding:var(--sp-2) var(--sp-4);border-radius:var(--radius-pill);background:var(--bg-surface);color:var(--text-secondary);font-size:var(--fs-sm);font-weight:var(--fw-medium);cursor:pointer;white-space:nowrap;transition:all var(--duration-fast) var(--ease-default);-webkit-tap-highlight-color:transparent;border:1px solid #ffffff12;flex-shrink:0;font-family:inherit}.period-chip:hover{background:var(--bg-tertiary);color:var(--text-primary);border-color:#ffffff1f}.period-chip.active{border-color:var(--accent);color:var(--accent-light);font-weight:var(--fw-semibold);background:#3b82f61f}.custom-range{align-items:flex-end;gap:var(--sp-3);padding:var(--sp-4);background:var(--bg-surface);border-radius:var(--radius-md);margin-top:var(--sp-2);border:1px solid #ffffff12;display:flex}.custom-range-field{flex-direction:column;flex:1;gap:4px;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(--bg-surface);border-radius:var(--radius-md);text-align:center;border:1px solid #ffffff12;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);background:var(--bg-tertiary);border-radius:var(--radius-sm);transition:border-color var(--duration-fast) var(--ease-default);border:1px solid #ffffff0f;flex-direction:column;display:flex}.analytics-hero-stat:hover{border-color:#ffffff1f}.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{flex-direction:column;flex-shrink:0;gap:3px;padding-top:0;display:flex}.heatmap-day-label{height:14px;color:var(--text-tertiary);width:24px;font-size:.6rem;line-height:14px}.heatmap-grid{flex:1;gap:3px;display:flex}.heatmap-week{flex-direction:column;gap:3px;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(--bg-surface);border-radius:var(--radius-md);transition:border-color var(--duration-fast) var(--ease-default);border:1px solid #ffffff12;flex-direction:column;display:flex}.analytics-bw-card:hover{border-color:#ffffff1f}.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(--bg-surface);border-radius:var(--radius-md);padding:var(--sp-4);border:1px solid #ffffff12;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-header-accent{border-radius:var(--radius-pill);background:var(--accent);width:32px;height:2px;margin-top:var(--sp-2)}.settings-stat-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;transition:transform .2s;display:flex}.settings-stat:hover .settings-stat-icon{transform:scale(1.08)}.settings-stats{gap:var(--sp-3);background:var(--bg-surface);border-radius:var(--radius-md);padding:var(--sp-4);border:1px solid #ffffff12;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 .2s;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);border:1px solid #ffffff12;transition:all .2s;display:inline-flex}.settings-tag:hover{background:#ffffff0a;border-color:#ffffff1f}.settings-tag-remove{width:20px;height:20px;color:var(--text-tertiary);cursor:pointer;border-radius:var(--radius-full);background:0 0;border:none;justify-content:center;align-items:center;font-size:14px;line-height:1;transition:all .2s;display:flex}.settings-tag-remove:hover{color:var(--danger-light);background:#ef44441f;transform:scale(1.1)}.settings-account-card{background:var(--bg-surface);border:1px solid #ef44441f}.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:#fca5a5;background:#ef444414;border:1px solid #ef444459;transition:all .2s}.settings-actions .btn-danger:hover{background:#ef444426;border-color:#ef444480}.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)}@property --login-border-angle{syntax:"<angle>";inherits:false;initial-value:0deg}.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,.login-page:after{display:none}.login-card{background:var(--bg-secondary);border-radius:var(--radius-lg);width:100%;max-width:420px;padding:var(--sp-10) var(--sp-8) var(--sp-8);animation:fade-in-up .5s var(--ease-default);z-index:1;border:1px solid #ffffff14;position:relative;box-shadow:0 8px 40px #00000080}.login-card:before{display:none}.login-header{text-align:center;margin-bottom:var(--sp-7)}.login-emblem{margin-bottom:var(--sp-4);justify-content:center;display:flex}.login-emblem svg{filter:drop-shadow(0 0 16px #3b82f64d)}@keyframes login-emblem-float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.login-logo{font-size:3rem;font-weight:var(--fw-extrabold);color:var(--accent-light);letter-spacing:-.03em;margin-bottom:var(--sp-2);line-height:1.1}.login-subtitle{color:var(--text-secondary);font-size:var(--fs-base);font-weight:var(--fw-medium);letter-spacing:.02em;line-height:var(--lh-snug)}.login-tagline{color:var(--text-tertiary);font-size:var(--fs-xs);font-weight:var(--fw-semibold);letter-spacing:.12em;text-transform:uppercase;margin-top:var(--sp-2)}.login-tabs{gap:var(--sp-1);background:var(--bg-primary);border-radius:var(--radius-sm);margin-bottom:var(--sp-6);border:1px solid #ffffff12;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-xs,4px);-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex:1;font-family:inherit;transition:all .2s;position:relative}.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 .2s;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-sm);letter-spacing:.04em;text-transform:uppercase;background:var(--accent);min-height:52px;transition:all .2s;display:flex;position:relative;overflow:hidden}.login-btn:after{display:none}.login-btn:hover:not(:disabled){background:var(--accent-hover,#2563eb);transform:translateY(-1px)}.login-btn:active:not(:disabled){transform:translateY(0)}.login-btn:disabled{opacity:.6;cursor:not-allowed}.login-error{padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-sm);color:var(--danger-light);font-size:var(--fs-sm);text-align:center;background:#ef444414;border:1px solid #ef444433}.login-error.login-success{color:var(--success-light);background:#10b98114;border-color:#10b98133}.login-spinner{border:2.5px solid #fff3;border-top-color:#fff;border-radius:50%;width:22px;height:22px;animation:.6s linear infinite spin}.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:.6rem;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-6);padding-bottom:var(--sp-8);flex-direction:column;display:flex}.ach-hero{align-items:center;gap:var(--sp-4);padding:var(--sp-10) var(--sp-5) var(--sp-7);text-align:center;background:var(--bg-surface);border-radius:var(--radius-md);border:1px solid #ffffff12;flex-direction:column;display:flex;position:relative;overflow:hidden}.ach-hero:before{display:none}.ach-hero-badge{z-index:1;width:120px;height:120px;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{border-radius:var(--radius-full);background:var(--bg-secondary);border:1px solid #ffffff0f;flex-direction:column;justify-content:center;align-items:center;gap:3px;display:flex;position:absolute;inset:8px}.ach-hero-era-icon{font-size:2.5rem;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{z-index:1;flex-direction:column;align-items:center;gap:6px;display:flex}.ach-hero-level{font-size:2.25rem;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{z-index:1;flex-direction:column;gap:8px;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:.65rem;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:#10b9811a}.ach-quest{background:var(--bg-surface);border-radius:var(--radius-md);border:1px solid #ffffff12;transition:border-color .25s;overflow:hidden}.ach-quest:hover{border-color:#ffffff1f}.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{flex-direction:column;flex:1;gap:4px;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:.65rem;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(2,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);border:1px solid color-mix(in srgb, var(--bc,var(--accent)) 20%, transparent);border-radius:var(--radius-md);text-align:center;cursor:default;flex-direction:column;min-height:160px;transition:all .3s;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)}.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{z-index:1;flex-direction:column;align-items:center;gap:4px;display:flex}.ach-badge-date{color:var(--text-tertiary);font-size:.6rem;font-weight:var(--fw-medium)}.ach-badge-xp{font-size:.6rem;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-12) var(--sp-5);text-align:center;align-items:center;gap:var(--sp-3);background:var(--bg-surface);border-radius:var(--radius-md);border:1px solid #ffffff12;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:.65rem;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:.38;background:#ffffff05;border:1px solid #ffffff0d;transition:all .2s;display:flex}.ach-locked-pill:hover{opacity:.55;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{flex-direction:column;gap:2px;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{color:var(--text-tertiary);font-size:.6rem;line-height:1.3}.ach-share-btn{border-radius:var(--radius-full);width:30px;height:30px;color:var(--text-tertiary);cursor:pointer;opacity:0;-webkit-tap-highlight-color:transparent;background:#0009;border:none;justify-content:center;align-items:center;transition:all .2s;display:flex;position:absolute;top:8px;right:8px}.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<=360px){.ach-badge-grid{grid-template-columns:1fr}.ach-hero-badge{width:100px;height:100px}.ach-hero-level{font-size:1.75rem}}.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(--bg-surface);border-radius:var(--radius-md);border:1px solid #ffffff12;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(--bg-surface);border-radius:var(--radius-md);scroll-snap-align:start;text-align:center;border:1px solid #ffffff12;flex-direction:column;flex:1;transition:border-color .2s;display:flex}.profile-stat-card:hover{border-color:#ffffff1f}.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{cursor:default;font-size:2.25rem;line-height:1;transition:transform .2s}.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-radius:var(--radius-sm);background:var(--bg-surface);cursor:pointer;text-align:left;color:var(--text-primary);-webkit-tap-highlight-color:transparent;border:1px solid #ffffff12;width:100%;transition:all .2s;display:flex}.profile-title-item:hover{background:var(--bg-tertiary);border-color:#ffffff1f}.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:.6rem;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:.4;cursor:default}.profile-title-locked:hover{background:var(--bg-surface);border-color:#ffffff12}
