@charset "UTF-8";:root{--bg: #f4f5f9;--surface: #ffffff;--surface-2: #f0f1f6;--text: #191c27;--muted: #6b7280;--border: #e4e6ee;--primary: #4f46e5;--primary-hover: #4338ca;--primary-soft: #eef0ff;--danger: #dc2626;--success: #16a34a;--warning: #d97706;--radius: 12px;--shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .08);--nav-h: 60px;--sidebar-w: 224px}@media(prefers-color-scheme:dark){:root{--bg: #0f1117;--surface: #181b25;--surface-2: #1f2331;--text: #e7e9f0;--muted: #9aa0b4;--border: #2a2f40;--primary: #7c74ff;--primary-hover: #948dff;--primary-soft: #262a45;--shadow: 0 1px 2px rgba(0, 0, 0, .4)}}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;min-height:100%}body{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Segoe UI,Roboto,Helvetica Neue,Noto Sans SC,Microsoft YaHei,sans-serif;background:var(--bg);color:var(--text);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}a{color:var(--primary);text-decoration:none}h1,h2,h3{margin:0;line-height:1.25}h1{font-size:22px}h2{font-size:18px}h3{font-size:15px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}p{margin:0}ul{list-style:none;margin:0;padding:0}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}.shell{display:flex;min-height:100dvh}.sidebar{width:var(--sidebar-w);flex:none;position:sticky;top:0;height:100dvh;padding:20px 14px;display:flex;flex-direction:column;gap:18px;background:var(--surface);border-right:1px solid var(--border)}.brand{font-weight:700;font-size:18px;padding:0 10px}.side-nav{display:flex;flex-direction:column;gap:4px}.side-nav a{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;color:var(--text);font-weight:500}.side-nav a:hover{background:var(--surface-2)}.side-nav a.active{background:var(--primary-soft);color:var(--primary)}.side-footer{margin-top:auto;padding:0 10px;display:flex;flex-direction:column;gap:4px}.user-name{font-weight:600}.content{flex:1;min-width:0}.bottom-nav{display:none}.page{max-width:880px;margin:0 auto;padding:20px 16px 96px;display:flex;flex-direction:column;gap:14px}.page-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}@media(max-width:767px){.sidebar{display:none}.bottom-nav{display:flex;position:fixed;left:0;right:0;bottom:0;height:calc(var(--nav-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--border);z-index:20}.bottom-nav a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:11px;color:var(--muted)}.bottom-nav a .icon{font-size:20px}.bottom-nav a.active{color:var(--primary)}.page{padding-bottom:calc(var(--nav-h) + 80px)}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow)}.stack{display:flex;flex-direction:column;gap:12px}.row{display:flex;align-items:center}.row.gap{gap:10px}.row.between{justify-content:space-between}.row.wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}@media(max-width:560px){.grid-2{grid-template-columns:1fr}}.muted{color:var(--muted)}.small{font-size:13px}.error{color:var(--danger);font-size:14px}.empty{text-align:center;color:var(--muted);padding:40px 0}.list{display:flex;flex-direction:column;gap:10px}.scroll-x{overflow-x:auto;scrollbar-width:none}.scroll-x::-webkit-scrollbar{display:none}.kv{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px dashed var(--border)}.kv:last-of-type{border-bottom:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 16px;border-radius:10px;border:1px solid transparent;background:var(--surface-2);font-weight:500;white-space:nowrap;transition:background .15s,opacity .15s}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff}.btn-primary:not(:disabled):hover{background:var(--primary-hover)}.btn-ghost{background:transparent;border-color:var(--border)}.btn-ghost:not(:disabled):hover{background:var(--surface-2)}.btn-sm{padding:6px 10px;font-size:13px}.btn-block{width:100%}.btn.danger{color:var(--danger)}.field{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}.input,.select,.textarea{width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:15px;outline:none}.input:focus,.select:focus,.textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.textarea{resize:vertical}.color-input{width:44px;height:42px;padding:2px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.tabs{display:flex;gap:6px;padding:4px;background:var(--surface-2);border-radius:12px}.tab{flex:1;padding:8px 12px;border:0;border-radius:9px;background:transparent;color:var(--muted);font-weight:500;white-space:nowrap}.tab.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.chips{display:flex;gap:8px}.chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;border:1px solid var(--border);background:var(--surface);font-size:13px;white-space:nowrap}.chip.active{border-color:var(--primary);color:var(--primary);background:var(--primary-soft)}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;flex:none}.dot.lg{width:14px;height:14px}.badge{display:inline-block;padding:1px 8px;border-radius:999px;font-size:12px;font-weight:600;line-height:1.6}.badge-low{background:#e5f7ec;color:#15803d}.badge-medium{background:#e8ecff;color:#4338ca}.badge-high{background:#fff1e0;color:#c2410c}.badge-urgent{background:#fde8e8;color:#b91c1c}.badge-progress{background:#e0f2fe;color:#0369a1}@media(prefers-color-scheme:dark){.badge-low{background:#143d27;color:#6ee7a0}.badge-medium{background:#262a55;color:#b4b0ff}.badge-high{background:#4a2a10;color:#fdba74}.badge-urgent{background:#4c1616;color:#fca5a5}.badge-progress{background:#0f2f45;color:#7dd3fc}}.stats{display:flex;gap:14px;flex-wrap:wrap}.stat{display:inline-flex;align-items:baseline;gap:5px;font-size:13px;color:var(--muted)}.stat b{font-size:18px;color:var(--text)}.stat.warn b{color:var(--danger)}.stat.ok b{color:var(--success)}.quick-add{display:flex;flex-direction:column;gap:10px}@media(min-width:640px){.quick-add{flex-direction:row;align-items:center}}.draft{display:flex;gap:10px;align-items:flex-start;padding:10px;border:1px solid var(--border);border-radius:10px;cursor:pointer}.draft input{margin-top:4px}.task-list{display:flex;flex-direction:column;gap:8px}.task-item{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.task-item.done .task-title{text-decoration:line-through;color:var(--muted)}.task-body{flex:1;min-width:0;cursor:pointer}.task-title{font-weight:500;word-break:break-word}.task-meta{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;margin-top:4px;font-size:12.5px;color:var(--muted)}.proj{display:inline-flex;align-items:center;gap:5px}.tag{color:var(--primary)}.due.tone-overdue{color:var(--danger);font-weight:600}.due.tone-today{color:var(--warning);font-weight:600}.due.tone-soon{color:var(--text)}.check{flex:none;width:22px;height:22px;margin-top:2px;border-radius:50%;border:2px solid var(--border);background:transparent;position:relative;transition:all .15s}.check:hover{border-color:var(--primary)}.check.checked{background:var(--success);border-color:var(--success)}.check.checked:after{content:"";position:absolute;left:6px;top:2px;width:6px;height:11px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}.fab{position:fixed;right:20px;bottom:calc(var(--nav-h) + 20px + env(safe-area-inset-bottom));width:56px;height:56px;border-radius:50%;border:0;background:var(--primary);color:#fff;font-size:28px;line-height:1;box-shadow:0 6px 16px #4f46e559;z-index:15}@media(min-width:768px){.fab{bottom:28px;right:28px}}.modal-backdrop{position:fixed;inset:0;background:#0a0c1473;display:flex;align-items:flex-end;justify-content:center;z-index:30;padding:0}.modal{width:100%;max-width:560px;max-height:92dvh;overflow-y:auto;background:var(--surface);border-radius:18px 18px 0 0;padding:20px 18px calc(20px + env(safe-area-inset-bottom))}@media(min-width:640px){.modal-backdrop{align-items:center;padding:20px}.modal{border-radius:16px;padding:24px}}.modal-title{margin-bottom:4px}.brief-text{line-height:1.7;word-break:break-word}.brief-text blockquote{margin:4px 0;padding-left:10px;border-left:3px solid var(--border);color:var(--muted)}.toast-container{position:fixed;top:14px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:8px;z-index:50;width:min(92vw,420px);pointer-events:none}.toast{pointer-events:auto;padding:10px 14px;border-radius:10px;background:#1f2937;color:#fff;font-size:14px;box-shadow:0 8px 24px #00000040;cursor:pointer}.toast-success{background:var(--success)}.toast-error{background:var(--danger)}.content-wrap{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{display:none;align-items:center;justify-content:space-between;padding:10px 16px;padding-top:calc(10px + env(safe-area-inset-top));background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:18}.topbar .brand{font-size:16px;padding:0}.bell{position:relative;border:0;background:transparent;font-size:20px;padding:4px 6px}.badge-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--danger);color:#fff;font-size:11px;font-weight:700;margin-left:6px}.bell .badge-count{position:absolute;top:-2px;right:-6px;margin:0}.nav-btn{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;border:0;background:transparent;color:var(--text);font-weight:500;text-align:left;width:100%}.nav-btn:hover{background:var(--surface-2)}@media(max-width:767px){.topbar{display:flex}}.tiny{font-size:12px}.pre{white-space:pre-wrap}.clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.chip.tiny{padding:1px 8px;font-size:11px}.chip.err{border-color:var(--danger);color:var(--danger)}.warn{color:var(--warning)}.kind-select{width:auto;min-width:96px}.archived{opacity:.6}.notif-panel{max-width:520px}.notif-list{display:flex;flex-direction:column;gap:6px;margin-top:10px;max-height:60dvh;overflow-y:auto}.notif-item{padding:10px 12px;border-radius:10px;border:1px solid var(--border);cursor:pointer}.notif-item.unread{background:var(--primary-soft);border-color:transparent}.notif-title{font-weight:600}.skill-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px 14px}.skill-list li{display:flex;align-items:baseline;gap:8px}.skill-dot{width:8px;height:8px;border-radius:50%;background:var(--success);flex:none;transform:translateY(-1px)}.skill-list li.off .skill-dot{background:var(--muted)}.skill-name{font-weight:500;white-space:nowrap}.chat-page{display:flex;flex-direction:column;height:calc(100dvh + -0px);max-width:880px;margin:0 auto;padding:0 16px}@media(max-width:767px){.chat-page{height:calc(100dvh - var(--nav-h) - 52px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}}.chat-header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 0 8px}.chat-scroll{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding:6px 2px 12px;scroll-behavior:smooth}.chat-empty{margin:auto 0;padding:24px 12px;text-align:center}.chat-empty-title{font-size:20px;font-weight:700;margin-bottom:6px}.example-list{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:14px}.example-list .chip{white-space:normal;text-align:left}.msg{display:flex}.msg.me{justify-content:flex-end}.bubble{max-width:min(88%,640px);padding:10px 14px;border-radius:16px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);overflow-wrap:anywhere}.msg.me .bubble{background:var(--primary);color:#fff;border-color:transparent;border-bottom-right-radius:6px}.msg:not(.me) .bubble{border-bottom-left-radius:6px}.msg-text p{margin:0 0 4px}.msg-text ul{margin:4px 0 6px;padding-left:18px;list-style:disc}.msg-text li{margin:2px 0}.msg-text .gap{height:6px}.msg-text code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;background:#7f7f7f26;padding:0 4px;border-radius:4px}.msg-time{font-size:11px;opacity:.6;margin-top:4px;text-align:right}.img-note{font-size:12px;opacity:.85;margin-bottom:4px}.img-summary{margin-top:6px;font-size:12px}.img-summary summary{cursor:pointer;opacity:.85}.img-summary pre{white-space:pre-wrap;font:inherit;margin:6px 0 0;padding:8px;border-radius:8px;background:#0000002e;max-height:240px;overflow:auto}.task-cards{display:flex;flex-direction:column;gap:6px;margin-top:8px}.task-card{display:flex;align-items:flex-start;gap:8px;width:100%;text-align:left;padding:8px 10px;border-radius:10px;border:1px solid var(--border);background:var(--surface-2)}.task-card .dot{margin-top:6px}.task-card.done .task-card-title{text-decoration:line-through;color:var(--muted)}.task-card-body{display:flex;flex-direction:column;gap:2px;min-width:0}.task-card-title{font-weight:600}.task-card-meta{display:flex;flex-wrap:wrap;gap:4px 6px;font-size:12px;color:var(--muted);align-items:center}.question-flag{margin-top:8px;padding:6px 10px;border-radius:8px;background:#fff7ed;color:#c2410c;font-size:13px}@media(prefers-color-scheme:dark){.question-flag{background:#3b2410;color:#fdba74}}.trace{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.thinking{color:var(--muted);display:inline-flex;align-items:center;gap:8px}.dots{display:inline-flex;gap:3px}.dots i{width:6px;height:6px;border-radius:50%;background:currentColor;animation:bounce 1.2s infinite}.dots i:nth-child(2){animation-delay:.2s}.dots i:nth-child(3){animation-delay:.4s}@keyframes bounce{0%,80%,to{transform:translateY(0);opacity:.4}40%{transform:translateY(-4px);opacity:1}}.composer{flex:none;display:flex;flex-direction:column;gap:8px;padding:10px 0 12px;border-top:1px solid var(--border);background:var(--bg)}.composer-row{display:flex;align-items:flex-end;gap:8px}.composer-input{flex:1;min-height:42px;max-height:160px;padding:10px 12px;border-radius:12px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:15px;resize:none;outline:none;line-height:1.4}.composer-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.icon-btn{flex:none;width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;border:1px solid var(--border);background:var(--surface);font-size:20px;cursor:pointer}.icon-btn.active{border-color:var(--danger);background:#fee2e2;animation:pulse 1.2s infinite}@keyframes pulse{50%{box-shadow:0 0 0 6px #dc262633}}.send{flex:none;height:42px}.previews{display:flex;gap:8px;overflow-x:auto}.preview{position:relative;flex:none}.preview img{width:72px;height:72px;object-fit:cover;border-radius:10px;border:1px solid var(--border)}.preview button{position:absolute;top:-6px;right:-6px;width:22px;height:22px;border-radius:50%;border:0;background:var(--danger);color:#fff;font-size:14px;line-height:1}.listening{font-size:13px;color:var(--danger)}.cal-page{max-width:1100px}.cal-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}.cal-title{font-size:18px;margin-left:6px;white-space:nowrap}.cal-modes{width:180px}.cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-size:12px;color:var(--muted);padding:0 0 4px}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal-cell{min-height:92px;padding:6px;border-radius:10px;background:var(--surface);border:1px solid var(--border);cursor:pointer;display:flex;flex-direction:column;gap:3px;overflow:hidden}.cal-cell.other{opacity:.45}.cal-cell.weekend{background:var(--surface-2)}.cal-cell.today{border-color:var(--primary)}.cal-cell.today .cal-date{background:var(--primary);color:#fff}.cal-date{width:24px;height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:600}.cal-chip{font-size:12px;line-height:1.3;padding:2px 6px;border-radius:6px;background:var(--surface-2);border-left:3px solid var(--primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-chip.done{text-decoration:line-through;opacity:.55}.cal-chip-time{color:var(--muted);margin-right:3px}.cal-more{font-size:11px;color:var(--muted)}@media(max-width:640px){.cal-cell{min-height:64px;padding:4px}.cal-chip{font-size:10px;padding:1px 4px}.cal-chip-time{display:none}}.cal-week{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}@media(max-width:767px){.cal-week{grid-template-columns:1fr}}.cal-col{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:8px;display:flex;flex-direction:column;gap:6px;min-height:120px}.cal-col.today{border-color:var(--primary)}.cal-col-head{display:flex;align-items:baseline;gap:6px;font-size:13px;color:var(--muted);cursor:pointer}.cal-col-head b{color:var(--text)}.cal-card{display:flex;align-items:center;gap:6px;width:100%;text-align:left;padding:6px 8px;border-radius:8px;border:1px solid var(--border);background:var(--surface-2);font-size:13px}.cal-card.done .cal-card-title{text-decoration:line-through;color:var(--muted)}.cal-card-time{color:var(--muted);flex:none;font-variant-numeric:tabular-nums}.cal-card-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-empty{color:var(--muted);text-align:center;padding:6px;cursor:pointer;border-radius:8px}.cal-empty:hover{background:var(--surface-2)}.cal-day{display:flex;flex-direction:column;gap:8px}.day-item{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.day-item.done .task-title{text-decoration:line-through;color:var(--muted)}.day-time{flex:none;width:48px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--primary);padding-top:2px}.day-body{flex:1;min-width:0;cursor:pointer}
