/* app.css — layout-ul aplicației Robin.
   Doar structură și ecrane; TOATE culorile/fonturile vin din bgn-33.css (var(--*)). */

/* ---------- Shell ---------- */
.app{display:flex;min-height:100vh}
.side{
  width:216px;flex-shrink:0;
  padding:20px 12px;display:flex;flex-direction:column;gap:2px;
  position:sticky;top:0;height:100vh;
}
.brand{display:flex;align-items:center;gap:10px;padding:4px 10px 18px}
.brand-mark{
  width:28px;height:28px;border-radius:var(--r-md);background:var(--accent);color:#fff;
  display:grid;place-items:center;font-weight:700;font-size:15px;
}
.brand-name{font-weight:700;font-size:15px}
.brand-domain{font-size:11px;color:var(--faint)}
.side-foot{margin-top:auto;padding:10px;font-size:12px;color:var(--faint);border-top:1px solid var(--border)}
.side-foot strong{display:block;color:var(--muted);font-weight:600}
.side-foot button{font-size:12px;color:var(--faint);padding:0;margin-top:4px}
.side-foot button:hover{color:var(--danger);text-decoration:underline}

.main{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  padding:18px 28px 14px;border-bottom:1px solid var(--border);background:var(--bg);
}
.page-title{font-size:19px;font-weight:700;text-wrap:balance}
.page-sub{font-size:12.5px;color:var(--muted);width:100%}
.content{padding:20px 28px 60px;max-width:980px;width:100%}

.toolbar{display:flex;gap:6px;flex-wrap:wrap;align-items:center;width:100%;margin-top:4px}
.toolbar .search{
  border:1px solid var(--border-strong);border-radius:var(--r-full);
  padding:5px 14px;font-size:12.5px;background:var(--surface);width:200px;
}
.toolbar .search:focus{outline:none;border-color:var(--accent)}
.toolbar .gap{width:10px}
.pill .dot-in{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:5px;vertical-align:-1px}
.pill .n{font-family:var(--font-mono);font-size:11px;opacity:.7;margin-left:4px}

/* ---------- Quick add ---------- */
.qadd{
  display:flex;gap:8px;align-items:center;margin:16px 0 22px;
  background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-md);padding:6px;
}
.qadd:focus-within{border-color:var(--accent)}
.qadd input[type=text]{flex:1;min-width:120px;border:none;background:none;padding:6px 8px;font-size:14px}
.qadd input[type=text]:focus{outline:none}
.qadd input::placeholder{color:var(--faint)}
.qadd select{
  border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2);
  padding:6px 8px;font-size:12.5px;font-weight:500;color:var(--muted);
}
.kbd{font-family:var(--font-mono);font-size:11px;background:rgba(255,255,255,.2);border-radius:4px;padding:0 5px;line-height:16px}

