/* PDD AI module styles — plain CSS on Filament's colour tokens, so no Tailwind build is needed. */
.pdd-stack > * + * { margin-top: 1rem; }
.pdd-stack-sm > * + * { margin-top: .5rem; }
.pdd-map-grid, .pdd-cols-2-1 { display: grid; gap: 1rem; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 1024px) {
    .pdd-map-grid { grid-template-columns: minmax(0, 3fr) minmax(0, 1fr); }
    .pdd-cols-2-1 { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
}
.pdd-map { height: 560px; width: 100%; border-radius: .75rem; border: 1px solid rgba(var(--gray-200), 1); z-index: 0; }
.pdd-card { border: 1px solid rgba(var(--gray-200), 1); border-radius: .75rem; padding: .75rem; font-size: .875rem; }
.pdd-card--ok { border-color: rgba(var(--success-400), 1); }
.pdd-card--bad { border-color: rgba(var(--danger-400), 1); }
.pdd-title { font-weight: 600; margin-bottom: .5rem; }
.pdd-muted { color: rgba(var(--gray-500), 1); font-size: .75rem; }
.pdd-note { background: rgba(var(--gray-50), 1); border-radius: .375rem; padding: .5rem; margin-top: .75rem; font-size: .75rem; }
.pdd-err { background: rgba(var(--danger-50), 1); border-radius: .375rem; padding: .5rem; margin-top: .5rem; font-size: .75rem; }
.pdd-danger { color: rgba(var(--danger-600), 1); }
.pdd-warning { color: rgba(var(--warning-600), 1); }
.pdd-primary { color: rgba(var(--primary-600), 1); }
.pdd-link { color: rgba(var(--primary-600), 1); }
.pdd-link:hover { text-decoration: underline; }
.pdd-row { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.pdd-check { display: flex; gap: .5rem; align-items: center; padding: .125rem 0; }
.pdd-sep { border-top: 1px solid rgba(var(--gray-200), 1); margin-top: .5rem; padding-top: .5rem; }
.pdd-swatch { display: inline-block; width: .75rem; height: .75rem; border-radius: 2px; }
.pdd-file { display: block; width: 100%; margin-top: .25rem; font-size: .75rem; }
.pdd-table { width: 100%; font-size: .8rem; border-collapse: collapse; }
.pdd-table th { text-align: left; color: rgba(var(--gray-500), 1); font-weight: 500; padding: .25rem .5rem; }
.pdd-table td { padding: .25rem .5rem; vertical-align: top; }
.pdd-table tr + tr td { border-top: 1px solid rgba(var(--gray-200), 1); }
.pdd-table .num { text-align: right; font-variant-numeric: tabular-nums; }
.pdd-table .mono { font-family: ui-monospace, monospace; }
.pdd-sub { margin: .25rem 0 .75rem 1rem; width: calc(100% - 1rem); font-size: .75rem; }
.pdd-kpis { display: grid; gap: .75rem; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); }
.pdd-kpi { border: 1px solid rgba(var(--gray-200), 1); border-radius: .5rem; padding: .75rem; }
.pdd-kpi b { display: block; font-size: 1.125rem; margin-top: .125rem; font-variant-numeric: tabular-nums; }
.pdd-pre { max-height: 12rem; overflow: auto; background: rgba(var(--gray-50), 1); border-radius: .375rem; padding: .5rem; font-size: .75rem; }
.pdd-scroll { overflow-x: auto; }
.pdd-prose { font-size: .875rem; line-height: 1.6; }
.pdd-prose h1 { font-size: 1.375rem; font-weight: 700; margin: 1rem 0 .5rem; }
.pdd-prose h2 { font-size: 1.125rem; font-weight: 700; margin: 1rem 0 .5rem; }
.pdd-prose h3 { font-size: 1rem; font-weight: 600; margin: .75rem 0 .25rem; }
.pdd-prose ul { list-style: disc; padding-left: 1.25rem; }
.pdd-prose table { border-collapse: collapse; margin: .5rem 0; }
.pdd-prose th, .pdd-prose td { border: 1px solid rgba(var(--gray-200), 1); padding: .25rem .5rem; }
.pdd-prose code { font-size: .75rem; background: rgba(var(--gray-100), 1); padding: 0 .25rem; border-radius: .25rem; }
.dark .pdd-card, .dark .pdd-kpi, .dark .pdd-map, .dark .pdd-sep { border-color: rgba(var(--gray-700), 1); }
.dark .pdd-table tr + tr td, .dark .pdd-prose th, .dark .pdd-prose td { border-color: rgba(var(--gray-700), 1); }
.dark .pdd-note, .dark .pdd-pre, .dark .pdd-prose code { background: rgba(var(--gray-800), 1); }
.dark .pdd-err { background: rgba(var(--danger-950), .6); }
.leaflet-popup-content table td { padding: 0 .375rem 0 0; }
.pdd-doc { max-height: 70vh; overflow: auto; padding-right: .5rem; }
.pdd-doc blockquote { border-left: 3px solid rgba(var(--gray-300), 1); padding-left: .75rem; color: rgba(var(--gray-600), 1); margin: .5rem 0; }
.pdd-doc strong { background: rgba(var(--warning-100), 1); }
/* Consultation chat */
.pdd-chat { display: grid; gap: 1rem; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 1024px) { .pdd-chat { grid-template-columns: 260px minmax(0, 1fr); } }
.pdd-chat-side { background: rgba(var(--gray-50), 1); border: 1px solid rgba(var(--gray-200), 1); border-radius: .75rem; padding: .75rem; align-self: start; }
.pdd-chat-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; max-height: 60vh; overflow: auto; }
.pdd-chat-list li { display: flex; align-items: stretch; border-radius: .5rem; }
.pdd-chat-list li.active, .pdd-chat-list li:hover { background: rgba(var(--primary-50), 1); }
.pdd-chat-item { flex: 1; min-width: 0; text-align: left; padding: .4rem .5rem; display: grid; gap: 1px; font-size: .8rem; }
.pdd-chat-item .t { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-weight: 500; }
.pdd-chat-del { padding: 0 .5rem; color: rgba(var(--gray-400), 1); }
.pdd-chat-del:hover { color: rgba(var(--danger-600), 1); }
.pdd-chat-main { background: rgba(var(--gray-50), .4); border: 1px solid rgba(var(--gray-200), 1); border-radius: .75rem; padding: .75rem; display: flex; flex-direction: column; min-width: 0; }
.pdd-chat-head { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; padding-bottom: .5rem; border-bottom: 1px solid rgba(var(--gray-200), 1); }
.pdd-chat-select { font-size: .85rem; border-radius: .5rem; border: 1px solid rgba(var(--gray-300), 1); padding: .3rem 2rem .3rem .5rem; max-width: 100%; min-width: 0; flex: 1;
  background-color: transparent; background-repeat: no-repeat; background-position: right .5rem center; background-size: 1.1em 1.1em; text-overflow: ellipsis; }
