:root{--bg: #faf8f4;--surface: #ffffff;--surface-2: #f4f1ea;--surface-sunken: #efebe2;--ink: #211f1c;--ink-2: #6b655d;--ink-3: #9b958c;--line: #ece7df;--line-2: #e2dcd1;--brand: #ff6b4a;--brand-press: #ed5436;--brand-soft: #ffe9e2;--brand-ink: #b53d22;--ai: #5a63e8;--ai-press: #474fd1;--ai-soft: #eceeff;--ai-ink: #3a41b0;--done: #1fb47c;--done-soft: #e2f6ee;--warn: #e8a23d;--danger: #e5484d;--danger-soft: #fdeceb;--r-sm: 10px;--r: 14px;--r-lg: 20px;--r-xl: 26px;--r-pill: 999px;--shadow-sm: 0 1px 2px rgba(60, 45, 30, .05), 0 1px 3px rgba(60, 45, 30, .04);--shadow-md: 0 6px 20px rgba(60, 45, 30, .09);--shadow-lg: 0 18px 50px rgba(50, 38, 25, .18);--font-display: "Bricolage Grotesque", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;--font-body: "Hanken Grotesk", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;--safe-b: env(safe-area-inset-bottom, 0px);--tabbar-h: 68px}@media (max-width: 480px){:root{--tabbar-h: 72px;--r-lg: 16px;--r-xl: 20px}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font-body);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overscroll-behavior-y:none}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}input,textarea{font-family:inherit}.app-canvas{position:relative;min-height:100dvh;background:radial-gradient(120% 60% at 100% 0%,rgba(255,107,74,.06),transparent 60%),radial-gradient(90% 50% at 0% 8%,rgba(90,99,232,.05),transparent 55%),var(--bg)}.kbd-pill{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:var(--r-pill);font-size:12px;font-weight:600;line-height:1}.chip-time{color:var(--brand-ink);background:var(--brand-soft)}.chip-cat{color:var(--ink-2);background:var(--surface-2)}.chip-ai{color:var(--ai-ink);background:var(--ai-soft)}.sparkle{display:inline-block}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:44px;padding:0 18px;border-radius:var(--r-pill);font-weight:600;font-size:15px;transition:transform .12s ease,background .15s ease,box-shadow .15s ease}.btn:active{transform:scale(.96)}.btn-brand{background:var(--brand);color:#fff;box-shadow:0 6px 16px #ff6b4a47}.btn-brand:disabled{background:var(--line-2);color:var(--ink-3);box-shadow:none}.btn-ai{background:linear-gradient(135deg,var(--ai),#6f78ff);color:#fff;box-shadow:0 6px 18px #5a63e84d}.btn-ghost{background:var(--surface-2);color:var(--ink)}.check{width:24px;height:24px;border-radius:50%;border:2px solid var(--line-2);display:grid;place-items:center;flex:none;transition:all .15s ease;background:var(--surface)}.check[data-prio=high]{border-color:var(--danger)}.check[data-prio=low]{border-color:var(--ink-3)}.check[data-done=true]{background:var(--done);border-color:var(--done)}@keyframes riseIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.rise{animation:riseIn .42s cubic-bezier(.2,.7,.2,1) both}@keyframes sheetUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes slideInLeft{0%{transform:translate(-100%)}to{transform:translate(0)}}.spinner{width:16px;height:16px;border-radius:50%;border:2px solid currentColor;border-top-color:transparent;animation:spin .7s linear infinite}@keyframes pulse{0%,to{opacity:.3}50%{opacity:1}}.think-dot{width:6px;height:6px;border-radius:50%;background:var(--ai);animation:pulse 1.1s ease-in-out infinite}.think-dot:nth-child(2){animation-delay:.18s}.think-dot:nth-child(3){animation-delay:.36s}.ai-mark{color:var(--ai)}.mic-button{flex:none;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-size:18px;background:var(--surface-2);color:var(--ink-2);transition:transform .12s ease,background .15s ease;touch-action:none}.mic-button:active{transform:scale(.92)}.mic-button--recording{background:var(--brand-soft);box-shadow:0 0 0 4px #ff6b4a2e}::-webkit-scrollbar{width:0;height:0}.desktop-grid{display:grid;grid-template-columns:240px 1fr 360px;grid-template-areas:"sidebar center detail";height:100dvh;background:var(--bg)}.desktop-grid>.sidebar{grid-area:sidebar}.desktop-center{grid-area:center;overflow-y:auto;border-left:1px solid var(--line);border-right:1px solid var(--line);padding:18px 20px}.desktop-detail{grid-area:detail;overflow-y:auto;padding:18px 20px}.desktop-wide{grid-area:center / center / detail / detail;overflow-y:auto;border-left:1px solid var(--line);padding:18px 24px}.desktop-single{grid-area:center / center / detail / detail;overflow-y:auto;border-left:1px solid var(--line);padding:24px}.sidebar{display:flex;flex-direction:column;padding:18px 10px 16px;height:100dvh;overflow-y:auto;background:var(--surface-2)}.sidebar-assistant{display:inline-flex;align-items:center;gap:7px;margin:12px 4px 4px;padding:9px 14px;border-radius:var(--r-pill);background:var(--ai-soft);color:var(--ai-ink);font-weight:600;font-size:14px;align-self:flex-start}.sidebar-item{position:relative;display:flex;align-items:center;gap:9px;padding:7px 12px;margin:1px 0;border-radius:var(--r-sm);font-size:14px;font-weight:500;color:var(--ink-2);text-decoration:none;transition:background .12s ease}.sidebar-item:hover{background:#00000009}.sidebar-item.is-active{background:var(--brand-soft);color:var(--brand-ink);font-weight:600}.sidebar-count{font-size:12px;font-weight:600;color:var(--ink-3);flex:none}.sidebar-item.is-active .sidebar-count{color:var(--brand-ink)}.sidebar-item.is-active:before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:3px;border-radius:2px;background:var(--brand, var(--brand-ink))}.task-card .task-card-more{opacity:0;transition:opacity .12s ease}.task-card:hover .task-card-more,.task-card .task-card-more:focus-visible{opacity:1}@media (hover: none){.task-card .task-card-more{opacity:1}}@media (max-width: 480px){.card{border-radius:var(--r-lg);box-shadow:0 1px 2px #3c2d1e0a;border-color:var(--line)}.btn{height:48px;font-size:15px}input,textarea{font-size:16px!important}}@media (min-width: 481px) and (max-width: 1023px){:root{--tabbar-h: 68px}}
