:root{--bg-body:#0a0a0a;--bg-card:#141414;--bg-panel:#1e1e1e;--text-main:#fff;--text-muted:#666;--accent-time:#00d2ff;--accent-goal:#0f8;--accent-miss:#f33;--accent-active:#f05;--dot-empty:#2a2a2a;--dot-target:#444;--dot-ignored:#1a1a1a;--glow-card:0 0 20px rgba(0,0,0,.7);--font-ui:"Segoe UI",Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box;margin:0;padding:0;user-select:none}body{background-color:var(--bg-body);color:var(--text-main);font-family:var(--font-ui);min-height:100vh;display:flex;justify-content:center;align-items:center;padding:10px}.widget{background-color:var(--bg-card);width:100%;height:90vh;max-height:1000px;border-radius:24px;box-shadow:var(--glow-card);display:flex;flex-direction:column;overflow:hidden;border:1px solid #333;position:relative;transition:max-width .3s ease}@media (min-width:768px){.widget{max-width:85%}}@media (min-width:1200px){.widget{max-width:1100px}}.nav-tabs{display:flex;background:var(--bg-panel);padding:15px;gap:15px;border-bottom:1px solid #333}.tab-btn{background:transparent;border:none;color:var(--text-muted);font-size:1rem;font-weight:600;padding:8px 16px;cursor:pointer;border-radius:8px;transition:.3s}.tab-btn.active{background:#333;color:var(--text-main);box-shadow:0 0 10px hsla(0,0%,100%,.05)}.content-area{flex:1;display:flex;flex-direction:column;padding:10px;position:relative;overflow-y:auto}.header-section{display:flex;justify-content:space-between;align-items:end;flex-wrap:wrap;gap:10px;background-color:var(--bg-card);padding:20px;flex-shrink:0;border-bottom:1px solid #333;margin-bottom:20px}.big-title{font-size:2rem;font-weight:800;letter-spacing:-1px}.sub-text{color:var(--text-muted);font-size:.9rem}.stats-badge{background:#222;padding:5px 12px;border-radius:6px;font-size:.9rem;border:1px solid #333;text-align:center}.stats-badge span{font-weight:700;color:var(--accent-time)}.grid-wrapper{display:grid;width:100%;grid-template-columns:repeat(17,1fr);gap:4px;padding:20px;padding-bottom:120px;margin:0 auto;overflow-y:auto}@media (min-width:600px){.grid-wrapper{grid-template-columns:repeat(20,1fr);gap:6px}}@media (min-width:1024px){.grid-wrapper{grid-template-columns:repeat(28,1fr);gap:8px}}@media (min-width:1440px){.grid-wrapper{grid-template-columns:repeat(35,1fr);gap:10px}}.dot{width:100%;aspect-ratio:1;background-color:var(--dot-empty);border-radius:20%;cursor:pointer;transition:transform .1s ease,background-color .2s;position:relative;pointer-events:auto}.dot:hover{z-index:3;box-shadow:0 0 20px rgba(0,0,0,.8),0 0 30px rgba(100,150,255,.4)}.dot:hover:after{bottom:150%;padding:4px 8px;font-weight:700;z-index:4;box-shadow:0 2px 10px rgba(0,0,0,.5)}@media (min-width:1024px){.dot:hover:after{font-size:12px;padding:6px 10px;bottom:150%}}.dot:nth-child(-n+17):hover:after{bottom:auto;top:150%;transform:translateX(-50%) translateY(0)}@media (min-width:600px){.dot:nth-child(-n+20):hover:after{bottom:auto;top:150%}}@media (min-width:1024px){.dot:nth-child(-n+28):hover:after{bottom:auto;top:150%}}@media (min-width:1440px){.dot:nth-child(-n+35):hover:after{bottom:auto;top:150%}}.dot:active{transform:scale(.8)}.dot.tooltip-left:hover:after{left:0;right:auto;transform:translateX(0)}.dot.tooltip-right:hover:after{left:auto;right:0;transform:translateX(0)}.dot.past{background-color:var(--accent-time);opacity:.3}.dot.today{background-color:var(--accent-active);box-shadow:0 0 10px var(--accent-active);z-index:1;transform:scale(1.1)}.dot.target-day{background-color:var(--dot-target);border:1px solid #555}.dot.ignored-day{background-color:var(--dot-ignored);opacity:.3;cursor:default}.dot.goal-done{background-color:var(--accent-goal)}.dot.goal-done,.dot.goal-miss{border:none;opacity:1!important}.dot.goal-miss{background-color:var(--accent-miss)}.dot:hover:after{content:attr(data-date);position:absolute;bottom:140%;left:50%;transform:translateX(-50%);background:#fff;color:#000;padding:4px 6px;border-radius:4px;font-size:10px;white-space:nowrap;z-index:3;pointer-events:none}.dot.perf-perfect{background-color:var(--accent-goal);box-shadow:0 0 5px var(--accent-goal);opacity:1}.dot.perf-almost{background-color:#98fb98;opacity:.9}.dot.perf-good{background-color:#fa0;opacity:.9}.dot.perf-bad{background-color:var(--accent-miss);opacity:.8}.dot.perf-zero{background-color:#444;border:1px solid #666}.dot.perf-neutral{background-color:var(--accent-time);opacity:.3}.dot.today{transform:scale(1.3);border:2px solid #fff!important;box-shadow:0 0 15px var(--accent-active);animation:a 2s infinite}@keyframes a{0%{box-shadow:0 0 0 0 rgba(255,0,85,.7)}70%{box-shadow:0 0 0 6px rgba(255,0,85,0)}to{box-shadow:0 0 0 0 rgba(255,0,85,0)}}.goal-list{display:flex;flex-direction:column;gap:10px;padding:10px;padding-bottom:100px}.goal-card{background:var(--bg-panel);padding:20px;border-radius:12px;display:flex;justify-content:space-between;align-items:center;cursor:pointer;border:1px solid transparent;transition:.2s;margin-bottom:10px}.goal-card:hover{border-color:#444;background:#252525}.goal-info h3{font-size:1.1rem;margin-bottom:4px}.goal-meta{font-size:.8rem;color:var(--text-muted)}.consistency-score{font-size:1.5rem;font-weight:700;color:var(--accent-goal)}.fab{position:absolute;bottom:30px;right:30px;background:var(--accent-active);color:#fff;width:50px;height:50px;border-radius:50%;display:flex;justify-content:center;align-items:center;font-size:24px;box-shadow:0 5px 20px rgba(255,0,85,.4);cursor:pointer;border:none;z-index:1;transition:transform .2s}.fab:hover{transform:scale(1.1)}.quick-actions{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);background:#222;padding:10px 20px;border-radius:30px;display:none;gap:15px;border:1px solid #444;box-shadow:0 10px 30px rgba(0,0,0,.5);z-index:2}.quick-actions.visible{display:flex}.btn{padding:10px 20px;border-radius:6px;border:none;font-weight:700;cursor:pointer}.btn-cancel{background:#333;color:#fff}.btn-confirm{background:var(--accent-goal);color:#000}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.8);display:flex;justify-content:center;align-items:center;opacity:0;pointer-events:none;transition:opacity .3s;z-index:5;backdrop-filter:blur(5px);padding:20px}.modal-overlay.open{opacity:1;pointer-events:auto}.modal{background:var(--bg-panel);padding:30px;border-radius:16px;width:90%;max-width:450px;border:1px solid #444;max-height:85vh;overflow-y:auto}.form-group{margin:15px 0}.form-group label{display:block;margin-bottom:8px;color:var(--text-muted);font-size:.9rem}input[type=text],select{width:100%;padding:12px;background:#111;border:1px solid #333;color:#fff;border-radius:8px;font-size:1rem}.day-selector{display:flex;gap:10px;margin-top:10px;display:none}.day-selector.visible{display:flex}.day-checkbox{flex:1;position:relative}.day-checkbox input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.checkmark{display:flex;justify-content:center;align-items:center;height:35px;background-color:#333;border-radius:6px;font-size:.8rem;cursor:pointer;color:#888}.day-checkbox input:checked~.checkmark{background-color:var(--accent-time);color:#000;font-weight:700}.text-ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;display:block}.date-row{display:flex;gap:10px;margin-bottom:15px}.date-group{flex:1}.date-group label{font-size:.8rem;color:#888;margin-bottom:5px;display:block}.dot.out-of-range{opacity:.1;pointer-events:none;background:#333}.summary-card{background:var(--bg-panel);border-radius:12px;padding:20px;margin-bottom:15px;border:1px solid #333}.quote-box{font-style:italic;color:var(--accent-time);text-align:center;font-size:1.1rem;border-left:3px solid var(--accent-time);padding-left:15px}.todo-item{display:flex;align-items:center;justify-content:space-between;padding:12px;background:#222;margin-bottom:8px;border-radius:8px;transition:.2s;cursor:pointer;border:1px solid transparent}.todo-item:hover{border-color:#555}.todo-item.done{border-color:var(--accent-goal);background:rgba(0,255,136,.1)}.todo-check{width:20px;height:20px;border:2px solid #666;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-right:10px}.todo-item.done .todo-check{background:var(--accent-goal);border-color:var(--accent-goal)}.todo-item.done .todo-check:after{content:"✓";color:#000;font-size:12px;font-weight:700}.bar-chart{display:flex;flex-direction:column;gap:8px;margin-top:10px}.bar-row{display:flex;align-items:center;font-size:.8rem}.bar-label{width:80px;text-align:right;padding-right:10px;color:#888;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bar-track{flex:1;height:8px;background:#333;border-radius:4px;overflow:hidden}.bar-fill{height:100%;background:var(--accent-goal);border-radius:4px}.bar-val{width:35px;padding-left:8px;color:#fff}.summary-nav-btn{background:transparent;border:none;font-size:1.4rem;cursor:pointer;padding:0 10px;opacity:.6;transition:.3s}.summary-nav-btn.active,.summary-nav-btn:hover{opacity:1;transform:scale(1.1)}.enhanced-popup .modal{background:linear-gradient(145deg,#2a2a2a,#1e1e1e);border:1px solid #444;border-radius:15px;text-align:center;padding:30px;animation:b .3s ease-out}.enhanced-popup .popup-icon{font-size:3rem;margin-bottom:15px;animation:c .5s cubic-bezier(.68,-.55,.27,1.55) .2s}.enhanced-popup h2{color:#fff;font-weight:600;font-size:1.5rem;margin-bottom:10px}.enhanced-popup p{color:#aaa;font-size:1rem;line-height:1.5}.enhanced-popup strong{color:var(--accent-goal);font-weight:700}.enhanced-popup .btn-confirm{background:var(--accent-goal);color:#000;font-weight:700;padding:12px 30px;border-radius:8px;margin-top:20px;transition:transform .2s,box-shadow .2s}.enhanced-popup .btn-confirm:hover{transform:translateY(-2px);box-shadow:0 5px 15px rgba(0,255,136,.2)}@keyframes b{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes c{0%{transform:scale(0)}to{transform:scale(1)}}#time-balance-container{padding:5px;background:#1a1a1a;border-radius:12px;margin:10px;text-align:center;border:1px solid #333;display:flex;align-items:center;justify-content:center;gap:10px;align-content:center}.time-balance-label{font-size:.8rem;color:#888;margin-bottom:5px;text-transform:uppercase;letter-spacing:1px;display:none}.time-balance-value{font-size:1.4rem;color:#fff;font-weight:600;display:flex;align-items:center;justify-content:center;gap:8px}.hourglass-icon{font-size:1.2rem;animation:d 4s linear infinite}@keyframes d{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.download-btn-summary{background:var(--accent-goal);color:#000;border:none;padding:12px 24px;border-radius:8px;cursor:pointer;font-weight:700;transition:all .3s;width:100%}.download-btn-summary:hover{transform:translateY(-2px);box-shadow:0 5px 15px rgba(0,255,136,.3)}