.esc-container { max-width: 980px; }
.esc-field { margin-bottom: 16px; }
.esc-label { display:block; font-weight:600; margin-bottom:10px; color:#32145f; }
.esc-input, .esc-textarea {
  width:100%; border:1px solid #d7caf8; border-radius:12px; padding:14px 16px; background:#fcfbff; color:#27165b; font-size:1rem;
}
.esc-textarea { min-height:140px; resize:vertical; }
.esc-input:focus, .esc-textarea:focus { outline:none; border-color:#7c3aed; box-shadow:0 0 0 3px rgba(124,58,237,.12); }
.esc-optional { color:#7e6aa8; font-weight:400; }
.esc-result { margin-top:24px; }
.esc-score-row, .esc-grid { display:grid; gap:16px; }
.esc-score-row { grid-template-columns:repeat(auto-fit, minmax(160px, 1fr)); margin-bottom:18px; }
.esc-grid { grid-template-columns:repeat(auto-fit, minmax(260px, 1fr)); }
.esc-score-card, .esc-panel { background:#fff; border:1px solid #ddd4fb; border-radius:14px; padding:16px; box-shadow:0 8px 24px rgba(49,18,95,.06); }
.esc-score-card span { display:block; color:#5d4f83; margin-bottom:8px; }
.esc-score-card strong { font-size:1.45rem; color:#28145c; }
.esc-list { display:grid; gap:12px; }
.esc-item { padding:12px; border-radius:10px; background:#faf8ff; border:1px solid #ebe5ff; }
.esc-item.warn { background:#fff6e8; border-color:#ffe1a6; color:#905500; }
.esc-item.good { background:#effaf3; border-color:#ccefd7; color:#0c6d31; }
