/* Structured schema diagram: fixed-height field rows align with the connectors. */
#database-schema > summary { min-height:44px; padding:12px 14px; font-size:.9375rem; }
#database-schema > summary span { font-size:.8125rem; }
.schema-legend { display:flex; flex-wrap:wrap; gap:8px 20px; padding:4px 14px 0; color:var(--muted); font-size:.8125rem; }
.schema-legend b { color:var(--navy); margin-right:4px; }
.schema-scroll { overflow-x:auto; padding:12px; overscroll-behavior-x:contain; scrollbar-width:thin; }
.schema-scroll:focus-visible { outline:2px solid var(--teal); outline-offset:-3px; }
.schema-diagram { display:grid; grid-template-columns:minmax(210px,1fr) 60px minmax(210px,1fr) 60px minmax(210px,1fr); min-width:750px; align-items:start; }
.schema-table { min-width:0; border:1px solid var(--line); border-radius:7px; background:var(--white); overflow:hidden; }
.schema-table h4 { height:40px; margin:0; padding:9px 12px; background:#0b3c5d; color:#fff; font:700 1rem/22px var(--cp-font-code); }
.schema-table ul { list-style:none; padding:8px 0; margin:0; }
.schema-table li { display:grid; grid-template-columns:23px minmax(0,1fr) auto; align-items:center; gap:5px; height:32px; padding:0 9px; }
.schema-table li:not(:last-child) { border-bottom:1px solid var(--line); }
.schema-table code { white-space:nowrap; color:var(--ink); font-size:.875rem; }
.schema-key { font-size:.75rem; font-weight:800; color:var(--teal-dark); }
.schema-key.fk { color:var(--navy); }
.field-type { color:var(--muted); font:500 .75rem var(--cp-font-code); }
.schema-connector { width:60px; height:216px; overflow:visible; }
.schema-connector path { fill:none; stroke:var(--teal-dark); stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.schema-connector text { fill:var(--ink); font:800 14px var(--cp-font-code); }
.schema-relations { margin:0 14px 12px; font-size:.875rem; color:var(--muted); }
.schema-extra { display:contents; }
#evidence-schema { width:210px; margin:12px; }
#database-schema .schema-note { margin:0 14px 12px; }
[data-theme="dark"] .schema-table h4 { background:#132b40; }
@media(max-width:700px) { #database-schema > summary span { display:block; margin-top:3px; } .schema-relations { font-size:.8125rem; } }

/* Guide the eye from mission title to objective, then the editor. */
.mission-title-row { align-items:flex-start; gap:18px; }
.mission-title-row h2 { font-size:clamp(1.45rem,2.8vw,1.75rem); font-weight:700; line-height:1.2; }
.mission-title-row p { color:var(--muted); line-height:1.55; }
.mission-title-actions { display:flex; flex-direction:column; align-items:flex-end; gap:10px; flex:0 0 auto; }
.schema-invite { display:inline-flex; align-items:center; justify-content:center; gap:9px; min-height:46px; padding:10px 14px; border:1px solid #007e80; border-radius:9px; background:#dff7f3; color:#075558; font-family:inherit; font-size:.9375rem; font-weight:750; line-height:1.35; cursor:pointer; box-shadow:0 3px 10px #0b3c5d20; animation:schema-nudge .65s ease-in-out .5s 2; }
.schema-invite svg { width:23px; height:23px; flex:none; }
.schema-invite:hover { background:#c8eee8; box-shadow:0 4px 14px #0b3c5d30; }
.schema-invite:focus-visible { outline:3px solid var(--teal); outline-offset:3px; }
.objective-box { padding:14px; }
.objective-box strong { font-size:.8125rem; letter-spacing:.06em; }
.objective-box p { font-size:1.0625rem; font-weight:550; line-height:1.55; }
#hint-button { min-height:40px; padding:8px 12px; border:1px solid var(--line); border-radius:7px; color:var(--teal-dark); font-size:.9375rem; }
.editor-label { font-size:.875rem; color:var(--navy); }
#database-schema > summary { color:var(--navy); font-weight:800; background:#e9f4f4; }
#database-schema > summary span { color:var(--muted); font-weight:500; }
[data-theme="dark"] .schema-invite { background:#113b40; border-color:#38e5ce; color:#91fff0; box-shadow:0 3px 14px #0005; }
[data-theme="dark"] .schema-invite:hover { background:#185058; }
[data-theme="dark"] #database-schema > summary { background:#16303f; color:#e2f4ff; }
[data-theme="dark"] .objective-box p { color:#e2f4f4; }
@keyframes schema-nudge { 0%,100% { transform:translateX(0); } 25% { transform:translateX(-3px); } 75% { transform:translateX(3px); } }
@media(max-width:700px) { .mission-title-row { flex-direction:column; gap:12px; } .mission-title-actions { width:100%; flex-direction:row; align-items:center; flex-wrap:wrap; } .schema-invite { flex:0 1 auto; } }
@media(prefers-reduced-motion:reduce) { .schema-invite { animation:none; } }

/* Celebrate a first clear while keeping the next step explicit. */
.success-dialog { width:min(500px,calc(100% - 32px)); max-width:500px; padding:32px 26px 26px; border-radius:10px; text-align:center; overflow:visible; }
.success-dialog::backdrop { background:#03102099; backdrop-filter:blur(5px); -webkit-backdrop-filter:blur(5px); }
.success-dialog h2 { margin:15px 0 12px; font-size:1.8rem; line-height:1.2; }
.success-dialog > p { position:relative; color:var(--muted); font-size:1rem; line-height:1.55; }
.success-dialog .celebration-xp { color:var(--teal-dark); font-size:1rem; font-weight:800; margin:18px 0; }
.celebration-mark { position:relative; display:grid; place-items:center; width:60px; height:60px; margin:auto; border-radius:50%; background:#dff7f3; color:#087c71; font-size:2rem; font-weight:800; }
.success-dialog .dialog-actions { position:relative; justify-content:center; gap:12px; }
.success-dialog .dialog-actions button { min-height:46px; }
.celebration-burst { position:absolute; top:60px; left:50%; pointer-events:none; }
.celebration-burst i { position:absolute; width:6px; height:12px; border-radius:2px; background:var(--confetti); opacity:0; }
.success-dialog[open] .celebration-burst i { animation:mission-confetti 1.35s ease-out var(--delay) both; }
@keyframes mission-confetti { 0% { opacity:0; transform:rotate(var(--angle)) translateY(0) rotate(0deg); } 15% { opacity:1; } 100% { opacity:0; transform:rotate(var(--angle)) translateY(calc(-1 * var(--distance))) rotate(150deg); } }
[data-theme="dark"] .celebration-mark { background:#153f3f; color:#7bf4df; }
@media(max-width:560px) { .success-dialog { padding:28px 20px 22px; } .success-dialog .dialog-actions { flex-direction:column-reverse; } .success-dialog .dialog-actions button { width:100%; } }
@media(prefers-reduced-motion:reduce) { .celebration-burst { display:none; } .success-dialog[open] .celebration-burst i { animation:none; } }

.objective-list{margin:8px 0 0;padding-left:1.25rem;font-size:1rem;line-height:1.5;color:var(--ink)}.objective-list li+li{margin-top:6px}.objective-list li:last-child{font-weight:700}[data-theme="dark"] .objective-list{color:#e2f4f4}
