*{box-sizing:border-box}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;margin:0;color:#222;background:#f6f7fb}
.container{max-width:1000px;margin:0 auto;padding:1rem}
.topbar{background:#0f172a;color:#fff}.topbar .brand{color:#fff;text-decoration:none;font-weight:700;margin-right:1rem}.topbar nav a{color:#c7d2fe;margin-right:1rem;text-decoration:none}
.card{display:inline-block;padding:1rem;background:#fff;border-radius:8px;margin:0.5rem;box-shadow:0 2px 8px rgba(0,0,0,.05)}
.form{display:flex;flex-direction:column;gap:.75rem}.form input,.form select,.form textarea{padding:.5rem;border:1px solid #cbd5e1;border-radius:6px;background:#fff}
.form button,.btn{padding:.6rem 1rem;border:none;background:#2563eb;color:#fff;border-radius:6px;cursor:pointer}
.alert.error{background:#fee2e2;color:#b91c1c;padding:.5rem;border-radius:6px;margin:.5rem 0}
.table{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.05)}
.table th,.table td{padding:.6rem;border-bottom:1px solid #e2e8f0;text-align:left}
.network-fields{border:1px dashed #cbd5e1;padding:1rem;border-radius:8px;background:#fff;margin-bottom:1rem}
.repeatable .items input{display:block;margin:.25rem 0}
.thumb{max-height:120px;margin:.25rem 0}
.pre{white-space:pre-wrap;background:#f8fafc;border:1px solid #e2e8f0;padding:1rem;border-radius:8px}
.footer{color:#64748b;font-size:.9rem;padding:1rem 0}

/* Submit loading UX */
button[disabled]{cursor:not-allowed;opacity:.85}
.btn-loading{opacity:.95;animation:pulse 1.2s ease-in-out infinite}
.spinner{display:inline-block;width:1rem;height:1rem;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:9999px;margin-right:.5rem;vertical-align:middle;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.02)}}

/* Minimal prose styles for Markdown-rendered AI Analysis */
.md{color:#0f172a;line-height:1.6;font-size:.95rem}
.md p{margin:0 0 .5rem;text-align:left;}
.md p:last-child{margin-bottom:0;}
.md .intro-text{margin-bottom:1.1rem;color:#475569;}
.md h4{font-weight:600;font-size:1rem;margin-bottom:.35rem;color:#1e293b;}
.md .ai-section{margin-top:.9rem;padding-top:.9rem;border-top:1px solid #e2e8f0;}
.md .ai-section:first-child{margin-top:0;padding-top:0;border-top:none;}
.md strong{font-weight:600;color:#0f172a;background:#fef3c7;padding:.1rem .2rem;border-radius:3px}
.md a{color:#2563eb;text-decoration:underline}
.md hr{border:0;border-top:1px solid #e2e8f0;margin:.75rem 0}
.md .final-decision{margin:1rem 0;padding:.75rem 1rem;border-radius:8px;font-weight:600;text-align:center;font-size:1rem}
.md .final-decision.compliant{background:#dcfce7;color:#166534;border:2px solid #bbf7d0}
.md .final-decision.non-compliant{background:#fee2e2;color:#991b1b;border:2px solid #fecaca}
/* Emphasis blocks */
.md .ai-alert{background:#fff1f2;border:1px solid #fecdd3;padding:10px;border-radius:8px}
.md .ai-summary{background:#eff6ff;border:1px solid #bfdbfe;padding:10px;border-radius:8px}

/* Lists */
.md ol{list-style:decimal;margin:.35rem 0 .35rem 1.25rem;padding-left:.5rem}
.md ul{list-style:disc;margin:.35rem 0 .35rem 1.25rem;padding-left:.5rem}
.md li{margin:.2rem 0}
