:root{color:#e2e8f0;--surface:#0f172ab8;--surface-strong:#0f172ae6;--border:#334155cc;--muted:#94a3b8cc;--accent:#38bdf8;--accent-2:#2563eb;--button-pad-y:clamp(8px, 1.6vw, 10px);--button-pad-x:clamp(10px, 2.8vw, 14px);--button-radius:clamp(10px, 2.6vw, 12px);--button-font-size:clamp(.95rem, .92rem + .25vw, 1rem);background:radial-gradient(circle at 18% 16%,#5eead41f,#0000 32%),radial-gradient(circle at 78% 10%,#38bdf824,#0000 32%),radial-gradient(1200px 1200px at 15% 120%,#3b82f61f,#0000 50%),#070d1a;min-height:100%;font-family:Inter,SF Pro Display,Helvetica Neue,system-ui,-apple-system,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}body{color:#e2e8f0;-webkit-font-smoothing:antialiased;background:radial-gradient(circle at 10% 10%,#5eead40d,#0000 30%),radial-gradient(circle at 80% 0,#0ea5e914,#0000 26%),radial-gradient(circle at 40% 70%,#3b82f60f,#0000 35%),repeating-radial-gradient(circle at 14% 32%,#94a3b81f,#0000 11px 18px),linear-gradient(135deg,#060814a6,#070c1acc),#0a0f1c;min-height:100vh;margin:0}h1{letter-spacing:-.02em;color:#e0f2fe;margin:0;font-size:2rem}h2{color:#e0f2fe;margin:0;font-size:1.25rem}::selection{color:#e0f2fe;background:#38bdf840}input,textarea,select{border:1px solid var(--border);color:inherit;background:#0f172abf;border-radius:12px;padding:10px 12px;font-size:.95rem;transition:border-color .15s,box-shadow .15s,transform 50ms}input:focus,textarea:focus,select:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #38bdf840}label{color:#e2e8f0}.container{flex-direction:column;gap:18px;max-width:1100px;margin:0 auto;padding:32px 20px 40px;display:flex}.top-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.section-card{border:1px solid var(--border);background:var(--surface);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:18px;padding:20px;box-shadow:0 18px 40px #080f2373}.time-weather-row{color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px;font-size:.95rem;display:flex}.local-temp,.local-weather{border:1px solid var(--border);color:#e0f2fe;background:#0f172ad9;border-radius:999px;align-items:center;gap:8px;padding:8px 12px;font-weight:700;display:inline-flex;box-shadow:0 16px 30px #070e1e66}.actions{justify-content:flex-end;gap:12px;display:flex}.loading,.error{border:1px solid var(--border);background:var(--surface);border-radius:14px;padding:16px}.error{color:#fecdd3;background:#7f1d1d38;border-color:#f43f5e80}.habits{gap:14px;margin:0;padding:0;list-style:none;display:grid}.habit-item{border:1px solid var(--border);background:linear-gradient(135deg, color-mix(in srgb, var(--bg,#0ea5e9) 20%, transparent), var(--surface-strong));border-radius:18px;flex-direction:column;gap:12px;padding:18px;display:flex;position:relative;overflow:hidden;box-shadow:0 18px 40px #080f2373}.habit-item:after{content:"";pointer-events:none;background:linear-gradient(135deg,#ffffff0a,#38bdf814,#0000);position:absolute;inset:0}.habit-info{z-index:1;flex-direction:column;gap:6px;display:flex;position:relative}.habit-title{color:#e0f2fe;letter-spacing:-.01em;align-items:center;gap:8px;font-weight:800;display:flex}.habit-desc{color:var(--muted)}.habit-archived{color:#c7d2fe;background:#0f172ad9;border:1px solid #6366f173;border-radius:999px;padding:2px 8px;font-size:.75rem}.habit-stats{color:#94a3b8e6;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 14px;font-size:.92rem;display:grid}.habit-actions{z-index:1;flex-direction:column;align-items:flex-start;gap:10px;display:flex;position:relative}.habit-actions .row{flex-wrap:wrap;align-items:center;display:flex}.habit-analysis{z-index:1;flex-direction:column;align-items:flex-start;gap:10px;width:100%;padding-top:2px;display:flex;position:relative}.btn.habit-analysis-button{color:#fff7ed;background:linear-gradient(125deg,#f97316e6,#f59e0beb);border-color:#fb923cd1;font-weight:800}.btn.habit-analysis-button:hover:not(:disabled){border-color:#fdba74f2;box-shadow:0 8px 22px #ea580c52}.habit-analysis-panel{background:#0f172ab8;border:1px solid #a78bfa6b;border-radius:12px;width:100%;padding:14px;box-shadow:inset 0 1px #ffffff0a}.habit-analysis-output{color:#e2e8f0;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.55}.habit-analysis-status,.habit-analysis-meta,.habit-analysis-warning,.habit-analysis-error{font-size:.82rem}.habit-analysis-status{color:#c4b5fd;margin-bottom:8px;font-weight:700}.habit-analysis-meta{color:var(--muted);margin-top:10px}.habit-analysis-warning{color:#fde68a;margin-top:8px}.habit-analysis-error{color:#fecdd3;margin-top:8px;font-weight:700}.logoutbtn{padding:var(--button-pad-y) var(--button-pad-x);border-radius:var(--button-radius);color:#f8fafc;font-weight:700;font-size:var(--button-font-size);cursor:pointer;background:linear-gradient(120deg,#0ea5e9,#2563eb);border:1px solid #3b82f680;width:fit-content;transition:transform .1s,box-shadow .15s;box-shadow:0 18px 40px #2563eb47}.logoutbtn:hover{transform:translateY(-2px);box-shadow:0 22px 50px #38bdf859}.donate{padding:var(--button-pad-y) var(--button-pad-x);border-radius:calc(var(--button-radius) + 2px);color:#0f172a;cursor:pointer;font-weight:800;font-size:var(--button-font-size);background:linear-gradient(130deg,#fbbf24,#f97316);border:1px solid #eab30899;align-self:flex-start;margin-left:auto;transition:transform .1s,box-shadow .15s;box-shadow:0 18px 42px #fbbf2459}.donate:hover{transform:translateY(-2px);box-shadow:0 24px 52px #fbbf2473}.donate-overlay,.habit-form-backdrop,.habit-chart-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:30;background:#060a13b3;justify-content:center;align-items:center;padding:18px;display:flex;position:fixed;inset:0}.btn{padding:var(--button-pad-y) var(--button-pad-x);border-radius:var(--button-radius);border:1px solid var(--border);color:#e2e8f0;cursor:pointer;font-weight:700;font-size:var(--button-font-size);background:#0f172ad1;transition:transform .1s,box-shadow .15s,border-color .15s,background .2s;box-shadow:0 12px 28px #070e1e59}.btn:hover{border-color:#38bdf8b3;transform:translateY(-2px);box-shadow:0 20px 48px #38bdf83d}.btn:disabled{opacity:.6;cursor:not-allowed;box-shadow:none;transform:none}.btn.primary{color:#f8fafc;background:linear-gradient(120deg,#0ea5e9,#2563eb);border-color:#0000}.btn.stats{background:#0f172ab3}.btn.operation{background:#0c4a6ea6;border-color:#0ea5e98c}.btn.archive{color:#fecdd3;background:#7f1d1d59;border-color:#f871718c}.btn.year-btn{justify-content:flex-start;width:100%;display:flex}.btn.year-btn.active{color:#e0f2fe;background:#0ea5e933;border-color:#0ea5e9b3}.chart{border:1px solid var(--border);background:#0a1324cc;border-radius:14px;width:100%;max-width:100%;padding:12px;overflow-x:auto;box-shadow:0 16px 38px #060d1e6b}.chart svg{width:100%;height:auto;display:block}.chart-with-sidebar{flex-wrap:wrap;gap:12px;width:100%;display:flex}.chart-sidebar{border:1px solid var(--border);background:#0f172acc;border-radius:12px;flex-direction:column;gap:8px;min-width:160px;padding:10px;display:flex}.chart-sidebar-title{font-weight:700}.chart-year-buttons{flex-direction:column;gap:8px;display:flex}.chart-year-empty{color:var(--muted)}.habit-chart-inner{border:1px solid var(--border);background:#0f172aeb;border-radius:14px;align-items:center;gap:8px;width:min(960px,90vw);max-height:90vh;padding:10px;display:flex;overflow:auto;box-shadow:0 24px 52px #03071280}.habit-chart-close{padding:var(--button-pad-y) var(--button-pad-x);border-radius:var(--button-radius);color:#fff;font-weight:700;font-size:var(--button-font-size);background:#ef4444;border:1px solid #ef4444}.habit-form{color:inherit;border:1px solid var(--border);background:#0f172ae6;border-radius:16px;flex-direction:column;gap:14px;width:min(520px,100%);padding:22px;display:flex;box-shadow:0 24px 60px #080f238c}.habit-details-form{overscroll-behavior:contain;max-height:calc(100dvh - 36px);overflow-y:auto}.habit-form-archived{width:82vw;max-width:960px;height:78vh;max-height:90vh}.habit-archived-content{flex:1;padding-right:6px;overflow:auto}.habit-form h2{margin:0}.habit-form label{flex-direction:column;gap:6px;font-weight:700;display:flex}.habit-form textarea{resize:vertical;min-height:90px}.reminder-block{border:1px solid var(--border);background:#0b1120e6;border-radius:10px;padding:12px}.reminder-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:8px;display:grid}.reminder-days{flex-direction:column;gap:6px;display:flex}.reminder-day-buttons{flex-wrap:wrap;gap:6px;display:flex}.day-btn{border:1px solid var(--border);color:#e5e7eb;cursor:pointer;background:#111827e6;border-radius:6px;padding:6px 10px}.day-btn.selected{color:#0b1220;background:#0ea5e9;border-color:#0ea5e9}.reminder-status{border:1px dashed var(--border);color:#cbd5e1;background:#0b1120bf;border-radius:12px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.reminder-status .badge{color:#0b1220;background:#0ea5e9;border-radius:999px;justify-content:center;align-items:center;width:fit-content;min-width:60px;padding:4px 10px;font-weight:800;display:inline-flex}.notification-list{gap:8px;display:grid}.notification-card{border:1px solid var(--border);background:#0f172ab3;border-radius:10px;flex-direction:column;gap:6px;padding:10px;display:flex}.notification-title{color:#e0f2fe;font-weight:700}.notification-meta{color:var(--muted);font-size:.9rem}.muted{color:var(--muted)}.habit-form-checkbox{align-items:center;gap:8px;font-weight:700;display:flex}.habit-form-actions{justify-content:flex-end;gap:10px;display:flex}.habit-form-error{color:#fecdd3;background:#7f1d1d52;border:1px solid #f87171a6;border-radius:12px;padding:10px 12px;font-weight:700}.habit-form-info{color:#bae6fd;background:#0ea5e938;border:1px solid #38bdf899;border-radius:12px;padding:10px 12px;font-weight:700}.auth-screen{isolation:isolate;background:radial-gradient(900px 900px at 16% 0,#5eead429,#0000 52%),radial-gradient(900px 900px at 84% -8%,#38bdf82e,#0000 55%),radial-gradient(1200px 1200px at 50% 110%,#3b82f629,#0000 55%);place-items:center;min-height:100vh;padding:64px 16px;display:grid;position:relative;overflow:hidden}.auth-container{width:min(440px,92vw);color:inherit;border:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1;background:#0f172ae0;border-radius:16px;margin:0 auto;padding:24px;position:relative;box-shadow:0 22px 52px #080f2385}.auth-container h2{letter-spacing:-.01em;color:#e0f2fe;margin:0 0 12px;font-weight:800}.auth-container form{flex-direction:column;gap:12px;display:flex}.auth-form label{flex-direction:column;gap:6px;width:100%;font-weight:700;display:flex}.auth-form input{width:100%}.auth-container .error{color:#fecdd3;background:#7f1d1d40;border:1px solid #f871718c;border-radius:10px;margin:4px 0 0;padding:10px 12px}.auth-container button[type=submit]{padding:calc(var(--button-pad-y) + 2px) var(--button-pad-x);border-radius:var(--button-radius);color:#f8fafc;width:100%;font-weight:800;font-size:var(--button-font-size);cursor:pointer;background:linear-gradient(120deg,#0ea5e9,#2563eb);border:1px solid #0000;margin-top:4px;transition:transform 80ms,filter .15s,box-shadow .2s;box-shadow:0 20px 45px #38bdf852}.auth-container button[type=submit]:hover{filter:brightness(1.05);transform:translateY(-1px);box-shadow:0 24px 55px #38bdf866}.auth-container button[type=submit]:active{transform:translateY(0)}.auth-container p{text-align:center;opacity:.9;margin-top:12px}.auth-container p>button{color:#38bdf8;cursor:pointer;font:inherit;background:0 0;border:none;margin-left:6px;padding:0;text-decoration:underline}.auth-container p>button:hover{filter:brightness(1.1)}.chat-widget{z-index:30;flex-direction:column;align-items:flex-end;gap:12px;display:flex;position:fixed;bottom:20px;right:20px}.chat-toggle{padding:calc(var(--button-pad-y) + 2px) calc(var(--button-pad-x) + 2px);color:#fff;cursor:pointer;font-weight:800;font-size:var(--button-font-size);background:linear-gradient(125deg,#0ea5e9,#6366f1);border:none;border-radius:999px;box-shadow:0 16px 36px #080f2373,0 0 32px #38bdf859}.chat-toggle:hover{filter:brightness(1.05)}.chat-panel{width:var(--chat-panel-width,320px);height:var(--chat-panel-height,auto);border:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:linear-gradient(160deg,#0f172af2,#1e293beb),radial-gradient(circle at 20% 20%,#38bdf826,#0000 35%),radial-gradient(circle at 80% 0,#818cf824,#0000 40%);border-radius:14px;flex-direction:column;max-width:calc(100vw - 40px);max-height:calc(100vh - 40px);display:flex;position:relative;overflow:hidden;box-shadow:0 22px 50px #080f238c,0 0 50px #38bdf824}.chat-resize-handle{z-index:2;cursor:nwse-resize;touch-action:none;opacity:.82;background:linear-gradient(135deg,#38bdf8b8,#6366f12e 55%,#0000 56%);border-top-left-radius:13px;width:22px;height:22px;transition:opacity .15s,filter .15s;position:absolute;top:0;left:0}.chat-resize-handle:after{content:"";border-top:2px solid #e0f2fe;border-left:2px solid #e0f2fe;width:7px;height:7px;position:absolute;top:5px;left:5px}.chat-resize-handle:hover{opacity:1;filter:brightness(1.15)}.chat-widget--resizing,.chat-widget--resizing *{cursor:nwse-resize;-webkit-user-select:none;user-select:none}.chat-panel--resized .chat-body{flex:1;min-height:0;max-height:none}.chat-header{border-bottom:1px solid var(--border);background:linear-gradient(120deg,#0f172af2,#1e293be6);justify-content:space-between;align-items:center;padding:12px 14px 12px 28px;font-weight:700;display:flex}.chat-close{color:#cbd5e1;cursor:pointer;background:0 0;border:none;font-size:clamp(16px,3vw,18px)}.chat-close:hover{color:#e2e8f0}.chat-quick-row{border-bottom:1px solid var(--border);background:#0a1324e6;flex-wrap:wrap;gap:8px;padding:10px 14px;display:flex}.chat-quick{background:linear-gradient(130deg,#0ea5e938,#6366f142);border-color:#0ea5e999;font-weight:700}.chat-quick:disabled{opacity:.7}.chat-body{flex-direction:column;gap:8px;max-height:260px;padding:12px 14px;display:flex;overflow-y:auto}.chat-body ul{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.chat-bubble{border:1px solid var(--border);background:linear-gradient(145deg,#0f172ae6,#1e293be6),radial-gradient(circle at 10% 10%,#0ea5e91f,#0000 45%);border-radius:12px;flex-direction:column;gap:4px;padding:10px 12px;line-height:1.4;display:flex;box-shadow:0 10px 24px #070e1e59}.chat-bubble.user{background:linear-gradient(145deg,#2dd4bf52,#0ea5e97a);border-color:#0ea5e9b3;align-self:flex-end}.chat-bubble--live{border-style:dashed;width:min(100%,520px);box-shadow:0 10px 28px #0ea5e933}.chat-bubble.assistant{align-self:flex-start}.chat-role{opacity:.7;font-size:12px}.chat-speech-row{flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px;display:flex}.chat-speech-button{color:#bae6fd;cursor:pointer;font:inherit;background:#0ea5e924;border:1px solid #38bdf880;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:700}.chat-speech-button:hover:not(:disabled){background:#0ea5e940;border-color:#38bdf8cc}.chat-speech-button:disabled{cursor:wait;opacity:.7}.chat-speech-status{color:var(--muted);flex-basis:100%;font-size:12px}.chat-speech-status.error{color:#fecdd3}.chat-empty{opacity:.8;color:var(--muted);margin:0}.chat-voice-control{background:#0f172ab8;flex-direction:column;align-items:center;gap:5px;padding:9px 14px 7px;display:flex}.chat-voice-button{color:#e0f2fe;cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;background:linear-gradient(145deg,#0ea5e94d,#6366f161);border:1px solid #38bdf8a6;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;padding:0;transition:transform .15s,border-color .15s,background .15s,box-shadow .15s;display:inline-flex;position:relative;box-shadow:0 8px 22px #0ea5e933}.chat-voice-button:hover:not(:disabled){border-color:#7dd3fcf2;transform:translateY(-1px);box-shadow:0 10px 26px #0ea5e94d}.chat-voice-button:focus-visible{outline-offset:3px;outline:3px solid #7dd3fc73}.chat-voice-button.is-active{color:#fff1f2;background:linear-gradient(145deg,#f43f5ee0,#e11d48b8);border-color:#fecdd3f2;animation:1.25s ease-in-out infinite chat-voice-pulse;box-shadow:0 0 0 8px #f43f5e24,0 8px 26px #f43f5e59}.chat-voice-button:disabled{cursor:not-allowed;opacity:.45}.chat-voice-button.is-active:disabled{cursor:wait;opacity:.8}.chat-voice-label{color:var(--muted);font-size:11px;font-weight:700}.chat-voice-error{color:#fecdd3;text-align:center;max-width:100%;font-size:11px;font-weight:700}@keyframes chat-voice-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}.chat-input-row{border-top:1px solid var(--border);background:#0f172ae6;gap:8px;padding:12px 14px;display:flex}.chat-input-row input{flex:1}.chat-error{color:#fecdd3;margin-top:4px;font-weight:700}@media (width<=720px){.chat-widget{justify-content:flex-end;align-items:flex-end;gap:8px;padding:0;position:fixed;inset:auto 12px 12px auto}.chat-panel{border-radius:14px;width:min(360px,100vw - 24px);max-width:calc(100vw - 24px);height:70vh;max-height:70vh;overflow:hidden;box-shadow:0 18px 42px #080f2380}.chat-resize-handle{display:none}.chat-header{padding-left:14px}.chat-body{flex:1;max-height:none}}.timer-rail{border:1px solid var(--border);z-index:22;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0a1324eb;border-radius:14px;flex-direction:column;gap:10px;width:150px;padding:12px;display:flex;position:fixed;top:30vh;left:16px;box-shadow:0 20px 48px #060d1e73}.timer-rail-header{justify-content:space-between;align-items:center;gap:8px;width:100%;display:flex}.timer-rail-title{letter-spacing:.3px;color:#dbeafe;font-size:.95rem;font-weight:800}.timer-rail-close{color:#cbd5e1;cursor:pointer;background:#0f172ad1;border:1px solid #94a3b873;border-radius:7px;flex:none;place-items:center;width:24px;height:24px;padding:0;font-size:1.1rem;line-height:1;transition:color .15s,border-color .15s,background .15s;display:inline-grid}.timer-rail-close:hover{color:#fff;background:#7f1d1d8c;border-color:#f87171bf}.timer-rail-close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.timer-rail-buttons{flex-direction:column;gap:8px;display:flex}.timer-btn{background:#0c4a6e99;border-color:#0ea5e999;width:100%;font-weight:700}.timer-btn.pomodoro{color:#0b1224;background:linear-gradient(120deg,#fb923c,#f59e0b);border-color:#f97316cc}.timer-btn.active{color:#f8fafc;background:linear-gradient(130deg,#0ea5e9,#2563eb);border-color:#38bdf8cc;box-shadow:0 20px 48px #38bdf847}.timer-btn.pomodoro.active{color:#0b1224;background:linear-gradient(130deg,#fb923c,#f97316);border-color:#fb923ce6;box-shadow:0 20px 48px #fb923c52}.timer-status{border:1px solid var(--border);background:#0f172ad9;border-radius:12px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.timer-status-row{justify-content:space-between;align-items:center;gap:8px;font-weight:700;display:flex}.timer-cancel{color:#fff;padding:calc(var(--button-pad-y) - 2px) calc(var(--button-pad-x) - 2px);border-radius:var(--button-radius);cursor:pointer;font-weight:700;font-size:var(--button-font-size);background:#ef4444;border:none}.timer-remaining{letter-spacing:1px;color:#e0f2fe;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:24px;font-weight:800}.timer-progress{background:#0f172aa6;border-radius:999px;width:100%;height:6px;position:relative;overflow:hidden}.timer-progress-bar{transform-origin:0;background:linear-gradient(120deg,#0ea5e9,#22d3ee,#2563eb);transition:width .2s;position:absolute;inset:0}.timer-finished{color:#bbf7d0;background:#052e1666;border:1px solid #10b98199;border-radius:10px;padding:8px 10px;font-weight:700}@media (width<=720px){.top-row{flex-direction:column;align-items:flex-start}.habit-actions{gap:12px}.habit-actions .row{flex-direction:column;align-items:stretch;gap:12px}.habit-actions .row>*{width:100%;margin-left:0!important}.habit-actions .row input{width:100%!important}.habit-analysis{align-items:stretch}.habit-analysis-button{width:100%}.timer-rail{flex-direction:column;width:100%;margin-top:8px;position:static}.timer-rail-header{width:100%}.timer-rail-buttons{flex-flow:wrap;gap:6px;width:100%}.timer-btn{flex:45%;min-width:110px}.timer-status{width:100%}.habit-chart-overlay{justify-content:center;align-items:center;padding:14px}.habit-chart-inner{border-radius:12px;flex-direction:column;align-items:stretch;width:calc(100vw - 20px);max-width:calc(100vw - 20px);max-height:calc(100vh - 20px);padding:12px;overflow:auto}.chart-with-sidebar{flex-direction:column;align-items:stretch;gap:10px}.chart-sidebar{flex-flow:wrap;gap:8px;width:100%}.habit-chart-close{display:none}}
