/* psg-smartform.css — Policy Suggester UI */
.psg-root { max-width: 1100px; margin: 18px auto; font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial; color:#122; }
.psg-form h3 { margin: 0 0 12px; font-size:18px; font-weight:600; color:#0b2946; }
.psg-grid { display:grid; grid-template-columns: 1fr 320px; gap:14px; align-items:start; }
@media (max-width:880px) { .psg-grid { grid-template-columns: 1fr; } }

/* left column = input area (form controls) */
.psg-form .psg-left { padding: 12px; background:#fff; border:1px solid #e7edf6; border-radius:8px; box-shadow: 0 1px 0 rgba(15,35,60,0.03); }
.psg-form label { display:block; font-size:13px; color:#33475b; margin-bottom:6px; }
.psg-form select, .psg-form input[type="text"], .psg-form input[type="number"], .psg-form textarea {
  width:100%; padding:8px 10px; border:1px solid #d7e2ef; border-radius:6px; font-size:14px; color:#022;
  background:#fcfeff;
}
.psg-form textarea { min-height:78px; resize:vertical; }

/* dynamic fields container */
#psg_dynamic_fields { margin-top:12px; display:grid; grid-template-columns: repeat(2, 1fr); gap:10px; }
@media (max-width:720px){ #psg_dynamic_fields { grid-template-columns:1fr } }

/* right column = preview & controls */
.psg-summary { padding:12px; background:linear-gradient(180deg,#fbfdff,#f7fbff); border:1px solid #e1efff; border-radius:8px; position:sticky; top:20px; }
.psg-summary h4 { margin:0 0 8px; font-size:15px; }
.psg-summary .badge { display:inline-block; padding:4px 8px; border-radius:999px; font-size:12px; margin-right:6px; background:#eef7ff; color:#0b4db4; border:1px solid #d6eaff; }

/* must/prefer visual tokens */
.psg-token { display:inline-block; padding:4px 8px; border-radius:6px; font-size:12px; margin:4px 6px 0 0; }
.psg-token.must { background:#fff4f4; color:#8b1a1a; border:1px solid #ffd7d7; }
.psg-token.prefer { background:#f4fbff; color:#0b5aa7; border:1px solid #d7eaff; }

/* primary button */
.psg-btn { display:inline-block; padding:10px 14px; border-radius:8px; font-weight:600; background:#1760d6; color:white; border:none; cursor:pointer; box-shadow:0 6px 18px rgba(23,96,214,0.12); }
.psg-btn:disabled { opacity:0.6; cursor:not-allowed; box-shadow:none; }

/* results */
.psg-results { margin-top:18px; display:grid; grid-template-columns:1fr; gap:12px; }
.psg-result-card { border:1px solid #e8eef6; padding:12px; border-radius:8px; background:#fff; display:flex; flex-direction:column; gap:8px; }
.psg-result-card .row { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.psg-result-card h5 { margin:0; font-size:15px; }
.psg-result-meta { font-size:13px; color:#556; }

/* explain flags */
.psg-explain { font-size:12px; color:#334; margin-top:6px; background:#f7f9fc; padding:8px; border-radius:6px; border:1px dashed #eef6ff; }

/* small utilities */
.psg-note { font-size:13px; color:#536; margin-top:8px; }
