.reflection-launcher { position:fixed; z-index:65; right:max(22px,env(safe-area-inset-right)); bottom:max(20px,env(safe-area-inset-bottom)); display:flex; align-items:center; gap:9px; min-height:44px; padding:10px 17px; color:#23485f; background:#fff; border:1px solid #a9bac8; border-radius:5px; box-shadow:0 3px 14px #203c4b15; font:600 15px/1.4 var(--sans); cursor:pointer; }
.reflection-launcher:hover { background:#f3f7fa; border-color:#526e83; }
.reflection-launcher[hidden],.reflection-dialog [hidden] { display:none!important; }
.reflection-dialog { box-sizing:border-box; position:fixed; inset:12px 12px 12px auto; margin:0; padding:0; width:min(540px,calc(100vw - 24px)); max-width:none; height:calc(100dvh - 24px); max-height:none; color:#243d51; background:#fff; border:1px solid #bac9d4; border-radius:7px; box-shadow:0 8px 42px #152e422e; font:400 16px/1.8 var(--sans); }
.reflection-dialog[open] { display:flex; flex-direction:column; }
html.reflection-is-open { overflow:hidden; }
.reflection-dialog::backdrop { background:#102c4433; }
.reflection-dialog * { box-sizing:border-box; }
.reflection-header { display:flex; align-items:center; justify-content:space-between; flex:none; padding:20px 24px 16px; gap:12px; border-bottom:1px solid #e0e7ec; }
.reflection-header p { margin:0 0 3px; font:500 12px/1.7 var(--sans); color:#795b3e; letter-spacing:.04em; }
.reflection-header h2 { margin:0; font:600 24px/1.5 var(--serif); color:#203c51; }
.reflection-dialog button { font:500 14px/1.6 var(--sans); cursor:pointer; border:1px solid #c4d2dc; background:#fff; color:#274d68; border-radius:4px; padding:8px 12px; min-height:42px; }
.reflection-dialog button:hover { border-color:#496b84; background:#f2f6f9; }
.reflection-dialog .reflection-close { flex:none; border:0; padding:8px 0 8px 8px; font-size:13px; }
.reflection-close span { margin-left:5px; font-size:21px; vertical-align:-1px; }
.reflection-dialog :is(button,a,textarea,select):focus-visible,.reflection-launcher:focus-visible { outline:3px solid #ad8155; outline-offset:3px; }
.reflection-scroll { overflow-y:auto; overscroll-behavior:contain; flex:1; min-height:0; padding:18px 24px 20px; }
.reflection-context { padding-bottom:14px; font-size:13px; line-height:1.6; }
.reflection-context>span { display:block; color:#687988; font-size:12px; }
.reflection-context a { color:#3d5e75; text-decoration:underline; text-underline-offset:3px; }
.reflection-context button { display:block; margin-top:6px; font-size:12px; min-height:32px; padding:4px 8px; }
.reflection-steps { display:grid; grid-template-columns:1fr 1fr 1.2fr; gap:0; margin:0 0 24px; border-bottom:1px solid #c7d4dd; }
.reflection-steps button { min-width:0; padding:9px 3px; border:0; border-bottom:2px solid transparent; border-radius:0; font-size:13px; color:#637384; background:#fff; }
.reflection-steps button[aria-pressed=true] { border-bottom-color:#986f49; color:#1f4864; font-weight:700; }
.reflection-view h3 { font:600 20px/1.6 var(--serif); margin:0 0 6px; color:#223e52; }
.reflection-help { font:400 13px/1.8 var(--sans); color:#627382; margin:5px 0 14px; }
.reflection-dialog label { display:block; font:600 14px/1.7 var(--sans); margin:16px 0 6px; }
.reflection-dialog textarea { display:block; width:100%; resize:vertical; min-height:140px; max-height:50dvh; padding:12px; border:1px solid #aebfcd; border-radius:4px; font:400 16px/1.8 var(--sans); color:#263e50; background:#fff; }
.reflection-dialog textarea::placeholder { color:#71808c; }
.reflection-next { display:flex; justify-content:flex-end; margin-top:16px; }
.reflection-dialog .reflection-primary { background:#284f69; border-color:#284f69; color:#fff; padding:10px 14px; }
.reflection-dialog .reflection-primary:hover { background:#193d55; }
.reflection-dialog button:disabled { opacity:.55; cursor:default; }
.reflection-privacy { margin:24px 0 0; padding-top:14px; border-top:1px solid #e2e7eb; font-size:12px; line-height:1.8; color:#697a88; }
.reflection-prompts { display:grid; grid-template-columns:1fr 1fr; gap:7px; margin:16px 0 18px; }
.reflection-prompts button { text-align:left; font-size:13px; padding:8px 10px; }
.reflection-prompts button[aria-pressed=true] { background:#edf3f7; border-color:#5b7b94; color:#203e54; }
.reflection-prompts .is-answered:after { content:' ✓'; color:#5b7181; }
.reflection-question-card { padding:16px; border:1px solid #dbe3e9; border-top:2px solid #a58a69; border-radius:3px; background:#fcfbf9; }
.reflection-overline { margin:0 0 5px; color:#8b633f; font:600 12px/1.6 var(--sans); }
.reflection-question-card h4 { margin:0 0 10px; font:600 18px/1.7 var(--serif); color:#263f53; }
.reflection-question-card .reflection-help { margin-bottom:12px; }
.reflection-report-content { margin-top:20px; }
.reflection-report-content section { border-top:1px solid #dee6ec; padding:14px 0; }
.reflection-report-content h4 { margin:0 0 5px; color:#775637; font:600 13px/1.6 var(--sans); }
.reflection-report-content p { margin:0; font-size:15px; line-height:1.9; white-space:pre-wrap; overflow-wrap:anywhere; }
.reflection-report-content .reflection-unanswered { padding:14px; background:#f2f6f9; margin:4px 0 14px; border:0; }
.reflection-report-content ul { padding-left:18px; margin:8px 0; font-size:13px; }
.reflection-report-content a { color:#365974; overflow-wrap:anywhere; }
.reflection-output { display:flex; flex-wrap:wrap; gap:9px; margin-top:18px; }
.reflection-file-link { display:block; width:fit-content; padding:9px 12px; margin-top:8px; color:#214e70; background:#eef4f8; border:1px solid #a6bdcf; border-radius:3px; font:600 14px/1.7 var(--sans); text-underline-offset:3px; }
.reflection-planner { display:inline-block; color:#294f69; font-size:14px; margin-top:12px; text-underline-offset:4px; }
.reflection-saved { margin-top:24px; border-top:1px solid #e1e7ec; padding-top:15px; }
.reflection-saved summary { color:#4f687c; font-size:13px; cursor:pointer; }
.reflection-saved select { width:100%; padding:9px; font:400 14px/1.6 var(--sans); color:#28465c; border:1px solid #b5c6d3; border-radius:3px; background:#fff; }
.reflection-manage { display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
.reflection-manage button { font-size:13px; }
.reflection-footer { flex:none; padding:12px 24px; border-top:1px solid #dce5eb; background:#f9fbfc; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.reflection-footer span { font-size:12px; color:#5c7181; line-height:1.6; }
.reflection-footer button { font-size:13px; flex:none; }
.reflection-footer .save-unavailable { color:#8c5036; }
@media(max-width:600px) {
 .reflection-launcher { right:12px; bottom:max(12px,env(safe-area-inset-bottom)); padding:9px 13px; font-size:14px; }
 .foot { padding-bottom:90px; }
 .reflection-dialog { inset:0; width:100%; height:100dvh; border:0; border-radius:0; padding-top:env(safe-area-inset-top); }
 .reflection-header { padding:15px 18px 12px; }
 .reflection-header h2 { font-size:22px; }
 .reflection-scroll { padding:15px 18px; }
 .reflection-footer { padding:10px 18px max(10px,env(safe-area-inset-bottom)); }
 .reflection-steps button { font-size:12px; }
 .reflection-question-card { padding:13px; }
}
@media print { .reflection-launcher,.reflection-dialog { display:none!important; } }