.pdd-chat-log { height: 62vh; overflow-y: auto; padding: 1rem .25rem; display: flex; flex-direction: column; gap: .9rem; scroll-behavior: smooth; }
.pdd-msg { display: flex; }
.pdd-msg.user { justify-content: flex-end; }
.pdd-msg .bubble { max-width: min(78ch, 88%); border-radius: .9rem; padding: .65rem .9rem; font-size: .9rem; line-height: 1.55; min-width: 0; overflow-wrap: anywhere; }
.pdd-msg.user .bubble { background: rgba(var(--primary-600), 1); color: #fff; border-bottom-right-radius: .25rem; }
.pdd-msg.ai .bubble { background: rgba(255, 255, 255, 1); border: 1px solid rgba(var(--gray-200), 1); border-bottom-left-radius: .25rem; }
.pdd-msg.err .bubble { border-color: rgba(var(--danger-300), 1); }
.pdd-msg .bubble table { display: block; overflow-x: auto; font-size: .8rem; }
.pdd-msg-src { margin-top: .6rem; font-size: .78rem; border-top: 1px dashed rgba(var(--gray-300), 1); padding-top: .4rem; }
.pdd-msg-src summary { cursor: pointer; color: rgba(var(--gray-500), 1); }
.pdd-msg-src ol { margin: .3rem 0 0; padding-left: 1rem; display: grid; gap: 2px; }
.pdd-typing span { display: inline-block; width: 6px; height: 6px; margin-right: 3px; border-radius: 50%; background: rgba(var(--gray-400), 1); animation: pddblink 1.2s infinite; }
.pdd-typing span:nth-child(2) { animation-delay: .2s; } .pdd-typing span:nth-child(3) { animation-delay: .4s; }
@keyframes pddblink { 0%, 80%, 100% { opacity: .25 } 40% { opacity: 1 } }
@media (prefers-reduced-motion: reduce) { .pdd-typing span { animation: none; } }
.pdd-chat-empty { margin: auto; max-width: 640px; text-align: center; display: grid; gap: .5rem; }
.pdd-chat-empty h3 { font-size: 1.1rem; font-weight: 700; }
.pdd-chat-starters { display: grid; gap: .5rem; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); margin-top: .5rem; }
.pdd-chat-starters button { text-align: left; font-size: .82rem; padding: .6rem .75rem; border-radius: .6rem; border: 1px solid rgba(var(--gray-200), 1); background: rgba(255,255,255,1); }
.pdd-chat-starters button:hover { border-color: rgba(var(--primary-400), 1); }
.pdd-chat-input { display: flex; gap: .5rem; align-items: flex-end; border-top: 1px solid rgba(var(--gray-200), 1); padding-top: .6rem; }
.pdd-chat-input textarea { flex: 1; min-width: 0; resize: vertical; border-radius: .6rem; border: 1px solid rgba(var(--gray-300), 1); padding: .5rem .7rem; font-size: .9rem; background: transparent; }
.dark .pdd-chat-side, .dark .pdd-chat-main { border-color: rgba(var(--gray-700), 1); background: rgba(var(--gray-900), .5); }
.dark .pdd-msg.ai .bubble, .dark .pdd-chat-starters button { background: rgba(var(--gray-800), 1); border-color: rgba(var(--gray-700), 1); }
.dark .pdd-chat-list li.active, .dark .pdd-chat-list li:hover { background: rgba(var(--gray-800), 1); }
/* Chat attachments & area-analysis map */
.pdd-attach { display: inline-flex; align-items: center; justify-content: center; width: 2.4rem; height: 2.4rem; border-radius: .6rem;
  border: 1px solid rgba(var(--gray-300), 1); cursor: pointer; color: rgba(var(--gray-600), 1); flex: none; }
