:root{--bg-base:#000;--bg-panel:#060d1a;--bg-panel-soft:#0a1428;--bg-elevated:#0f1d35;--border-soft:#1a2e4a;--text-primary:#e4eeff;--text-secondary:#7da0cc;--accent-blue:#3b8eff;--accent-green:#3b8eff;--accent-emerald:#3b8eff;--accent-purple:#5e9cff;--shadow-strong:0 18px 50px #000000b3}*{box-sizing:border-box}html,body{min-height:100%;color:var(--text-primary);background:#000;margin:0;font-family:Segoe UI,Inter,sans-serif}body{background:radial-gradient(circle at 10% 5%,#3b8eff2e,#0000 35%),radial-gradient(circle at 90% 85%,#3b8eff14,#0000 30%),#000;position:relative;overflow:hidden}body:before,body:after{content:"";pointer-events:none;filter:blur(80px);opacity:.55;z-index:-1;border-radius:999px;position:fixed}body:before{background:#3b8eff33;width:360px;height:360px;top:-130px;right:-90px}body:after{background:#3b8eff1a;width:420px;height:420px;bottom:-170px;left:-120px}a{color:inherit;text-decoration:none}input,button{font:inherit}.flex{display:flex}.flex-1{flex:1}.flex-col{flex-direction:column}.justify-between{justify-content:space-between}.items-center{align-items:center}.grid{display:grid}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.gap-2{gap:.5rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.w-64{width:17.5rem}.w-full{width:100%}.h-screen{min-height:100vh}.h-4{height:1rem}.p-2{padding:.625rem .75rem}.p-4{padding:1rem}.p-6{padding:1.25rem}.p-10{padding:2rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-1{padding-top:.4rem;padding-bottom:.4rem}.py-2{padding-top:.55rem;padding-bottom:.55rem}.mt-4{margin-top:1rem}.mt-10{margin-top:2rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.35rem}.mb-8{margin-bottom:1.75rem}.mb-10{margin-bottom:2.2rem}.ml-3{margin-left:.75rem}.rounded{border-radius:.7rem}.rounded-lg{border-radius:1rem}.rounded-xl{border-radius:1.15rem}.rounded-full{border-radius:999px}.block{display:block}.space-y-4>*+*{margin-top:.9rem}.text-sm{font-size:.92rem}.text-lg{font-size:1.15rem}.text-xl{font-size:1.3rem}.text-2xl{font-size:1.55rem}.text-3xl{font-size:clamp(1.75rem,1.1rem + 1.4vw,2.25rem)}.font-semibold{font-weight:600}.font-bold{font-weight:700}.text-white{color:var(--text-primary)}.text-gray-300,.text-gray-400{color:var(--text-secondary)}.text-blue-300,.text-blue-400,.text-green-300,.text-green-400{color:#5ea3ff}.text-purple-400{color:#7ab4ff}.bg-gray-900{background:0 0}.bg-gray-800{box-shadow:var(--shadow-strong);background:linear-gradient(170deg,#060d1af5,#030812eb);border:1px solid #1e3c6e80}.bg-gray-700{background:#060e1ce6;border:1px solid #1e3c6e66}.bg-blue-500{background:linear-gradient(130deg,#1a6edf,#3b8eff);border:1px solid #3b8eff80}.bg-green-400{background:linear-gradient(90deg,#34c57f,#53df9c)}.bg-emerald-500{background:linear-gradient(130deg,#0fb379,#26d89a);border:1px solid #84ffd766}.border{border-style:solid;border-width:1px}.border-gray-600{border-color:var(--border-soft)}.shadow{box-shadow:var(--shadow-strong)}.w-0{width:0%}aside{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-right:1px solid #46628659;position:sticky;top:0}nav a{color:var(--text-secondary);transition:background-color .2s,color .2s,transform .2s}nav a:hover,.hover\:bg-gray-700:hover{color:var(--text-primary);background:#253a5aa6;transform:translate(3px)}h1,h2,h3,h4{margin-top:0}h1{letter-spacing:.02em}#taskListToday>div,#taskListTomorrow>div,#habitList>div{background:#172338b8;border:1px solid #2d4563a6;border-radius:.9rem;padding:.8rem .95rem}.habit-tracker-shell{flex-direction:column;gap:1rem;display:flex}.tracker-page{width:100%;height:100vh;min-height:100vh;margin:0;padding:1rem}.tracker-fullscreen{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#040810eb;border:1px solid #3b8eff33;border-radius:1.1rem;grid-template-rows:auto 1fr auto auto;width:100%;height:calc(100vh - 2rem);min-height:calc(100vh - 2rem);margin:0;padding:1rem;display:grid;overflow:hidden;box-shadow:0 20px 48px #0009,inset 0 1px #3b8eff0f}.month-header{flex-shrink:0;justify-content:space-between;align-items:center;gap:1.2rem;padding:.5rem 0;display:flex}.month-header-left{justify-content:center;align-items:center;gap:1.2rem;display:flex}.month-header h3{text-align:center;min-width:9ch;margin:0;padding:0;line-height:1}.month-nav-btn{width:2rem;height:2rem;color:var(--text-primary);cursor:pointer;background:#0a1428e6;border:1px solid #3b8eff59;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-size:.85rem;line-height:1;display:inline-flex;box-shadow:0 4px 12px #00000080}.habit-actions{flex-shrink:0;justify-items:center;gap:.65rem;padding:.15rem .1rem 0;display:grid}.quest-input-group{flex-wrap:wrap;justify-content:center;align-items:center;gap:.65rem;width:100%;display:flex}.habit-input{min-width:280px;max-width:560px;color:var(--text-primary);background:#0009;border:1px solid #3b8eff40;border-radius:.8rem;flex:auto;padding:.6rem .85rem}.month-action-btn{color:#b8d5ff;letter-spacing:.01em;white-space:nowrap;background:#081122db;border:1px solid #3b8eff52;border-radius:.7rem;padding:.6rem .9rem;font-size:.78rem;font-weight:600}.month-action-btn:hover{background:#101f3bf2;border-color:#3b8eff99}.month-action-btn:disabled{opacity:.45;cursor:not-allowed;filter:grayscale(.2)}.month-action-btn:disabled:hover{box-shadow:none;background:#081122db;border-color:#3b8eff52;transform:none}.danger-action-btn{color:#ffb8c2;background:#2c0912d9;border-color:#ff647852}.danger-action-btn:hover{background:#420e1bf2;border-color:#ff6e8294;box-shadow:0 0 12px #ff506e2e}.clipboard-status{color:var(--text-secondary);text-align:center;width:100%;min-height:1rem;padding-left:0;font-size:.74rem}.modal-backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);opacity:0;pointer-events:none;z-index:50;background:#000000b8;justify-content:center;align-items:center;padding:1rem;transition:opacity .2s;display:flex;position:fixed;inset:0}.modal-backdrop.is-open{opacity:1;pointer-events:auto}.modal-card{background:#040a16f5;border:1px solid #3b8eff33;border-radius:.95rem;width:min(460px,100%);padding:1rem;transition:transform .2s;transform:translateY(12px)scale(.98);box-shadow:0 24px 48px #000000a6}.modal-backdrop.is-open .modal-card{transform:translateY(0)scale(1)}.modal-card h3{margin:0 0 .5rem;font-size:1rem}.modal-card p{color:var(--text-secondary);margin:0;font-size:.86rem;line-height:1.45}.modal-actions{justify-content:flex-end;gap:.55rem;margin-top:.9rem;display:flex}.modal-btn{background:#081122eb}.modal-btn-danger{color:#ffd3d9;background:#420e1bf2;border-color:#ff708275}.modal-btn-danger:hover{background:#551021fa;border-color:#ff7082ad}.habit-grid-wrapper{background:#00000080;border:1px solid #3b8eff2e;border-radius:.85rem;min-height:0;overflow:hidden}.habit-grid-scroll{height:100%;overflow:auto}.habit-grid{border-collapse:collapse;width:100%;font-size:.8rem}.habit-grid th,.habit-grid td{text-align:center;border:1px solid #3b8eff1f;min-width:2rem;height:2rem;padding:0}.sticky-col{z-index:2;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#02060ef5;position:sticky;left:0}.habit-column-header{letter-spacing:.02em;text-transform:uppercase;width:200px;color:var(--text-secondary);font-size:.82rem;font-weight:600;text-align:left!important;min-width:200px!important;padding:.5rem .75rem!important}.week-header{letter-spacing:.03em;text-transform:uppercase;background:#3b8eff1a;font-size:.74rem}.date-header,.day-label-header{color:var(--text-secondary);font-size:.68rem;font-weight:500}.habit-name-cell{align-items:center;gap:.55rem;width:200px;min-height:2.4rem;display:flex;min-width:200px!important;height:auto!important;padding:.55rem .75rem!important}.habit-name-btn{text-align:left;color:var(--text-primary);cursor:pointer;word-break:break-word;background:0 0;border:0;flex:1;min-width:0;padding:.1rem 0;font-size:.82rem;font-weight:500;line-height:1.35;transition:color .15s}.habit-name-btn:hover{color:#5ea3ff}.habit-remove-btn{color:#ff6b7a;cursor:pointer;opacity:.4;background:#ff3c500f;border:1px solid #ff647838;border-radius:50%;flex-shrink:0;align-self:center;place-items:center;width:1.5rem;min-width:1.5rem;height:1.5rem;min-height:1.5rem;margin:0;padding:0 0 1px;font-size:.85rem;line-height:0;transition:opacity .18s,background .18s,border-color .18s,box-shadow .18s;display:grid}.habit-remove-btn:hover{opacity:1;background:#ff3c502e;border-color:#ff647880;box-shadow:0 0 8px #ff3c5033}.habit-name-cell:hover .habit-remove-btn{opacity:1}.habit-cell{cursor:pointer;background:#ffffff05;border-radius:4px;place-items:center;width:100%;height:100%;transition:background .2s,box-shadow .2s,transform .15s;display:grid;position:relative}.habit-cell:hover{background:#ffffff0d;transform:scale(.94)}.habit-cell:active{transform:scale(.88)}.habit-cell.state-check{background:#4ade802e;box-shadow:inset 0 0 0 1px #4ade804d,0 0 6px #4ade8026}.habit-cell.state-check:hover{background:#4ade803d}.habit-cell.state-cross{background:#fb71852e;box-shadow:inset 0 0 0 1px #fb71854d,0 0 6px #fb718526}.habit-cell.state-cross:hover{background:#fb71853d}.cell-icon{width:14px;height:14px;display:block}.cell-check-wrap,.cell-cross-wrap{pointer-events:none;display:none}.habit-cell.state-check .cell-check-wrap{color:#4ade80;place-items:center;animation:.25s cubic-bezier(.34,1.56,.64,1) forwards cellIconPop;display:grid}.habit-cell.state-cross .cell-cross-wrap{color:#fb7185;place-items:center;animation:.25s cubic-bezier(.34,1.56,.64,1) forwards cellIconPop;display:grid}@keyframes cellIconPop{0%{opacity:0;transform:scale(0)}60%{opacity:1;transform:scale(1.2)}to{opacity:1;transform:scale(1)}}.habit-cell.cell-locked{cursor:not-allowed;opacity:.4}.habit-cell.cell-locked:hover{background:#ffffff05;transform:none}.habit-cell.cell-locked.state-check,.habit-cell.cell-locked.state-cross{opacity:.5}.stats-back-shell{flex-direction:column;gap:.9rem;min-height:100%;display:flex}.stats-back-head{justify-content:space-between;align-items:center;gap:.6rem;display:flex}.stats-back-head h4{color:#c6deff;margin:0 0 .2rem;font-size:.82rem;font-weight:600}.stats-back-month{color:var(--text-secondary);margin:0;font-size:.74rem}.stats-panel{flex-shrink:0;grid-template-columns:1.05fr 1.15fr;gap:.75rem;display:grid}.analytics-bottom{grid-template-columns:3fr 1fr;gap:.75rem;min-height:0;display:grid}.analytics-column{background:#040a16b3;border:1px solid #3b8eff2e;border-radius:.8rem;flex-direction:column;gap:.55rem;min-height:180px;padding:.7rem;display:flex}.analytics-column-head h5{color:#c6deff;margin:0;font-size:.76rem;font-weight:600}.analytics-input-row{gap:.45rem;display:flex}.analytics-input{min-width:0;color:var(--text-primary);background:#0000008c;border:1px solid #3b8eff40;border-radius:.65rem;flex:1;padding:.45rem .6rem;font-size:.76rem}.analytics-add-btn{padding:.45rem .7rem;font-size:.72rem}.analytics-list{gap:.4rem;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.analytics-list-item{background:#060e1cdb;border:1px solid #3b8eff24;border-radius:.65rem;justify-content:space-between;align-items:center;gap:.45rem;padding:.45rem .55rem;display:flex}.analytics-item-text{color:var(--text-primary);word-break:break-word;font-size:.74rem;line-height:1.35}.analytics-item-text.is-done{color:#9cb8dc;text-decoration:line-through}.analytics-remove-btn{color:#ff9aa8;background:#ff3c5014;border:1px solid #ff647842;border-radius:50%;place-items:center;width:1.3rem;min-width:1.3rem;height:1.3rem;padding:0;font-size:.82rem;line-height:1;display:grid}.analytics-remove-btn:hover{background:#ff3c502e;border-color:#ff647880}.analytics-empty{color:var(--text-secondary);text-align:center;border:1px dashed #3b8eff33;border-radius:.65rem;padding:.55rem;font-size:.72rem}.checklist-item{align-items:flex-start}.checklist-label{cursor:pointer;flex:1;align-items:flex-start;gap:.45rem;display:flex}.stat-counters{grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;display:grid}.stat-card{background:#040a16b3;border:1px solid #3b8eff2e;border-radius:.8rem;padding:.7rem}.stat-card h4{color:var(--text-secondary);margin:0 0 .45rem;font-size:.75rem;font-weight:500}.stat-card strong{margin-bottom:.1rem;font-size:1.1rem;display:block}.stat-card p{color:var(--text-secondary);margin:0;font-size:.68rem}.progress-charts{grid-template-columns:repeat(auto-fit,minmax(115px,1fr));gap:.6rem;display:grid}.donut-chart{text-align:center;background:#040a16b3;border:1px solid #3b8eff2e;border-radius:.8rem;padding:.55rem .45rem;position:relative}.donut-svg{width:68px;height:68px;transform:rotate(-90deg)}.donut-track{fill:none;stroke:#3b8eff26;stroke-width:9px}.donut-progress{fill:none;stroke:#3b8eff;stroke-width:9px;stroke-linecap:round;transition:stroke-dashoffset .25s}.donut-value{font-size:.78rem;font-weight:700;position:absolute;top:1.9rem;left:50%;transform:translate(-50%)}.donut-title{margin:.35rem 0 .12rem;font-size:.68rem}.donut-detail{color:var(--text-secondary);margin:0;font-size:.62rem}input[type=text],input[type=number]{color:var(--text-primary);outline:none;transition:border-color .2s,box-shadow .2s}input[type=text]:focus,input[type=number]:focus{border-color:#3b8effcc;box-shadow:0 0 0 3px #3b8eff1f}input[type=checkbox]{accent-color:#3b8eff;width:1.1rem;height:1.1rem}button{color:#eaf2ff;border:1px solid #0000;border-radius:.75rem;transition:transform .18s,box-shadow .18s,filter .18s,border-color .18s}button:hover,.hover\:bg-blue-600:hover,.hover\:bg-emerald-600:hover{filter:brightness(1.06);transform:translateY(-1px);box-shadow:0 8px 16px #00000059}#progressBar{transition:width .3s}main{animation:.35s fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (width<=1080px){body{overflow:auto}.tracker-page{height:auto;min-height:100vh;padding:.75rem}.tracker-fullscreen{height:auto;min-height:calc(100vh - 1.5rem);padding:.75rem}.stat-counters{grid-template-columns:repeat(3,minmax(0,1fr))}.habit-name-cell,.habit-column-header{width:160px;min-width:160px!important}.quest-input-group{flex-direction:column;align-items:stretch;width:100%}.habit-input{min-width:0;max-width:none}.clipboard-status{width:100%}.stats-panel,.analytics-bottom{grid-template-columns:1fr}}@media (width>=768px){.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}
