:root{--bg:#fff;--surface:#fafafa;--surface-2:#f4f4f5;--surface-3:#ececee;--line:#e4e4e7;--line-2:#d4d4d8;--text:#18181b;--text-dim:#52525b;--muted:#a1a1aa;--accent:#18181b;--accent-2:#3f3f46;--on-accent:#fff;--ok:#18181b;--radius:12px;--shadow:0 1px 2px rgba(0,0,0,.04),0 8px 24px -12px rgba(0,0,0,.18);--ease:cubic-bezier(.2,.6,.3,1);--font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body{font-family:var(--font);background:var(--bg);color:var(--text);overflow:hidden;-webkit-font-smoothing:antialiased}button{cursor:pointer;border:none;background:none;color:inherit}button,input,select,textarea{font-family:inherit}::selection{background:var(--accent);color:var(--on-accent)}.mono{font-family:var(--mono)}.app{position:relative;z-index:2;display:grid;grid-template-columns:248px 1fr 340px;height:100vh;height:100dvh}@media(max-width:1100px){.app{grid-template-columns:220px 1fr}.notes-rail{display:none}}@media(max-width:760px){.app{grid-template-columns:1fr;grid-template-rows:auto 1fr}}.sidebar{background:var(--surface);border-right:1px solid var(--line);padding:22px 16px;display:flex;flex-direction:column;gap:24px;overflow-y:auto}@media(max-width:760px){.sidebar{display:none}}.brand{display:flex;align-items:center;gap:11px}.brand .mark{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:var(--accent);color:var(--on-accent)}.brand .mark,.brand h1{font-weight:700;font-size:17px}.brand h1{letter-spacing:-.2px;line-height:1}.brand small{display:block;font-size:9px;letter-spacing:2px;color:var(--muted);margin-top:3px}.nav-label{font-size:11px;letter-spacing:.5px;color:var(--muted);text-transform:uppercase;margin:0 6px 9px;font-weight:600}.platforms{display:flex;flex-direction:column;gap:2px}.plat{display:flex;align-items:center;gap:10px;padding:8px 11px;border-radius:9px;color:var(--text-dim);transition:.18s var(--ease);position:relative;font-size:14px;font-weight:500;width:100%;text-align:left}.plat:hover{background:var(--surface-2);color:var(--text)}.plat.active{background:var(--surface-3);color:var(--text);font-weight:600}.plat .dot{width:8px;height:8px;border-radius:50%;flex:none}.plat .count{margin-left:auto;font-size:12px;color:var(--muted);font-family:var(--mono)}.plat .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.add-plat{display:flex;align-items:center;gap:8px;padding:8px 11px;border-radius:9px;color:var(--muted);font-size:13px;border:1px dashed var(--line-2);transition:.18s;width:100%;margin-top:8px}.add-plat:hover{color:var(--text);border-color:var(--text-dim)}.side-foot{margin-top:auto;display:flex;flex-direction:column;gap:14px}.ring-wrap{display:flex;align-items:center;gap:13px;padding:13px;border-radius:11px;background:var(--surface-2);border:1px solid var(--line)}.ring{position:relative;width:52px;height:52px;flex:none}.ring svg{transform:rotate(-90deg)}.ring .pct{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--mono);font-size:12px;font-weight:700}.ring-wrap .t{font-size:11px;color:var(--muted);line-height:1.5}.ring-wrap .t b{color:var(--text);font-size:13px;display:block;font-weight:700}.main{display:flex;flex-direction:column;overflow:hidden;background:var(--bg)}.topbar{padding:22px 30px 16px;display:flex;align-items:flex-end;gap:18px;flex-wrap:wrap;border-bottom:1px solid var(--line)}@media(max-width:760px){.topbar{padding:16px 16px 12px}}.headline{flex:1 1;min-width:200px}.headline .eyebrow{font-size:11px;letter-spacing:.5px;color:var(--muted);text-transform:uppercase;margin-bottom:6px;font-weight:600}.headline h2{font-size:26px;font-weight:700;line-height:1.1;letter-spacing:-.5px}@media(max-width:760px){.headline h2{font-size:22px}}.headline h2 em{font-style:normal;color:var(--text-dim)}.headline p{color:var(--muted);font-size:13px;margin-top:5px}.search{display:flex;align-items:center;gap:9px;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:9px 12px;min-width:210px;transition:.18s}.search:focus-within{border-color:var(--text-dim);background:var(--bg)}.search input{background:none;border:none;outline:none;color:var(--text);font-size:13px;width:100%}.search input::placeholder{color:var(--muted)}.search .kbd{font-size:11px;color:var(--muted);border:1px solid var(--line-2);border-radius:5px;padding:1px 6px;font-family:var(--mono)}.toolbar{padding:14px 30px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}@media(max-width:760px){.toolbar{padding:12px 16px;overflow-x:auto}}.chip{font-size:13px;padding:6px 13px;border-radius:8px;border:1px solid var(--line);color:var(--text-dim);transition:.16s;display:flex;align-items:center;gap:6px;white-space:nowrap;background:var(--bg)}.chip:hover{border-color:var(--text-dim);color:var(--text)}.chip.on{background:var(--accent);color:var(--on-accent);border-color:var(--accent);font-weight:600}.chip .n{font-family:var(--mono);font-size:11px;opacity:.7}.spacer{flex:1 1}.btn-add{display:flex;align-items:center;gap:7px;padding:8px 15px;border-radius:9px;font-size:13px;font-weight:600;background:var(--accent);color:var(--on-accent);transition:.16s;white-space:nowrap}.btn-add:hover{background:var(--accent-2)}.scroll{flex:1 1;overflow-y:auto;padding:6px 30px 90px}@media(max-width:760px){.scroll{padding:6px 16px 110px}}.notes-list::-webkit-scrollbar,.scroll::-webkit-scrollbar,.sidebar::-webkit-scrollbar{width:10px}.notes-list::-webkit-scrollbar-thumb,.scroll::-webkit-scrollbar-thumb,.sidebar::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:10px;border:3px solid var(--bg)}.task{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;margin-bottom:11px;transition:border-color .18s,box-shadow .18s;position:relative}.task:before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:3px;border-radius:3px;background:var(--accent-color,var(--line-2))}.task:hover{border-color:var(--line-2);box-shadow:var(--shadow)}.task.done{opacity:.6}.task.done .t-title{text-decoration:line-through;-webkit-text-decoration-color:var(--muted);text-decoration-color:var(--muted)}.task.flash{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.t-head{display:flex;align-items:flex-start;gap:12px}.check{width:22px;height:22px;border-radius:6px;border:1.5px solid var(--line-2);flex:none;margin-top:1px;display:grid;place-items:center;transition:.16s;background:var(--bg)}.check.on,.check:hover{border-color:var(--accent)}.check.on{background:var(--accent)}.check svg{opacity:0;transform:scale(.5);transition:.18s var(--ease);stroke:var(--on-accent)}.check.on svg{opacity:1;transform:scale(1)}.t-main{flex:1 1;min-width:0}.t-title{font-size:15px;font-weight:600;line-height:1.35;letter-spacing:-.1px;outline:none}.t-meta{gap:7px;margin-top:8px;flex-wrap:wrap}.t-meta,.tag{display:flex;align-items:center}.tag{font-size:11px;font-family:var(--mono);padding:3px 8px;border-radius:6px;border:1px solid var(--line);color:var(--text-dim);gap:5px;background:var(--surface)}.tag .dot{width:7px;height:7px;border-radius:50%}.prio{font-weight:600}.prio.high{color:var(--text);border-color:var(--text);background:var(--bg)}.prio.med{color:var(--text-dim);border-color:var(--line-2)}.prio.low{color:var(--muted);border-color:var(--line)}.due.over{color:var(--text);border-color:var(--text-dim);font-weight:700;text-decoration:underline}.t-actions{display:flex;gap:3px;opacity:0;transition:.16s}.task:hover .t-actions{opacity:1}@media(max-width:760px){.t-actions{opacity:1}}.icon-btn{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;color:var(--muted);transition:.16s}.icon-btn:hover{background:var(--surface-2);color:var(--text)}.icon-btn.del:hover{color:var(--text);background:var(--surface-3)}.steps{margin-top:14px;padding-top:13px;border-top:1px solid var(--line)}.prog-bar{height:5px;border-radius:5px;background:var(--surface-3);overflow:hidden;margin-bottom:11px}.prog-fill{height:100%;border-radius:5px;background:var(--accent);transition:width .4s var(--ease)}.step{display:flex;align-items:center;gap:10px;padding:5px 0;font-size:13px;color:var(--text-dim)}.step .node{width:17px;height:17px;border-radius:50%;border:1.5px solid var(--line-2);flex:none;display:grid;place-items:center;transition:.16s;cursor:pointer;background:var(--bg)}.step .node:hover,.step.done .node{border-color:var(--accent)}.step.done .node{background:var(--accent)}.step.done .node:after{content:"";width:5px;height:5px;border-radius:50%;background:var(--on-accent)}.step.done .label{text-decoration:line-through;color:var(--muted)}.step .label{flex:1 1;outline:none}.step .x{opacity:0;color:var(--muted);font-size:15px;transition:.16s;width:22px;height:22px;border-radius:6px}.step:hover .x{opacity:1}.step .x:hover{color:var(--text);background:var(--surface-2)}.step-line{display:flex;align-items:center;gap:10px;margin-top:5px}.step-line .node{width:17px;height:17px;border:1.5px dashed var(--line-2);border-radius:50%;flex:none}.step-line input{background:none;border:none;outline:none;color:var(--text);font-size:13px;width:100%}.step-line input::placeholder{color:var(--muted)}.empty{text-align:center;padding:70px 20px;color:var(--muted)}.empty .big{font-size:18px;font-weight:600;color:var(--text-dim);margin-bottom:6px}.empty svg{margin-bottom:16px;opacity:.4}.notes-rail{background:var(--surface);border-left:1px solid var(--line);display:flex;flex-direction:column;overflow:hidden}.nr-head{padding:22px 22px 14px;border-bottom:1px solid var(--line)}.nr-head .eyebrow{font-size:11px;letter-spacing:.5px;color:var(--muted);text-transform:uppercase;margin-bottom:5px;font-weight:600}.nr-head h3{font-size:18px;font-weight:700;letter-spacing:-.2px}.nr-head p{font-size:12px;color:var(--muted);margin-top:3px}.note-compose{padding:14px 22px;border-bottom:1px solid var(--line)}.note-compose textarea{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:11px;color:var(--text);font-size:13px;resize:none;outline:none;min-height:66px;line-height:1.55;transition:.16s}.note-compose textarea:focus{border-color:var(--text-dim)}.nc-row{display:flex;align-items:center;gap:8px;margin-top:9px}.swatch{display:flex;gap:6px}.swatch span{width:18px;height:18px;border-radius:50%;cursor:pointer;border:1px solid var(--line-2);transition:.16s}.swatch span.sel{outline:2px solid var(--accent);outline-offset:1px}.note-save{margin-left:auto;background:var(--accent);color:var(--on-accent);font-weight:600;font-size:12px;padding:8px 15px;border-radius:8px;transition:.16s}.note-save:hover{background:var(--accent-2)}.notes-list{flex:1 1;overflow-y:auto;padding:14px 22px 40px;display:flex;flex-direction:column;gap:10px}.note{border-radius:10px;padding:13px 14px;position:relative;border:1px solid var(--line-2)}.note .body{font-size:13px;line-height:1.6;color:#27272a;white-space:pre-wrap;word-break:break-word}.note .foot{display:flex;align-items:center;justify-content:space-between;margin-top:9px}.note .time{font-family:var(--mono);font-size:10px;color:rgba(39,39,42,.5)}.note .pin{font-size:14px;opacity:.45;transition:.16s}.note .pin.on,.note .pin:hover{opacity:1}.note .ndel{position:absolute;top:7px;right:7px;color:rgba(39,39,42,.4);opacity:0;transition:.16s;font-size:16px;width:22px;height:22px;border-radius:6px}.note:hover .ndel{opacity:1}.note .ndel:hover{color:#18181b}.overlay{position:fixed;inset:0;z-index:50;background:rgba(24,24,27,.4);display:grid;place-items:center;opacity:0;pointer-events:none;transition:.2s;padding:20px}.overlay.show{opacity:1;pointer-events:auto}.modal{width:min(540px,92vw);background:var(--bg);border:1px solid var(--line);border-radius:16px;padding:26px;box-shadow:var(--shadow);transform:translateY(8px) scale(.98);transition:.22s var(--ease);max-height:90vh;overflow-y:auto}.overlay.show .modal{transform:none}.modal h3{font-size:19px;font-weight:700;margin-bottom:4px;letter-spacing:-.2px}.modal .sub{color:var(--muted);font-size:13px;margin-bottom:20px}.field{margin-bottom:15px}.field label{display:block;font-size:11px;letter-spacing:.5px;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-weight:600}.field input,.field select{width:100%;background:var(--bg);border:1px solid var(--line-2);border-radius:9px;padding:11px 13px;color:var(--text);font-size:14px;outline:none;transition:.16s}.field input:focus,.field select:focus{border-color:var(--accent)}.field-row{display:flex;gap:11px}.field-row .field{flex:1 1}.prio-pick{display:flex;gap:7px}.prio-pick button{flex:1 1;padding:10px;border-radius:8px;border:1px solid var(--line-2);font-size:12px;font-weight:600;color:var(--text-dim);transition:.16s;background:var(--bg)}.prio-pick button.sel{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.modal-actions{display:flex;gap:10px;margin-top:24px}.modal-actions button{flex:1 1;padding:12px;border-radius:9px;font-size:14px;font-weight:600;transition:.16s}.btn-cancel{background:var(--bg);color:var(--text-dim);border:1px solid var(--line-2)}.btn-cancel:hover{color:var(--text);background:var(--surface-2)}.btn-save{background:var(--accent);color:var(--on-accent)}.btn-save:hover{background:var(--accent-2)}.cmdp{width:min(540px,92vw);align-self:start;margin-top:14vh;padding:0;overflow:hidden}.cmdp .search-big{display:flex;align-items:center;gap:11px;padding:16px 20px;border-bottom:1px solid var(--line)}.cmdp .search-big input{background:none;border:none;outline:none;color:var(--text);font-size:16px;width:100%}.cmd-results{max-height:50vh;overflow-y:auto;padding:7px}.cmd-item{display:flex;align-items:center;gap:12px;padding:11px 13px;border-radius:9px;cursor:pointer;transition:.12s;width:100%;text-align:left}.cmd-item.sel,.cmd-item:hover{background:var(--surface-2)}.cmd-item .ci-dot{width:8px;height:8px;border-radius:50%;flex:none}.cmd-item .ci-t{flex:1 1;font-size:14px}.cmd-item .ci-k{font-size:11px;color:var(--muted);font-family:var(--mono)}.fab{position:fixed;right:18px;bottom:20px;z-index:30;width:54px;height:54px;border-radius:50%;background:var(--accent);color:var(--on-accent);display:none;place-items:center;box-shadow:var(--shadow)}@media(max-width:760px){.fab{display:grid}}.toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%) translateY(16px);z-index:80;background:var(--accent);color:var(--on-accent);padding:11px 20px;border-radius:9px;font-size:13px;font-weight:600;box-shadow:var(--shadow);opacity:0;transition:.25s var(--ease);display:flex;align-items:center;gap:9px;pointer-events:none}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.install-bar{position:fixed;left:50%;bottom:22px;transform:translateX(-50%) translateY(160%);z-index:70;display:flex;align-items:center;gap:13px;background:var(--bg);border:1px solid var(--line-2);border-radius:12px;padding:11px 12px 11px 14px;box-shadow:var(--shadow);transition:.3s var(--ease);max-width:92vw}.install-bar.show{transform:translateX(-50%) translateY(0)}.install-bar .ib-ico{width:32px;height:32px;border-radius:8px;flex:none}.install-bar .ib-t{font-size:13px;line-height:1.4}.install-bar .ib-t b{font-weight:700}.install-bar .ib-t span{color:var(--muted);font-size:11px;display:block}.install-bar .ib-go{background:var(--accent);color:var(--on-accent);font-weight:600;font-size:12px;padding:8px 13px;border-radius:8px}.install-bar .ib-x{color:var(--muted);font-size:18px;width:26px;height:26px;border-radius:7px}.install-bar .ib-x:hover{color:var(--text)}