.pdd-attach:hover { border-color: rgba(var(--primary-400), 1); color: rgba(var(--primary-600), 1); }
.pdd-attach input { display: none; }
.pdd-att-chip { display: inline-flex; gap: .35rem; align-items: center; font-size: .78rem; padding: .15rem .5rem; border-radius: 999px;
  background: rgba(var(--gray-100), 1); border: 1px solid rgba(var(--gray-200), 1); }
.pdd-att-chip.on-dark { background: rgba(255,255,255,.18); border-color: rgba(255,255,255,.35); margin-top: .35rem; }
.pdd-chatmap { margin: .25rem 0 .5rem; }
.pdd-chatmap-canvas { height: 360px; width: 100%; border-radius: .6rem; border: 1px solid rgba(var(--gray-200), 1); z-index: 0; }
.pdd-chatmap-meta { font-size: .75rem; color: rgba(var(--gray-500), 1); margin-bottom: .4rem; }
.pdd-chatmap-table { width: 100%; border-collapse: collapse; font-size: .78rem; margin: .25rem 0 .5rem; }
.pdd-chatmap-table th { text-align: left; color: rgba(var(--gray-500), 1); font-weight: 500; padding: .2rem .4rem; border-bottom: 1px solid rgba(var(--gray-200), 1); }
.pdd-chatmap-table td { padding: .2rem .4rem; vertical-align: top; }
.pdd-chatmap-table .num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.pdd-lossbars { margin: .25rem 0; font-size: .72rem; }
.pdd-lossbars .bars { display: flex; align-items: flex-end; gap: 3px; height: 70px; margin-top: .25rem; }
.pdd-lossbars .bar { flex: 1; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; min-width: 0; }
.pdd-lossbars .bar i { display: block; width: 100%; background: #c62828; border-radius: 2px 2px 0 0; }
.pdd-lossbars .bar span { font-size: .6rem; color: rgba(var(--gray-500), 1); margin-top: 2px; }
.dark .pdd-chatmap-canvas, .dark .pdd-attach { border-color: rgba(var(--gray-700), 1); }
.dark .pdd-att-chip { background: rgba(var(--gray-800), 1); border-color: rgba(var(--gray-700), 1); }
/* Legal status of regulation sources */
.pdd-legal { display: inline-block; font-size: .7rem; font-weight: 600; line-height: 1.4; padding: 0 .4rem; margin-left: .3rem; border-radius: 999px; vertical-align: 1px; white-space: nowrap; }
.pdd-legal-danger { background: rgba(var(--danger-50), 1); color: rgba(var(--danger-700), 1); border: 1px solid rgba(var(--danger-200), 1); }
.pdd-legal-warning { background: rgba(var(--warning-50), 1); color: rgba(var(--warning-700), 1); border: 1px solid rgba(var(--warning-200), 1); }
.dark .pdd-legal-danger { background: rgba(var(--danger-950), .6); color: rgba(var(--danger-300), 1); border-color: rgba(var(--danger-800), 1); }
.dark .pdd-legal-warning { background: rgba(var(--warning-950), .6); color: rgba(var(--warning-300), 1); border-color: rgba(var(--warning-800), 1); }
/* Read-only project workspace: the server refuses changes; hide the controls that would only fail */
.pdd-readonly form[wire\:submit] [type="submit"], .pdd-readonly .pdd-edit-only { display: none !important; }
