:root{--void:#09090c;--surface:#111116;--surface-hover:#16161d;--raised:#181820;--raised-hover:#1f1f2a;--input:#14141a;--input-focus:#171722;--line:#ffffff12;--line-subtle:#ffffff09;--line-strong:#ffffff24;--line-bright:#ffffff3d;--text:#f4f4f7;--text-dim:#a1a1aa;--text-mute:#71717a;--text-subtle:#52525b;--accent:#ff4218;--accent-ink:#09090c;--accent-08:color-mix(in srgb, var(--accent) 8%, transparent);--accent-12:color-mix(in srgb, var(--accent) 12%, transparent);--accent-15:color-mix(in srgb, var(--accent) 15%, transparent);--accent-20:color-mix(in srgb, var(--accent) 20%, transparent);--accent-30:color-mix(in srgb, var(--accent) 30%, transparent);--accent-40:color-mix(in srgb, var(--accent) 40%, transparent);--accent-50:color-mix(in srgb, var(--accent) 50%, transparent);--accent-soft:color-mix(in srgb, var(--accent) 75%, #fff);--accent-glow:0 0 24px -2px color-mix(in srgb, var(--accent) 35%, transparent);--ok:#10b981;--ok-12:#10b9811f;--warning:#f59e0b;--r-panel:20px;--r-card:16px;--r-control:12px;--r-pill:9999px;--gap:22px;--pad-panel:24px;--shadow-sm:0 2px 8px -2px #0006;--shadow-md:0 10px 28px -6px #0000008c, 0 3px 10px -2px #00000059;--shadow-lg:0 20px 50px -10px #000000b3, 0 8px 20px -4px #00000080;--shadow-panel:0 14px 36px -8px #0000008c, inset 0 1px 0 0 #ffffff0d;--ease:cubic-bezier(.16, 1, .3, 1);--ease-out:cubic-bezier(.2, .8, .2, 1);--ease-bounce:cubic-bezier(.34, 1.56, .64, 1);--fast:.15s;--med:.26s;--slow:.45s;--font-sans:"Inter", "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-display:"Plus Jakarta Sans", "Inter", -apple-system, system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scrollbar-gutter:stable;scroll-behavior:smooth}body{background:radial-gradient(ellipse 90% 45% at 50% -10%, color-mix(in srgb, var(--accent) 7.5%, transparent) 0%, transparent 65%), var(--void);color:var(--text);font-family:var(--font-sans);font-synthesis-weight:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;margin:0;padding:20px 20px 56px;font-size:15.5px;line-height:1.55}img{max-width:100%;display:block}[hidden]{display:none!important}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none;padding:0}h1,h2,h3,h4{line-height:1.22;font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-weight:600}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}::selection{background:var(--accent-30);color:#fff}*{scrollbar-width:thin;scrollbar-color:#ffffff29 transparent}::-webkit-scrollbar{width:7px;height:7px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{border-radius:var(--r-pill);transition:background-color var(--fast) var(--ease);background:#ffffff24}::-webkit-scrollbar-thumb:hover{background:#ffffff40}.container{max-width:1240px;margin:0 auto}.main-content{animation:pageFadeIn var(--med) var(--ease) both}@keyframes pageFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.skip-link{background:var(--accent);color:var(--accent-ink);border-radius:var(--r-control);z-index:3000;box-shadow:var(--shadow-md);transition:left var(--fast) var(--ease);padding:10px 18px;font-weight:600;position:absolute;top:0;left:-9999px}.skip-link:focus{top:20px;left:20px}.app-header{z-index:900;-webkit-backdrop-filter:blur(20px)saturate(180%);border:1px solid var(--line);border-radius:var(--r-panel);box-shadow:var(--shadow-md);transition:border-color var(--med) var(--ease), box-shadow var(--med) var(--ease);background:#111116b8;align-items:center;gap:16px;margin-bottom:28px;padding:10px 16px;display:flex;position:sticky;top:14px}.app-header:hover{border-color:var(--line-strong)}.user-info{min-width:0;color:inherit;border-radius:var(--r-control);transition:background-color var(--fast) var(--ease);flex:1 1 0;align-items:center;gap:12px;margin:-4px -8px;padding:4px 8px;text-decoration:none;display:flex}.user-info:hover{background-color:var(--line-subtle)}.profile-pic{object-fit:cover;background:var(--raised);border:2px solid var(--void);width:40px;height:40px;box-shadow:0 0 0 2px var(--accent-30);transition:transform var(--fast) var(--ease-bounce), box-shadow var(--fast) var(--ease);border-radius:50%;flex:none}.user-info:hover .profile-pic{box-shadow:0 0 0 2px var(--accent), var(--accent-glow);transform:scale(1.05)}.user-text{flex-direction:column;min-width:0;display:flex}.user-greeting{color:var(--text-mute);letter-spacing:.02em;text-transform:uppercase;font-size:.72rem;font-weight:500;line-height:1.25;display:block}.username-display{letter-spacing:-.015em;white-space:nowrap;text-overflow:ellipsis;color:var(--text);font-size:.95rem;font-weight:600;display:block;overflow:hidden}.main-nav{border:1px solid var(--line-subtle);border-radius:var(--r-pill);background:#ffffff06;flex:none;align-items:center;gap:4px;padding:4px;display:flex}.main-nav a{color:var(--text-dim);border-radius:var(--r-pill);transition:color var(--fast) var(--ease), background-color var(--fast) var(--ease), border-color var(--fast) var(--ease), transform var(--fast) var(--ease);border:1px solid #0000;align-items:center;gap:7px;padding:7px 15px;font-size:.88rem;font-weight:500;text-decoration:none;display:inline-flex}.main-nav a svg{opacity:.75;width:15px;height:15px;transition:transform var(--fast) var(--ease), opacity var(--fast) var(--ease)}.main-nav a:hover{color:var(--text);background:#ffffff0d;transform:translateY(-.5px)}.main-nav a:hover svg{opacity:1;transform:scale(1.08)}.main-nav a.active{color:var(--text);background:var(--accent-15);border-color:var(--accent-30);box-shadow:0 2px 10px -2px var(--accent-20);font-weight:600}.main-nav a.active svg{color:var(--accent);opacity:1}.settings{flex:1 1 0;justify-content:flex-end;display:flex}.settings a{color:var(--text-dim);border-radius:var(--r-pill);transition:color var(--fast) var(--ease), background-color var(--fast) var(--ease), border-color var(--fast) var(--ease);border:1px solid #0000;align-items:center;gap:8px;padding:7px 14px;font-size:.88rem;font-weight:500;text-decoration:none;display:inline-flex}.settings a svg{width:17px;height:17px;transition:transform var(--med) var(--ease-bounce)}.settings a:hover{color:var(--text);border-color:var(--line);background:#ffffff0d}.settings a:hover svg{color:var(--accent);transform:rotate(45deg)}.settings a.active{color:var(--text);background:var(--accent-15);border-color:var(--accent-30)}.settings a.active svg{color:var(--accent)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-panel);padding:var(--pad-panel);box-shadow:var(--shadow-panel);transition:border-color var(--fast) var(--ease), box-shadow var(--fast) var(--ease)}.panel-head{justify-content:space-between;align-items:center;gap:14px;margin-bottom:20px;display:flex}h2{color:var(--text);margin:0;font-size:1.15rem}.panel-head h2{align-items:center;gap:10px;display:flex}.count-pill{font-variant-numeric:tabular-nums;color:var(--accent);background:var(--accent-12);border:1px solid var(--accent-20);border-radius:var(--r-pill);box-shadow:0 0 10px -2px var(--accent-12);transition:all var(--fast) var(--ease);padding:2px 9px;font-size:.75rem;font-weight:600}.count-pill.is-empty{color:var(--text-mute);background:var(--raised);box-shadow:none;border-color:#0000}.btn{border-radius:var(--r-control);letter-spacing:-.01em;-webkit-user-select:none;user-select:none;transition:background-color var(--fast) var(--ease), color var(--fast) var(--ease), border-color var(--fast) var(--ease), box-shadow var(--fast) var(--ease), transform var(--fast) var(--ease-bounce), opacity var(--fast) var(--ease);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:10px 20px;font-size:.92rem;font-weight:600;text-decoration:none;display:inline-flex;position:relative}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.42;cursor:not-allowed;transform:none!important}.btn svg{width:16px;height:16px}.btn-primary{background:var(--accent);color:var(--accent-ink);box-shadow:0 3px 14px -2px var(--accent-40), inset 0 1px 0 0 #ffffff47}.btn-primary:hover:not(:disabled){background:var(--accent-soft);box-shadow:0 5px 20px -1px var(--accent-50), inset 0 1px 0 0 #ffffff59;transform:translateY(-1px)}.btn-outline{border-color:var(--line-strong);color:var(--text);background:#ffffff05}.btn-outline:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:var(--accent-12);box-shadow:0 0 14px -2px var(--accent-20);transform:translateY(-1px)}.btn-quiet{background:var(--raised);color:var(--text-dim);border-color:var(--line)}.btn-quiet:hover:not(:disabled){color:var(--text);background:var(--raised-hover);border-color:var(--line-strong);transform:translateY(-1px)}.btn-danger{color:#fff;background:#ef4444;box-shadow:0 3px 14px -2px #ef444466}.btn-danger:hover:not(:disabled){background:#f87171;transform:translateY(-1px)}.btn-block{width:100%}.input-group{margin-bottom:18px}.input-group:last-of-type{margin-bottom:0}.input-group label,.field-label{color:var(--text-dim);margin-bottom:7px;font-size:.86rem;font-weight:500;display:block}.input-group input,.input-group textarea,.field{background:var(--input);border:1px solid var(--line);border-radius:var(--r-control);width:100%;color:var(--text);transition:border-color var(--fast) var(--ease), background-color var(--fast) var(--ease), box-shadow var(--fast) var(--ease);padding:11px 14px;font-size:.94rem}.input-group textarea{resize:vertical;min-height:86px;line-height:1.5}.input-group input::placeholder,.input-group textarea::placeholder,.field::placeholder{color:var(--text-mute)}.input-group input:focus,.input-group textarea:focus,.field:focus{border-color:var(--accent);background:var(--input-focus);box-shadow:0 0 0 3px var(--accent-20), 0 2px 8px #00000059;outline:none}.hint{color:var(--text-mute);margin:8px 0 0;font-size:.82rem}.search{flex:200px;max-width:280px;position:relative}.search svg{width:15px;height:15px;color:var(--text-mute);pointer-events:none;transition:color var(--fast) var(--ease);position:absolute;top:50%;left:12px;transform:translateY(-50%)}.search input{background:var(--raised);border:1px solid var(--line);border-radius:var(--r-pill);width:100%;color:var(--text);transition:border-color var(--fast) var(--ease), background-color var(--fast) var(--ease), box-shadow var(--fast) var(--ease);padding:8px 14px 8px 36px;font-size:.88rem}.search input:focus{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px var(--accent-15);outline:none}.search input:focus+svg,.search:focus-within svg{color:var(--accent)}.chips{gap:6px;display:flex}.chip{border-radius:var(--r-pill);border:1px solid var(--line);color:var(--text-dim);transition:color var(--fast) var(--ease), background-color var(--fast) var(--ease), border-color var(--fast) var(--ease), transform var(--fast) var(--ease);background:#ffffff05;padding:6px 14px;font-size:.83rem;font-weight:500}.chip:hover{color:var(--text);border-color:var(--line-strong);background:#ffffff0d}.chip[aria-pressed=true]{background:var(--accent-15);border-color:var(--accent-40);color:var(--accent);box-shadow:0 0 10px -2px var(--accent-20);font-weight:600}.empty{text-align:center;color:var(--text-mute);flex-direction:column;justify-content:center;align-items:center;padding:48px 24px;display:flex}.empty svg{width:40px;height:40px;color:var(--text-subtle);margin-bottom:14px}.empty strong{color:var(--text-dim);margin-bottom:6px;font-size:1.05rem;font-weight:600;display:block}.empty span{color:var(--text-mute);font-size:.9rem}.dashboard-layout{gap:var(--gap);grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:start;display:grid}.left-panel,.right-panel{gap:var(--gap);flex-direction:column;min-width:0;display:flex}.timer-section{text-align:center;background:radial-gradient(circle at 50% 30%, color-mix(in srgb, var(--accent) 7%, transparent) 0%, transparent 60%), var(--surface);padding:30px 24px 26px;position:relative;overflow:hidden}.timer-selector{justify-content:center;align-items:center;gap:14px;display:flex}.time-arrow{background:var(--raised);border:1px solid var(--line);color:var(--text-mute);width:38px;height:38px;transition:color var(--fast) var(--ease), border-color var(--fast) var(--ease), background-color var(--fast) var(--ease), transform var(--fast) var(--ease-bounce), box-shadow var(--fast) var(--ease);border-radius:50%;place-items:center;font-size:1.8rem;font-weight:300;line-height:1;display:grid}.time-arrow:hover{color:var(--accent);border-color:var(--accent-30);background:var(--raised-hover);box-shadow:0 0 16px -2px var(--accent-20);transform:scale(1.12)}.time-arrow:active{transform:scale(.94)}.time-arrow:disabled{opacity:.25;cursor:not-allowed;box-shadow:none;transform:none}.timer-ring{flex:none;place-items:center;width:272px;height:272px;display:grid;position:relative}.timer-ring svg{width:100%;height:100%;overflow:visible;transform:rotate(-90deg)}.ring-track{fill:none;stroke:#ffffff0d;stroke-width:6.5px}.ring-progress{fill:none;stroke:var(--accent);stroke-width:6.5px;stroke-linecap:round;filter:drop-shadow(0 0 14px var(--accent-40));transition:stroke-dashoffset .3s linear}.timer-ring.is-running .ring-progress{transition:stroke-dashoffset 1s linear}.timer-ring.is-seeking .ring-progress{transition:stroke-dashoffset var(--med) var(--ease)}.timer-face{z-index:2;flex-direction:column;justify-content:center;align-items:center;gap:4px;display:flex;position:absolute;inset:0}#timer-display{font-family:var(--font-display);font-variant-numeric:tabular-nums;letter-spacing:-.035em;color:var(--text);transition:opacity var(--fast) var(--ease), transform var(--fast) var(--ease);font-size:3.6rem;font-weight:700;line-height:1}#timer-display.fade-out{opacity:0;transform:scale(.96)}#timer-display.is-long{letter-spacing:-.02em;font-size:2.45rem}.timer-label{color:var(--text-mute);transition:opacity var(--fast) var(--ease);font-size:.88rem;font-weight:500}.timer-label.fade-out{opacity:0}.timer-ring.is-running:after{content:"";background:radial-gradient(circle, var(--accent-15), transparent 70%);animation:breatheGlow 4.5s var(--ease) infinite;pointer-events:none;border-radius:50%;position:absolute;inset:12px}@keyframes breatheGlow{0%,to{opacity:.35;transform:scale(.94)}50%{opacity:.95;transform:scale(1.02)}}.timer-ring.is-done .ring-progress{animation:.6s ease-in-out 3 flashDone}@keyframes flashDone{0%,to{opacity:1}50%{opacity:.2}}.preset-dots{justify-content:center;align-items:center;gap:8px;margin:16px 0 20px;display:flex}.preset-dots button{width:8px;height:8px;transition:background-color var(--fast) var(--ease), width var(--med) var(--ease-bounce), border-radius var(--fast) var(--ease), box-shadow var(--fast) var(--ease);background:#ffffff29;border:none;border-radius:50%;padding:0}.preset-dots button:hover{background:#ffffff59}.preset-dots button[aria-current=true]{background:var(--accent);border-radius:var(--r-pill);width:24px;box-shadow:0 0 12px var(--accent-40)}.timer-controls{justify-content:center;gap:12px;display:flex}.timer-controls .btn{min-width:136px;padding:12px 24px}.timer-hint{color:var(--text-mute);margin:18px 0 0;font-size:.8rem}.timer-hint kbd{background:var(--raised);border:1px solid var(--line);color:var(--text-dim);border-bottom-width:2px;border-radius:6px;padding:2px 7px;font-family:inherit;font-size:.74rem}.stats-panel{padding:0;overflow:hidden}.stat-strip{grid-template-columns:repeat(4,1fr);display:grid}.stat{border-right:1px solid var(--line);text-align:center;transition:background-color var(--fast) var(--ease);padding:20px 16px}.stat:last-child{border-right:none}.stat:hover{background:#ffffff04}.stat b{font-family:var(--font-display);font-variant-numeric:tabular-nums;letter-spacing:-.03em;color:var(--text);font-size:1.55rem;font-weight:700;line-height:1.15;display:block}.stat span{color:var(--text-mute);text-transform:uppercase;letter-spacing:.04em;margin-top:4px;font-size:.76rem;font-weight:500;display:block}.stat.is-hot b{color:var(--accent);text-shadow:0 0 20px var(--accent-30)}.week{border-top:1px solid var(--line);background:#00000026;padding:20px 22px 18px}.week-head{justify-content:space-between;align-items:baseline;margin-bottom:14px;display:flex}.week-head h3{color:var(--text-dim);font-size:.92rem;font-weight:600}.week-head em{color:var(--text-mute);font-variant-numeric:tabular-nums;font-size:.8rem;font-style:normal}.week-chart{grid-template-columns:repeat(7,1fr);align-items:end;gap:10px;height:90px;display:grid}.week-day{cursor:default;flex-direction:column;justify-content:flex-end;align-items:center;gap:8px;height:100%;display:flex}.week-bar{width:100%;max-width:32px;min-height:4px;transition:background-color var(--fast) var(--ease), height var(--med) var(--ease), transform var(--fast) var(--ease-bounce);transform-origin:bottom;background:#ffffff14;border-radius:6px 6px 2px 2px}.week-day[data-has="1"] .week-bar{background:var(--accent-30)}.week-day[data-today="1"] .week-bar{background:var(--accent);box-shadow:0 0 14px var(--accent-30)}.week-day:hover .week-bar{background:var(--accent-soft);transform:scaleY(1.05)}.week-day small{color:var(--text-mute);text-transform:capitalize;font-size:.72rem;font-weight:500}.week-day[data-today="1"] small{color:var(--accent);font-weight:700}.sessions-list-section{flex-direction:column;min-height:0;display:flex}.sessions-toolbar{flex-wrap:wrap;gap:10px;margin-bottom:16px;display:flex}#sessions-list{flex-direction:column;gap:10px;max-height:520px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}#sessions-list li{background:var(--raised);border:1px solid var(--line);border-radius:var(--r-control);border-left:3.5px solid var(--accent);box-shadow:var(--shadow-sm);transition:background-color var(--fast) var(--ease), border-color var(--fast) var(--ease), transform var(--fast) var(--ease), box-shadow var(--fast) var(--ease);padding:14px 44px 14px 16px;position:relative}#sessions-list li:hover{background:var(--raised-hover);border-color:var(--line-strong);box-shadow:var(--shadow-md);transform:translate(3px)}.session-top{justify-content:space-between;align-items:baseline;gap:10px;display:flex}#sessions-list h3{overflow-wrap:anywhere;color:var(--text);margin:0;font-size:.98rem;font-weight:600}.session-time{font-variant-numeric:tabular-nums;color:var(--accent);background:var(--accent-12);border:1px solid var(--accent-20);border-radius:var(--r-pill);flex:none;padding:2px 9px;font-size:.78rem;font-weight:600}#sessions-list p{color:var(--text-dim);overflow-wrap:anywhere;margin:6px 0 0;font-size:.88rem;line-height:1.45}#sessions-list small{color:var(--text-mute);margin-top:8px;font-size:.76rem;display:block}.delete-session-btn{width:26px;height:26px;color:var(--text-mute);opacity:0;transition:color var(--fast) var(--ease), background-color var(--fast) var(--ease), opacity var(--fast) var(--ease), transform var(--fast) var(--ease);background:0 0;border:none;border-radius:7px;place-items:center;font-size:1.3rem;line-height:1;display:grid;position:absolute;top:10px;right:10px}#sessions-list li:hover .delete-session-btn,#sessions-list li:focus-within .delete-session-btn{opacity:1}.delete-session-btn:hover{color:#ef4444;background:#ef44441f;transform:scale(1.1)}.library-toolbar{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:24px;display:flex}.library-toolbar h1{margin-right:auto;font-size:1.6rem;font-weight:700}.library-toolbar .search{max-width:320px}.library-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:22px;display:grid}.block-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-panel);text-align:left;color:inherit;box-shadow:var(--shadow-sm);cursor:pointer;transition:transform var(--med) var(--ease), border-color var(--med) var(--ease), box-shadow var(--med) var(--ease);flex-direction:column;padding:0;display:flex;position:relative;overflow:hidden}.block-card:hover{border-color:var(--accent-40);box-shadow:var(--shadow-lg), 0 0 20px -4px var(--accent-15);transform:translateY(-4px)}.block-card-img{aspect-ratio:16/11;object-fit:cover;background:var(--raised);width:100%;transition:transform var(--slow) var(--ease)}.block-card:hover .block-card-img{transform:scale(1.05)}.block-card-body{border-top:1px solid var(--line);background:var(--surface);z-index:2;padding:12px 14px 14px;position:relative}.block-card-title{text-overflow:ellipsis;white-space:nowrap;color:var(--text);margin:0;font-size:.98rem;font-weight:600;overflow:hidden}.block-card-meta{color:var(--text-mute);margin-top:4px;font-size:.75rem;display:block}.card-tools{opacity:0;z-index:5;transition:opacity var(--fast) var(--ease), transform var(--fast) var(--ease);gap:6px;display:flex;position:absolute;top:10px;right:10px;transform:translateY(-4px)}.block-card:hover .card-tools,.block-card:focus-within .card-tools{opacity:1;transform:translateY(0)}.card-tools button{border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);width:32px;height:32px;color:var(--text-dim);transition:background-color var(--fast) var(--ease), color var(--fast) var(--ease), border-color var(--fast) var(--ease), transform var(--fast) var(--ease-bounce);background:#0a0a0ec7;border-radius:8px;place-items:center;display:grid}.card-tools button svg{width:15px;height:15px}.card-tools button:hover{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);transform:scale(1.1)}.add-new-card{border:1.5px dashed var(--line-strong);border-radius:var(--r-panel);min-height:220px;color:var(--text-mute);transition:color var(--fast) var(--ease), border-color var(--fast) var(--ease), background-color var(--fast) var(--ease), transform var(--fast) var(--ease);background:#ffffff04;flex-direction:column;justify-content:center;align-items:center;gap:8px;font-size:.92rem;font-weight:500;display:flex}.add-new-card svg{width:28px;height:28px;transition:transform var(--med) var(--ease-bounce)}.add-new-card:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-08);transform:translateY(-3px)}.add-new-card:hover svg{transform:scale(1.15)rotate(90deg)}dialog.modal{width:100%;max-width:min(520px,100vw - 32px);color:var(--text);background:0 0;border:none;max-height:calc(100dvh - 48px);padding:0;overflow:auto}dialog.modal::backdrop{-webkit-backdrop-filter:blur(10px);animation:backdropFade var(--med) var(--ease);background:#050508b8}@keyframes backdropFade{0%{opacity:0}to{opacity:1}}.modal-card{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-panel);box-shadow:var(--shadow-lg), 0 0 30px #0009;margin:0;padding:28px;position:relative}dialog.modal[open]{animation:modalPopIn var(--med) var(--ease)}@keyframes modalPopIn{0%{opacity:0;transform:translateY(14px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-card h2,.modal-card h3{margin:0 0 6px;font-size:1.25rem}.modal-card>p{color:var(--text-dim);margin:0 0 20px;font-size:.92rem}.close-modal-btn{width:32px;height:32px;color:var(--text-mute);transition:color var(--fast) var(--ease), background-color var(--fast) var(--ease), transform var(--fast) var(--ease);background:0 0;border:none;border-radius:8px;place-items:center;font-size:1.5rem;line-height:1;display:grid;position:absolute;top:14px;right:14px}.close-modal-btn:hover{color:var(--text);background:var(--raised);transform:scale(1.08)}.modal-actions{justify-content:flex-end;gap:10px;margin-top:24px;display:flex}.block-pic-preview-container{aspect-ratio:16/9;border:1.5px dashed var(--line-strong);border-radius:var(--r-control);cursor:pointer;background:var(--raised);width:100%;transition:border-color var(--fast) var(--ease), background-color var(--fast) var(--ease);place-items:center;display:grid;position:relative;overflow:hidden}.block-pic-preview-container:hover{border-color:var(--accent);background:var(--accent-08)}.block-pic-preview-container span{color:var(--text-mute);font-size:.88rem}.block-pic-preview-container.has-image span{display:none}.block-pic-preview-container.has-image{border-style:solid;border-color:var(--line)}#block-pic-preview{object-fit:cover;width:100%;height:100%}.block-pic-preview-container:not(.has-image) #block-pic-preview{display:none}.editor-container{padding:24px 28px}.editor-header{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:18px;padding-bottom:18px;display:flex}.editor-back{color:var(--text-mute);transition:color var(--fast) var(--ease), transform var(--fast) var(--ease);align-items:center;gap:6px;margin-bottom:6px;font-size:.84rem;font-weight:500;text-decoration:none;display:inline-flex}.editor-back svg{width:14px;height:14px;transition:transform var(--fast) var(--ease)}.editor-back:hover{color:var(--accent);transform:translate(-3px)}#block-title{overflow-wrap:anywhere;margin:0;font-size:1.6rem;font-weight:700}.editor-actions{align-items:center;gap:14px;display:flex}.save-state{color:var(--text-mute);text-align:right;min-width:96px;transition:color var(--fast) var(--ease);justify-content:flex-end;align-items:center;gap:6px;font-size:.84rem;font-weight:500;display:inline-flex}.save-state:before{content:"";opacity:.8;background:currentColor;border-radius:50%;width:6px;height:6px}.save-state[data-state=dirty]{color:var(--accent)}.save-state[data-state=saved]{color:var(--ok)}.save-state[data-state=saving]:before{animation:1s infinite pulseBreathe}.editor-foot{color:var(--text-mute);justify-content:space-between;gap:12px;margin-top:14px;font-size:.8rem;display:flex}.ql-toolbar.ql-snow{background:var(--raised);border-radius:var(--r-control) var(--r-control) 0 0;padding:10px 12px;border:1px solid var(--line)!important;border-bottom:none!important}.ql-container.ql-snow{border-radius:0 0 var(--r-control) var(--r-control);color:var(--text);background:#141418;font-family:inherit;font-size:1rem;border:1px solid var(--line)!important}.ql-editor{min-height:52vh;max-height:62vh;padding:22px 24px;line-height:1.75}.ql-snow .ql-editor.ql-blank:before{color:var(--text-mute);font-style:normal}.ql-editor h1,.ql-editor h2,.ql-editor h3{color:var(--text);margin:1.2em 0 .5em}.ql-editor p{margin-bottom:.8em}.ql-editor img{border-radius:10px}.ql-editor blockquote{border-left:3px solid var(--accent);color:var(--text-dim);padding-left:16px}.ql-editor pre.ql-syntax,.ql-editor .ql-code-block-container{border:1px solid var(--line);color:#e4e4e7;background:#0d0d11;border-radius:8px}.ql-snow .ql-stroke{stroke:var(--text-dim)}.ql-snow .ql-fill{fill:var(--text-dim)}.ql-snow .ql-picker-label{color:var(--text-dim)}.ql-snow.ql-toolbar button,.ql-snow.ql-toolbar .ql-picker-label{transition:background-color var(--fast) var(--ease);border-radius:6px}.ql-snow.ql-toolbar button:hover,.ql-snow.ql-toolbar .ql-picker-label:hover{background:#ffffff14}.ql-snow.ql-toolbar button:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke{stroke:var(--accent)}.ql-snow.ql-toolbar button:hover .ql-fill{fill:var(--accent)}.ql-snow.ql-toolbar button.ql-active{background:var(--accent-20)}.ql-snow.ql-toolbar button.ql-active .ql-stroke{stroke:var(--accent)}.ql-snow.ql-toolbar button.ql-active .ql-fill{fill:var(--accent)}.ql-snow .ql-picker-options{background:var(--raised);box-shadow:var(--shadow-md);border-radius:8px;padding:6px;border:1px solid var(--line-strong)!important}.ql-snow .ql-picker-options .ql-picker-item{border-radius:5px;padding:4px 8px}.ql-snow .ql-picker-options .ql-picker-item:hover{background:var(--accent);color:var(--accent-ink)}.ql-snow .ql-picker.ql-expanded .ql-picker-label{color:var(--accent);border-color:#0000}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke{stroke:var(--accent)}.ql-snow .ql-tooltip{background:var(--raised);border:1px solid var(--line-strong);box-shadow:var(--shadow-md);color:var(--text);border-radius:8px}.ql-snow .ql-tooltip input[type=text]{background:var(--input);border:1px solid var(--line);color:var(--text);border-radius:6px}.ql-snow .ql-tooltip a.ql-action,.ql-snow .ql-tooltip a.ql-remove{color:var(--accent)}.settings-panel{gap:var(--gap);flex-direction:column;max-width:860px;margin:0 auto;display:flex}.settings-block{padding:26px}.settings-block h2{margin-bottom:4px}.settings-block>p.hint{margin:0 0 20px}.identity{flex-wrap:wrap;align-items:center;gap:28px;display:flex}.profile-pic-preview-container{background:var(--raised);border:3px solid var(--surface);width:120px;height:120px;box-shadow:0 0 0 3px var(--accent), var(--accent-glow);transition:transform var(--fast) var(--ease-bounce);border-radius:50%;flex:none;place-items:center;display:grid;overflow:hidden}.profile-pic-preview-container:hover{transform:scale(1.04)}#profile-pic-preview{object-fit:cover;width:100%;height:100%}.identity-fields{flex:260px;min-width:0}.pic-actions{flex-wrap:wrap;gap:10px;margin-top:14px;display:flex}.pic-actions .btn{padding:8px 16px;font-size:.88rem}.accent-row{flex-wrap:wrap;gap:12px;display:flex}.swatch{width:38px;height:38px;box-shadow:var(--shadow-sm);transition:transform var(--fast) var(--ease-bounce), border-color var(--fast) var(--ease), box-shadow var(--fast) var(--ease);border:3px solid #0000;border-radius:50%;padding:0}.swatch:hover{transform:scale(1.15);box-shadow:0 0 16px}.swatch[aria-pressed=true]{border-color:#fff;transform:scale(1.12);box-shadow:0 0 18px}.toggle-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:16px 0;display:flex}.toggle-row:last-child{border-bottom:none;padding-bottom:0}.toggle-row:first-of-type{padding-top:0}.toggle-row strong{color:var(--text);font-size:.96rem;font-weight:600;display:block}.toggle-row span{color:var(--text-mute);margin-top:2px;font-size:.84rem;display:block}.switch{border-radius:var(--r-pill);border:1px solid var(--line);cursor:pointer;width:48px;height:28px;transition:background-color var(--fast) var(--ease), border-color var(--fast) var(--ease), box-shadow var(--fast) var(--ease);background:#27272a;flex:none;position:relative}.switch:after{content:"";width:20px;height:20px;transition:transform var(--med) var(--ease-bounce), background-color var(--fast) var(--ease);background:#a1a1aa;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 2px 6px #0006}.switch[aria-pressed=true]{background:var(--accent);border-color:var(--accent);box-shadow:0 0 14px var(--accent-30)}.switch[aria-pressed=true]:after{background:var(--accent-ink);transform:translate(20px)}.storage-meter{border-radius:var(--r-pill);background:var(--raised);height:6px;margin:12px 0 8px;overflow:hidden}.storage-meter i{border-radius:var(--r-pill);background:var(--accent);height:100%;transition:width var(--med) var(--ease);display:block}.data-actions{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}.action-buttons{justify-content:flex-end;gap:12px;display:flex}#toast-container{z-index:3000;pointer-events:none;flex-direction:column;gap:10px;display:flex;position:fixed;top:20px;right:20px}.toast{pointer-events:auto;cursor:pointer;-webkit-backdrop-filter:blur(16px);border:1px solid var(--line-strong);border-left:3.5px solid var(--ok);color:var(--text);border-radius:var(--r-control);box-shadow:var(--shadow-lg), 0 0 20px #0006;opacity:0;max-width:340px;transition:opacity var(--med) var(--ease), transform var(--med) var(--ease-bounce);background:#181820e0;align-items:center;gap:10px;padding:12px 18px;font-size:.92rem;font-weight:500;display:flex;transform:translate(120%)scale(.96)}.toast.error{border-left-color:#ef4444}.toast.visible{opacity:1;transform:translate(0)scale(1)}.journal-layout{gap:var(--gap);grid-template-columns:280px minmax(0,1fr);align-items:start;display:grid}.vault{border:1px solid var(--line);border-radius:var(--r-panel);max-height:calc(100vh - 124px);box-shadow:var(--shadow-panel);background:#101015;flex-direction:column;gap:14px;padding:18px;display:flex;position:sticky;top:96px}.vault-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.vault-head h2{font-size:1.1rem}.vault-head .btn{padding:6px 14px;font-size:.84rem}.calendar{border-top:1px solid var(--line);padding-top:14px}.calendar-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.calendar-head strong{color:var(--text-dim);font-size:.86rem;font-weight:600}.cal-nav{border:1px solid var(--line);background:var(--raised);width:26px;height:26px;color:var(--text-mute);transition:color var(--fast) var(--ease), background-color var(--fast) var(--ease), transform var(--fast) var(--ease);border-radius:7px;place-items:center;font-size:1.1rem;line-height:1;display:grid}.cal-nav:hover{color:var(--accent);background:var(--raised-hover);transform:scale(1.08)}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:3px;display:grid}.cal-weekday{text-align:center;color:var(--text-mute);padding-bottom:6px;font-size:.68rem;font-weight:600}.cal-day{aspect-ratio:1;color:var(--text-mute);font-variant-numeric:tabular-nums;transition:background-color var(--fast) var(--ease), color var(--fast) var(--ease), transform var(--fast) var(--ease);background:0 0;border:none;border-radius:8px;place-items:center;font-size:.78rem;display:grid;position:relative}.cal-day:hover{background:var(--raised);color:var(--text);transform:scale(1.08)}.cal-day.has-entry{color:var(--text);font-weight:600}.cal-day.has-entry:after{content:"";background:var(--accent);border-radius:50%;width:4px;height:4px;position:absolute;bottom:3px}.cal-day.is-today{box-shadow:inset 0 0 0 1.5px var(--accent-40);color:var(--accent);font-weight:600}.cal-day.is-active{background:var(--accent);color:var(--accent-ink);box-shadow:0 0 12px var(--accent-40);font-weight:700}.cal-day.is-active:after{background:var(--accent-ink)}.vault-search input{background:var(--input)}.tag-bar{flex-wrap:wrap;gap:6px;max-height:84px;display:flex;overflow-y:auto}.tag-pill{border:1px solid var(--line);color:var(--text-dim);border-radius:var(--r-pill);transition:color var(--fast) var(--ease), border-color var(--fast) var(--ease), background-color var(--fast) var(--ease);background:#ffffff05;padding:3px 10px;font-size:.76rem}.tag-pill em{color:var(--text-mute);margin-left:3px;font-style:normal}.tag-pill:hover{color:var(--text);border-color:var(--line-strong)}.tag-pill[aria-pressed=true]{background:var(--accent-15);border-color:var(--accent-40);color:var(--accent)}.tag-pill[aria-pressed=true] em{color:var(--accent)}.vault-list{border-top:1px solid var(--line);flex-direction:column;flex:1;gap:3px;min-height:90px;margin-right:-4px;padding-top:12px;padding-right:4px;display:flex;overflow-y:auto}.vault-month{color:var(--text-mute);text-transform:uppercase;letter-spacing:.05em;padding:10px 8px 4px;font-size:.72rem;font-weight:600}.vault-month:first-child{padding-top:0}.entry-item{text-align:left;width:100%;color:var(--text-dim);transition:background-color var(--fast) var(--ease), color var(--fast) var(--ease), transform var(--fast) var(--ease);background:0 0;border:none;border-radius:9px;padding:8px 10px;display:block}.entry-item:hover{background:var(--raised);color:var(--text);transform:translate(2px)}.entry-item.is-active{background:var(--accent-15);color:var(--accent)}.entry-line{justify-content:space-between;align-items:center;gap:8px;display:flex}.entry-item strong{font-size:.86rem;font-weight:600}.entry-mood{font-size:.92rem;line-height:1}.entry-item em{color:var(--text-mute);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:.76rem;font-style:normal;display:block;overflow:hidden}.entry-item.is-active em{color:color-mix(in srgb, var(--accent) 70%, var(--text-mute))}.vault-empty{color:var(--text-mute);margin:0;padding:18px 6px;font-size:.84rem}.vault-foot{color:var(--text-mute);border-top:1px solid var(--line);margin:0;padding-top:12px;font-size:.75rem}.note{flex-direction:column;min-height:60vh;padding:24px 28px;display:flex}.note-empty{text-align:center;color:var(--text-mute);flex-direction:column;align-items:center;gap:8px;margin:auto;padding:60px 20px;display:flex}.note-empty strong{color:var(--text-dim);font-size:1.1rem}.note-empty span{font-size:.92rem}.note-empty .btn{margin-top:16px}.note-pane{flex-direction:column;flex:1;min-height:0;display:flex}.note-head{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;padding-bottom:16px;display:flex}.note-file{font-family:var(--font-mono);color:var(--text-mute);letter-spacing:-.01em;font-size:.78rem;display:block}.note-head h2{margin-top:3px;font-size:1.35rem}.note-actions{align-items:center;gap:10px;display:flex}.mode-switch{background:var(--raised);border:1px solid var(--line);border-radius:var(--r-control);gap:2px;padding:3px;display:flex}.mode-switch button{color:var(--text-mute);transition:background-color var(--fast) var(--ease), color var(--fast) var(--ease), box-shadow var(--fast) var(--ease);background:0 0;border:none;border-radius:8px;padding:5px 12px;font-size:.84rem;font-weight:500}.mode-switch button:hover{color:var(--text)}.mode-switch button[aria-pressed=true]{background:var(--surface);color:var(--accent);box-shadow:var(--shadow-sm);font-weight:600}.icon-btn{border:1px solid var(--line);border-radius:var(--r-control);background:var(--raised);width:36px;height:36px;color:var(--text-dim);transition:color var(--fast) var(--ease), border-color var(--fast) var(--ease), transform var(--fast) var(--ease);place-items:center;display:grid}.icon-btn svg{width:17px;height:17px}.icon-btn:hover{color:var(--accent);border-color:var(--accent-40);transform:translateY(-1px)}.menu-wrap{position:relative}.menu{z-index:50;background:var(--raised);border:1px solid var(--line-strong);border-radius:var(--r-control);min-width:190px;box-shadow:var(--shadow-lg);animation:modalPopIn var(--fast) var(--ease);flex-direction:column;padding:6px;display:flex;position:absolute;top:calc(100% + 8px);right:0}.menu button{text-align:left;color:var(--text-dim);transition:background-color var(--fast) var(--ease), color var(--fast) var(--ease);background:0 0;border:none;border-radius:7px;padding:8px 12px;font-size:.88rem}.menu button:hover{background:var(--accent-15);color:var(--accent)}.mood-row{flex-wrap:wrap;gap:8px;padding:16px 0;display:flex}.mood{border:1px solid var(--line);border-radius:var(--r-pill);color:var(--text-mute);transition:border-color var(--fast) var(--ease), color var(--fast) var(--ease), background-color var(--fast) var(--ease), transform var(--fast) var(--ease-bounce);background:#ffffff05;align-items:center;gap:7px;padding:6px 13px 6px 10px;font-size:.82rem;display:inline-flex}.mood span{filter:grayscale();opacity:.65;transition:filter var(--fast) var(--ease), opacity var(--fast) var(--ease), transform var(--fast) var(--ease-bounce);font-size:1.05rem;line-height:1}.mood em{font-style:normal;font-weight:500}.mood:hover{color:var(--text);border-color:var(--line-strong);transform:translateY(-1px)}.mood:hover span{filter:none;opacity:1;transform:scale(1.15)}.mood[aria-pressed=true]{background:var(--accent-15);border-color:var(--accent-40);color:var(--accent);box-shadow:0 0 12px -2px var(--accent-20)}.mood[aria-pressed=true] span{filter:none;opacity:1;transform:scale(1.1)}.note-body{flex:1;gap:0;min-height:0;display:grid}.note-body[data-mode=edit] .md-preview,.note-body[data-mode=read] #note-editor{display:none}.note-body[data-mode=split]{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}#note-editor{resize:vertical;border:1px solid var(--line);border-radius:var(--r-control);width:100%;min-height:48vh;color:var(--text);tab-size:2;transition:border-color var(--fast) var(--ease), background-color var(--fast) var(--ease);background:#141418;padding:20px 22px;font-family:inherit;font-size:.98rem;line-height:1.75}#note-editor:focus{border-color:var(--accent-40);box-shadow:0 0 0 3px var(--accent-12);background:#16161c;outline:none}#note-editor::placeholder{color:var(--text-mute)}.note-body[data-mode=split] #note-editor{resize:none}.md-preview{border:1px solid var(--line);border-radius:var(--r-control);background:#141418;min-height:48vh;max-height:70vh;padding:20px 22px;line-height:1.75;overflow-y:auto}.note-foot{color:var(--text-mute);justify-content:space-between;gap:12px;padding-top:14px;font-size:.78rem;display:flex}.md-preview>:first-child{margin-top:0}.md-preview h1,.md-preview h2,.md-preview h3,.md-preview h4,.md-preview h5,.md-preview h6{color:var(--text);margin:1.4em 0 .5em;line-height:1.25}.md-preview h1{border-bottom:1px solid var(--line);padding-bottom:.3em;font-size:1.5rem}.md-preview h2{font-size:1.25rem}.md-preview h3{color:var(--text-dim);font-size:1.08rem}.md-preview p{margin:0 0 .9em}.md-preview ul,.md-preview ol{margin:0 0 .9em;padding-left:1.4em}.md-preview li{margin-bottom:.25em}.md-preview hr{border:none;border-top:1px solid var(--line);margin:1.8em 0}.md-preview a{color:var(--accent);-webkit-text-decoration-color:var(--accent-40);text-decoration-color:var(--accent-40);text-underline-offset:2px}.md-preview blockquote{border-left:3px solid var(--accent);color:var(--text-dim);margin:0 0 .9em;padding:4px 0 4px 16px}.md-preview code{font-family:var(--font-mono);border:1px solid var(--line);background:#0d0d11;border-radius:5px;padding:2px 6px;font-size:.88em}.md-preview pre.md-code{border:1px solid var(--line);background:#0d0d11;border-radius:8px;margin:0 0 1em;padding:14px 16px;overflow-x:auto}.md-preview pre.md-code code{background:0 0;border:none;padding:0;font-size:.86rem}.md-preview table{border-collapse:collapse;width:100%;margin:0 0 1em;font-size:.92rem;display:block;overflow-x:auto}.md-preview th,.md-preview td{border:1px solid var(--line);text-align:left;padding:8px 12px}.md-preview th{background:var(--raised);font-weight:600}.md-task{align-items:flex-start;gap:10px;margin-left:-1.4em;list-style:none;display:flex}.md-task input{accent-color:var(--accent);cursor:pointer;flex:none;margin-top:.38em}.md-task.is-done>span{color:var(--text-mute);text-decoration:line-through}.md-tag{background:var(--accent-15);color:var(--accent);border-radius:var(--r-pill);transition:background-color var(--fast) var(--ease);border:none;padding:2px 9px;font-size:.84em;font-weight:500}.md-tag:hover{background:var(--accent-25)}.md-wiki{color:var(--accent);border-bottom:1px dotted var(--accent-40);text-decoration:none}.md-wiki:hover{border-bottom-style:solid}.head-meta{color:var(--text-mute);white-space:nowrap;align-items:center;gap:8px;font-size:.82rem;display:inline-flex}#sessions-list .empty{background:0 0;border-left:none;padding:40px 12px;list-style:none}.library-grid .empty{grid-column:1/-1}.block-pic-preview-container.is-loading{opacity:.55;pointer-events:none}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=1000px){.dashboard-layout{grid-template-columns:1fr}#sessions-list{max-height:none}.journal-layout{grid-template-columns:1fr}.vault{max-height:none;position:static}.vault-list{max-height:240px}.note-body[data-mode=split]{grid-template-columns:1fr;gap:12px}.note-body[data-mode=split] #note-editor{resize:vertical}}@media (width<=720px){body{padding:12px 12px 40px}:root{--gap:16px;--pad-panel:18px}.app-header{flex-wrap:wrap;row-gap:10px;padding:10px 14px;top:8px}.user-info{flex:auto}.settings{flex:none}.settings a span{display:none}.main-nav{flex:1 0 100%;order:3;justify-content:space-around}.main-nav a{flex:1;justify-content:center;padding:8px 6px;font-size:.82rem}.timer-ring{width:220px;height:220px}#timer-display{font-size:2.8rem}#timer-display.is-long{font-size:1.85rem}.timer-controls{flex-direction:column}.timer-controls .btn{width:100%}.timer-hint{display:none}.stat-strip{grid-template-columns:repeat(2,1fr)}.stat:nth-child(2){border-right:none}.stat:nth-child(-n+2){border-bottom:1px solid var(--line)}.library-grid{grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:14px}.search{max-width:none}.editor-header{align-items:flex-start}.ql-editor{min-height:44vh}#toast-container{inset:auto 14px 14px}.toast{max-width:none;transform:translateY(120%)}.toast.visible{transform:translateY(0)}.note{padding:18px 16px}.note-head{align-items:flex-start}.note-actions{justify-content:space-between;width:100%}.mode-switch button{padding:5px 8px;font-size:.8rem}#note-editor,.md-preview{min-height:40vh;padding:14px 16px}.mood em{display:none}.mood{padding:6px 10px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.timer-ring.is-running:after{display:none}}@media print{.app-header,.timer-section,.editor-actions,#toast-container{display:none!important}body{color:#000;background:#fff;padding:0}.panel{border:1px solid #ccc}}.splash{min-height:65vh;color:var(--text-dim);letter-spacing:-.01em;animation:pulseBreathe 1.8s var(--ease) infinite;place-items:center;font-size:.95rem;font-weight:500;display:grid}@keyframes pulseBreathe{0%,to{opacity:.45;transform:scale(.98)}50%{opacity:1;transform:scale(1)}}.loading-line{text-align:center;color:var(--text-mute);animation:pulseBreathe 1.5s var(--ease) infinite;justify-content:center;align-items:center;gap:10px;padding:36px 12px;font-size:.9rem;display:flex}.auth{isolation:isolate;place-items:center;min-height:calc(100svh - 80px);padding:24px 16px;display:grid}.auth--screen{min-height:0;position:fixed;inset:0;overflow-y:auto}.auth-bg{z-index:-1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.auth-symbol{width:min(125vmin,1000px);height:auto;color:var(--accent);opacity:.1;-webkit-user-select:none;user-select:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@media (width<=640px){.auth-symbol{width:150vmin}}.auth-card{-webkit-backdrop-filter:blur(24px)saturate(180%);border:1px solid var(--line-strong);border-radius:var(--r-panel);width:min(440px,100%);box-shadow:var(--shadow-lg), 0 0 40px -10px #000000b3;animation:modalPopIn var(--med) var(--ease) both;background:#111116d9;padding:36px 32px}.auth-card h1{letter-spacing:-.03em;color:var(--text);margin-bottom:8px;font-size:1.7rem;font-weight:700}.auth-card>p{color:var(--text-dim);margin:0 0 24px;font-size:.92rem;line-height:1.5}.auth-card .btn-block{margin-top:24px;padding:12px;font-size:.96rem}.form-error{border-radius:var(--r-control);color:#fca5a5;animation:modalPopIn var(--fast) var(--ease);background:#ef44441f;border:1px solid #ef444459;align-items:center;gap:8px;margin:16px 0 0;padding:11px 15px;font-size:.88rem;display:flex}.form-info{border-radius:var(--r-control);background:var(--raised);border:1px solid var(--line-strong);color:var(--text-dim);animation:modalPopIn var(--fast) var(--ease);margin:16px 0 0;padding:11px 15px;font-size:.88rem;line-height:1.45}.pw-wrap{position:relative}.pw-wrap input{padding-right:88px}.pw-toggle{border-radius:var(--r-pill);color:var(--text-dim);cursor:pointer;transition:background-color var(--fast) var(--ease), color var(--fast) var(--ease);background:#ffffff0d;border:0;padding:5px 10px;font-size:.78rem;font-weight:500;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.pw-toggle:hover{color:var(--text);background:#ffffff1a}.account-line{background:var(--raised);border-radius:var(--r-control);border:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:12px 16px;display:flex}.account-line span{color:var(--text);overflow-wrap:anywhere;font-size:.94rem;font-weight:500}.tag-chip{--tag:var(--accent);border-radius:var(--r-pill);border:1px solid color-mix(in srgb, var(--tag) 40%, transparent);background:color-mix(in srgb, var(--tag) 12%, transparent);max-width:100%;color:var(--text);-webkit-user-select:none;user-select:none;transition:background-color var(--fast) var(--ease), border-color var(--fast) var(--ease), transform var(--fast) var(--ease), box-shadow var(--fast) var(--ease);align-items:center;gap:7px;padding:4px 12px;font-size:.82rem;font-weight:500;line-height:1.25;display:inline-flex}.tag-chip:before{content:"";background:var(--tag);width:7px;height:7px;box-shadow:0 0 8px var(--tag);border-radius:50%;flex:none}.tag-chip-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tag-chip.is-small{padding:2px 9px;font-size:.74rem}button.tag-chip{cursor:pointer}button.tag-chip:hover{border-color:var(--tag);background:color-mix(in srgb, var(--tag) 20%, transparent);box-shadow:0 0 12px -2px color-mix(in srgb, var(--tag) 35%, transparent);transform:translateY(-1px)}button.tag-chip[aria-pressed=true]{border-color:var(--tag);background:color-mix(in srgb, var(--tag) 32%, transparent);box-shadow:0 0 14px -1px color-mix(in srgb, var(--tag) 45%, transparent);font-weight:600}.tag-group{margin-top:18px}.field-label em{color:var(--text-mute);margin-left:4px;font-style:normal;font-weight:400}.tag-field{background:var(--input);border:1px solid var(--line);border-radius:var(--r-control);flex-wrap:wrap;align-items:center;gap:8px;min-height:36px;padding:6px 10px;display:flex}.tag-field-empty{color:var(--text-mute);font-size:.86rem}.tag-field-btn{border-radius:var(--r-pill);border:1px dashed var(--line-strong);color:var(--text-dim);cursor:pointer;transition:color var(--fast) var(--ease), border-color var(--fast) var(--ease), background-color var(--fast) var(--ease);background:0 0;padding:4px 12px;font-size:.8rem;font-weight:500}.tag-field-btn:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-08)}.tag-field-clear,.tag-del{width:22px;height:22px;color:var(--text-mute);cursor:pointer;transition:color var(--fast) var(--ease), background-color var(--fast) var(--ease), transform var(--fast) var(--ease);background:0 0;border:0;border-radius:50%;place-items:center;font-size:1.15rem;line-height:1;display:inline-grid}.tag-field-clear:hover,.tag-del:hover{color:#ef4444;background:#ef44441f;transform:scale(1.1)}dialog.tag-modal{max-width:min(440px,100vw - 32px)}.tag-list{flex-wrap:wrap;gap:8px 10px;max-height:200px;margin:0 0 20px;padding:4px;display:flex;overflow-y:auto}.tag-row{align-items:center;gap:4px;max-width:100%;display:inline-flex}.modal-card>p.tag-empty{color:var(--text-mute);margin:0 0 20px;font-size:.9rem}.tag-new{border-top:1px solid var(--line);gap:14px;padding-top:18px;display:grid}.tag-new .input-group{margin:0}#sessions-list .session-foot{flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px;display:flex}#sessions-list .session-foot small{margin:0;display:inline}.tag-filter{flex-wrap:wrap;gap:6px;margin:-4px 0 16px;padding-bottom:2px;display:flex}.offline-banner{border-radius:var(--r-control);color:#fbbf24;text-align:center;animation:modalPopIn var(--med) var(--ease);background:#f59e0b1f;border:1px solid #f59e0b59;margin:0 0 18px;padding:10px 18px;font-size:.88rem;font-weight:500}.vault-search{flex:none;max-width:none}.taghours .tag-filter{margin-top:0}.taghours-summary{border:1px solid var(--line);background:#00000026;border-radius:14px;grid-template-columns:repeat(3,minmax(0,1fr));display:grid;overflow:hidden}.taghours-summary .stat{padding:16px 8px}.taghours-summary .stat b{white-space:nowrap;font-size:clamp(1.05rem,4.2vw,1.4rem)}.taghours-yearhead{justify-content:space-between;align-items:center;gap:12px;margin:22px 0 12px;display:flex}.taghours-yearhead>div:first-child{flex-wrap:wrap;align-items:baseline;gap:4px 10px;display:flex}.taghours-yearhead h3{color:var(--text-dim);font-size:.92rem;font-weight:600}.taghours-yearhead em{color:var(--text-mute);font-variant-numeric:tabular-nums;font-size:.8rem;font-style:normal}.taghours-year{font-variant-numeric:tabular-nums;color:var(--text-dim);align-items:center;gap:8px;font-size:.88rem;font-weight:600;display:flex}.taghours-year .chip{padding:2px 11px;font-size:1rem;line-height:1.4}.taghours-year .chip:disabled{opacity:.35;cursor:default;pointer-events:none}.taghours-months{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.taghours-months li{border:1px solid var(--line);background:#ffffff05;border-radius:12px;padding:10px 12px 12px}.taghours-months small{color:var(--text-mute);font-size:.76rem;font-weight:500;display:block}.taghours-months b{font-family:var(--font-display);font-variant-numeric:tabular-nums;letter-spacing:-.02em;white-space:nowrap;color:var(--text);margin-top:2px;font-size:1.02rem;font-weight:700;display:block}.taghours-months i{border-radius:var(--r-pill);background:var(--line);height:3px;margin-top:9px;display:block;position:relative}.taghours-months i:after{content:"";width:calc(var(--p,0) * 100%);border-radius:inherit;background:var(--tag,var(--accent));box-shadow:0 0 8px var(--tag,var(--accent));transition:width var(--fast) var(--ease);position:absolute;top:0;bottom:0;left:0}.taghours-months li[data-empty="1"] b{color:var(--text-subtle)}.taghours-months li[data-future="1"]{opacity:.45}.taghours-months li[data-now="1"]{border-color:var(--accent-40)}.taghours-months li[data-now="1"] small{color:var(--accent)}@media (width<=720px){.taghours-months li{padding:9px 10px 11px}.taghours-months b{font-size:.92rem}}.invite-new{gap:10px;margin-top:14px;display:flex}.invite-new input{border-radius:var(--r-control);border:1px solid var(--line);background:var(--input);min-width:0;color:var(--text);flex:1;padding:10px 14px}.invite-new input::placeholder{color:var(--text-mute)}.invite-new input:focus{border-color:var(--accent-40);background:var(--input-focus);box-shadow:0 0 0 3px var(--accent-12);outline:none}.invite-list{margin:16px 0 0;padding:0;list-style:none}.invite-list li{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:12px 0;display:flex}.invite-info{gap:2px;min-width:0;display:grid}.invite-info strong{text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-size:.92rem;font-weight:600;overflow:hidden}.invite-info span{color:var(--text-mute);font-size:.8rem}.invite-list li[data-used="1"] .invite-info strong{color:var(--text-dim)}.invite-actions{flex:none;gap:6px;display:flex}@media (width<=720px){.invite-new{flex-direction:column}.invite-list li{flex-wrap:wrap}}
