:root{--acc:#2563eb;--acc2:#3b82f6;--ok:#16a34a;--warn:#d97706;--bad:#dc2626;--r:12px;
  --bg:#0d1117;--bg2:#10161f;--s1:#141b26;--s2:#0f151e;--line:#232d3c;--txt:#e6ebf3;--mut:#8b97ab;--hover:#1a2434;
  --shadow:0 1px 2px rgba(0,0,0,.35),0 8px 24px rgba(0,0,0,.35);color-scheme:dark}
[data-theme=light]{--bg:#f3f5f9;--bg2:#eef1f6;--s1:#ffffff;--s2:#f7f9fc;--line:#e2e7ef;--txt:#152033;--mut:#667189;--hover:#eef3ff;
  --shadow:0 1px 2px rgba(16,24,40,.05),0 6px 18px rgba(16,24,40,.06);color-scheme:light}
*{box-sizing:border-box}
html,body{height:100%;margin:0}
body{font:14px/1.45 "Segoe UI Variable Text","Segoe UI",Inter,system-ui,-apple-system,sans-serif;color:var(--txt);background:var(--bg);-webkit-tap-highlight-color:transparent}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
a{color:var(--acc2)}
.hidden{display:none!important}
.mut{color:var(--mut)}
.sm{font-size:12px}

