*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0f172a;--bg2:#1e293b;--bg3:#334155;--border:#475569;--text:#f1f5f9;--text2:#94a3b8;--text3:#64748b;--blue:#3b82f6;--green:#22c55e;--yellow:#eab308;--purple:#8b5cf6;--red:#ef4444;--radius:14px;--radius-sm:10px;--sidebar-w:260px;--transition:.3s cubic-bezier(.4,0,.2,1)}html,body,#root{height:100%}body{background:radial-gradient(circle at 10% 6%, #3b82f638, transparent 34%), radial-gradient(circle at 94% 20%, #8b5cf62e, transparent 36%), radial-gradient(circle at 45% 97%, #06b6d41a, transparent 38%), var(--bg);color:var(--text);min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:-1;background-image:linear-gradient(#94a3b809 1px,#0000 1px),linear-gradient(90deg,#94a3b809 1px,#0000 1px);background-size:44px 44px;position:fixed;inset:0;-webkit-mask-image:radial-gradient(circle,#000 0%,#0000 78%);mask-image:radial-gradient(circle,#000 0%,#0000 78%)}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--bg3);border-radius:2px}.app-layout{min-height:100vh;display:flex}.sidebar-overlay{z-index:90;opacity:0;pointer-events:none;transition:opacity var(--transition);-webkit-backdrop-filter:blur(6px);background:#020617a6;position:fixed;inset:0}.sidebar-overlay.open{opacity:1;pointer-events:auto}.sidebar{z-index:100;width:var(--sidebar-w);-webkit-backdrop-filter:blur(20px);background:linear-gradient(#1e293bf7,#0f172af7);border-right:1px solid #94a3b824;flex-direction:column;transition:transform .35s cubic-bezier(.2,.8,.3,1);display:flex;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%);box-shadow:24px 0 80px #0006}.sidebar.open{transform:translate(0)}.sidebar-header{border-bottom:1px solid #94a3b81f;padding:20px}.sidebar-header h1{background:linear-gradient(135deg,var(--blue),var(--purple));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.12rem;font-weight:800}.sidebar-header span{color:var(--text3);-webkit-text-fill-color:var(--text3);margin-top:2px;font-size:.64rem;display:block}.sidebar-nav{flex:1;padding:10px 0;overflow-y:auto}.nav-item{cursor:pointer;color:var(--text2);border-left:3px solid #0000;align-items:center;gap:12px;padding:12px 20px;font-size:.86rem;font-weight:500;transition:all .15s;display:flex}.nav-item:hover{color:var(--text);background:#3b82f60f}.nav-item.active{color:var(--blue);border-left-color:var(--blue);background:linear-gradient(90deg,#3b82f61f,#0000)}.nav-item .icon{text-align:center;width:24px;font-size:1.1rem}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{z-index:30;-webkit-backdrop-filter:blur(18px)saturate(1.2);background:#1e293bc7;border-bottom:1px solid #94a3b829;align-items:center;gap:12px;padding:12px 16px;display:flex;position:sticky;top:0}.hamburger{color:var(--text2);cursor:pointer;background:0 0;border:none;align-items:center;padding:4px;font-size:1.3rem;transition:color .15s;display:flex}.hamburger:hover{color:var(--text)}.topbar-title{letter-spacing:-.01em;flex:1;font-size:.94rem;font-weight:700}.topbar-time{color:var(--text3);font-variant-numeric:tabular-nums;font-family:monospace;font-size:.68rem}.content{flex:1;width:100%;max-width:820px;margin:0 auto;padding:16px;overflow-y:auto}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.93)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.55}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.anim-fade,.anim-stagger>*{animation:.38s both fadeUp}.anim-stagger>:first-child{animation-delay:40ms}.anim-stagger>:nth-child(2){animation-delay:80ms}.anim-stagger>:nth-child(3){animation-delay:.12s}.anim-stagger>:nth-child(4){animation-delay:.16s}.anim-stagger>:nth-child(5){animation-delay:.2s}.anim-stagger>:nth-child(6){animation-delay:.24s}.pulse{animation:2.2s ease-in-out infinite pulse}.card{border-radius:var(--radius);-webkit-backdrop-filter:blur(16px)saturate(1.12);background:linear-gradient(#1e293bdb,#0f172abd);border:1px solid #94a3b824;margin-bottom:10px;padding:16px;transition:border-color .2s,box-shadow .2s,transform .2s;box-shadow:0 14px 40px #02061738}.card-hov:hover{border-color:#3b82f642;transform:translateY(-1px);box-shadow:0 18px 56px #02061747}.card-title{color:var(--text2);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px;font-size:.67rem;font-weight:600}.card-grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.card-mini{border-radius:var(--radius-sm);text-align:center;background:linear-gradient(#33415561,#0f172a4d);border:1px solid #94a3b81f;padding:12px;transition:all .15s}.card-mini:hover{border-color:#3b82f638;box-shadow:0 10px 28px #0206172e}.card-mini:active{transform:scale(.97)}.card-mini .label{color:var(--text2);text-transform:uppercase;letter-spacing:.3px;font-size:.58rem}.card-mini .value{font-variant-numeric:tabular-nums;margin:3px 0;font-size:1.25rem;font-weight:800}.card-mini .sublabel{color:var(--text3);font-size:.6rem}.empty-state{text-align:center;color:var(--text3);padding:30px 16px}.empty-state .ico{opacity:.4;margin-bottom:6px;font-size:2.4rem}.empty-state p{font-size:.84rem}.empty-state .sub{opacity:.7;margin-top:4px;font-size:.68rem}.act-item{cursor:pointer;border-bottom:1px solid #94a3b81a;border-radius:12px;align-items:center;gap:10px;padding:10px 8px;transition:all .16s;display:flex}.act-item:last-child{border-bottom:none}.act-item:hover{background:#3b82f60f;transform:translate(2px)}.act-item:active{opacity:.6;transform:scale(.99)}.act-icon{background:linear-gradient(135deg,#3b82f629,#8b5cf61f);border:1px solid #3b82f624;border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:1rem;display:flex;box-shadow:inset 0 1px #ffffff0a}.act-info{flex:1;min-width:0}.act-info .name{white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;font-weight:600;overflow:hidden}.act-info .meta{color:var(--text2);margin-top:2px;font-size:.63rem}.act-progress{text-align:right;flex-shrink:0;width:56px}.act-progress .pct{font-size:.68rem;font-weight:700}.act-progress .bar-wrap{background:var(--bg3);border-radius:2px;height:3px;margin-top:4px;overflow:hidden}.act-progress .bar-fill{border-radius:2px;height:100%;transition:width .5s}.timer-card{text-align:center;padding:22px}.timer-icon{margin-bottom:4px;font-size:2rem}.timer-display{font-variant-numeric:tabular-nums;letter-spacing:-.02em;background:linear-gradient(135deg,var(--text),var(--text2));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:6px 0;font-family:monospace;font-size:2.9rem;font-weight:800}.timer-display.running{animation:2.2s ease-in-out infinite pulse}.timer-activity{color:var(--text2);margin-bottom:14px;font-size:.78rem}.timer-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.timer-picker{width:100%;color:var(--text);background:#0f172a80;border:1px solid #94a3b829;border-radius:14px;outline:none;margin-top:6px;padding:11px 13px;font-family:inherit;font-size:.88rem;transition:border-color .18s,box-shadow .18s,background .18s}.timer-picker:focus{background:#0f172ab3;border-color:#3b82f6b3;box-shadow:0 0 0 4px #3b82f61a}.modal-overlay{z-index:200;-webkit-backdrop-filter:blur(10px);background:#020617b3;justify-content:center;align-items:center;padding:16px;animation:.18s fadeIn;display:flex;position:fixed;inset:0}.modal{background:linear-gradient(#1e293bf5,#0f172af5);border:1px solid #94a3b82e;border-radius:22px;width:100%;max-width:560px;max-height:min(84vh,680px);padding:18px;animation:.25s cubic-bezier(.2,.8,.2,1) scaleIn;overflow-y:auto;box-shadow:0 28px 90px #00000080,inset 0 1px #ffffff0a}.modal-header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.modal-header h2{font-size:1.02rem;font-weight:700}.modal-close{width:34px;height:34px;color:var(--text2);cursor:pointer;background:#0f172a73;border:1px solid #94a3b824;border-radius:50%;justify-content:center;align-items:center;font-size:1.05rem;transition:all .15s;display:flex}.modal-close:hover{color:var(--text);background:#334155a6;transform:rotate(90deg)}.modal-section-title{color:var(--text2);text-transform:uppercase;letter-spacing:.4px;margin:14px 0 6px;font-size:.7rem;font-weight:600}.goal-item{border-bottom:1px solid #94a3b814;align-items:center;gap:9px;padding:8px 0;font-size:.84rem;transition:opacity .2s;display:flex}.goal-item:last-child{border-bottom:none}.goal-check{cursor:pointer;color:#0000;background:#0f172a4d;border:2px solid #94a3b873;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:.68rem;transition:all .2s;display:flex}.goal-check:active{transform:scale(.82)}.goal-check.done{border-color:var(--green);color:var(--green);background:#22c55e24;box-shadow:0 0 0 3px #22c55e14}.goal-title{flex:1;transition:color .2s}.goal-title.done{color:var(--text3);text-decoration:line-through}.goal-item.completing{opacity:.55}.goal-priority{color:var(--text3);flex-shrink:0;font-size:.64rem}.btn{cursor:pointer;color:#fff;border:none;border-radius:14px;justify-content:center;align-items:center;gap:6px;padding:10px 18px;font-size:.82rem;font-weight:700;transition:all .15s;display:inline-flex;position:relative;overflow:hidden;box-shadow:0 8px 24px #0206172e}.btn:active{transform:scale(.96)}.btn:after{content:"";opacity:0;background:#ffffff12;transition:opacity .15s;position:absolute;inset:0}.btn:hover:after{opacity:1}.btn:disabled{opacity:.5;cursor:default;transform:none}.btn-blue{background:var(--blue)}.btn-green{background:var(--green)}.btn-red{background:var(--red)}.btn-sm{padding:7px 12px;font-size:.72rem}.btn-block{width:100%}.form-group{margin-bottom:11px}.form-group label{color:var(--text2);letter-spacing:.02em;margin-bottom:5px;font-size:.66rem;font-weight:600;display:block}.form-group input,.form-group select{width:100%;color:var(--text);background:#0f172a80;border:1px solid #94a3b829;border-radius:14px;outline:none;padding:11px 13px;font-family:inherit;font-size:.88rem;transition:border-color .18s,box-shadow .18s,background .18s;box-shadow:inset 0 1px #ffffff08}.form-group input::placeholder{color:#94a3b880}.form-group input:focus,.form-group select:focus{background:#0f172ab8;border-color:#3b82f6b3;box-shadow:0 0 0 4px #3b82f61a,inset 0 1px #ffffff0a}.new-goal-row{gap:6px;margin-top:10px;display:flex}.new-goal-row input{color:var(--text);background:#0f172a80;border:1px solid #94a3b829;border-radius:14px;outline:none;flex:1;padding:10px 12px;font-family:inherit;font-size:.84rem;transition:border-color .18s,box-shadow .18s}.new-goal-row input:focus{border-color:#3b82f6b3;box-shadow:0 0 0 4px #3b82f61a}.donut-wrap{flex-direction:column;align-items:center;padding:4px 0;display:flex}.donut-container{width:160px;height:160px;position:relative}.donut-container svg{width:100%;height:100%;transform:rotate(-90deg)}.donut-container svg circle{transition:stroke-dashoffset 1s cubic-bezier(.4,0,.2,1)}.donut-center{pointer-events:none;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.donut-center .lbl{color:var(--text2);text-transform:uppercase;letter-spacing:.8px;font-size:.54rem}.donut-center .val{font-size:1.25rem;font-weight:800}.donut-legend{flex-wrap:wrap;justify-content:center;gap:18px;margin-top:8px;display:flex}.donut-legend-item{align-items:center;gap:6px;font-size:.72rem;display:flex}.legend-dot{border-radius:2px;flex-shrink:0;width:8px;height:8px}.toast{z-index:300;color:var(--green);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);white-space:nowrap;pointer-events:none;background:#1e293bf2;border:1px solid #22c55e59;border-radius:14px;padding:10px 20px;font-size:.8rem;font-weight:600;animation:.2s scaleIn;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}@media (width<=640px){.topbar{padding:11px 12px}.topbar-time{display:none}.content{max-width:100%;padding:12px}.card{border-radius:16px;margin-bottom:9px;padding:14px}.modal-overlay{padding:12px}.modal{border-radius:20px;padding:16px;animation:.22s cubic-bezier(.2,.8,.2,1) scaleIn}.timer-display{font-size:2.3rem}.card-grid{gap:7px}.card-mini{padding:11px 8px}.sidebar{width:min(82vw,280px)}.donut-container{width:140px;height:140px}}
