* { box-sizing: border-box; }
body { font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; margin: 0; background: #f6f7f9; color: #111; }
header { padding: 16px 20px; background: #1c7c54; color: #fff; }
h1 { margin: 0; font-size: 20px; }
.diag { margin-top: 6px; font-size: 12px; opacity: .95; }
main { padding: 20px; max-width: 1100px; margin: 0 auto; }
.card { background: #fff; padding: 16px; border-radius: 14px; box-shadow: 0 6px 20px rgba(0,0,0,0.06); margin-bottom: 16px; }
label { display: inline-block; margin-right: 8px; }
select, input[type=text], input[type=email], button { padding: 12px 14px; border-radius: 10px; border: 1px solid #ddd; font-size: 16px; }
button { background: #1c7c54; color: #fff; border: none; cursor: pointer; }
button.ghost { background: #eef2f0; color: #174939; }
button[disabled] { background: #9bbcab; cursor: not-allowed; }
.row { display: flex; gap: 8px; align-items: center; margin-top: 10px; flex-wrap: wrap; }
.prefs { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 8px; }
.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.session h3 { margin-top: 0; }
.pill-list { list-style: none; padding-left: 0; display: flex; gap: 8px; flex-wrap: wrap; min-height: 28px; }
.pill-list li { background: #e9f5ef; border: 1px solid #cfe8da; padding: 6px 10px; border-radius: 999px; display: inline-flex; align-items: center; gap: 8px; }
.pill-list li span { opacity: 0.7; margin-left: 2px; }
.pill-list .remove { border: none; background: #e33; color: #fff; border-radius: 999px; padding: 2px 8px; cursor: pointer; font-size: 12px; }
.pill-list .remove[disabled] { background: #aaa; cursor: not-allowed; }
.pill-list .remove:hover { background: #c22; }
.hint { color: #555; font-size: 12px; margin-top: 6px; }
.missing-list { list-style: square; margin-left: 20px; min-height: 28px; }
.missing-list.red li { color: #a12b25; }
footer { padding: 12px 20px; color: #666; }
.status { margin-top: 8px; min-height: 20px; font-size: 14px; }
.status.ok { color: #1c7c54; }
.status.warn { color: #b86800; }
.mode { margin-left: 12px; }
.badge { display:inline-block; padding: 4px 8px; border-radius: 999px; background:#eee; color:#333; font-size:12px; }
.badge.open { background: #e3f6ea; color: #1c7c54; }
.badge.closed { background: #ffe8e6; color: #a12b25; }
.lists { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 900px) { .grid-2, .lists { grid-template-columns: 1fr; } }
.muted { color:#666; font-size:12px; margin-left:6px; }
.hidden { display: none; }
.diagbox { margin-top: 8px; background: #fafafa; border: 1px dashed #ddd; padding: 8px; border-radius: 10px; }
#diagDetail { white-space: pre-wrap; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 12px; color: #333; }
