.project-browser { width: min(820px, calc(100vw - 32px));
  height: min(560px, calc(100dvh - 32px)); max-width: none; max-height: none;
  padding: 0; color: var(--ink); background: var(--bg-surface);
  border: 1px solid var(--border); border-radius: var(--r-lg);
  box-shadow: var(--shadow-lg); overflow: hidden; }
.project-browser::backdrop { background: rgba(12,20,30,.55); }
.project-browser[open] { display: flex; flex-direction: column; }
.project-browser [hidden] { display: none !important; }
.project-browser-head { display: flex; align-items: center; gap: var(--s3);
  padding: var(--s3) var(--s4); border-bottom: 1px solid var(--border-soft); flex: none; }
.project-browser-title { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.project-browser-title h2 { margin: 0; font-size: var(--fs-lg); }
.project-browser-title > span { color: var(--ink-2); font-size: var(--fs-sm); }
.project-browser-org-select { align-self: flex-start; min-width: 200px; max-width: 100%; margin-top: 4px;
  padding: 5px 8px; border: 1px solid var(--border); border-radius: var(--r-field);
  background: var(--bg-surface); color: var(--ink); font: inherit; font-size: var(--fs-sm); }
.project-browser-org-select:disabled { color: var(--ink-muted); }
.project-browser-close { width: 28px; height: 28px; border: 0; border-radius: 8px;
  background: transparent; color: var(--ink-muted); font-size: 19px; cursor: pointer; }
.project-browser-close:hover { background: var(--bg-hover); color: var(--ink); }
.project-browser-main { flex: 1; display: grid; grid-template-columns: 260px minmax(0,1fr);
  min-height: 0; }
.project-browser-column { display: flex; flex-direction: column; min-height: 0; }
.project-browser-column + .project-browser-column { border-left: 1px solid var(--border-soft); }
.project-browser-projects { background: var(--bg-sunken); }
.project-browser-column h3 { display: flex; justify-content: space-between; gap: var(--s2);
  margin: 0; padding: var(--s3) var(--s4) 6px; color: var(--ink-muted);
  font-size: var(--fs-xs); text-transform: uppercase; letter-spacing: .07em; }
.project-browser-column h3 span { font-weight: 400; white-space: nowrap; }
.project-browser-list { flex: 1; min-height: 0; overflow-y: auto; padding: 0 var(--s2) var(--s3); }
.project-browser-column h3.project-browser-tabs { justify-content:flex-start; align-items:center; padding:0; }
.project-browser-tabs button { border:0; background:transparent; color:var(--ink-muted); font:inherit; cursor:pointer; min-height:44px; padding:0 8px; }
.project-browser-tabs button[aria-pressed="true"] { color:var(--ink); font-weight:600; }
.project-browser-tabs button:disabled { opacity:.45; cursor:default; }
.project-browser-tabs { flex-wrap:wrap; }
.project-browser-permissions { overflow:hidden; }
.scene-library-menu .project-delete-action { color:var(--danger,#d64b4b); }
.project-delete-confirm{max-width:min(430px,calc(100vw - 32px));padding:24px;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg-surface);color:var(--ink);box-shadow:var(--shadow-lg)}
.project-delete-confirm::backdrop{background:rgba(12,20,30,.55)}
.project-delete-confirm h3{margin:0 0 12px;font-size:var(--fs-lg)}
.project-delete-confirm p{line-height:1.5;color:var(--ink-2)}
.project-ask-input{width:100%;margin-top:4px;padding:6px 8px;border:1px solid var(--border);border-radius:var(--r-md,6px);background:var(--bg-surface);color:var(--ink);font:inherit}
.project-delete-buttons{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}
.project-delete-confirm .project-delete-action{color:var(--danger,#d64b4b);border-color:currentColor}
.project-browser-permissions { flex:1; min-height:0; display:flex; }
.project-permissions-frame { width:100%; height:100%; border:0; }
.member-dragging .project-permissions-frame{pointer-events:none}
.project-browser-permissions.is-drop-over{outline:2px solid var(--primary);outline-offset:-3px;background:var(--primary-soft)}
.project-browser-row { display: flex; align-items: center; gap: var(--s2);
  width: 100%; min-height: 39px; padding: 6px var(--s2);
  border: 0; border-radius: 8px; background: transparent;
  color: var(--ink); text-align: left; font: inherit; font-size: var(--fs-md);
  cursor: pointer; }
.project-browser-row:hover { background: var(--bg-hover); }
.project-browser-row[aria-selected="true"] { background: var(--primary-soft);
  color: var(--primary-hi); font-weight: 600; }
.project-browser-row .name { flex: 1; min-width: 0; overflow: hidden;
  text-overflow: ellipsis; white-space: nowrap; }
.project-browser-row .meta { color: var(--ink-muted); font-size: var(--fs-xs); flex: none; }
.project-browser-scene { display: flex; flex-direction: column; align-items: stretch;
  gap: 1px; }
.project-browser-scene .project-browser-row { min-height: 44px; }
.project-browser-scene .actors { margin: -3px 8px 5px 32px;
  color: var(--ink-muted); font-size: var(--fs-xs); font-style: italic; }
.project-browser-report { position: relative; margin-left: 27px; width: calc(100% - 27px);
  min-height: 30px; color: var(--ink-2); font-size: var(--fs-sm); cursor: default; }
.project-browser-report[href] { cursor: pointer; text-decoration: none; }
.project-browser-report::before { content: ''; position: absolute; left: -12px;
  top: 0; bottom: 50%; width: 8px; border-left: 1px solid var(--border);
  border-bottom: 1px solid var(--border); border-bottom-left-radius: 5px; }
.project-browser-empty { padding: var(--s4); color: var(--ink-muted);
  font-size: var(--fs-sm); line-height: 1.5; }
.project-browser-foot { display: flex; align-items: center; gap: var(--s3);
  padding: var(--s3) var(--s4); border-top: 1px solid var(--border-soft); }
.project-browser-foot span { flex: 1; color: var(--ink-muted); font-size: var(--fs-sm); }
.project-browser-foot button { min-height: 32px; padding: 0 var(--s3);
  border: 1px solid var(--primary); border-radius: var(--r-btn);
  background: var(--primary); color: var(--ink-invert); font: inherit;
  font-size: var(--fs-sm); cursor: pointer; }
.project-browser-foot button:disabled { opacity: .45; cursor: default; }
@media (max-width: 600px) {
  .project-browser-main { grid-template-columns: 1fr; grid-template-rows: minmax(90px,1fr) minmax(120px,2fr); }
  .project-browser-column + .project-browser-column { border-left: 0; border-top: 1px solid var(--border-soft); }
  .project-browser-head { flex-wrap: wrap; }
}

/* One modal surface keeps the library and project browser in the same focus scope. */
.project-browser{width:min(1030px,calc(100vw - 32px));background:transparent;border:0;box-shadow:none;overflow:visible;gap:12px}
.project-browser[open]{flex-direction:row}
.project-browser-core{display:flex;flex-direction:column;flex:1;min-width:0;overflow:hidden;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-lg)}
.scene-library-rail{width:185px;flex:none;display:flex;flex-direction:column;gap:12px}
.project-library-toolbar{display:flex;align-items:center;gap:4px;padding:4px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-btn)}
.project-library-toolbar .btn{display:flex;align-items:center;justify-content:center;gap:5px;flex:1;min-width:0;padding:6px;font-size:var(--fs-sm);border-color:transparent;white-space:nowrap}
.project-library-toolbar .btn[aria-expanded="true"]{background:var(--primary-soft);color:var(--primary-hi);border-color:var(--border)}
.project-library-toolbar svg{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.project-browser.library-open{width:min(1190px,calc(100vw - 32px))}
.library-open .scene-library-rail{width:310px}
.scene-library-panel{flex:1;min-height:0;display:flex;flex-direction:column;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);overflow:hidden}
.scene-library-panel h2{margin:0;font-size:var(--fs-md);flex:1}
.scene-library-content{overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:12px;min-height:0;flex:1}
.scene-library-group{flex:1;background:var(--bg-sunken);border:1px solid var(--border-soft);border-radius:10px;padding:6px}
.scene-library-entry{display:flex;align-items:center;gap:8px;width:100%;min-height:36px;padding:7px 8px;border:0;border-radius:7px;background:transparent;color:var(--ink);font:inherit;font-size:var(--fs-sm);text-align:left;user-select:none}
.scene-library-entry:hover{background:var(--bg-hover)}
.scene-library-entry:focus-visible,.scene-library-menu button:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}
.scene-library-entry svg{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linejoin:round;color:var(--ink-muted)}
.scene-library-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.scene-library-menu{position:fixed;z-index:10;max-width:calc(100vw - 16px);padding:5px;border:1px solid var(--border);border-radius:9px;background:var(--bg-surface);color:var(--ink);box-shadow:var(--shadow-lg)}
.scene-library-menu button{display:block;width:100%;padding:9px 12px;border:0;border-radius:5px;background:transparent;color:inherit;font:inherit;font-size:var(--fs-sm);text-align:left;cursor:pointer}
.scene-library-menu button:hover{background:var(--bg-hover)}
.scene-library-menu button:disabled{opacity:.45;cursor:default}
.scene-library-status{padding:0 12px 12px;color:var(--ink-2);font-size:var(--fs-sm)}
@media(max-width:800px){
  .project-browser[open]{flex-direction:column;overflow:hidden;width:calc(100vw - 24px);height:calc(100dvh - 24px)}
  .scene-library-rail,.library-open .scene-library-rail{width:100%;min-height:0}
  .library-open .scene-library-rail{flex:1}
  .library-open .project-browser-core{display:none}
  .project-browser-core{min-height:0}
}

.project-create-drop{position:relative;margin:8px 0;padding:10px;border:1px solid var(--warn);border-radius:10px;display:flex;flex-direction:column;gap:8px;background:var(--warn-soft);color:var(--ink);font-size:var(--fs-sm)}
.project-create-drop p{margin:0;padding-right:24px}
.project-create-dismiss{position:absolute;right:4px;top:4px;color:var(--warn-hi)}
.project-member-person{display:flex;flex-direction:column;min-width:0;gap:2px}
.project-member-person span,.project-member-person small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.project-member-person small{color:var(--ink-muted);font-size:var(--fs-xs)}
.project-member-icon{font-size:18px;color:var(--ink-muted);flex:none}
.project-browser-projects.is-drop-over,.project-browser-list.is-drop-over{outline:2px solid var(--primary);outline-offset:-3px;background:var(--primary-soft)}
.project-drop-target{outline-offset:-2px}
.scene-library-entry[draggable="true"]{cursor:grab}

.project-browser-row.is-drop-row{outline:2px solid var(--primary);background:var(--primary-soft)}
/* Templates du projet (lecture seule) */
.template-entry .project-browser-row[aria-expanded="true"] { background: var(--primary-soft); color: var(--primary-hi); }
.template-detail { margin: 2px var(--s2) var(--s3) 30px; padding: var(--s2) var(--s3);
  border-left: 2px solid var(--border-soft); font-size: var(--fs-sm); color: var(--ink-2); }
.template-description { margin: 0 0 var(--s2); line-height: 1.45; }
.template-section-label { margin: var(--s2) 0 4px; color: var(--ink-muted); font-size: var(--fs-xs);
  text-transform: uppercase; letter-spacing: .07em; }
.template-version { display: flex; gap: var(--s2); align-items: baseline; padding: 2px 0; }
.template-version.is-current b { color: var(--primary-hi); }
.template-version .meta { color: var(--ink-muted); font-size: var(--fs-xs); }
.template-blocks { margin: 0; padding-left: 20px; }
.template-blocks li { padding: 3px 0; }
.template-blocks .name { color: var(--ink); }
.template-block-kind { display: inline-block; min-width: 82px; color: var(--ink-muted); font-size: var(--fs-xs); }
.template-needs { margin-left: 82px; color: var(--ink-muted); font-size: var(--fs-xs); overflow-wrap: anywhere; }
