/* static/css/custom.css */
body { font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto; }
img { image-rendering: -webkit-optimize-contrast; }

/* splitter visuals */
#splitter { background: #f1f5f9; transition: background .12s; }
#splitter:hover { background: #e2e8f0; }

#recentWrap{overflow:hidden; transition:max-height .25s ease, margin-top .25s ease;}
#recentWrap[data-collapsed="1"]{max-height:0; margin-top:0;}
#projCaret.rot{-webkit-transform:rotate(-90deg); transform:rotate(-90deg);}

#projCaret.open { transform: rotate(180deg); }


/* popover */
.np-pop{position:absolute; z-index:60; background:#fff; border:1px solid #e5e7eb;
  border-radius:12px; box-shadow:0 12px 32px rgba(0,0,0,.12); padding:12px; width:320px}
.np-pop h4{margin:0 0 8px; font-size:14px; color:#334155}
.np-row{display:flex; gap:8px}
.np-row input{flex:1; border:1px solid #e5e7eb; border-radius:8px; padding:8px}
.np-actions{display:flex; gap:6px; justify-content:flex-end; margin-top:8px}
.np-btn{padding:8px 12px; border-radius:8px; border:1px solid #e5e7eb; background:#f8fafc}
.np-btn.primary{background:#0ea5e9; color:#fff; border-color:#0ea5e9}


/* 렌더 에러 박스 */
.render-error {
  display: none;               /* 기본은 숨김 */
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  padding: 8px 12px;
  background: #fee;
  color: #900;
  border-bottom: 1px solid #f99;
  z-index: 1000;
  max-height: 40vh;
  overflow: auto;
  font-family: monospace;
  font-size: 12px;
}

.render-error.visible {
  display: block;
}

.render-error-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-weight: bold;
  margin-bottom: 4px;
}

.render-error-header button {
  border: none;
  background: transparent;
  cursor: pointer;
  font-size: 16px;
  line-height: 1;
  color: #900;
}