/* ---------- login ---------- */
#login{position:fixed;inset:0;display:grid;place-items:center;padding:20px;background:var(--bg)}
#login form{width:min(360px,100%);background:var(--s1);border:1px solid var(--line);border-radius:18px;padding:26px;box-shadow:var(--shadow);display:grid;gap:12px}
#login h1{margin:0 0 4px;font-size:20px}
.err{color:#f87171;font-size:13px;min-height:18px}

/* ---------- layout ---------- */
#app{display:grid;grid-template-columns:240px 1fr;height:100%}
#app.with-editor{grid-template-columns:240px 1fr 380px}
#side{background:var(--bg2);border-right:1px solid var(--line);padding:14px 10px;overflow:auto;display:flex;flex-direction:column;gap:2px}
.brand{display:flex;gap:10px;align-items:center;padding:2px 6px 14px}
.brand .lg{width:36px;height:36px;display:grid;place-items:center}
.brand .lg img{width:36px;height:36px;display:block}
.brand b{display:block;font-size:16px;letter-spacing:.4px}
.brand small{color:var(--mut);font-size:11px}
.nav{display:flex;align-items:center;gap:9px;padding:7px 10px;border-radius:9px;border:0;background:none;text-align:left;width:100%;color:var(--txt)}
.nav:hover{background:var(--hover)}
.nav.on{background:color-mix(in srgb,var(--acc) 22%,transparent);color:#fff}
[data-theme=light] .nav.on{color:var(--acc)}
.nav .ic{width:20px;text-align:center}
.nav .n{margin-left:auto;font-size:12px;color:var(--mut)}
.nav .n.alert{color:#f87171;font-weight:600}
.sec{font-size:11px;text-transform:uppercase;letter-spacing:.8px;color:var(--mut);padding:14px 10px 4px;display:flex;justify-content:space-between;align-items:center}
.sec button{background:none;border:0;color:var(--mut);font-size:16px;padding:0 4px}
.dot{width:10px;height:10px;border-radius:50%;display:inline-block;flex:none}
.sync{margin-top:auto;padding:10px;font-size:12px;color:var(--mut);display:flex;gap:6px;align-items:center}
.sync i{width:8px;height:8px;border-radius:50%;background:var(--mut)}
.sync.on i{background:var(--ok)}.sync.off i{background:var(--warn)}.sync.err i{background:var(--bad)}

#main{display:flex;flex-direction:column;min-width:0;height:100%;overflow:hidden}
#top{display:flex;gap:10px;align-items:center;padding:12px 18px;border-bottom:1px solid var(--line);background:var(--bg)}
#menuBtn{display:none}
.qa{flex:1;position:relative}
.qa input{width:100%;padding:11px 14px 11px 40px;border-radius:12px;border:1px solid var(--line);background:var(--s1);outline:none;font-size:15px}
.qa input:focus{border-color:var(--acc)}
.qa .plus{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--acc2);font-size:20px;line-height:1}
.chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px;min-height:0}
.chip{font-size:12px;padding:2px 8px;border-radius:99px;background:var(--s1);border:1px solid var(--line);color:var(--mut);white-space:nowrap}
.chip.k{color:var(--txt)}
.chip.red{color:#f87171;border-color:#7f1d1d}
.chip.acc{color:#93c5fd;border-color:#1e3a8a}
[data-theme=light] .chip.acc{color:var(--acc)}
.search{width:200px;padding:9px 12px;border-radius:10px;border:1px solid var(--line);background:var(--s1);outline:none}
.btn{padding:8px 14px;border-radius:10px;border:1px solid var(--line);background:var(--s1);white-space:nowrap}
.btn:hover{background:var(--hover)}
.btn.pri{background:var(--acc);border-color:var(--acc);color:#fff}
.btn.pri:hover{background:var(--acc2)}
.btn.ghost{background:none;border-color:transparent}
.btn.danger{color:#f87171}
.btn.sm{padding:4px 10px;font-size:12.5px;border-radius:8px}
.iconbtn{background:none;border:0;padding:6px;border-radius:8px;color:var(--mut);font-size:16px;line-height:1}
.iconbtn:hover{background:var(--hover);color:var(--txt)}

#view{flex:1;overflow:auto;padding:18px 22px 90px}
.vh{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.vh h2{margin:0;font-size:21px}
.vh .sub{color:var(--mut);font-size:13px}
.vh .sp{flex:1}
.card{background:var(--s1);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;margin-bottom:12px}
.card h3{margin:0 0 10px;font-size:14px;display:flex;align-items:center;gap:8px}
.empty{color:var(--mut);padding:30px 10px;text-align:center}
.grp{font-size:12px;color:var(--mut);text-transform:uppercase;letter-spacing:.6px;margin:16px 4px 6px;display:flex;align-items:center;gap:8px}

/* ---------- tarefas ---------- */
.tasks{list-style:none;margin:0;padding:0}
.task{display:flex;align-items:flex-start;gap:10px;padding:9px 10px;border-radius:10px;border:1px solid transparent;background:var(--s1);margin-bottom:5px;cursor:pointer;user-select:none}
.task:hover{border-color:var(--line)}
.task.sel{border-color:var(--acc)}
.task.done .tt{text-decoration:line-through;color:var(--mut)}
.task.drag{opacity:.4}
.task.over{box-shadow:0 -2px 0 var(--acc2)}
.chk{width:20px;height:20px;border-radius:50%;border:2px solid var(--mut);background:none;flex:none;margin-top:1px;padding:0;display:grid;place-items:center}
.chk.p3{border-color:#f59e0b}.chk.p4{border-color:#ef4444}.chk.p1{border-color:#475569}
.chk:hover{background:color-mix(in srgb,var(--ok) 25%,transparent)}
.task.done .chk{background:var(--ok);border-color:var(--ok)}
.task.done .chk::after{content:"✓";color:#fff;font-size:12px}
.tb{flex:1;min-width:0}
.tt{word-break:break-word}
.meta{display:flex;flex-wrap:wrap;gap:6px 10px;margin-top:3px;font-size:12px;color:var(--mut)}
.meta .late{color:#f87171}.meta .today{color:#4ade80}
.handle{color:var(--mut);opacity:0;cursor:grab;padding:0 2px;touch-action:none;font-size:16px;line-height:20px}
.task:hover .handle{opacity:.8}

/* ---------- meu dia ---------- */
.load{height:8px;border-radius:9px;background:var(--s2);overflow:hidden;flex:1;min-width:120px;max-width:260px}
.load i{display:block;height:100%;background:var(--acc)}
.load.hi i{background:var(--warn)}.load.over i{background:var(--bad)}
.tl{position:relative;padding-left:62px}
.blk{position:relative;margin-bottom:6px}
.blk .hr{position:absolute;left:-62px;top:10px;width:54px;text-align:right;font-size:12px;color:var(--mut);font-variant-numeric:tabular-nums}
.blk.ev .task{background:var(--s2);border-style:dashed;border-color:var(--line);cursor:default}
.blk.past{opacity:.55}
.blk.now .hr{color:var(--acc2);font-weight:700}
.bar{width:4px;align-self:stretch;border-radius:3px;flex:none}
.nowline{height:2px;background:#ef4444;margin:6px 0 8px;position:relative}
.nowline::before{content:attr(data-t);position:absolute;left:-62px;top:-8px;width:54px;text-align:right;font-size:11px;color:#ef4444}
.toggle{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.toggle button{border:0;background:var(--s1);padding:7px 12px}
.toggle button.on{background:var(--acc);color:#fff}

/* ---------- editor ---------- */
#editor{border-left:1px solid var(--line);background:var(--bg2);overflow:auto;padding:14px 16px 40px}
#editor .ehead{display:flex;gap:6px;align-items:center;margin-bottom:10px}
#editor textarea.title{width:100%;font-size:17px;font-weight:600;background:none;border:0;outline:none;resize:none;padding:4px 0}
.fld{display:grid;grid-template-columns:96px 1fr;align-items:center;gap:8px;margin:7px 0}
.fld>label{color:var(--mut);font-size:12.5px}
.fld input,.fld select,.fld textarea,.in{width:100%;padding:7px 9px;border-radius:8px;border:1px solid var(--line);background:var(--s1);outline:none}
.fld input:focus,.fld select:focus,.fld textarea:focus,.in:focus{border-color:var(--acc)}
.seg{display:flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.seg button{flex:1;border:0;background:var(--s1);padding:6px 4px;font-size:12.5px}
.seg button.on{background:var(--acc);color:#fff}
.subs{list-style:none;padding:0;margin:6px 0}
.subs li{display:flex;gap:8px;align-items:center;padding:4px 0}
.subs li input[type=text]{flex:1;background:none;border:0;border-bottom:1px solid transparent;outline:none;padding:3px 0}
.subs li input[type=text]:focus{border-bottom-color:var(--acc)}
.subs li.ok input[type=text]{text-decoration:line-through;color:var(--mut)}
.notes{width:100%;min-height:90px;resize:vertical}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}

/* ---------- foco ---------- */
#focus{position:fixed;inset:0;background:var(--bg);z-index:50;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px 20px;text-align:center}
#focus .fx{position:absolute;top:16px;right:18px}
#focus .lbl{color:var(--mut);letter-spacing:2px;text-transform:uppercase;font-size:12px}
#focus h1{font-size:clamp(26px,4.5vw,46px);margin:14px 0 10px;max-width:900px;line-height:1.15}
#focus .timer{font-size:clamp(54px,11vw,110px);font-weight:200;font-variant-numeric:tabular-nums;margin:18px 0 6px;letter-spacing:2px}
#focus .timer.brk{color:#4ade80}
#focus .acts{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:20px}
#focus .acts .btn{padding:12px 20px;font-size:15px}
#focus .subs{text-align:left;max-width:520px;width:100%;margin-top:14px}
#focus .notes{max-width:620px;color:var(--mut);white-space:pre-wrap}

/* ---------- diversos ---------- */
#toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);background:#111827;color:#fff;border:1px solid #334155;padding:10px 16px;border-radius:12px;box-shadow:var(--shadow);z-index:80;display:flex;gap:12px;align-items:center;max-width:92vw}
#toast button{background:none;border:0;color:#93c5fd;font-weight:600}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:60;display:grid;place-items:center;padding:16px}
.modal .box{background:var(--s1);border:1px solid var(--line);border-radius:16px;padding:20px;width:min(520px,100%);max-height:90vh;overflow:auto;box-shadow:var(--shadow)}
.modal h3{margin-top:0}
kbd{background:var(--s2);border:1px solid var(--line);border-radius:5px;padding:1px 6px;font-size:12px}
.stat{display:flex;gap:12px;flex-wrap:wrap}
.stat div{background:var(--s2);border:1px solid var(--line);border-radius:10px;padding:10px 14px;min-width:110px}
.stat b{display:block;font-size:22px}
.hbar{display:flex;align-items:center;gap:8px;font-size:13px;margin:4px 0}
.hbar i{height:8px;border-radius:5px;display:block}
#tabbar{display:none}

/* ---------- captura (janelinha do atalho global) ---------- */
body.capture{background:transparent}
body.capture #app{display:block}
body.capture #side,body.capture #view,body.capture #editor,body.capture #tabbar,body.capture .search,body.capture #top .btn,body.capture #menuBtn{display:none!important}
body.capture #top{border:1px solid var(--acc);border-radius:14px;margin:8px;background:var(--bg2);flex-direction:column;align-items:stretch}
body.capture .capinfo{display:block!important;font-size:12px;color:var(--mut)}
.capinfo{display:none}

/* ---------- celular ---------- */
@media (max-width:860px){
  #app,#app.with-editor{grid-template-columns:1fr}
  #side{position:fixed;inset:0 25% 0 0;z-index:40;transform:translateX(-105%);transition:transform .2s;box-shadow:var(--shadow)}
  #side.open{transform:none}
  #menuBtn{display:block}
  .search{display:none}
  #top{padding:10px 12px;flex-wrap:wrap}
  #top .btn.foco{display:none}
  #view{padding:14px 12px 100px}
  #editor{position:fixed;inset:0;z-index:45;border:0;padding-top:max(14px,env(safe-area-inset-top))}
  .handle{opacity:.6}
  .task{flex-wrap:wrap}.task .tb{flex:1 1 calc(100% - 64px)}.task>.btn{margin-left:30px}
  #tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;background:var(--bg2);border-top:1px solid var(--line);z-index:30;padding-bottom:env(safe-area-inset-bottom)}
  #tabbar button{flex:1;background:none;border:0;padding:9px 0 8px;font-size:11px;color:var(--mut);display:flex;flex-direction:column;align-items:center;gap:2px}
  #tabbar button b{font-size:19px;font-weight:400}
  #tabbar button.on{color:var(--acc2)}
  .fld{grid-template-columns:88px 1fr}
  .tl{padding-left:50px}.blk .hr{left:-52px;width:46px}.nowline::before{left:-52px;width:46px}
}
/* ---------- Projetos (banco de ideias) ---------- */
.pfil{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}
.pfil .seg{flex-wrap:nowrap;overflow-x:auto;max-width:100%;scrollbar-width:none}
.pfil .seg button{flex:none;white-space:nowrap;padding:6px 11px}
.pfil .seg small{margin-left:4px;opacity:.7}
.pfil select{padding:6px 10px;border-radius:9px;border:1px solid var(--line);background:var(--s1);color:var(--txt)}
.projs{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.proj{background:var(--s1);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;cursor:pointer;display:flex;flex-direction:column;transition:border-color .15s}
.proj:hover,.proj.sel{border-color:var(--acc2)}
.proj .pimg{height:140px;background:var(--s2);overflow:hidden}
.proj .pimg img{width:100%;height:100%;object-fit:cover;display:block}
.proj .pb{padding:11px 13px;display:flex;flex-direction:column;gap:6px}
.proj .pt{font-weight:600;font-size:15px;line-height:1.3}
.proj .meta{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:12px;color:var(--mut)}
.proj .pdesc{font-size:13px;color:var(--mut);line-height:1.45;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.proj .sub{font-size:11.5px;color:var(--mut)}
.pill{padding:1px 8px;border-radius:99px;font-size:11.5px;border:1px solid var(--line);color:var(--txt)}
.pill.s-ideia{border-color:#a855f7;color:#c084fc}.pill.s-avaliando{border-color:#f59e0b;color:#fbbf24}
.pill.s-pronto{border-color:#16a34a;color:#4ade80}.pill.s-andamento{border-color:#3b82f6;color:#93c5fd}.pill.s-arquivado{color:var(--mut)}
[data-theme=light] .pill.s-ideia{color:#7e22ce}[data-theme=light] .pill.s-avaliando{color:#b45309}[data-theme=light] .pill.s-pronto{color:#15803d}[data-theme=light] .pill.s-andamento{color:#1d4ed8}
.card.stale{border-color:#92400e}
.srow{display:flex;align-items:center;gap:8px;padding:5px 0;border-top:1px solid var(--line);flex-wrap:wrap}
.srow .sp{flex:1}
.md{font-size:14px;line-height:1.55;background:var(--s2);border:1px solid var(--line);border-radius:10px;padding:10px 13px;overflow-wrap:anywhere}
.md p{margin:0 0 8px}.md ul,.md ol{margin:0 0 8px;padding-left:20px}.md li.ck{list-style:none;margin-left:-18px}
.md h3,.md h4,.md h5,.md h6{margin:10px 0 6px;font-size:15px}.md blockquote{margin:0 0 8px;padding-left:10px;border-left:3px solid var(--line);color:var(--mut)}
.md code{background:var(--s1);padding:1px 5px;border-radius:5px;font-size:12.5px}.md hr{border:0;border-top:1px solid var(--line)}
.md-in{font-family:ui-monospace,Consolas,monospace;font-size:13px}
.atts{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}
.att{position:relative;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--s2);aspect-ratio:1}
.att img{width:100%;height:100%;object-fit:cover;display:block}
.att .pdf{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;font-size:28px;text-decoration:none;padding:6px;text-align:center}
.att .pdf span{font-size:11px;color:var(--mut);overflow-wrap:anywhere}
.att .iconbtn{position:absolute;top:3px;right:3px;background:rgba(0,0,0,.6);color:#fff;width:24px;height:24px;font-size:12px}
.links{display:flex;flex-direction:column;gap:4px;margin-top:6px;font-size:13px;overflow-wrap:anywhere}
@media (max-width:760px){.projs{grid-template-columns:1fr}.proj .pimg{height:160px}}
.grp.wrap{flex-wrap:wrap;row-gap:6px}
