:root{--ground:#edeaf8;--surface:#fbfaff;--card:#ffffff;--border:#eae7f4;--ink:#191926;--muted:#63637a;--faint:#73738a;--shadow:0 1px 2px rgba(38,33,74,0.05),0 10px 30px rgba(38,33,74,0.07);--blue:#6d5ce6;--green:#0ca678;--amber:#b45309;--red:#d13438;--blue-soft:#efecfd;--green-soft:#e2f8ef;--amber-soft:#fdf1e3;--red-soft:#fdeceb;--chart-emphasis:#7a68ee;--chart-context:#e5e2f2;--sleep-deep:#5b4bd4;--sleep-rem:#a99cf6;--sleep-light:#e3e0f0;--meter-track:#e9e5fb;--sans:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--ground);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}body{background:linear-gradient(160deg,#f4ecfa,#ebe7fa 45%,#e6ecf9) fixed;min-height:100dvh}button,input,select,textarea{font:inherit;color:inherit}a{color:inherit}svg.lucide{vertical-align:-.15em}.app-surface{max-width:1080px;margin:0 auto;min-height:100dvh;background:var(--surface);border-radius:28px;border:1px solid rgba(255,255,255,.7);box-shadow:0 24px 60px rgba(48,38,105,.08);padding:20px 24px 96px}@media (min-width:1128px){.app-surface{margin:20px auto;min-height:calc(100dvh - 40px)}}@media (max-width:640px){.app-surface{border-radius:0;border:0;box-shadow:none;padding:14px 14px 96px;min-height:100dvh}}.card{background:var(--card);border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow);padding:16px}.page-title{font-family:var(--sans);font-size:30px;font-weight:750;letter-spacing:-.025em;margin:18px 0 4px}.section-title{font-size:12.5px;font-weight:650;text-transform:uppercase;letter-spacing:.07em;margin:0 0 10px}.muted,.section-title{color:var(--muted)}.faint{color:var(--faint)}.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pill{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--border);background:var(--card);color:var(--ink);border-radius:999px;padding:7px 15px;font-size:14px;font-weight:520;cursor:pointer;text-decoration:none;white-space:nowrap;transition:box-shadow .15s ease,transform .15s ease,border-color .15s ease}.pill:hover{border-color:#d9d4ee;box-shadow:0 3px 10px rgba(38,33,74,.08)}.pill.active,.pill.primary{background:var(--ink);color:#fff;border-color:var(--ink)}.pill.primary:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(25,25,38,.25)}.pill:disabled{opacity:.5;cursor:default;transform:none;box-shadow:none}.pill:focus-visible{outline:2px solid var(--mode-accent,var(--blue));outline-offset:2px}.mode-work{--mode-accent:var(--blue)}.mode-life{--mode-accent:var(--green)}.mode-switch{display:inline-flex;border:1px solid var(--border);border-radius:999px;background:var(--card);padding:3px;box-shadow:var(--shadow)}.mode-switch button{border:0;background:transparent;border-radius:999px;padding:5px 15px;font-size:13px;font-weight:650;color:var(--muted);cursor:pointer}.mode-switch button.active{color:#fff}.mode-work .mode-switch button.active{background:linear-gradient(135deg,#8371f0,#6d5ce6)}.mode-life .mode-switch button.active{background:linear-gradient(135deg,#17c78e,#0ca678)}.chip{display:inline-flex;align-items:center;gap:6px;border:1px solid transparent;border-radius:999px;padding:3px 11px;font-size:12.5px;font-weight:570;background:#f0f0f4;color:var(--muted);cursor:default}.chip .dot{width:7px;height:7px;border-radius:50%;background:#9a9aab;flex:none}.chip.blue{color:var(--blue);background:var(--blue-soft)}.chip.blue .dot{background:var(--blue)}.chip.green{color:var(--green);background:var(--green-soft)}.chip.green .dot{background:var(--green)}.chip.amber{color:var(--amber);background:var(--amber-soft)}.chip.amber .dot{background:var(--amber)}.chip.red{color:var(--red);background:var(--red-soft)}.chip.red .dot{background:var(--red)}button.chip{cursor:pointer}button.chip:hover{filter:brightness(.97)}button.chip:focus-visible{outline:2px solid var(--mode-accent,var(--blue));outline-offset:2px}.input,select.input,textarea.input{width:100%;border:1px solid var(--border);border-radius:12px;background:var(--card);padding:9px 12px;font-size:14px}.input:focus-visible{outline:2px solid var(--mode-accent,var(--blue));outline-offset:1px}label.field{display:block;font-size:12.5px;font-weight:600;color:var(--muted);margin-bottom:12px}label.field .input{margin-top:4px;font-weight:400}table.data{width:100%;border-collapse:collapse;font-size:13.5px}table.data th{text-align:left;font-size:11.5px;font-weight:650;color:var(--faint);text-transform:uppercase;letter-spacing:.05em;padding:6px 8px}table.data td,table.data th{border-bottom:1px solid var(--border)}table.data td{padding:8px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}table.data tr:last-child td{border-bottom:0}table.data tr.clickable{cursor:pointer}table.data tr.clickable:hover td{background:#f7f5fd}@media (max-width:640px){.hide-sm{display:none}}.sheet-backdrop{position:fixed;inset:0;background:rgba(30,25,60,.4);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:50;padding:24px}.sheet{background:var(--surface);border-radius:24px;box-shadow:0 24px 60px rgba(30,25,60,.25);width:min(560px,100%);max-height:min(85dvh,100%);overflow-y:auto;padding:20px}.sheet h2{font-family:var(--sans)!important;font-weight:700!important;letter-spacing:-.02em}@media (max-width:640px){.sheet-backdrop{padding:0;align-items:stretch}.sheet{width:100%;max-height:none;border-radius:0;padding:16px 14px 40px}}.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;border-radius:999px;padding:9px 18px;font-size:13.5px;z-index:100;box-shadow:0 10px 30px rgba(25,25,38,.3);max-width:90vw}.toast.error{background:var(--red)}.row{display:flex;align-items:center;gap:10px}.row.between{justify-content:space-between}.row.wrap{flex-wrap:wrap}.grid-cards,.stack{display:grid;grid-gap:12px;gap:12px}.grid-cards{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.stat-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}.scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch}.pills-scroll{display:flex;gap:8px;overflow-x:auto;padding:4px;scrollbar-width:none}.pills-scroll::-webkit-scrollbar{display:none}.stat-value{font-size:26px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.15;letter-spacing:-.02em}.stat-label{font-size:12px;color:var(--muted);font-weight:550}.hero-figure{font-size:64px;font-weight:780;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1;letter-spacing:-.03em}.hero-panel{position:relative;overflow:hidden;border-radius:24px;padding:28px 20px;color:#fff;text-align:center;background:linear-gradient(135deg,#8f7bf5,#6d5ce6 55%,#5b48d6);box-shadow:0 14px 34px rgba(93,74,214,.35)}.hero-panel.green{background:linear-gradient(135deg,#2fd79b,#0ca678 60%,#0b8a63);box-shadow:0 14px 34px rgba(12,166,120,.3)}.hero-panel.amber{background:linear-gradient(135deg,#f6b352,#dd8a12 60%,#c07407);box-shadow:0 14px 34px rgba(221,138,18,.3)}.hero-panel.red{background:linear-gradient(135deg,#f2807f,#d13438 60%,#b52a2e);box-shadow:0 14px 34px rgba(209,52,56,.3)}.hero-panel:before{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140' viewBox='0 0 140 140'%3E%3Cpath d='M-10 35 q17 -26 35 0 t35 0 t35 0 t35 0 t35 0' stroke='rgba(255,255,255,0.13)' stroke-width='11' fill='none' stroke-linecap='round'/%3E%3Cpath d='M-10 105 q17 -26 35 0 t35 0 t35 0 t35 0 t35 0' stroke='rgba(255,255,255,0.08)' stroke-width='11' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-size:140px;pointer-events:none}.hero-panel>*{position:relative}.hero-panel.left{text-align:left;padding:20px}.hero-chip{gap:6px;padding:3px 12px;border-radius:999px;background:rgba(255,255,255,.22);font-size:12.5px;font-weight:620}.hero-chip,.icon-chip{display:inline-flex;align-items:center}.icon-chip{width:38px;height:38px;border-radius:12px;flex:none;justify-content:center;background:var(--blue-soft);color:var(--blue)}.icon-chip.green{background:var(--green-soft);color:var(--green)}.icon-chip.amber{background:var(--amber-soft);color:var(--amber)}.spinner{width:16px;height:16px;border-radius:50%;border:2px solid var(--border);border-top-color:var(--blue);animation:spin .8s linear infinite;display:inline-block;vertical-align:middle}@keyframes spin{to{transform:rotate(1turn)}}.empty{text-align:center;color:var(--muted);padding:36px 16px;font-size:14px}.empty .glyph{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:16px;background:var(--blue-soft);color:var(--blue);margin-bottom:10px}