:root{font-family:Inter,SF Pro Display,Helvetica Neue,system-ui,-apple-system,sans-serif;line-height:1.5;font-weight:400;color:#e2e8f0;background:radial-gradient(circle at 18% 16%,rgba(94,234,212,.12),transparent 32%),radial-gradient(circle at 78% 10%,rgba(56,189,248,.14),transparent 32%),radial-gradient(1200px 1200px at 15% 120%,rgba(59,130,246,.12),transparent 50%),#070d1a;min-height:100%;--surface: rgba(15, 23, 42, .72);--surface-strong: rgba(15, 23, 42, .9);--border: rgba(51, 65, 85, .8);--muted: rgba(148, 163, 184, .8);--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)}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 10% 10%,rgba(94,234,212,.05),transparent 30%),radial-gradient(circle at 80% 0%,rgba(14,165,233,.08),transparent 26%),radial-gradient(circle at 40% 70%,rgba(59,130,246,.06),transparent 35%),repeating-radial-gradient(circle at 14% 32%,rgba(148,163,184,.12),transparent 11px,transparent 18px),linear-gradient(135deg,#060814a6,#070c1acc),#0a0f1c;color:#e2e8f0;-webkit-font-smoothing:antialiased}h1{margin:0;font-size:2rem;letter-spacing:-.02em;color:#e0f2fe}h2{margin:0;font-size:1.25rem;color:#e0f2fe}::selection{background:#38bdf840;color:#e0f2fe}input,textarea,select{border:1px solid var(--border);border-radius:12px;background:#0f172abf;color:inherit;padding:10px 12px;font-size:.95rem;transition:border-color .15s ease,box-shadow .15s ease,transform .05s ease}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #38bdf840}label{color:#e2e8f0}.container{max-width:1100px;margin:0 auto;padding:32px 20px 40px;display:flex;flex-direction:column;gap:18px}.top-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.section-card{border:1px solid var(--border);border-radius:18px;background:var(--surface);padding:20px;box-shadow:0 18px 40px #080f2373;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.time-weather-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:var(--muted);font-size:.95rem}.local-temp,.local-weather{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;border:1px solid var(--border);background:#0f172ad9;font-weight:700;color:#e0f2fe;box-shadow:0 16px 30px #070e1e66}.actions{display:flex;justify-content:flex-end;gap:12px}.loading,.error{padding:16px;border-radius:14px;border:1px solid var(--border);background:var(--surface)}.error{border-color:#f43f5e80;background:#7f1d1d38;color:#fecdd3}.habits{list-style:none;padding:0;margin:0;display:grid;gap:14px}.habit-item{position:relative;border:1px solid var(--border);border-radius:18px;padding:18px;display:flex;flex-direction:column;gap:12px;background:linear-gradient(135deg,color-mix(in srgb,var(--bg, #0ea5e9) 20%,transparent),var(--surface-strong));box-shadow:0 18px 40px #080f2373;overflow:hidden}.habit-item:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.04),rgba(56,189,248,.08),transparent);pointer-events:none}.habit-info{display:flex;flex-direction:column;gap:6px;position:relative;z-index:1}.habit-title{display:flex;align-items:center;gap:8px;font-weight:800;color:#e0f2fe;letter-spacing:-.01em}.habit-desc{color:var(--muted)}.habit-archived{font-size:.75rem;padding:2px 8px;border-radius:999px;background:#0f172ad9;color:#c7d2fe;border:1px solid rgba(99,102,241,.45)}.habit-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 14px;color:#94a3b8e6;font-size:.92rem}.habit-actions{display:flex;flex-direction:column;gap:10px;align-items:flex-start;position:relative;z-index:1}.habit-actions .row{display:flex;align-items:center;flex-wrap:wrap}.logoutbtn{padding:var(--button-pad-y) var(--button-pad-x);border-radius:var(--button-radius);border:1px solid rgba(59,130,246,.5);background:linear-gradient(120deg,#0ea5e9,#2563eb);color:#f8fafc;font-weight:700;font-size:var(--button-font-size);cursor:pointer;box-shadow:0 18px 40px #2563eb47;transition:transform .1s ease,box-shadow .15s ease;width:fit-content}.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);border:1px solid rgba(234,179,8,.6);background:linear-gradient(130deg,#fbbf24,#f97316);color:#0f172a;cursor:pointer;align-self:flex-start;margin-left:auto;font-weight:800;font-size:var(--button-font-size);box-shadow:0 18px 42px #fbbf2459;transition:transform .1s ease,box-shadow .15s ease}.donate:hover{transform:translateY(-2px);box-shadow:0 24px 52px #fbbf2473}.donate-overlay,.habit-form-backdrop,.habit-chart-overlay{position:fixed;inset:0;background:#060a13b3;display:flex;align-items:center;justify-content:center;padding:18px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:30}.btn{padding:var(--button-pad-y) var(--button-pad-x);border-radius:var(--button-radius);border:1px solid var(--border);background:#0f172ad1;color:#e2e8f0;cursor:pointer;font-weight:700;font-size:var(--button-font-size);transition:transform .1s ease,box-shadow .15s ease,border-color .15s ease,background .2s ease;box-shadow:0 12px 28px #070e1e59}.btn:hover{transform:translateY(-2px);border-color:#38bdf8b3;box-shadow:0 20px 48px #38bdf83d}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.btn.primary{border-color:transparent;background:linear-gradient(120deg,#0ea5e9,#2563eb);color:#f8fafc}.btn.stats{background:#0f172ab3}.btn.operation{background:#0c4a6ea6;border-color:#0ea5e98c}.btn.archive{background:#7f1d1d59;border-color:#f871718c;color:#fecdd3}.btn.year-btn{width:100%;display:flex;justify-content:flex-start}.btn.year-btn.active{background:#0ea5e933;border-color:#0ea5e9b3;color:#e0f2fe}.chart{background:#0a1324cc;border:1px solid var(--border);border-radius:14px;padding:12px;width:100%;max-width:100%;overflow-x:auto;box-shadow:0 16px 38px #060d1e6b}.chart svg{display:block;width:100%;height:auto}.chart-with-sidebar{display:flex;gap:12px;flex-wrap:wrap;width:100%}.chart-sidebar{min-width:160px;background:#0f172acc;border:1px solid var(--border);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:8px}.chart-sidebar-title{font-weight:700}.chart-year-buttons{display:flex;flex-direction:column;gap:8px}.chart-year-empty{color:var(--muted)}.habit-chart-inner{display:flex;align-items:center;gap:8px;width:min(960px,90vw);max-height:90vh;overflow:auto;border-radius:14px;background:#0f172aeb;border:1px solid var(--border);padding:10px;box-shadow:0 24px 52px #03071280}.habit-chart-close{padding:var(--button-pad-y) var(--button-pad-x);border-radius:var(--button-radius);border:1px solid #ef4444;background:#ef4444;color:#fff;border-color:#ef4444;font-weight:700;font-size:var(--button-font-size)}.habit-form{background:#0f172ae6;color:inherit;border-radius:16px;padding:22px;width:min(520px,100%);display:flex;flex-direction:column;gap:14px;border:1px solid var(--border);box-shadow:0 24px 60px #080f238c}.habit-form-archived{width:82vw;height:78vh;max-width:960px;max-height:90vh}.habit-archived-content{flex:1;overflow:auto;padding-right:6px}.habit-form h2{margin:0}.habit-form label{display:flex;flex-direction:column;gap:6px;font-weight:700}.habit-form textarea{min-height:90px;resize:vertical}.habit-form-checkbox{display:flex;align-items:center;gap:8px;font-weight:700}.habit-form-actions{display:flex;justify-content:flex-end;gap:10px}.habit-form-error{color:#fecdd3;background:#7f1d1d52;border:1px solid rgba(248,113,113,.65);border-radius:12px;padding:10px 12px;font-weight:700}.habit-form-info{color:#bae6fd;background:#0ea5e938;border:1px solid rgba(56,189,248,.6);border-radius:12px;padding:10px 12px;font-weight:700}.auth-screen{min-height:100vh;display:grid;place-items:center;padding:64px 16px;position:relative;overflow:hidden;isolation:isolate;background:radial-gradient(900px 900px at 16% 0%,rgba(94,234,212,.16),transparent 52%),radial-gradient(900px 900px at 84% -8%,rgba(56,189,248,.18),transparent 55%),radial-gradient(1200px 1200px at 50% 110%,rgba(59,130,246,.16),transparent 55%)}.auth-container{width:min(440px,92vw);margin:0 auto;background:#0f172ae0;color:inherit;border:1px solid var(--border);border-radius:16px;padding:24px;box-shadow:0 22px 52px #080f2385;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:relative;z-index:1}.auth-container h2{margin:0 0 12px;font-weight:800;letter-spacing:-.01em;color:#e0f2fe}.auth-container form{display:flex;flex-direction:column;gap:12px}.auth-form label{display:flex;flex-direction:column;gap:6px;font-weight:700;width:100%}.auth-form input{width:100%}.auth-container .error{margin:4px 0 0;padding:10px 12px;color:#fecdd3;background:#7f1d1d40;border:1px solid rgba(248,113,113,.55);border-radius:10px}.auth-container button[type=submit]{margin-top:4px;padding:calc(var(--button-pad-y) + 2px) var(--button-pad-x);width:100%;border-radius:var(--button-radius);border:1px solid transparent;background:linear-gradient(120deg,#0ea5e9,#2563eb);color:#f8fafc;font-weight:800;font-size:var(--button-font-size);cursor:pointer;box-shadow:0 20px 45px #38bdf852;transition:transform .08s ease,filter .15s ease,box-shadow .2s ease}.auth-container button[type=submit]:hover{filter:brightness(1.05);box-shadow:0 24px 55px #38bdf866;transform:translateY(-1px)}.auth-container button[type=submit]:active{transform:translateY(0)}.auth-container p{margin-top:12px;text-align:center;opacity:.9}.auth-container p>button{background:none;border:none;padding:0;margin-left:6px;color:#38bdf8;text-decoration:underline;cursor:pointer;font:inherit}.auth-container p>button:hover{filter:brightness(1.1)}.chat-widget{position:fixed;bottom:20px;right:20px;display:flex;flex-direction:column;align-items:flex-end;gap:12px;z-index:30}.chat-toggle{border:none;border-radius:999px;padding:calc(var(--button-pad-y) + 2px) calc(var(--button-pad-x) + 2px);background:linear-gradient(125deg,#0ea5e9,#6366f1);color:#fff;cursor:pointer;font-weight:800;font-size:var(--button-font-size);box-shadow:0 16px 36px #080f2373,0 0 32px #38bdf859}.chat-toggle:hover{filter:brightness(1.05)}.chat-panel{width:320px;max-width:calc(100vw - 32px);background:linear-gradient(160deg,#0f172af2,#1e293beb),radial-gradient(circle at 20% 20%,rgba(56,189,248,.15),transparent 35%),radial-gradient(circle at 80% 0%,rgba(129,140,248,.14),transparent 40%);border:1px solid var(--border);border-radius:14px;box-shadow:0 22px 50px #080f238c,0 0 50px #38bdf824;display:flex;flex-direction:column;overflow:hidden;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.chat-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:linear-gradient(120deg,#0f172af2,#1e293be6);border-bottom:1px solid var(--border);font-weight:700}.chat-close{background:none;border:none;color:#cbd5e1;font-size:clamp(16px,3vw,18px);cursor:pointer}.chat-close:hover{color:#e2e8f0}.chat-quick-row{display:flex;flex-wrap:wrap;gap:8px;padding:10px 14px;border-bottom:1px solid var(--border);background:#0a1324e6}.chat-quick{background:linear-gradient(130deg,#0ea5e938,#6366f142);border-color:#0ea5e999;font-weight:700}.chat-quick:disabled{opacity:.7}.chat-body{padding:12px 14px;max-height:260px;overflow-y:auto;display:flex;flex-direction:column;gap:8px}.chat-body ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.chat-bubble{background:linear-gradient(145deg,#0f172ae6,#1e293be6),radial-gradient(circle at 10% 10%,rgba(14,165,233,.12),transparent 45%);border:1px solid var(--border);border-radius:12px;padding:10px 12px;line-height:1.4;display:flex;flex-direction:column;gap:4px;box-shadow:0 10px 24px #070e1e59}.chat-bubble.user{align-self:flex-end;background:linear-gradient(145deg,#2dd4bf52,#0ea5e97a);border-color:#0ea5e9b3}.chat-bubble.assistant{align-self:flex-start}.chat-role{font-size:12px;opacity:.7}.chat-empty{margin:0;opacity:.8;color:var(--muted)}.chat-input-row{display:flex;gap:8px;padding:12px 14px;border-top:1px solid var(--border);background:#0f172ae6}.chat-input-row input{flex:1}.chat-error{margin-top:4px;color:#fecdd3;font-weight:700}@media (max-width: 720px){.chat-widget{position:fixed;inset:auto 12px 12px auto;align-items:flex-end;justify-content:flex-end;padding:0;gap:8px}.chat-panel{width:min(360px,calc(100vw - 24px));max-width:calc(100vw - 24px);height:70vh;max-height:70vh;border-radius:14px;box-shadow:0 18px 42px #080f2380;overflow:hidden}.chat-body{max-height:none;flex:1}}.timer-rail{position:fixed;left:16px;top:30vh;width:150px;padding:12px;border-radius:14px;border:1px solid var(--border);background:#0a1324eb;box-shadow:0 20px 48px #060d1e73;display:flex;flex-direction:column;gap:10px;z-index:22;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.timer-rail-title{font-weight:800;letter-spacing:.3px;color:#dbeafe;font-size:.95rem}.timer-rail-buttons{display:flex;flex-direction:column;gap:8px}.timer-btn{width:100%;background:#0c4a6e99;border-color:#0ea5e999;font-weight:700}.timer-btn.pomodoro{background:linear-gradient(120deg,#fb923c,#f59e0b);border-color:#f97316cc;color:#0b1224}.timer-btn.active{background:linear-gradient(130deg,#0ea5e9,#2563eb);border-color:#38bdf8cc;color:#f8fafc;box-shadow:0 20px 48px #38bdf847}.timer-btn.pomodoro.active{background:linear-gradient(130deg,#fb923c,#f97316);border-color:#fb923ce6;color:#0b1224;box-shadow:0 20px 48px #fb923c52}.timer-status{background:#0f172ad9;border:1px solid var(--border);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:8px}.timer-status-row{display:flex;align-items:center;justify-content:space-between;gap:8px;font-weight:700}.timer-cancel{border:none;background:#ef4444;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)}.timer-remaining{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:24px;font-weight:800;letter-spacing:1px;color:#e0f2fe}.timer-progress{position:relative;width:100%;height:6px;border-radius:999px;background:#0f172aa6;overflow:hidden}.timer-progress-bar{position:absolute;inset:0;background:linear-gradient(120deg,#0ea5e9,#22d3ee,#2563eb);transform-origin:left center;transition:width .2s ease}.timer-finished{padding:8px 10px;border-radius:10px;border:1px solid rgba(16,185,129,.6);background:#052e1666;font-weight:700;color:#bbf7d0}@media (max-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>*{margin-left:0!important;width:100%}.habit-actions .row input{width:100%!important}.timer-rail{position:static;width:100%;margin-top:8px;flex-direction:column}.timer-rail-title{width:100%}.timer-rail-buttons{flex-direction:row;flex-wrap:wrap;gap:6px;width:100%}.timer-btn{flex:1 1 45%;min-width:110px}.timer-status{width:100%}}@media (max-width: 720px){.habit-chart-overlay{padding:14px;align-items:center;justify-content:center}.habit-chart-inner{flex-direction:column;align-items:stretch;width:calc(100vw - 20px);max-width:calc(100vw - 20px);max-height:calc(100vh - 20px);overflow:auto;border-radius:12px;padding:12px}.chart-with-sidebar{flex-direction:column;gap:10px;align-items:stretch}.chart-sidebar{width:100%;flex-direction:row;flex-wrap:wrap;gap:8px}.habit-chart-close{display:none}}