/* ---------- Lista ---------- */
.proj{margin-bottom:26px}
.proj-head{display:flex;align-items:center;gap:9px;padding:0 2px 8px}
.proj-head .dot{width:9px;height:9px;border-radius:2px;flex-shrink:0}
.proj-name{font-weight:700;font-size:13.5px}
.proj-count{font-size:12px;color:var(--faint)}
.proj-bar{flex:1;max-width:120px;height:4px;border-radius:2px;background:var(--surface-2);overflow:hidden;margin-left:6px}
.proj-bar i{display:block;height:100%;background:var(--ok);border-radius:2px}
.tlist{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);overflow:hidden}
.task-row{cursor:pointer}
.task-row .grip{color:var(--border-strong);cursor:grab;font-size:14px;line-height:1;user-select:none}
.task-row:hover .grip{color:var(--faint)}
.task-row .t-title{flex:1;min-width:0;font-weight:500;font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.task-row.done .t-title{color:var(--faint);text-decoration:line-through;font-weight:400}
.task-row .del{color:var(--faint);font-size:15px;opacity:0;padding:2px 4px}
.task-row:hover .del{opacity:1}
.task-row .del:hover{color:var(--danger)}
.done-toggle{width:100%;text-align:left;padding:8px 14px;font-size:12px;color:var(--faint);border-top:1px solid var(--border);background:var(--surface)}
.done-toggle:hover{color:var(--muted)}
.empty{padding:18px 14px;font-size:12.5px;color:var(--faint)}
.sched-chip{
  display:inline-flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:11px;
  color:var(--accent-text);background:var(--accent-soft);padding:2px 8px;border-radius:var(--r-xs);flex-shrink:0;
}

/* ---------- Board ---------- */
.board{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}
.bcol-head{display:flex;align-items:baseline;gap:8px;padding:0 2px 10px}
.bcol-head h3{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0}
.bcol-head .n{font-family:var(--font-mono);font-size:11px;color:var(--faint)}
.bcol{display:flex;flex-direction:column;gap:8px}
.task-card .c-grip{opacity:0;color:var(--faint);cursor:grab;font-size:13px;line-height:1.2;user-select:none;margin:1px -3px 0 0;transition:opacity .12s}
.task-card:hover .c-grip{opacity:1}
@media (prefers-reduced-motion: reduce){.task-card .c-grip{transition:none}}
.task-card.is-dragging{opacity:.35}
.bat-ico{color:var(--faint);display:inline-flex;vertical-align:-1.5px;margin-left:6px}

/* ---------- Ecrane în lucru / stări ---------- */
.wip{padding:60px 20px;text-align:center;color:var(--faint);font-size:13px}
.center-page{min-height:100vh;display:grid;place-items:center;background:var(--bg)}
.login-card{display:flex;flex-direction:column;align-items:center;gap:16px;padding:40px}
.login-card .brand-mark{width:44px;height:44px;font-size:22px;border-radius:10px}

/* ---------- Mobil ---------- */
@media (max-width:760px){
  .app{flex-direction:column}
  .side{
    width:100%;height:auto;position:static;flex-direction:row;align-items:center;
    border-right:none;border-bottom:1px solid var(--border);padding:10px 14px;gap:4px;
  }
  .brand{padding:0 8px 0 0}
  .brand-domain{display:none}
  .nav-item{width:auto;padding:7px 10px}
  .nav-item span.label{display:none}
  .side-foot{display:none}
  .topbar,.content{padding-left:16px;padding-right:16px}
  .board{grid-template-columns:1fr}
}

/* ---------- Modal task (E3) ---------- */
.overlay{
  position:fixed;inset:0;background:rgba(15,15,15,.55);
  display:none;align-items:flex-start;justify-content:center;
  padding:9vh 16px 16px;z-index:40;
}
.overlay.open{display:flex}
.modal{
  width:100%;max-width:480px;background:var(--surface);
  border:1px solid var(--border-strong);border-radius:var(--r-md);padding:20px;
}
.modal .m-title{
  width:100%;border:none;background:none;font-size:17px;font-weight:700;color:var(--text);
  padding:2px 0 10px;border-bottom:1px solid var(--border);margin-bottom:14px;
}
.modal .m-title:focus{outline:none;border-bottom-color:var(--accent)}
.m-row{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.m-row label{font-size:12px;font-weight:600;color:var(--muted);min-width:86px}
.m-row .input{flex:1;min-width:120px}
.m-row textarea.input{resize:vertical;min-height:56px}
.m-sched{font-size:12.5px;color:var(--muted);display:flex;align-items:center;gap:8px;flex:1;flex-wrap:wrap}
.m-actions{display:flex;gap:8px;margin-top:16px;align-items:center}
.m-del{color:var(--danger);font-size:12.5px;font-weight:600;margin-left:auto}
.m-del:hover{text-decoration:underline}

/* ---------- Drag & drop ---------- */
.task-row,.task-card{position:relative}
.drop-before::before,.drop-after::after{
  content:"";position:absolute;left:6px;right:6px;height:2.5px;border-radius:2px;
  background:radial-gradient(circle at 4px 50%, var(--accent) 4px, transparent 4.5px),
             linear-gradient(var(--accent),var(--accent));
  z-index:5;pointer-events:none;
}
.drop-before::before{top:-2px}
.drop-after::after{bottom:-2px}
.drag-ghost{
  background:var(--surface);border:1px solid var(--accent);border-radius:var(--r-md);
  padding:8px 14px;font-size:13.5px;font-weight:500;max-width:340px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:grabbing;
}
