*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--bg:#08060a;--surface:hsla(0,0%,100%,.038);--surface-2:hsla(0,0%,100%,.022);--surface-3:hsla(0,0%,100%,.012);--surface-input:rgba(0,0,0,.34);--border:hsla(0,0%,100%,.078);--border-mid:hsla(0,0%,100%,.16);--border-focus:hsla(0,0%,100%,.3);--text:#f4eff0;--text-sub:hsla(0,0%,100%,.52);--text-dim:hsla(0,0%,100%,.32);--text-placeholder:hsla(0,0%,100%,.3);--accent:#e5484d;--accent-bright:#ff5a5f;--accent-glow:rgba(229,72,77,.34);--accent-soft:rgba(229,72,77,.12);--accent-dim:rgba(229,72,77,.06);--btn-from:#ff6266;--btn-mid:#e5383d;--btn-to:#b21f25;--btn-text:#fff5f5;--btn-shine:hsla(0,0%,100%,.42);--success:rgba(118,216,162,.9);--error-tx:#f08a8f;--r:14px;--r-lg:18px;--r-2xl:28px;--font-sans:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",system-ui,sans-serif;--font-mono:"SF Mono","Fira Code",Menlo,Consolas,monospace;--ease:180ms cubic-bezier(0.25,0.46,0.45,0.94);--ease-slow:380ms cubic-bezier(0.25,0.46,0.45,0.94);--ease-enter:440ms cubic-bezier(0.22,1,0.36,1)}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{background-color:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:14px;line-height:1.55;overflow-x:hidden;background-image:radial-gradient(ellipse 110% 65% at 50% -6%,rgba(229,72,77,.16) 0,transparent 62%),radial-gradient(ellipse 52% 32% at 50% 0,rgba(255,110,115,.08) 0,transparent 42%),radial-gradient(ellipse 170% 65% at 50% 46%,rgba(150,30,38,.05) 0,transparent 72%),radial-gradient(ellipse 85% 58% at 50% 100%,rgba(70,14,20,.06) 0,transparent 62%);background-attachment:fixed}.shell,body{min-height:100dvh}.shell{width:100%;max-width:720px;margin:0 auto;padding:0 1.5rem 4rem;display:flex;flex-direction:column}.topbar{justify-content:space-between;padding:2.5rem 0 2rem;position:relative}.topbar,.topbar-logo{display:flex;align-items:center}.topbar-logo{text-decoration:none}.logo-img{height:42px;width:auto;display:block;opacity:.92;filter:drop-shadow(0 0 24px rgba(229,72,77,.2)) drop-shadow(0 2px 12px rgba(0,0,0,.6));animation:logoBreath 5s ease-in-out infinite}@keyframes logoBreath{0%,to{opacity:.9}50%{opacity:1}}.badge{position:relative;padding-left:1.05rem;font-size:.5625rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--text-sub)}.badge:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:6px;height:6px;border-radius:50%;background:var(--success);box-shadow:0 0 9px var(--success);animation:dotPulse 3s ease-in-out infinite}@keyframes dotPulse{0%,to{opacity:1}50%{opacity:.4}}.card{background:var(--surface);backdrop-filter:blur(48px) saturate(170%);-webkit-backdrop-filter:blur(48px) saturate(170%);border:1px solid var(--border);border-radius:var(--r-2xl);padding:1.75rem;box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.04),inset 0 1px 0 0 hsla(0,0%,100%,.08),0 40px 80px rgba(0,0,0,.7),0 12px 32px rgba(0,0,0,.5);animation:panelEnter var(--ease-enter) both}@keyframes panelEnter{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.label{font-size:.5625rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--text-sub)}.title{font-size:1.9rem;font-weight:800;letter-spacing:-.03em;color:var(--text)}.muted{color:var(--text-dim)}.sub{color:var(--text-sub)}.mono{font-family:var(--font-mono);font-size:.72rem}input{font:inherit;width:100%;background:var(--surface-input);border:1px solid var(--border);border-radius:var(--r);padding:.8rem 1rem;color:var(--text);outline:none;transition:border-color var(--ease),box-shadow var(--ease)}input::placeholder{color:var(--text-placeholder)}input:focus{border-color:var(--border-focus);box-shadow:0 0 0 3.5px var(--accent-glow)}button{font:inherit;font-weight:700;cursor:pointer;border:none;border-radius:var(--r);padding:.8rem 1.1rem;color:var(--btn-text);letter-spacing:.01em;background:linear-gradient(180deg,var(--btn-from) 0,var(--btn-mid) 52%,var(--btn-to) 100%);transition:filter var(--ease),transform var(--ease),box-shadow var(--ease);box-shadow:0 1px 0 hsla(0,0%,100%,.35) inset,0 -1px 0 rgba(0,0,0,.28) inset,0 8px 28px var(--accent-glow),0 2px 8px rgba(0,0,0,.6);-webkit-tap-highlight-color:transparent}button:hover:not(:disabled){filter:brightness(1.08)}button:active:not(:disabled){transform:translateY(1px);filter:brightness(.95)}button:disabled{opacity:.4;cursor:not-allowed}button.ghost{background:hsla(0,0%,100%,.04);border:1px solid var(--border);color:var(--text-sub);box-shadow:none}button.ghost:hover:not(:disabled){background:hsla(0,0%,100%,.07);border-color:var(--border-mid);color:var(--text);filter:none}a{color:var(--accent-bright);text-decoration:none}a:hover{text-decoration:underline}.grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:.75rem;gap:.75rem}.tile{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-lg);padding:1.1rem 1.2rem;transition:border-color var(--ease),background var(--ease)}.tile:hover{border-color:var(--border-mid);background:var(--surface)}.tile .num{font-size:1.5rem;font-weight:800;letter-spacing:-.02em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tile .num.accent{color:var(--accent-bright)}pre{font-family:var(--font-mono);font-size:.72rem;white-space:pre-wrap;word-break:break-word;color:var(--text-sub);background:rgba(0,0,0,.3);border:1px solid var(--border);border-radius:10px;padding:.75rem .9rem}@media (max-width:520px){input{font-size:16px}.title{font-size:1.6rem}}.linkrow{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;justify-content:center}.linkrow a{font-size:.6875rem;font-weight:500;letter-spacing:.03em;color:var(--text-sub);text-decoration:none;transition:color var(--ease)}.linkrow a:hover{color:var(--text);text-decoration:none}.linkrow span{font-size:.6875rem;opacity:.45}.brand,.linkrow span{color:var(--text-sub)}.brand{font-size:.5625rem;font-weight:700;letter-spacing:.26em;text-transform:uppercase}.app-layout{display:flex;min-height:100dvh}.app-main{flex:1 1;min-width:0;max-width:100%;overflow-x:hidden;padding-bottom:5rem}@media (min-width:768px){.app-main{margin-left:220px;padding-bottom:0}}.page-shell{width:100%;max-width:720px;margin:0 auto;padding:2rem 1rem 5rem;box-sizing:border-box}@media (min-width:768px){.page-shell{padding:2rem 1.5rem 4rem}}.nav-sidebar{display:none}@media (min-width:768px){.nav-sidebar{display:flex;flex-direction:column;justify-content:space-between;width:220px;position:fixed;top:0;left:0;bottom:0;background:var(--surface);backdrop-filter:blur(48px) saturate(160%);-webkit-backdrop-filter:blur(48px) saturate(160%);border-right:1px solid var(--border);padding:1.5rem 1rem;z-index:100}}.nav-top{display:flex;flex-direction:column;gap:1.5rem}.nav-logo{display:flex;align-items:center;padding-left:.25rem}.nav-logo-img{height:36px;width:auto;opacity:.9}.nav-links{list-style:none;display:flex;flex-direction:column;gap:2px}.nav-link{display:flex;align-items:center;gap:.75rem;padding:.6rem .75rem;border-radius:var(--r);font-size:.875rem;font-weight:500;color:var(--text-sub);text-decoration:none;transition:background var(--ease),color var(--ease)}.nav-link:hover{background:var(--surface-2);color:var(--text);text-decoration:none}.nav-link--active{font-weight:600}.nav-link--active,.nav-link--active:hover{background:var(--accent-soft);color:var(--accent-bright)}.nav-icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.nav-icon svg{width:16px;height:16px}.nav-tab-icon svg{width:22px;height:22px}.nav-link--sub{font-size:.8125rem;padding:.35rem .75rem;color:var(--text-dim)}.nav-link--sub:hover{color:var(--text-sub);background:transparent}.nav-link--sub.nav-link--active{background:transparent;color:var(--accent-bright);font-weight:600}.nav-bottom{display:flex;flex-direction:column;gap:.5rem}.nav-email{font-size:11px;color:var(--text-dim);padding:0 .25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-signout{width:100%;font-size:12px;padding:.5rem .75rem}.nav-tabbar{display:flex;position:fixed;bottom:0;left:0;right:0;background:rgba(8,6,10,.92);backdrop-filter:blur(32px) saturate(160%);-webkit-backdrop-filter:blur(32px) saturate(160%);border-top:1px solid var(--border);z-index:100;padding-bottom:env(safe-area-inset-bottom)}@media (min-width:768px){.nav-tabbar{display:none}}.nav-tab{flex:1 1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:.6rem .25rem .5rem;color:var(--text-dim);text-decoration:none;transition:color var(--ease)}.nav-tab:hover{color:var(--text-sub);text-decoration:none}.nav-tab--active{color:var(--accent-bright)}.nav-tab-icon{width:24px;height:24px;display:flex;align-items:center;justify-content:center}.nav-tab-label{font-size:10px;font-weight:600;letter-spacing:.04em}.legal-shell{max-width:720px;width:100%;margin:0 auto;padding:0 1.5rem 4rem;min-height:100dvh}.legal-shell,.legal-top{display:flex;flex-direction:column}.legal-top{align-items:center;gap:1.125rem;padding:3.75rem 0 2.75rem}.legal-top .logo-img{height:78px}.legal-back{display:inline-flex;align-items:center;gap:.375rem;font-size:.75rem;color:var(--text-dim);text-decoration:none;margin-bottom:2rem;transition:color var(--ease)}.legal-back:hover{color:var(--text-sub);text-decoration:none}.legal-content{flex:1 1}.legal-content h1{font-size:1.375rem;font-weight:600;letter-spacing:-.01em;color:var(--text);margin-bottom:2rem}.legal-content h1:has(+.legal-date){margin-bottom:.375rem}.legal-content .legal-date{font-size:.6875rem;color:var(--text-dim);letter-spacing:.04em;margin-bottom:2.5rem}.legal-content h2{font-size:.8125rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text-sub);margin:2rem 0 .625rem}.legal-content li,.legal-content p{font-size:.875rem;color:var(--text-sub);line-height:1.7}.legal-content ul{padding-left:1.25rem;margin:.375rem 0}.legal-content li{margin-bottom:.25rem}.legal-content address{font-style:normal;color:var(--text-sub);line-height:1.7;font-size:.875rem}.legal-footer{margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:.6rem;align-items:center}.legal-copy{font-size:.625rem;color:var(--text-sub);letter-spacing:.05em;opacity:.6}.contact-email{display:inline-block;margin-top:.5rem;font-size:.95rem;color:var(--accent-bright);font-weight:600}.contact-divider{border:none;border-top:1px solid var(--border);margin:2rem 0}.contact-form{gap:1rem;margin-top:.25rem}.contact-form,.contact-form label{display:flex;flex-direction:column}.contact-form label{font-size:.75rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text-dim);gap:.375rem}.contact-form textarea{background:var(--surface-input);border:1px solid var(--border);border-radius:var(--r);padding:.75rem 1rem;color:var(--text);font-family:var(--font-sans);font-size:.9375rem;outline:none;transition:border-color var(--ease),box-shadow var(--ease);width:100%;resize:vertical;min-height:140px;line-height:1.6}.contact-form textarea::placeholder{color:var(--text-placeholder)}.contact-form textarea:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--accent-glow)}.contact-form-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:1rem;gap:1rem}.contact-submit{align-self:flex-start;min-width:160px}.contact-feedback{font-size:.8125rem;line-height:1.5;min-height:1rem}.contact-feedback.success{color:var(--success)}.contact-feedback.error{color:var(--error-tx)}.ai-layout{flex-direction:column;height:calc(100vh - 2rem);max-height:900px}.ai-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:1rem;border-bottom:1px solid var(--border);margin-bottom:0}.ai-model-badge{font-size:.6875rem;font-family:var(--font-mono);color:var(--text-dim);background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:2px 8px}.ai-conversation{flex:1 1;overflow-y:auto;padding:1.25rem 0;display:flex;flex-direction:column;gap:1rem}.ai-conversation::-webkit-scrollbar{width:3px}.ai-conversation::-webkit-scrollbar-track{background:transparent}.ai-conversation::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.07);border-radius:2px}.ai-msg{display:flex;gap:.75rem}.ai-msg.user{flex-direction:row-reverse}.ai-bubble{width:-moz-fit-content;width:fit-content;max-width:80%;padding:.75rem 1rem;border-radius:var(--r);font-size:.9375rem;line-height:1.65;white-space:pre-wrap;word-break:break-word}.ai-msg.user .ai-bubble{background:var(--accent-soft);border:1px solid rgba(229,72,77,.22);border-radius:var(--r) var(--r) 5px var(--r)}.ai-msg.assistant .ai-bubble{background:var(--surface);border:1px solid var(--border);border-radius:var(--r) var(--r) var(--r) 5px}.ai-bubble-actions{display:flex;gap:.5rem;margin-top:.5rem;opacity:.6}.ai-bubble-actions button{background:none;border:none;color:var(--text-sub);cursor:pointer;font-size:.75rem;padding:2px 6px;border-radius:4px;transition:background var(--ease)}.ai-bubble-actions button:hover{background:var(--surface-2);opacity:1}.ai-shell-block{background:rgba(0,0,0,.4);border:1px solid var(--border);border-radius:8px;padding:.625rem .875rem;font-family:var(--font-mono);color:var(--text-sub);white-space:pre-wrap;word-break:break-all}.ai-shell-block,.ai-shell-run-btn{margin-top:.5rem;font-size:.8125rem}.ai-shell-run-btn{display:inline-flex;align-items:center;gap:.375rem;padding:.3rem .75rem;background:var(--surface-2);border:1px solid var(--border-mid);border-radius:6px;color:var(--accent-bright);cursor:pointer;transition:background var(--ease)}.ai-shell-run-btn:hover{background:var(--surface)}.ai-dot-pulse{display:inline-flex;gap:4px;padding:.5rem .75rem}.ai-dot-pulse span{width:6px;height:6px;background:var(--text-dim);border-radius:50%;animation:ai-pulse 1.2s ease-in-out infinite}.ai-dot-pulse span:nth-child(2){animation-delay:.2s}.ai-dot-pulse span:nth-child(3){animation-delay:.4s}@keyframes ai-pulse{0%,80%,to{opacity:.3;transform:scale(.85)}40%{opacity:1;transform:scale(1)}}.ai-composer{border-top:1px solid var(--border);padding-top:1rem;display:flex;flex-direction:column;gap:.625rem}.ai-composer textarea{width:100%;min-height:80px;background:var(--surface-input);border:1px solid var(--border);border-radius:var(--r);color:var(--text);font-family:var(--font-sans);font-size:.9375rem;padding:.75rem 1rem;resize:vertical;outline:none;transition:border-color var(--ease)}.ai-composer textarea:focus{border-color:var(--border-focus)}.ai-composer textarea::placeholder{color:var(--text-placeholder)}.ai-composer-row{display:flex;align-items:center;gap:.625rem;flex-wrap:wrap}.ai-file-label{display:inline-flex;align-items:center;gap:.25rem;padding:.35rem .75rem;background:var(--surface-2);border:1px solid var(--border);border-radius:6px;color:var(--text-sub);font-size:.8125rem;cursor:pointer;transition:background var(--ease)}.ai-file-label:hover{background:var(--surface)}.ai-attached-file{font-size:.75rem;color:var(--text-dim);background:var(--surface-2);border:1px solid var(--border);border-radius:4px;padding:2px 6px}@media (max-width:540px){.contact-form-row{grid-template-columns:1fr}}.ai-layout{display:flex;height:100%;gap:0}.ai-sidebar{width:240px;min-width:200px;border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.ai-sidebar-header{padding:1rem;border-bottom:1px solid var(--border)}.ai-chat-list{flex:1 1;overflow-y:auto;padding:.5rem}.ai-chat-item{padding:.6rem .75rem;border-radius:10px;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:.5rem;transition:background var(--ease)}.ai-chat-item:hover{background:var(--surface-2)}.ai-chat-item.active{background:var(--accent-soft);border:1px solid rgba(229,72,77,.2)}.ai-chat-item-title{font-size:.8125rem;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1}.ai-chat-item-time{font-size:.6875rem;color:var(--text-dim);white-space:nowrap}.ai-cat-filter{display:flex;flex-direction:column;gap:2px;padding:.5rem}.ai-cat-btn{padding:.35rem .75rem;border-radius:8px;font-size:.75rem;font-weight:600;text-align:left;background:none;border:none;color:var(--text-sub);cursor:pointer;text-transform:capitalize;transition:background var(--ease),color var(--ease);box-shadow:none}.ai-cat-btn:hover{background:var(--surface-2);color:var(--text);filter:none}.ai-cat-btn.active{background:var(--accent-dim);color:var(--accent-bright)}.ai-tool-event{font-size:.75rem;color:var(--text-dim);font-style:italic;padding:.25rem 0;display:flex;align-items:center;gap:.375rem}.ai-tool-event:before{content:"⟳"}.ai-toggle-row{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:var(--text-sub)}.ai-toggle{position:relative;width:32px;height:18px}.ai-toggle input{opacity:0;width:0;height:0}.ai-toggle-slider{position:absolute;inset:0;background:hsla(0,0%,100%,.1);border-radius:99px;transition:background var(--ease);cursor:pointer}.ai-toggle-slider:before{content:"";position:absolute;height:12px;width:12px;left:3px;top:3px;background:#fff;border-radius:50%;transition:transform var(--ease)}.ai-toggle input:checked+.ai-toggle-slider{background:var(--accent)}.ai-toggle input:checked+.ai-toggle-slider:before{transform:translateX(14px)}@media (max-width:768px){.ai-sidebar{display:none}.ai-sidebar.open{display:flex;position:fixed;inset:0;width:280px;background:var(--bg);z-index:100}}.nav-section{display:flex;flex-direction:column;gap:2px}.nav-section-label{display:block}.nav-section-label,.nav-section-toggle{font-size:.5625rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--text-dim);padding:.5rem .75rem .25rem}.nav-section-toggle{background:none;border:none;cursor:pointer;box-shadow:none;text-align:left;width:100%;display:flex;align-items:center;justify-content:space-between}.nav-section-toggle:hover{color:var(--text-sub);filter:none}.nav-chevron{font-size:.75rem;transition:transform var(--ease);display:inline-block;transform:rotate(90deg)}.nav-chevron.open{transform:rotate(270deg)}.nav-link-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:140px}.home-shell{max-width:900px;margin:0 auto;padding:2rem 1.5rem 6rem}@media (max-width:767px){.home-shell{max-width:480px;padding:1.5rem 1rem 6rem;display:flex;flex-direction:column;align-items:center}.home-shell>*{width:100%}}.home-greeting{margin-bottom:1.75rem}@media (max-width:767px){.home-greeting{text-align:center}}.home-grid{display:grid;grid-template-columns:1fr 320px;grid-gap:1.5rem;gap:1.5rem;align-items:start}@media (max-width:900px){.home-grid{grid-template-columns:1fr}}.home-col-main,.home-col-side{display:flex;flex-direction:column;gap:1.25rem}.home-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:1.1rem 1.25rem;display:flex;flex-direction:column;gap:.75rem}.home-section-header{display:flex;align-items:center;justify-content:space-between}.home-section-link{font-size:11px;color:var(--text-dim);text-decoration:none;transition:color var(--ease)}.home-section-link:hover{color:var(--accent-bright);text-decoration:none}.home-task-list{list-style:none;display:flex;flex-direction:column;gap:2px}.home-task-item{display:flex;align-items:center;gap:.6rem;padding:.4rem 0;border-bottom:1px solid var(--border)}.home-task-item:last-child{border-bottom:none}.home-task-check{background:none;border:1px solid var(--border-mid);border-radius:50%;width:20px;height:20px;min-width:20px;padding:0;display:flex;align-items:center;justify-content:center;font-size:10px;color:var(--text-dim);cursor:pointer;box-shadow:none;transition:border-color var(--ease),color var(--ease)}.home-task-check:hover{border-color:var(--accent-bright);color:var(--accent-bright);filter:none}.home-task-body{flex:1 1;display:flex;align-items:center;gap:.5rem;min-width:0}.home-task-due{font-size:11px;color:var(--text-dim);white-space:nowrap}.home-task-due.overdue{color:var(--error-tx)}.home-task-due.today{color:var(--accent-bright)}.home-task-project{font-size:12px;color:var(--text-dim);text-decoration:none;padding:2px 4px;border-radius:4px;transition:color var(--ease)}.home-task-project:hover{color:var(--accent-bright);text-decoration:none}.home-task-dot{color:var(--text-dim);font-size:18px;line-height:1}.home-projects-grid{display:flex;flex-wrap:wrap;gap:6px}.home-project-chip{background:var(--surface-2);border:1px solid var(--border);border-radius:20px;padding:.3rem .75rem;font-size:12px;color:var(--text-sub);text-decoration:none;transition:border-color var(--ease),color var(--ease)}.home-project-chip:hover{border-color:var(--border-mid);color:var(--text);text-decoration:none}.home-routines{display:flex;flex-wrap:wrap;gap:6px}.home-routine-chip{background:var(--surface-2);border:1px solid var(--border);border-radius:20px;padding:.3rem .75rem;font-size:12px;font-weight:500;color:var(--text-sub);cursor:pointer;box-shadow:none;transition:border-color var(--ease),color var(--ease),background var(--ease)}.home-routine-chip:hover:not(.done){border-color:var(--accent-bright);color:var(--accent-bright);filter:none}.home-routine-chip.done{background:var(--accent-dim);border-color:var(--accent-soft);color:var(--accent-bright);cursor:default}.home-quicklinks-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:8px;gap:8px}@media (min-width:480px){.home-quicklinks-grid{grid-template-columns:repeat(3,1fr)}}.home-quicklink-item{position:relative;display:flex}.home-quicklink{flex:1 1;display:flex;align-items:center;justify-content:center;gap:6px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r);padding:.65rem .5rem;font-size:12px;font-weight:500;color:var(--text-sub);text-decoration:none;overflow:hidden;transition:border-color var(--ease),color var(--ease),background var(--ease);white-space:nowrap;text-overflow:ellipsis;text-align:center;min-height:44px}.home-quicklink:hover{border-color:var(--accent-bright);color:var(--text);background:var(--surface);text-decoration:none}.home-quicklink-del{position:absolute;top:-6px;right:-6px;width:18px;height:18px;border-radius:50%;background:var(--surface);border:1px solid var(--border-mid);box-shadow:none;color:var(--text-dim);font-size:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;line-height:1;opacity:0;transition:opacity var(--ease),color var(--ease);z-index:1}.home-quicklink-item:hover .home-quicklink-del{opacity:1}.home-quicklink-del:hover{color:var(--error-tx);filter:none;opacity:1}@media (max-width:767px){.home-quicklink-del{opacity:.6}}.home-quicklink-form{display:flex;flex-direction:column;padding:.75rem;background:var(--surface-2);border-radius:var(--r);border:1px solid var(--border);animation:panelEnter .18s both}.fchat-toggle{position:fixed;bottom:calc(env(safe-area-inset-bottom) + 72px);right:20px;width:48px;height:48px;border-radius:50%;background:linear-gradient(180deg,var(--btn-from) 0,var(--btn-to) 100%);border:none;color:#fff;font-size:18px;cursor:pointer;z-index:200;box-shadow:0 4px 20px var(--accent-glow),0 2px 8px rgba(0,0,0,.6);transition:transform var(--ease),box-shadow var(--ease);display:flex;align-items:center;justify-content:center;padding:0}.fchat-toggle:hover{transform:scale(1.08);filter:none}.fchat-toggle.active{background:var(--surface-2);border:1px solid var(--border-mid);color:var(--text-sub);box-shadow:none}@media (min-width:768px){.fchat-toggle{bottom:24px;right:24px}}.fchat-popup{position:fixed;bottom:calc(env(safe-area-inset-bottom) + 130px);right:16px;width:320px;max-height:480px;background:var(--surface);backdrop-filter:blur(48px) saturate(180%);-webkit-backdrop-filter:blur(48px) saturate(180%);border:1px solid var(--border-mid);border-radius:var(--r-2xl);box-shadow:0 20px 60px rgba(0,0,0,.7),inset 0 1px 0 hsla(0,0%,100%,.08);display:flex;flex-direction:column;z-index:199;animation:panelEnter .22s both;overflow:hidden}@media (min-width:768px){.fchat-popup{bottom:90px;right:24px}}@media (max-width:380px){.fchat-popup{width:calc(100vw - 32px);right:16px}}.fchat-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--border)}.fchat-persona{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-bright)}.fchat-btn{width:26px;height:26px;border-radius:6px;padding:0;font-size:13px;display:flex;align-items:center;justify-content:center}.fchat-messages{flex:1 1;overflow-y:auto;padding:.75rem 1rem;display:flex;flex-direction:column;gap:.5rem;overscroll-behavior:contain}.fchat-hint{font-size:12px;color:var(--text-dim);text-align:center;margin:auto}.fchat-msg{max-width:90%;border-radius:14px;padding:.5rem .75rem;font-size:13px;line-height:1.5}.fchat-msg--user{align-self:flex-end;background:var(--accent-soft);border:1px solid var(--accent-glow);color:var(--text)}.fchat-msg--assistant{align-self:flex-start;background:var(--surface-2);border:1px solid var(--border);color:var(--text)}.fchat-typing{letter-spacing:4px;color:var(--text-dim);animation:dotPulse 1.2s ease-in-out infinite}.fchat-input-row{display:flex;gap:6px;padding:.65rem .75rem;border-top:1px solid var(--border);background:var(--surface-2)}.fchat-input{flex:1 1;background:var(--surface-input);border:1px solid var(--border);border-radius:20px;padding:.45rem .85rem;font-size:13px;color:var(--text);outline:none}.fchat-input:focus{border-color:var(--border-focus);box-shadow:0 0 0 2px var(--accent-glow)}.fchat-send{width:32px;height:32px;min-width:32px;border-radius:50%;padding:0;font-size:14px;display:flex;align-items:center;justify-content:center;align-self:center}.fchat-send:disabled{opacity:.3}.terminal-tab-wrap{flex:1 1;min-height:0;padding:.75rem 1.25rem 1rem;display:flex;flex-direction:column}@media (min-width:768px){.terminal-tab-wrap{padding:.75rem 1.5rem 1rem}}@media (max-width:767px){.terminal-tab-wrap{padding:.25rem .25rem calc(56px + env(safe-area-inset-bottom) + .5rem)}}.terminal-panel{flex:1 1;min-height:0;display:flex;flex-direction:column;background:#0c0a0f;border:1px solid hsla(0,0%,100%,.1);border-radius:10px;overflow:hidden;box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.04),0 8px 32px rgba(0,0,0,.7),0 2px 8px rgba(0,0,0,.5)}.terminal-bar{gap:0;padding:0 .75rem;height:36px;min-height:36px;background:#161318;border-bottom:1px solid hsla(0,0%,100%,.08);-webkit-user-select:none;-moz-user-select:none;user-select:none}.terminal-bar,.terminal-dots{display:flex;align-items:center}.terminal-dots{gap:6px;margin-right:.75rem}.terminal-dot{width:12px;height:12px;border-radius:50%;display:block;cursor:pointer;transition:filter .12s}.terminal-dot:hover{filter:brightness(1.3)}.terminal-dot--close{background:#ff5f57}.terminal-dot--min{background:#febc2e}.terminal-dot--max{background:#28c840}.terminal-title{flex:1 1;text-align:center;font-size:11px;font-weight:500;color:hsla(0,0%,100%,.4);letter-spacing:.02em;font-family:var(--font-mono)}.terminal-bar-actions{display:flex;align-items:center;gap:4px}.terminal-bar-btn{background:none;border:none;box-shadow:none;color:hsla(0,0%,100%,.35);font-size:14px;width:24px;height:24px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:4px;cursor:pointer;transition:color .12s,background .12s}.terminal-bar-btn:hover{color:hsla(0,0%,100%,.75);background:hsla(0,0%,100%,.06);filter:none}.terminal-status{display:flex;align-items:center;margin-left:4px}.terminal-status-dot{width:7px;height:7px;border-radius:50%;background:hsla(0,0%,100%,.15);display:block}.terminal-status-dot.connected{background:#28c840;box-shadow:0 0 6px #28c840}.terminal-status-dot.connecting{background:#febc2e}.terminal-search{display:flex;align-items:center;gap:4px;padding:.35rem .65rem;background:#161318;border-bottom:1px solid hsla(0,0%,100%,.08)}.terminal-search-input{flex:1 1;background:hsla(0,0%,100%,.07);border:1px solid hsla(0,0%,100%,.12);border-radius:6px;padding:.25rem .6rem;font-size:12px;font-family:var(--font-mono);color:hsla(0,0%,100%,.85);outline:none}.terminal-search-input:focus{border-color:rgba(229,72,77,.6);box-shadow:0 0 0 2px rgba(229,72,77,.15)}.terminal-xterm{flex:1 1;min-height:0;padding:4px 8px 6px;overflow:hidden;position:relative;line-height:1}.terminal-xterm .xterm{height:100%!important;width:100%!important}.terminal-xterm .xterm-viewport{overflow-y:scroll!important;border-radius:0!important;scrollbar-width:thin;scrollbar-color:hsla(0,0%,100%,.12) transparent}.terminal-xterm .xterm-viewport::-webkit-scrollbar{width:6px}.terminal-xterm .xterm-viewport::-webkit-scrollbar-track{background:transparent}.terminal-xterm .xterm-viewport::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.12);border-radius:3px}.terminal-xterm canvas{display:block;image-rendering:pixelated}.fchat-tool-events{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:4px}.fchat-tool-tag{font-size:10px;color:var(--text-dim);background:var(--surface-3);border:1px solid var(--border);border-radius:4px;padding:1px 5px;font-family:var(--font-mono)}.fchat-mutated-badge{font-size:10px;color:var(--success);margin-bottom:4px;font-weight:600;letter-spacing:.04em}.ai-page-shell{display:flex;flex-direction:column;height:100dvh;overflow:hidden}@media (min-width:768px){.ai-page-shell{height:100dvh}}.mobile-subnav{display:flex;align-items:center;gap:6px;padding:.6rem 1rem;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;border-bottom:1px solid var(--border);background:var(--bg)}.mobile-subnav::-webkit-scrollbar{display:none}@media (min-width:768px){.mobile-subnav{display:none}}.mobile-subnav-item{flex-shrink:0;padding:.55rem 1.1rem;min-height:36px;border-radius:20px;font-size:13px;font-weight:600;color:var(--text-sub);text-decoration:none;border:1px solid transparent;transition:color var(--ease),background var(--ease),border-color var(--ease);white-space:nowrap;display:flex;align-items:center;-webkit-tap-highlight-color:transparent}.mobile-subnav-item:hover{color:var(--text);text-decoration:none}.mobile-subnav-item.active{color:var(--accent-bright);background:var(--accent-dim);border-color:var(--accent-soft)}.vcap-fab{position:fixed;bottom:calc(env(safe-area-inset-bottom) + 128px);right:20px;width:44px;height:44px;border-radius:50%;background:var(--surface);border:1px solid var(--border-mid);color:var(--text-sub);font-size:18px;cursor:pointer;z-index:200;box-shadow:0 4px 16px rgba(0,0,0,.5);transition:transform var(--ease),background var(--ease),box-shadow var(--ease);display:flex;align-items:center;justify-content:center;padding:0}.vcap-fab:hover{background:var(--surface-2);transform:scale(1.06);filter:none}.vcap-fab.recording{background:var(--accent);border-color:var(--accent-bright);color:#fff;box-shadow:0 0 0 4px var(--accent-glow),0 4px 16px rgba(0,0,0,.5);animation:vcap-pulse 1s ease-in-out infinite}@keyframes vcap-pulse{0%,to{box-shadow:0 0 0 4px var(--accent-glow),0 4px 16px rgba(0,0,0,.5)}50%{box-shadow:0 0 0 8px rgba(229,72,77,.15),0 4px 16px rgba(0,0,0,.5)}}@media (min-width:768px){.vcap-fab{bottom:84px;right:24px}}.vcap-popup{position:fixed;bottom:calc(env(safe-area-inset-bottom) + 186px);right:16px;width:300px;background:var(--surface);backdrop-filter:blur(48px) saturate(180%);-webkit-backdrop-filter:blur(48px) saturate(180%);border:1px solid var(--border-mid);border-radius:var(--r-2xl);box-shadow:0 20px 60px rgba(0,0,0,.7),inset 0 1px 0 hsla(0,0%,100%,.08);z-index:199;animation:panelEnter .22s both;overflow:hidden}@media (min-width:768px){.vcap-popup{bottom:144px;right:24px}}@media (max-width:380px){.vcap-popup{width:calc(100vw - 32px);right:16px}}.vcap-body{padding:1.25rem;display:flex;flex-direction:column}.vcap-mic{width:72px;height:72px;border-radius:50%;align-self:center;font-size:28px;background:var(--surface-2);border:2px solid var(--border-mid);cursor:pointer;box-shadow:none;transition:background var(--ease),transform var(--ease);display:flex;align-items:center;justify-content:center;padding:0;-moz-user-select:none;user-select:none;-webkit-user-select:none}.vcap-mic:hover:not(:disabled){background:var(--surface);transform:scale(1.05);filter:none}.vcap-mic.recording{background:var(--accent-soft);border-color:var(--accent-bright);box-shadow:0 0 0 6px var(--accent-glow)}.vcap-action{display:flex;align-items:flex-start;gap:10px;padding:.6rem .75rem;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r);cursor:pointer}.vcap-action-icon{font-size:16px;line-height:1.4;flex-shrink:0}.vcap-spinner{width:28px;height:28px;border:2.5px solid var(--border);border-top-color:var(--accent-bright);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.weather-widget{margin-top:10px;display:flex;flex-direction:column;gap:6px}.weather-main{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.weather-icon{font-size:22px;line-height:1;flex-shrink:0}.weather-temp{font-size:1.1rem;font-weight:700;color:var(--text);margin-right:6px}.weather-desc{font-size:13px;color:var(--text-sub)}.weather-meta{display:flex;gap:10px;font-size:11px;color:var(--text-dim);flex-wrap:wrap}.weather-alerts{display:flex;flex-direction:column;gap:3px}.weather-alert{font-size:11px;color:var(--amber,#a05c10);background:rgba(160,92,16,.1);border:1px solid rgba(160,92,16,.2);border-radius:6px;padding:2px 8px;display:inline-block}@media (max-width:767px){.weather-widget{align-items:center}.weather-main,.weather-meta{justify-content:center}.weather-alerts{align-items:center}}.habits-shell{max-width:680px}.habits-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.habits-progress-wrap{display:flex;align-items:center;gap:10px;margin-bottom:1.5rem}.habits-progress-bar{flex:1 1;height:6px;background:var(--surface-2);border-radius:99px;overflow:hidden}.habits-progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-bright));border-radius:99px;transition:width .5s cubic-bezier(.25,.46,.45,.94)}.habits-pct{font-size:12px;font-weight:700;color:var(--accent-bright);min-width:34px;text-align:right}.habits-add-form{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.25rem;padding:1rem 1.25rem;animation:panelEnter .18s both}.habits-tod-btns{display:flex;gap:6px}.habits-view-switch{display:flex;gap:4px;margin-bottom:1.25rem}.habits-view-btn{padding:.3rem .85rem;font-size:12px;font-weight:600;border-radius:20px;background:transparent;border:1px solid var(--border);color:var(--text-sub);cursor:pointer;box-shadow:none;transition:background var(--ease),color var(--ease),border-color var(--ease)}.habits-view-btn:hover{color:var(--text);border-color:var(--border-mid);filter:none}.habits-view-btn.active{background:var(--accent-dim);border-color:var(--accent-soft);color:var(--accent-bright)}.habits-empty{text-align:center;padding:4rem 0;color:var(--text-sub)}.habits-today{display:flex;flex-direction:column;gap:1.5rem}.habits-group-label{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim);margin-bottom:8px}.habits-row-list{display:flex;flex-direction:column;gap:4px}.habits-row{display:flex;align-items:center;gap:12px;padding:.75rem 1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);cursor:pointer;transition:border-color var(--ease),background var(--ease);-moz-user-select:none;user-select:none;-webkit-user-select:none}.habits-row:hover{border-color:var(--border-mid)}.habits-row.done{background:var(--accent-dim);border-color:var(--accent-soft)}.habits-check{width:22px;height:22px;min-width:22px;border-radius:50%;border:2px solid var(--border-mid);display:flex;align-items:center;justify-content:center;transition:background var(--ease),border-color var(--ease);color:#fff}.habits-check.checked{background:var(--accent);border-color:var(--accent)}.habits-title{flex:1 1;font-size:14px;font-weight:500}.habits-row.done .habits-title{opacity:.55;text-decoration:line-through}.habits-streak{font-size:12px;font-weight:600;color:var(--text-sub)}.habits-del{background:none;border:none;box-shadow:none;color:var(--text-dim);font-size:16px;cursor:pointer;padding:0 4px;letter-spacing:1px;opacity:0;transition:opacity var(--ease),color var(--ease);line-height:1}.habits-row:hover .habits-del{opacity:1}.habits-del:hover{color:var(--error-tx);filter:none}@media (max-width:767px){.habits-del{opacity:.4}}.habits-grid-view{display:flex;flex-direction:column;gap:4px}.habits-grid-header,.habits-grid-row{display:grid;grid-template-columns:1fr repeat(7,32px);grid-gap:4px;gap:4px;align-items:center}.habits-grid-name{font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:8px}.habits-grid-day{font-size:10px;font-weight:700;text-align:center;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em}.habits-grid-day.today{color:var(--accent-bright)}.habits-grid-cell{width:32px;height:32px;border-radius:8px;background:var(--surface-2);border:1px solid var(--border);transition:background var(--ease),border-color var(--ease)}.habits-grid-cell.filled{background:var(--accent);border-color:var(--accent)}.habits-grid-cell.today{border-color:var(--border-mid);cursor:pointer}.habits-grid-cell.today:not(.filled):hover{background:var(--accent-dim);border-color:var(--accent-soft)}@media (max-width:520px){.habits-grid-header,.habits-grid-row{grid-template-columns:1fr repeat(7,26px);gap:3px}.habits-grid-cell{width:26px;height:26px;border-radius:6px}}.habits-month{gap:12px}.habits-month-row{display:flex;flex-direction:column;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:1rem 1.1rem}.habits-month-info{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap}.habits-month-dots{display:flex;flex-wrap:wrap;gap:4px}.habits-dot{width:12px;height:12px;border-radius:3px;background:var(--surface-2);border:1px solid var(--border)}.habits-dot.filled{background:var(--accent);border-color:var(--accent)}.habits-dot.today{border-color:var(--accent-bright)}.habits-delete-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:300;display:flex;align-items:center;justify-content:center;padding:1.5rem}.habits-delete-modal{background:var(--surface);-webkit-backdrop-filter:blur(48px);backdrop-filter:blur(48px);border:1px solid var(--border-mid);border-radius:var(--r-2xl);padding:1.5rem;max-width:340px;width:100%;animation:panelEnter .2s both}.fchat-mic{width:30px;height:30px;min-width:30px;border-radius:50%;padding:0;background:var(--surface-2);border:1px solid var(--border);color:var(--text-sub);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:none;transition:background var(--ease),border-color var(--ease),color var(--ease);flex-shrink:0;-moz-user-select:none;user-select:none;-webkit-user-select:none;align-self:center}.fchat-mic:hover:not(:disabled){background:var(--surface);border-color:var(--border-mid);color:var(--text);filter:none}.fchat-mic.recording{background:var(--accent-soft);border-color:var(--accent-bright);color:var(--accent-bright);animation:vcap-pulse 1s ease-in-out infinite}.fchat-mic:disabled{opacity:.4;cursor:not-allowed}.fchat-mic-spin{width:12px;height:12px;border:2px solid var(--border-mid);border-top-color:var(--accent-bright);border-radius:50%;animation:spin .7s linear infinite;display:block}.task-form{display:flex;flex-direction:column;gap:.75rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:1rem 1.1rem;animation:panelEnter .18s both}.task-form-row{display:flex;gap:1rem;flex-wrap:wrap;align-items:flex-end}.task-form-field{display:flex;flex-direction:column;gap:4px}.task-form-label{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim)}.journal-shell{max-width:680px}.journal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.journal-date{font-size:1.4rem;font-weight:700;letter-spacing:-.02em;color:var(--text);margin-top:4px}.journal-mood-row{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1.25rem}.journal-moods{display:flex;gap:6px}.journal-mood-btn{font-size:22px;width:40px;height:40px;border-radius:50%;padding:0;background:var(--surface-2);border:2px solid transparent;cursor:pointer;box-shadow:none;transition:transform var(--ease),border-color var(--ease),background var(--ease);display:flex;align-items:center;justify-content:center;line-height:1;opacity:.55}.journal-mood-btn:hover{transform:scale(1.15);opacity:1;filter:none}.journal-mood-btn.active{border-color:var(--accent-bright);background:var(--accent-dim);opacity:1;transform:scale(1.1)}.journal-editor-wrap{position:relative;margin-bottom:1rem}.journal-editor{width:100%;min-height:240px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:1.1rem 1.25rem;color:var(--text);font:inherit;font-size:15px;line-height:1.75;resize:vertical;outline:none;transition:border-color var(--ease),box-shadow var(--ease);box-sizing:border-box}.journal-editor:focus{border-color:var(--border-mid);box-shadow:0 0 0 3px hsla(0,0%,100%,.04)}.journal-editor::placeholder{color:var(--text-dim);font-style:italic}.journal-save-status{position:absolute;bottom:10px;right:14px;font-size:11px;color:var(--text-dim);pointer-events:none;font-family:var(--font-mono)}.journal-done-tasks{margin-top:1.5rem;border-top:1px solid var(--border);padding-top:1.25rem;display:flex;flex-direction:column;gap:6px}.journal-done-task{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-sub);padding:4px 0}.journal-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:.9rem 1.1rem;cursor:pointer;transition:border-color var(--ease)}.journal-card:hover{border-color:var(--border-mid)}.journal-card-row{display:flex;align-items:center;gap:.75rem}.connector-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;transition:border-color var(--ease)}.connector-card:hover{border-color:var(--border-mid)}.connector-card-header{display:flex;align-items:flex-start;gap:1rem;padding:1rem 1.25rem}.connector-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.connector-badge{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:2px 7px;border-radius:20px;background:var(--surface-2);color:var(--text-dim);border:1px solid var(--border)}.connector-badge.connected{background:rgba(77,200,137,.12);color:var(--success);border-color:rgba(77,200,137,.3)}.connector-detail{border-top:1px solid var(--border);padding:.875rem 1.25rem;background:var(--surface-2)}.cal-shell{max-width:760px}.cal-header{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}.cal-title{flex:1 1;font-size:1.25rem;font-weight:700;text-align:center;letter-spacing:-.01em}.cal-nav{width:36px;height:36px;padding:0;font-size:18px;justify-content:center}.cal-legend,.cal-nav{display:flex;align-items:center}.cal-legend{gap:12px;margin-bottom:.75rem;font-size:11px;color:var(--text-sub);flex-wrap:wrap}.cal-legend span{display:flex;align-items:center;gap:4px}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:2px;gap:2px;margin-bottom:1rem}.cal-day-header{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);text-align:center;padding:4px 0 6px}.cal-cell{min-height:56px;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:5px 6px 4px;cursor:pointer;transition:background var(--ease),border-color var(--ease);display:flex;flex-direction:column;gap:3px}.cal-cell:hover{background:var(--surface);border-color:var(--border-mid)}.cal-cell.today{border-color:var(--accent-bright);background:var(--accent-dim)}.cal-cell.selected{border-color:var(--accent-bright);background:var(--accent-soft)}.cal-cell--empty{background:transparent;border-color:transparent;cursor:default}.cal-day-num{font-size:12px;font-weight:600;color:var(--text-sub);line-height:1}.cal-cell.today .cal-day-num{color:var(--accent-bright)}.cal-dots{display:flex;flex-wrap:wrap;gap:2px;align-items:center}.cal-dot{width:6px;height:6px;border-radius:50%;display:inline-block;flex-shrink:0}.cal-more{font-size:9px;color:var(--text-dim);font-weight:600}.cal-detail{background:var(--surface);border:1px solid var(--border-mid);border-radius:var(--r-lg);padding:1rem 1.25rem;animation:panelEnter .18s both}.cal-detail-item{display:flex;align-items:flex-start;gap:8px;padding:6px 0;border-bottom:1px solid var(--border)}.cal-detail-item:last-child{border-bottom:none}.cal-detail-item .cal-dot{margin-top:5px}@media (max-width:520px){.cal-cell{min-height:44px;padding:3px 4px}.cal-day-num{font-size:11px}.cal-dot{width:5px;height:5px}}.cal-widget{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;display:flex;flex-direction:column}.cal-widget-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:.6rem .75rem;border-bottom:1px solid var(--border);background:var(--surface-2);flex-wrap:wrap}.cal-widget-title{font-size:12px;font-weight:600;color:var(--text);flex:1 1;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-widget-nav{width:26px;height:26px;padding:0;font-size:16px;display:flex;align-items:center;justify-content:center}.cal-month{display:flex;flex-direction:column}.cal-month-head{display:grid;grid-template-columns:22px repeat(7,1fr);border-bottom:1px solid var(--border)}.cal-month-dh{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);text-align:center;padding:4px 0}.cal-month-row{display:grid;grid-template-columns:22px repeat(7,1fr);border-bottom:1px solid var(--border)}.cal-month-row:last-child{border-bottom:none}.cal-wnum-cell{font-size:9px;color:var(--text-dim);display:flex;align-items:flex-start;justify-content:center;padding-top:4px}.cal-month-cell,.cal-wnum-cell{border-right:1px solid var(--border)}.cal-month-cell{min-height:52px;padding:3px 4px;cursor:pointer;transition:background var(--ease);overflow:hidden}.cal-month-cell:last-child{border-right:none}.cal-month-cell:hover{background:var(--surface-2)}.cal-month-cell.today{background:var(--accent-dim)}.cal-month-cell.selected{background:var(--accent-soft)}.cal-month-cell--empty{cursor:default;background:transparent}.cal-month-num{font-size:11px;font-weight:600;color:var(--text-sub);display:block;margin-bottom:2px}.cal-month-cell.today .cal-month-num{color:var(--accent-bright);font-weight:800}.cal-month-events{gap:1px}.cal-month-events,.cal-week{display:flex;flex-direction:column}.cal-week{max-height:480px}.cal-week-head{display:grid;grid-template-columns:44px repeat(7,1fr);border-bottom:1px solid var(--border);flex-shrink:0}.cal-week-dh{text-align:center;padding:4px 2px;cursor:pointer;transition:background var(--ease)}.cal-week-dh:hover{background:var(--surface-2)}.cal-week-dh.today{background:var(--accent-dim)}.cal-week-dh-name{display:block;font-size:10px;color:var(--text-dim);text-transform:uppercase}.cal-week-dh-num{display:block;font-size:14px;font-weight:700}.cal-week-dh-num.today{color:var(--accent-bright)}.cal-time-gutter{width:44px;min-width:44px;font-size:10px;color:var(--text-dim);padding:0 4px;text-align:right;flex-shrink:0}.cal-week-body{overflow-y:auto;flex:1 1}.cal-week-allday-row{display:grid;grid-template-columns:44px repeat(7,1fr);border-bottom:2px solid var(--border);min-height:24px;align-items:start}.cal-week-allday-cell{border-right:1px solid var(--border);padding:2px;min-height:24px}.cal-week-allday-cell.today{background:var(--accent-dim)}.cal-week-hours{display:flex;flex-direction:column}.cal-week-hour-row{display:grid;grid-template-columns:44px repeat(7,1fr);min-height:32px;border-bottom:1px solid var(--border)}.cal-week-cell{border-right:1px solid var(--border);padding:1px 2px;min-height:32px}.cal-week-cell.today{background:rgba(229,72,77,.04)}.cal-day{display:flex;flex-direction:column;gap:4px;padding:.75rem;overflow-y:auto;max-height:460px}.cal-day-allday{display:flex;gap:8px;padding-bottom:8px;border-bottom:1px solid var(--border);margin-bottom:4px}.cal-day-event{display:grid;grid-template-columns:80px 1fr auto;grid-gap:8px;gap:8px;padding:6px 10px;background:var(--surface-2);border-left:3px solid var(--accent);border-radius:0 6px 6px 0;align-items:start}.cal-day-event-time{font-size:11px;color:var(--text-dim);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.cal-day-event-title{font-size:13px;font-weight:500}.cal-day-event-type{font-size:10px;color:var(--text-dim);text-transform:uppercase}.cal-agenda{display:flex;flex-direction:column;overflow-y:auto;max-height:460px}.cal-agenda-day{display:grid;grid-template-columns:60px 1fr;border-bottom:1px solid var(--border)}.cal-agenda-date{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:8px 4px;gap:1px;border-right:1px solid var(--border)}.cal-agenda-date.today{background:var(--accent-dim)}.cal-agenda-dow{font-size:10px;color:var(--text-dim);text-transform:uppercase;font-weight:700}.cal-agenda-d{font-size:20px;font-weight:800;color:var(--text);line-height:1}.cal-agenda-date.today .cal-agenda-d{color:var(--accent-bright)}.cal-agenda-m{font-size:10px;color:var(--text-sub)}.cal-agenda-events{display:flex;flex-direction:column;padding:4px 8px;gap:3px}.cal-agenda-event{display:grid;grid-template-columns:55px 1fr auto;grid-gap:6px;gap:6px;padding:3px 6px;border-left:2px solid var(--accent);align-items:center;border-radius:0 4px 4px 0;background:var(--surface-2)}.cal-agenda-time{font-size:11px;color:var(--text-dim);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.cal-agenda-title{font-size:12px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-agenda-src{font-size:9px;text-transform:uppercase;font-weight:700}.cal-detail-popup{border-top:1px solid var(--border-mid);padding:.75rem;background:var(--surface-2);display:flex;flex-direction:column;gap:6px;animation:panelEnter .18s both}.cal-detail-popup-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}@media (max-width:520px){.cal-month-cell{min-height:38px;padding:2px}.cal-month-num{font-size:10px}.cal-week-dh-num{font-size:12px}.cal-time-gutter{width:32px;min-width:32px;font-size:9px}.cal-week-allday-row,.cal-week-head,.cal-week-hour-row{grid-template-columns:32px repeat(7,1fr)}.cal-day-event{grid-template-columns:60px 1fr auto}}.home-tiles-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:.75rem;gap:.75rem;margin-bottom:.75rem}@media (max-width:480px){.home-tiles-grid{grid-template-columns:1fr;gap:.5rem}}.home-tile{min-height:120px;align-content:start}.home-ql-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:.75rem 1rem;margin-bottom:.75rem}.home-ql-chips{display:flex;gap:6px}.home-ql-chips .home-quicklink-item{flex:1 1;min-width:80px}.home-ql-chips .home-quicklink{width:100%}@media (max-width:480px){.home-ql-chips{flex-direction:column}.home-ql-chips .home-quicklink-item{flex:none}}.home-calendar-full{margin-bottom:1rem}.fin-balance-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:1rem 1.25rem .75rem;margin-bottom:0}.fin-balance-row{display:flex;align-items:center;gap:0}.fin-balance-item{flex:1 1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:0 .5rem}.fin-balance-divider{width:1px;height:36px;background:var(--border);flex-shrink:0}.fin-val{font-size:1.1rem;font-weight:800;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.02em}.fin-val--green{color:var(--success)}.fin-val--red{color:var(--error-tx)}.fin-bar-wrap{height:4px;background:rgba(77,200,137,.25);border-radius:99px;overflow:hidden;margin-top:10px}.fin-bar-inner{height:100%;background:var(--error-tx);border-radius:99px;transition:width .6s ease;opacity:.7}.fin-tx-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--r);background:var(--surface);border:1px solid var(--border);transition:background var(--ease)}.fin-tx-row:hover{background:var(--surface-2)}.fin-tx-cat{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;flex-shrink:0}.habits-quote-card{background:linear-gradient(135deg,var(--accent-dim) 0,var(--surface-2) 100%);border:1px solid var(--accent-soft);border-radius:var(--r-lg);padding:1rem 1.25rem;margin-bottom:1.25rem}.habits-quote-text{font-size:14px;font-style:italic;line-height:1.65;color:var(--text)}.habits-quote-author{font-size:12px;color:var(--accent-bright);font-weight:600}.contacts-shell{display:flex;height:calc(100dvh - 56px);overflow:hidden}@media (min-width:768px){.contacts-shell{height:calc(100dvh - 40px)}}.contacts-list-col{width:280px;min-width:280px;border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.contacts-detail-col{flex:1 1;overflow:hidden}@media (max-width:640px){.contacts-list-col{width:100%;min-width:0}.contacts-detail-col,.contacts-shell.detail-open .contacts-list-col{display:none}.contacts-shell.detail-open .contacts-detail-col{display:flex;flex-direction:column;width:100%}}.contacts-mobile-back{display:none;padding:.5rem 1rem;border-bottom:1px solid var(--border);background:var(--surface-2)}@media (max-width:640px){.contacts-mobile-back{display:block}.contacts-shell{height:calc(100dvh - 112px)}}