/* Canvas — all projects grid (/canvas/projects) */
body.canvas-projects-layout .app.canvas-projects-app{
  grid-template:52px minmax(0,1fr)/168px minmax(0,1fr);
  min-height:100dvh;
  height:100dvh;
  max-height:100dvh;
}
.projects-panel{
  grid-column:2;
  min-height:0;
  display:flex;
  flex-direction:column;
  background:var(--d-bg,#0b101b);
  overflow:hidden;
}
.projects-head{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:14px;
  padding:14px 20px;
  border-bottom:1px solid var(--d-surface-2,#1d2230);
  background:var(--d-bg,#0b101b);
}
.projects-back{
  color:var(--c-gray-300,#c5cbe0);
  text-decoration:none;
  font-size:13px;
  font-weight:700;
  white-space:nowrap;
}
.projects-back:hover{color:#fff}
.projects-title{
  margin:0;
  font-size:18px;
  font-weight:800;
  color:#fff;
  white-space:nowrap;
}
.project-thumb{position:relative}
.project-kind{
  position:absolute;
  left:8px;
  top:8px;
  padding:3px 7px;
  border-radius:999px;
  background:var(--c-accent,#c6ef3a);
  color:#1a2408;
  font-size:11px;
  font-weight:800;
}
.project-kind.is-node{background:#7eb6ff;color:var(--d-bg,#0b101b)}
.projects-section{
  grid-column:1/-1;
  margin:22px 0 4px;
  font-size:16px;
  font-weight:800;
  color:#fff;
}
.projects-section-empty{
  grid-column:1/-1;
  margin:0;
  color:var(--d-text-3,#8492ad);
  font-size:13px;
}
.projects-head-spacer{flex:1}
.projects-search{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:min(240px,28vw);
  padding:8px 12px;
  border-radius:999px;
  border:1px solid var(--d-border,#2c3446);
  background:var(--c-text,#191f28);
}
.projects-search-icon{color:var(--d-text-3,#8492ad);font-size:14px}
.projects-search input{
  flex:1;
  border:0;
  background:transparent;
  color:var(--c-bg-subtle,#eef1f4);
  font:inherit;
  font-size:13px;
  outline:0;
  min-width:0;
}
.projects-search input::placeholder{color:var(--d-text-3,#8492ad)}
.projects-action{
  border:1px solid var(--d-border,#2c3446);
  background:var(--c-text,#191f28);
  color:var(--c-bg-subtle,#eef1f4);
  border-radius:10px;
  padding:9px 13px;
  font:inherit;
  font-size:12px;
  font-weight:700;
  cursor:pointer;
  white-space:nowrap;
}
.projects-action:hover{background:var(--d-border,#2c3446)}
.projects-body{
  flex:1 1 auto;
  min-height:0;
  overflow:auto;
  padding:24px 20px 40px;
}
.projects-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(180px,1fr));
  gap:22px 18px;
  max-width:1200px;
}
.project-card{position:relative}
.project-open{display:block;color:inherit;text-decoration:none}
.project-delete{
  position:absolute;top:8px;right:8px;z-index:2;
  border:0;border-radius:8px;padding:4px 8px;
  background:#3a2030;color:var(--d-danger,#ffb4b4);font:inherit;font-size:11px;font-weight:800;cursor:pointer;
}
.project-delete:hover{background:#ff5d73;color:#fff}
.project-folder-pick{
  display:flex;align-items:center;gap:6px;margin-top:6px;
  color:var(--d-text-3,#8492ad);font-size:11px;font-weight:700;
}
.project-folder-pick select{
  flex:1;min-width:0;background:var(--c-text,#191f28);color:var(--c-bg-subtle,#eef1f4);border:1px solid var(--d-border,#2c3446);border-radius:8px;padding:4px 6px;font:inherit;font-size:11px;
}
.folder-card{background:none;border:0;padding:0;text-align:left;color:inherit;font:inherit;cursor:pointer}
.folder-thumb{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:var(--c-text,#191f28);border:1px dashed var(--c-text-2,#4e5968)}
.folder-icon{font-size:34px;line-height:1}
.folder-count{font-size:12px;font-weight:800;color:var(--c-accent,#c6ef3a)}
.folder-card.is-drop-target .folder-thumb,.folder-back.is-drop-target{border-color:var(--c-accent,#c6ef3a);background:#222a14}
.project-card.is-dragging{opacity:.45}
.folder-bar{grid-column:1/-1;display:flex;align-items:center;gap:12px}
.folder-back{border:1px dashed var(--c-text-2,#4e5968);border-radius:10px;background:var(--c-text,#191f28);color:var(--c-bg-subtle,#eef1f4);font:inherit;font-size:13px;font-weight:800;padding:8px 12px;cursor:pointer}
.folder-name{font-size:16px;color:#fff}
.folder-remove{
  margin-left:8px;border:0;background:transparent;color:var(--d-text-3,#8492ad);font:inherit;font-size:12px;font-weight:700;cursor:pointer;
}
.project-thumb{
  aspect-ratio:16/10;
  border-radius:12px;
  overflow:hidden;
  background:var(--c-text,#191f28);
  border:1px solid var(--d-border,#2c3446);
}
.project-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.project-thumb-empty{
  width:100%;
  height:100%;
  background:linear-gradient(135deg,var(--d-surface-2,#1d2230),var(--c-text,#191f28));
}
.project-card.create .project-thumb{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  background:var(--c-text,#191f28);
  border-style:dashed;
  border-color:var(--c-text-2,#4e5968);
}
.project-card.create .plus{
  font-size:34px;
  line-height:1;
  color:#9a93c8;
  font-weight:300;
}
.project-card.create .create-label{
  font-size:13px;
  font-weight:800;
  color:var(--c-border,#e6e9ee);
}
.project-caption,
.project-title{
  margin:10px 0 0;
  font-size:13px;
  font-weight:700;
  color:var(--c-bg-subtle,#eef1f4);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.project-date{
  margin:4px 0 0;
  font-size:11px;
  color:var(--d-text-3,#8492ad);
}
.projects-end{
  margin:28px 0 0;
  text-align:center;
  font-size:12px;
  color:var(--d-text-3,#8492ad);
}
.canvas-projects-toast{
  position:fixed;
  left:50%;
  bottom:24px;
  transform:translateX(-50%) translateY(12px);
  opacity:0;
  pointer-events:none;
  transition:opacity .2s,transform .2s;
  background:var(--c-text,#191f28);
  border:1px solid var(--c-text-2,#4e5968);
  color:#fff;
  padding:10px 16px;
  border-radius:10px;
  font-size:13px;
  z-index:50;
}
.canvas-projects-toast.show{
  opacity:1;
  transform:translateX(-50%) translateY(0);
}
@media (max-width:900px){
  .projects-head{flex-wrap:wrap}
  .projects-head-spacer{display:none}
  .projects-search{order:3;flex:1 1 100%;min-width:0}
}
body.canvas-projects-layout .side{
  display:flex!important;
  grid-column:1;
  grid-row:2;
  min-width:0;
}
@media(max-width:1100px){
  body.canvas-projects-layout .app.canvas-projects-app{
    grid-template-rows:52px minmax(0,1fr);
    grid-template-columns:minmax(120px,168px) minmax(0,1fr);
  }
  body.canvas-projects-layout .side{display:flex!important}
  .projects-panel{grid-column:2;grid-row:2}
}
@media(max-width:800px){
  body.canvas-projects-layout .app.canvas-projects-app{
    grid-template-columns:minmax(0,1fr);
    grid-template-rows:auto minmax(0,1fr);
  }
  body.canvas-projects-layout .side{display:none!important}
  body.canvas-projects-layout .side.open{
    display:flex!important;
    position:fixed;
    left:0;top:56px;bottom:0;
    width:min(240px,88vw);
    z-index:80;
    overflow:auto;
  }
  .projects-panel{grid-column:1;grid-row:2}
  .projects-grid,.project-grid{grid-template-columns:1fr}
}
