@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";:root{--accent:#6366f1;--accent-2:#8b5cf6;--bg:#0b0d12;--bg-2:#11141b;--panel:#161a23;--panel-2:#1c212c;--border:#262c38;--border-2:#323a49;--text:#e6e9f0;--text-2:#aab1c2;--muted:#6b7489;--red:#f43f5e;--orange:#f97316;--yellow:#eab308;--green:#22c55e;--blue:#3b82f6;--purple:#a855f7;--pink:#ec4899;--cyan:#06b6d4;--shadow:0 8px 30px #00000059;--radius:12px;--radius-sm:8px;--sidebar-w:240px;--font:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"JetBrains Mono", ui-monospace, Consolas, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--bg:#f4f5f9;--bg-2:#eceef4;--panel:#fff;--panel-2:#f6f7fb;--border:#e3e6ee;--border-2:#cfd4e0;--text:#171a22;--text-2:#4a5265;--muted:#8a92a6;--shadow:0 8px 30px #1418281a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}h1,h2,h3,h4{letter-spacing:-.01em;margin:0;font-weight:600}h1{font-size:24px}h2{font-size:18px}h3{font-size:15px}p{margin:0}code,pre{font-family:var(--mono)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-2);background-clip:content-box;border:2px solid #0000;border-radius:10px}::-webkit-scrollbar-track{background:0 0}.app{height:100vh;display:flex;overflow:hidden}.sidebar{width:var(--sidebar-w);background:var(--bg-2);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:4px;padding:16px 12px;display:flex;overflow-y:auto}.brand{letter-spacing:-.02em;align-items:center;gap:10px;padding:6px 10px 18px;font-size:17px;font-weight:700;display:flex}.brand-logo{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:#fff;width:32px;height:32px;box-shadow:0 4px 14px color-mix(in srgb, var(--accent) 45%, transparent);border-radius:10px;place-items:center;display:grid}.nav-section{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:14px 10px 6px;font-size:11px;font-weight:600}.nav-item{border-radius:var(--radius-sm);color:var(--text-2);align-items:center;gap:10px;padding:8px 10px;font-weight:500;transition:background .15s,color .15s;display:flex}.nav-item:hover{background:var(--panel);color:var(--text);text-decoration:none}.nav-item.active{background:color-mix(in srgb, var(--accent) 18%, transparent);color:var(--text)}.nav-item.active svg{color:var(--accent)}.nav-item .count{background:var(--panel-2);border:1px solid var(--border);color:var(--muted);border-radius:99px;margin-left:auto;padding:0 6px;font-size:11px}.sidebar-footer{border-top:1px solid var(--border);margin-top:auto;padding-top:12px}.main{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.topbar{border-bottom:1px solid var(--border);background:color-mix(in srgb, var(--bg) 80%, transparent);backdrop-filter:blur(10px);flex-shrink:0;align-items:center;gap:12px;height:56px;padding:0 24px;display:flex}.topbar .title{font-size:15px;font-weight:600}.topbar .spacer{flex:1}.search-trigger{background:var(--panel);border:1px solid var(--border);color:var(--muted);border-radius:8px;align-items:center;gap:8px;width:260px;padding:6px 12px;font-size:13px;display:flex}.search-trigger:hover{border-color:var(--border-2)}.search-trigger kbd{margin-left:auto}kbd{font-family:var(--mono);background:var(--panel-2);border:1px solid var(--border-2);color:var(--text-2);border-bottom-width:2px;border-radius:5px;padding:1px 6px;font-size:11px}.content{flex:1;padding:24px;overflow-y:auto}.page{flex-direction:column;gap:20px;max-width:1280px;margin:0 auto;display:flex}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.page-header .sub{color:var(--text-2);margin-top:4px}.page-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:18px}.card.hover:hover{border-color:var(--border-2)}.card-title{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.card-title h3{align-items:center;gap:8px;display:flex}.card-title .link{color:var(--accent);font-size:13px;font-weight:500}.btn{border:1px solid var(--border);background:var(--panel);color:var(--text);white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:7px 12px;font-size:13px;font-weight:500;transition:background .15s,border-color .15s,transform 50ms;display:inline-flex}.btn:hover{background:var(--panel-2);border-color:var(--border-2)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:color-mix(in srgb, var(--accent) 88%, #000);border-color:#0000}.btn-danger{color:var(--red)}.btn-danger:hover{background:color-mix(in srgb, var(--red) 14%, transparent);border-color:var(--red)}.btn-ghost{color:var(--text-2);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--panel-2);color:var(--text)}.btn-sm{padding:4px 8px;font-size:12px}.btn-icon{width:32px;height:32px;padding:6px}.btn-icon.btn-sm{width:26px;height:26px;padding:3px}.input,.select,.textarea{background:var(--bg-2);border:1px solid var(--border);width:100%;color:var(--text);border-radius:8px;outline:none;padding:8px 10px;transition:border-color .15s,box-shadow .15s}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 20%, transparent)}.input::placeholder,.textarea::placeholder{color:var(--muted)}.textarea{resize:vertical;min-height:90px;line-height:1.55}.textarea.mono{font-family:var(--mono);font-size:13px}.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7489' stroke-width='2.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:28px}.field{flex-direction:column;gap:6px;display:flex}.field label{color:var(--text-2);font-size:12px;font-weight:500}.form-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.form-grid .full{grid-column:1/-1}.row{align-items:center;gap:8px;display:flex}.row.wrap{flex-wrap:wrap}.row.between{justify-content:space-between}.grow{flex:1;min-width:0}.stack{flex-direction:column;gap:8px;display:flex}.badge{background:color-mix(in srgb, var(--c,var(--muted)) 16%, transparent);color:var(--c,var(--muted));border:1px solid color-mix(in srgb, var(--c,var(--muted)) 30%, transparent);white-space:nowrap;border-radius:99px;align-items:center;gap:4px;padding:2px 8px;font-size:11.5px;font-weight:500;display:inline-flex}.dot{background:var(--c,var(--muted));border-radius:50%;flex-shrink:0;width:8px;height:8px}.chip{background:var(--panel-2);border:1px solid var(--border);color:var(--text-2);border-radius:6px;align-items:center;gap:4px;padding:2px 8px;font-size:11.5px;display:inline-flex}.chip button{color:var(--muted);background:0 0;border:0;padding:0;display:grid}.chip button:hover{color:var(--red)}.tabs{border-bottom:1px solid var(--border);gap:4px;display:flex}.tab{color:var(--text-2);background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 14px;font-weight:500}.tab:hover{color:var(--text)}.tab.active{color:var(--text);border-bottom-color:var(--accent)}.seg{background:var(--bg-2);border:1px solid var(--border);border-radius:8px;padding:2px;display:inline-flex}.seg button{color:var(--text-2);background:0 0;border:0;border-radius:6px;align-items:center;gap:6px;padding:4px 10px;font-size:13px;font-weight:500;display:inline-flex}.seg button.active{background:var(--panel);color:var(--text);box-shadow:0 1px 3px #0003}.progress{background:var(--bg-2);border:1px solid var(--border);border-radius:99px;height:6px;overflow:hidden}.progress>div{background:var(--c,var(--accent));border-radius:99px;height:100%;transition:width .3s}.empty{text-align:center;color:var(--muted);border:1px dashed var(--border-2);border-radius:var(--radius);flex-direction:column;align-items:center;gap:10px;padding:40px 20px;display:flex}.empty svg{opacity:.5}.grid{gap:16px;display:grid}.grid>*{min-width:0}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-auto{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.stat{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:6px;padding:16px 18px;display:flex;position:relative;overflow:hidden}.stat:after{content:"";background:color-mix(in srgb, var(--c,var(--accent)) 12%, transparent);border-radius:50%;width:90px;height:90px;position:absolute;top:-20px;right:-20px}.stat .label{color:var(--text-2);align-items:center;gap:6px;font-size:12.5px;display:flex}.stat .label svg{color:var(--c,var(--accent))}.stat .value{letter-spacing:-.02em;font-size:26px;font-weight:700}.stat .hint{color:var(--muted);font-size:12px}.task-item{border:1px solid #0000;border-radius:10px;align-items:flex-start;gap:10px;padding:10px 12px;transition:background .15s,border-color .15s;display:flex}.task-item:hover{background:var(--panel-2);border-color:var(--border)}.task-item.done .task-title{color:var(--muted);text-decoration:line-through}.task-item .task-body{flex:1;min-width:0}.task-title{cursor:pointer;align-items:center;gap:6px;font-weight:500;display:flex}.task-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px;font-size:12px;display:flex}.task-meta .meta{align-items:center;gap:4px;display:inline-flex}.task-meta .overdue{color:var(--red)}.task-meta .today{color:var(--orange)}.task-actions{opacity:0;gap:2px;transition:opacity .15s;display:flex}.task-item:hover .task-actions{opacity:1}.check{border:2px solid var(--border-2);color:#fff;background:0 0;border-radius:6px;flex-shrink:0;place-items:center;width:18px;height:18px;margin-top:2px;padding:0;transition:all .15s;display:grid}.check:hover{border-color:var(--accent)}.check.on{background:var(--green);border-color:var(--green)}.check.sm{border-radius:4px;width:15px;height:15px;margin-top:0}.prio-bar{background:var(--c);border-radius:3px;flex-shrink:0;align-self:stretch;width:3px}.kanban{grid-template-columns:repeat(4,minmax(240px,1fr));align-items:start;gap:14px;display:grid;overflow-x:auto}.kanban-col{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:8px;min-height:200px;padding:10px;display:flex}.kanban-col.over{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, var(--bg-2))}.kanban-head{align-items:center;gap:8px;padding:4px 6px 8px;font-size:13px;font-weight:600;display:flex}.kanban-head .count{color:var(--muted);margin-left:auto;font-weight:500}.kanban-card{background:var(--panel);border:1px solid var(--border);cursor:grab;border-radius:10px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}.kanban-card:hover{border-color:var(--border-2)}.kanban-card:active{cursor:grabbing}.kanban-card .t{font-weight:500}.quick-add{background:var(--panel);border:1px solid var(--border);border-radius:10px;align-items:center;gap:8px;padding:6px 6px 6px 14px;display:flex}.quick-add input{background:0 0;border:0;outline:none;flex:1;padding:6px 0;font-size:14px}.quick-add .hint{color:var(--muted);font-size:11px}.project-card{cursor:pointer;flex-direction:column;gap:12px;display:flex;position:relative;overflow:hidden}.project-card:before{content:"";background:var(--c);width:4px;position:absolute;top:0;bottom:0;left:0}.project-card .name{font-size:15px;font-weight:600}.project-card .desc{color:var(--text-2);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;display:-webkit-box;overflow:hidden}.tech{flex-wrap:wrap;gap:4px;display:flex}.notes-layout{grid-template-columns:300px 1fr;gap:16px;height:calc(100vh - 174px);min-height:500px;display:grid}.notes-list{flex-direction:column;gap:6px;padding-right:4px;display:flex;overflow-y:auto}.note-row{border:1px solid var(--border);background:var(--panel);cursor:pointer;border-radius:10px;padding:10px 12px}.note-row:hover{border-color:var(--border-2)}.note-row.active{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, var(--panel))}.note-row .t{align-items:center;gap:6px;font-weight:500;display:flex}.note-row .p{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:2px;font-size:12px;display:-webkit-box;overflow:hidden}.note-editor{flex-direction:column;gap:10px;min-height:0;display:flex}.note-editor .title-input{background:0 0;border:0;outline:none;width:100%;padding:4px 0;font-size:20px;font-weight:600}.note-editor .textarea{font-family:var(--mono);flex:1;font-size:13px}.md{flex:1;padding:4px 2px;line-height:1.7;overflow-y:auto}.md h1,.md h2,.md h3{margin:18px 0 8px}.md h1{font-size:22px}.md h2{font-size:18px}.md h3{font-size:15px}.md p{margin:8px 0}.md ul,.md ol{margin:8px 0;padding-left:22px}.md code{background:var(--bg-2);border:1px solid var(--border);border-radius:4px;padding:1px 5px;font-size:12.5px}.md pre{background:var(--bg-2);border:1px solid var(--border);border-radius:8px;padding:12px;overflow-x:auto}.md pre code{background:0 0;border:0;padding:0}.md blockquote{border-left:3px solid var(--accent);color:var(--text-2);margin:8px 0;padding:4px 12px}.md a{color:var(--accent)}.md table{border-collapse:collapse}.md td,.md th{border:1px solid var(--border);padding:4px 8px}.md input[type=checkbox]{margin-right:6px}.cal{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;min-width:0;display:grid}.cal .dow{text-align:center;color:var(--muted);padding:4px 0;font-size:12px;font-weight:600}.cal-day{background:var(--panel);border:1px solid var(--border);cursor:pointer;border-radius:10px;flex-direction:column;gap:3px;min-height:100px;padding:6px;display:flex}.cal-day:hover{border-color:var(--border-2)}.cal-day.other{opacity:.4}.cal-day.today{border-color:var(--accent)}.cal-day.selected{background:color-mix(in srgb, var(--accent) 10%, var(--panel))}.cal-day .n{color:var(--text-2);font-size:12px;font-weight:600}.cal-day.today .n{color:var(--accent)}.cal-task{background:color-mix(in srgb, var(--c,var(--accent)) 18%, transparent);color:var(--text);white-space:nowrap;text-overflow:ellipsis;border-left:2px solid var(--c,var(--accent));border-radius:4px;padding:1px 6px;font-size:11px;overflow:hidden}.cal-task.done{opacity:.5;text-decoration:line-through}.habit-row{border:1px solid var(--border);background:var(--panel);border-radius:10px;grid-template-columns:1fr repeat(7,40px) 90px;align-items:center;gap:6px;padding:10px 12px;display:grid}.habit-cell{border:1px solid var(--border);background:var(--bg-2);color:#fff;border-radius:8px;place-items:center;width:32px;height:32px;margin:0 auto;padding:0;display:grid}.habit-cell.on{background:var(--c);border-color:var(--c)}.habit-cell.future{opacity:.35;cursor:not-allowed}.habit-cell.today-cell{box-shadow:0 0 0 2px color-mix(in srgb, var(--c) 50%, transparent)}.heat{grid-template-rows:repeat(7,10px);grid-auto-flow:column;gap:3px;display:grid}.heat div{background:var(--bg-2);border:1px solid var(--border);border-radius:2px;width:10px;height:10px}.heat div.on{background:var(--c);border-color:var(--c)}.timer-ring{width:260px;height:260px;margin:0 auto;position:relative}.timer-ring svg{transform:rotate(-90deg)}.timer-ring .time{flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.timer-ring .time .big{font-variant-numeric:tabular-nums;letter-spacing:-.03em;font-size:52px;font-weight:700}.timer-ring .time .mode{color:var(--text-2);text-transform:uppercase;letter-spacing:.1em;font-size:13px}.snippet-card{flex-direction:column;gap:8px;display:flex}.snippet-card pre{background:var(--bg-2);border:1px solid var(--border);border-radius:8px;max-height:220px;margin:0;padding:10px 12px;font-size:12.5px;overflow:auto}.overlay{backdrop-filter:blur(4px);z-index:50;background:#0000008c;place-items:center;padding:20px;animation:.15s fade;display:grid;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--border-2);width:100%;max-width:640px;max-height:90vh;box-shadow:var(--shadow);border-radius:16px;animation:.18s pop;overflow-y:auto}.modal.lg{max-width:860px}.modal-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-body{flex-direction:column;gap:14px;padding:20px;display:flex}.modal-foot{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:14px 20px;display:flex}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:translateY(8px)scale(.98)}}.cmdk{z-index:60;backdrop-filter:blur(4px);background:#00000080;justify-content:center;padding-top:12vh;animation:.12s fade;display:flex;position:fixed;inset:0}.cmdk-panel{background:var(--panel);border:1px solid var(--border-2);width:100%;max-width:600px;height:fit-content;box-shadow:var(--shadow);border-radius:14px;animation:.15s pop;overflow:hidden}.cmdk-input{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:12px 16px;display:flex}.cmdk-input input{background:0 0;border:0;outline:none;flex:1;font-size:15px}.cmdk-list{max-height:400px;padding:6px;overflow-y:auto}.cmdk-group{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:8px 10px 4px;font-size:11px;font-weight:600}.cmdk-item{cursor:pointer;color:var(--text-2);border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.cmdk-item svg{flex-shrink:0}.cmdk-item.active,.cmdk-item:hover{background:color-mix(in srgb, var(--accent) 15%, transparent);color:var(--text)}.cmdk-item .sub{color:var(--muted);margin-left:auto;font-size:12px}.toasts{z-index:70;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:20px;right:20px}.toast{background:var(--panel);border:1px solid var(--border-2);box-shadow:var(--shadow);border-radius:10px;align-items:center;gap:8px;padding:10px 14px;font-size:13px;animation:.2s pop;display:flex}.muted{color:var(--muted)}.text-2{color:var(--text-2)}.small{font-size:12px}.mono{font-family:var(--mono)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.clickable{cursor:pointer}.divider{background:var(--border);height:1px;margin:4px 0}.menu-btn{display:none}@media (width<=1000px){.grid-4,.grid-3{grid-template-columns:repeat(2,1fr)}.kanban{grid-template-columns:repeat(4,260px)}}@media (width<=760px){.sidebar{z-index:40;transition:transform .2s;position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.sidebar.open{box-shadow:var(--shadow);transform:none}.menu-btn{display:inline-flex}.grid-2,.grid-3,.grid-4,.form-grid{grid-template-columns:1fr}.notes-layout{grid-template-columns:1fr;height:auto}.content{padding:16px}.search-trigger{width:auto}.search-trigger span,.search-trigger kbd{display:none}.topbar{gap:8px;padding:0 12px}.topbar .title{white-space:nowrap}.habit-row{grid-template-columns:1fr repeat(7,32px)}.habit-row .habit-stat{display:none}}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.chat{flex-direction:column;min-height:560px;max-height:calc(100vh - 194px);padding:12px;display:flex}.chat-list{flex-direction:column;flex:1;gap:12px;padding:6px 4px;display:flex;overflow-y:auto}.chat-hints{text-align:center;max-width:420px;color:var(--text-2);flex-direction:column;align-items:center;gap:10px;margin:auto;display:flex}.chat-msg{align-items:flex-start;gap:10px;display:flex}.chat-msg.user{flex-direction:row-reverse}.chat-avatar{background:var(--panel-2);border:1px solid var(--border);width:28px;height:28px;color:var(--text-2);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.chat-msg.assistant .chat-avatar{background:color-mix(in srgb, var(--accent) 18%, transparent);color:var(--accent);border-color:#0000}.chat-bubble{background:var(--panel-2);border:1px solid var(--border);border-radius:12px;max-width:85%;padding:8px 12px;line-height:1.55}.chat-msg.user .chat-bubble{background:color-mix(in srgb, var(--accent) 22%, var(--panel));border-color:color-mix(in srgb, var(--accent) 40%, transparent)}.chat-bubble .md{padding:0;overflow:visible}.chat-bubble .md p:first-child{margin-top:0}.chat-bubble .md p:last-child{margin-bottom:0}.chat-input{border-top:1px solid var(--border);align-items:flex-end;gap:8px;margin-top:8px;padding-top:10px;display:flex}.chat-input .textarea{resize:none;flex:1}@media (width<=1000px){.chat{max-height:none}}.login-wrap{background:radial-gradient(1200px 600px at 50% -10%, color-mix(in srgb, var(--accent) 18%, transparent), transparent), var(--bg);place-items:center;min-height:100vh;padding:20px;display:grid}.login-card{width:100%;max-width:380px;box-shadow:var(--shadow);flex-direction:column;gap:14px;padding:28px;display:flex}
