@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&family=Inter:wght@400;500;600;700&family=Poppins:wght@500;600;700&display=swap";:root{--ink:#12203a;--ink-soft:#2d3f5f;--muted:#5a6982;--stroke:#d9e3f2;--stroke-bold:#c5d2e6;--accent:#2270ff;--accent-strong:#184ebf;--accent-ink:#174ba8;--card-surface:#ffffffd6;--shadow-soft:0 18px 42px -30px #11264f80}*{box-sizing:border-box}html,body,#root{min-height:100%}body{color:#fff;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#0c0f14;margin:0;font-family:Inter,sans-serif}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#8b5cf64d;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#8b5cf680}.fade-in{animation:.5s ease-out forwards fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes riseIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes popIn{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}@keyframes glowSweep{0%{transform:translate(-120%)}to{transform:translate(180%)}}@keyframes cardFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.login-layout{background:radial-gradient(circle at top,#4f46e5 0%,#0f172a 70%),#0f172a;place-items:center;min-height:100vh;padding:clamp(1.2rem,4vw,2.5rem);display:grid;position:relative;overflow:hidden}.login-layout:before,.login-layout:after{content:"";z-index:0;pointer-events:none;position:absolute;inset:0}.login-layout:before{background:radial-gradient(680px 260px at 50% -10%,#94a3b826,#0000 72%),radial-gradient(420px 220px at 100% 100%,#4f46e526,#0000 70%)}.login-layout:after{opacity:.09;background-image:radial-gradient(#ffffff80 .55px,#0000 .55px);background-size:3px 3px}.login-mui-card{z-index:1;animation:.35s ease-out popIn;position:relative}.login-logo-wrap{justify-content:center;margin-bottom:.3rem;display:flex}.cu-logo{width:52px;height:52px;margin:0}.login-logo-centered{width:52px;height:52px}.tag{text-transform:uppercase;letter-spacing:.06em;color:#3553a5;-webkit-backdrop-filter:blur(6px);background:#ffffff38;border:1px solid #ffffff61;border-radius:999px;align-items:center;gap:.36rem;margin:0;padding:.28rem .62rem;font-family:IBM Plex Mono,monospace;font-size:.66rem;display:inline-flex}.login-card h1,.hero-panel h1{letter-spacing:-.025em;margin:0;line-height:1.05}.login-card h1{letter-spacing:.01em;max-width:22ch;margin-top:1rem;font-family:Poppins,Inter,sans-serif;font-size:clamp(1.42rem,2.7vw,1.94rem);font-weight:600}.login-note,.hero-panel p,.progress-meta,.todo-copy small,.empty,.error-text,.stats span,.bar-day,.bar-value{color:var(--muted)}.login-note{margin:.95rem 0 0;font-size:.93rem;line-height:1.5}.uid-form{gap:.82rem;margin-top:1.25rem;display:grid}.uid-field{position:relative}.field-icon{color:#7692c9;pointer-events:none;width:17px;height:17px;transition:color .2s,transform .2s;position:absolute;top:50%;left:.92rem;transform:translateY(-50%)}.field-icon svg{fill:currentColor;width:100%;height:100%}.uid-form input,.task-form input{width:100%;color:var(--ink);font:inherit;background:#ffffffc7;border:1px solid #b2c2e7e6;border-radius:14px;padding:1.05rem .95rem .45rem 2.65rem;transition:border-color .24s,box-shadow .24s,background-color .24s}.uid-form input:focus,.task-form input:focus{background:#ffffffeb;border-color:#5075f0;outline:none;box-shadow:0 0 0 4px #5274f338}.uid-field label{color:#6880ad;pointer-events:none;font-size:.88rem;transition:top .18s,transform .18s,font-size .18s,color .18s;position:absolute;top:50%;left:2.65rem;transform:translateY(-50%)}.uid-form input:focus+label,.uid-form input:not(:placeholder-shown)+label{color:#3f62cb;font-size:.7rem;font-weight:600;top:.52rem;transform:translateY(0)}.uid-form input:focus~.field-icon,.uid-form input:not(:placeholder-shown)~.field-icon{color:#3f62cb;transform:translateY(-50%)scale(1.04)}.uid-form button,.task-form button,.filter-row button,.session-row button,.todo-item button{cursor:pointer;font:inherit;border:0;border-radius:12px}.uid-form button,.task-form button{color:#fff;background:linear-gradient(135deg,#2f68ff 0%,#3e47d9 48%,#5864f1 100%);justify-content:center;align-items:center;gap:.45rem;min-height:48px;padding:.78rem .92rem;font-weight:600;transition:transform .16s,box-shadow .2s,filter .2s;display:inline-flex;position:relative;overflow:hidden}.uid-form button:before,.task-form button:before{content:"";background:linear-gradient(#0000 0%,#ffffff5c 50%,#0000 100%);width:40%;height:380%;transition:left .35s;position:absolute;top:-140%;left:-45%;transform:rotate(20deg)}.uid-form button svg{fill:currentColor;width:18px;height:18px;transition:transform .18s}.uid-form button:hover,.task-form button:hover{filter:saturate(1.07);transform:translateY(-2px);box-shadow:0 16px 28px #2a40cf57}.uid-form button:hover:before,.task-form button:hover:before{left:110%}.uid-form button:hover svg{transform:translate(2px)}.uid-form button:active,.task-form button:active{transform:translateY(-1px)scale(.995)}.error-text{color:#b42318;margin-top:.78rem;font-size:.88rem}.dashboard-layout{min-height:100vh;padding:clamp(.9rem,3.2vw,2rem)}.dashboard-shell{grid-template-columns:minmax(280px,.92fr) minmax(420px,1.3fr);gap:clamp(.85rem,2.1vw,1.3rem);max-width:1140px;margin:0 auto;display:grid}.hero-panel,.todo-panel{border:1px solid var(--stroke);background:var(--card-surface);box-shadow:var(--shadow-soft);border-radius:24px}.hero-panel{height:fit-content;padding:clamp(1.2rem,2.8vw,1.95rem);animation:.3s ease-out riseIn;position:sticky;top:1rem}.hero-panel h1{margin-top:.2rem;font-size:clamp(1.6rem,2.8vw,2.45rem)}.hero-panel p{margin:1rem 0 0;line-height:1.56}.session-row{border-top:1px solid var(--stroke);justify-content:space-between;align-items:center;gap:.6rem;margin-top:1.26rem;padding-top:.95rem;display:flex}.session-row p{margin:0;font-size:.96rem}.session-row span{color:var(--accent-strong);font-weight:700}.ghost{border:1px solid var(--stroke-bold);color:var(--ink);background:#fffc;padding:.52rem .72rem;transition:background-color .2s}.ghost:hover{background:#fff}.progress-wrap{border-top:1px solid var(--stroke);margin-top:1.05rem;padding-top:1rem}.progress-head{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.progress-head h3{margin:0;font-size:1rem}.progress-head span{color:var(--accent-strong);font-family:IBM Plex Mono,monospace;font-weight:700}.progress-track{background:linear-gradient(#f1f6ff 0%,#eaf1fc 100%);border:1px solid #d8e2f2;border-radius:999px;width:100%;height:11px;margin-top:.6rem;position:relative;overflow:hidden}.progress-fill{background:linear-gradient(90deg,#2675ff 0%,#1e56c9 100%);border-radius:999px;height:100%;transition:width .4s;position:relative}.progress-fill:after{content:"";background:linear-gradient(90deg,#0000 0%,#ffffff80 50%,#0000 100%);width:45%;height:100%;animation:2.4s linear infinite glowSweep;position:absolute;top:0;left:0}.progress-meta{margin:.72rem 0 0;font-size:.9rem;line-height:1.45}.todo-panel{padding:clamp(1rem,2.4vw,1.35rem);animation:.34s ease-out riseIn}.todo-topbar{justify-content:space-between;align-items:flex-end;gap:1rem;display:flex}.todo-topbar h2{margin:0;font-size:clamp(1.22rem,2.2vw,1.48rem)}.stats{grid-template-columns:repeat(3,minmax(66px,1fr));gap:.42rem;display:grid}.stats div{border:1px solid var(--stroke);text-align:center;background:#ffffffd9;border-radius:12px;padding:.48rem .42rem}.stats strong{color:var(--ink);font-size:1.05rem;display:block}.stats span{letter-spacing:.04em;font-family:IBM Plex Mono,monospace;font-size:.71rem}.task-form{grid-template-columns:1fr auto;gap:.62rem;margin-top:.95rem;display:grid}.filter-row{flex-wrap:wrap;gap:.43rem;margin-top:.95rem;display:flex}.filter-row button{border:1px solid var(--stroke-bold);color:var(--ink-soft);background:#ffffffe6;padding:.46rem .73rem;font-size:.88rem;transition:background-color .2s,border-color .2s,color .2s}.filter-row .active{border-color:var(--accent);color:var(--accent-strong);background:#e9f1ff}.todo-list{gap:.58rem;margin-top:.92rem;display:grid}.todo-item{border:1px solid var(--stroke);background:#ffffffeb;border-radius:14px;grid-template-columns:auto 1fr auto;align-items:center;gap:.62rem;padding:.62rem;transition:border-color .2s,transform .2s;display:grid}.todo-item:hover{border-color:#c7d5ea;transform:translateY(-1px)}.todo-copy{gap:.14rem;display:grid}.todo-item p{margin:0;font-size:.95rem;line-height:1.4}.todo-copy small{font-size:.76rem}.todo-item.done{background:#f8fbff;border-color:#d3dded}.todo-item.done p{text-decoration:line-through}.tick{color:#1e56c9;background:#ebf2ff;border:1px solid #c8dbff;padding:.4rem .58rem;font-size:.77rem}.remove{color:#9c370f;background:#fff2eb;border:1px solid #f6d0bf;padding:.4rem .58rem;font-size:.77rem}.empty{border:1px dashed var(--stroke-bold);text-align:center;background:#fff;border-radius:12px;margin:0;padding:.95rem}.consistency-card{border:1px solid var(--stroke);background:#fff;border-radius:16px;margin-top:.95rem;padding:.9rem}.consistency-card h3{margin:0;font-size:.95rem}.chart-grid{grid-template-columns:repeat(7,1fr);align-items:end;gap:.46rem;margin-top:.62rem;display:grid}.bar-col{text-align:center}.bar-value,.bar-day{font-size:.7rem;display:block}.bar-track{border:1px solid var(--stroke);background:linear-gradient(#f6f9ff 0%,#edf3ff 100%);border-radius:9px;justify-content:center;align-items:flex-end;height:90px;margin:.12rem 0;padding:3px;display:flex}.bar-fill{background:linear-gradient(#4c8cff 0%,#2c67dd 100%);border-radius:6px;width:100%;transition:height .35s}button:disabled{opacity:.55;cursor:not-allowed}@media (width<=980px){.dashboard-shell{grid-template-columns:1fr}.hero-panel{position:static}}@media (width<=620px){.login-mui-card,.hero-panel,.todo-panel{border-radius:18px}.login-mui-card{width:min(420px,100%)}.todo-topbar{flex-direction:column;align-items:flex-start}.task-form{grid-template-columns:1fr}.stats{width:100%}.todo-item{grid-template-columns:1fr}.tick,.remove{width:fit-content}.chart-grid{gap:.3rem}}.workspace-layout{background:#0c0f14;grid-template-columns:240px 1fr;min-height:100vh;display:grid}.workspace-sidebar{background:#111419;border-right:1px solid #ffffff08;flex-direction:column;justify-content:space-between;gap:1rem;height:100vh;padding:1.5rem 1rem;display:flex}.sidebar-brand{text-shadow:0 0 20px #6366f14d;align-items:center;gap:10px;padding:.36rem;display:flex}.sidebar-logo{filter:drop-shadow(0 0 10px #6366f166);width:34px;height:34px}.sidebar-eyebrow{letter-spacing:.08em;text-transform:uppercase;color:#c2cde0c7;margin:0;font-size:.72rem}.sidebar-brand h2{color:#f5f8ff;margin:.08rem 0 0;font-size:1rem}.sidebar-nav{flex-direction:column;gap:.25rem;margin-top:.8rem;display:flex}.sidebar-link{color:#ffffff80;border:1px solid #0000;border-radius:12px;align-items:center;gap:.56rem;padding:.6rem 1rem;font-size:.95rem;font-weight:500;text-decoration:none;transition:all .2s;display:inline-flex;position:relative}.sidebar-link.sidebar-link-active,.sidebar-link:hover{color:#fff;background:#a855f71a}.sidebar-link.sidebar-link-active{border:1px solid #a855f74d}.sidebar-link.sidebar-link-active svg{color:#a855f7}.sidebar-link svg{color:#ffffff80;font-size:1.25rem}.sidebar-profile{background:#ffffff0a;border:1px solid #ffffff14;border-radius:14px;padding:.72rem;position:relative}.sidebar-profile:before{content:"";border-top:1px solid #ffffff1f;position:absolute;top:-.7rem;left:0;right:0}.sidebar-profile p{color:#d7e1f1bd;margin:0;font-size:.78rem}.sidebar-profile strong{color:#fff;margin-top:.3rem;font-family:IBM Plex Mono,monospace;font-size:.84rem;display:block}.logout-btn{color:#f8fbff;cursor:pointer;background:#ffffff0d;border:1px solid #fff3;border-radius:10px;justify-content:center;align-items:center;gap:.3rem;width:100%;margin-top:.65rem;padding:.5rem .56rem;display:inline-flex}.workspace-content{background:#0c0f14;flex-direction:column;height:100vh;display:flex;overflow:hidden}.page-grid{gap:1rem;display:grid}.surface-card{color:#f6f9ff;background:#101b2dc7;border:1px solid #ffffff29;border-radius:16px;padding:clamp(.92rem,2vw,1.2rem);transition:transform .2s,box-shadow .2s;box-shadow:0 15px 36px #00000040}.surface-card:hover{transform:translateY(-2px);box-shadow:0 20px 40px #00000052}.page-title .tag{color:#e8eeffe0;background:#ffffff14;border-color:#fff3}.page-title h1{color:#fff;margin:.62rem 0 0;font-size:clamp(1.35rem,2.4vw,1.8rem)}.page-title p{color:#dae3f3c7;margin:.56rem 0 0}.stats-card-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.9rem;display:grid}.stat-card span{color:#d5e0f3bf;opacity:.62;letter-spacing:.04em;font-size:.76rem;display:block}.stat-card strong{color:#fff;margin-top:.24rem;font-size:1.75rem;font-weight:700;line-height:1.1;display:block}.chart-card-small,.chart-card-large{box-shadow:0 10px 30px #0000004d}.chart-grid .bar-col{position:relative}.chart-grid .bar-col:after{content:attr(data-tip);opacity:0;pointer-events:none;color:#e5edff;white-space:nowrap;background:#080e1aeb;border:1px solid #ffffff38;border-radius:6px;padding:.2rem .38rem;font-size:.68rem;transition:opacity .15s,transform .15s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)translateY(4px)}.chart-grid .bar-col:hover:after{opacity:1;transform:translate(-50%)translateY(0)}.chart-grid .bar-fill{background:linear-gradient(#6366f1,#3b82f6);border-radius:8px 8px 4px 4px}.chart-card-small .chart-grid,.chart-card-large .chart-grid{margin-top:.9rem}.chart-card-small .bar-track.compact{height:74px}.chart-card-large .bar-track.tall{height:132px}.task-actions{flex-wrap:wrap;justify-content:flex-end;gap:.32rem;display:inline-flex}.task-edit-input{color:#111a2a;width:100%;font:inherit;background:#ffffffd6;border:1px solid #b8c5e2a6;border-radius:10px;padding:.45rem .62rem}.settings-card h3{margin:0}.settings-uid{color:#fff;margin:.65rem 0 0;font-family:IBM Plex Mono,monospace;font-size:1rem}.settings-actions{gap:.5rem;margin-top:.9rem;display:flex}.route-error{color:#fecaca;margin:0 0 .8rem}@media (width<=980px){.workspace-layout{grid-template-columns:1fr}.workspace-sidebar{border-bottom:1px solid #ffffff1f;border-right:0}.sidebar-nav{grid-template-columns:repeat(4,minmax(0,1fr))}.sidebar-link{justify-content:center;gap:.35rem;font-size:.84rem}.sidebar-profile{display:none}}@media (width<=620px){.sidebar-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-actions{flex-direction:column}}
