/* Geometry from approved revision3; colors/states inherit existing semantic donors. */
:is(.retention-view,.retention-technical,#panel [data-retention-card]){--rt-shadow:rgba(0,0,0,.20)}
html.dark :is(.retention-view,.retention-technical,#panel [data-retention-card]){--rt-shadow:rgba(0,0,0,.35)}
.retention-view .rv2-modal-box{box-shadow:0 16px 48px var(--rt-shadow)}
#panel [data-retention-card] .rv2-gc-eyebrow{color:var(--accent)}
#panel [data-retention-card] .rv2-gc-title{font-size:17px;line-height:22px;margin-top:8px;overflow-wrap:anywhere}
#panel [data-retention-card] .rt-card-goal{font-size:15px;line-height:1.4;margin-top:4px;color:var(--text)}
#panel [data-retention-card] .rt-card-hook{font-size:14px;line-height:normal;margin-top:auto;padding-top:14px;display:flex;justify-content:space-between;gap:8px;align-items:center}
#panel [data-retention-card] .rt-card-hook .rt-icon{color:var(--accent)}
.retention-view [hidden]{display:none!important}
:is(.retention-view,.retention-technical) button{font-family:inherit}
.retention-view .rt-sheet-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 14px 14px 20px;border-bottom:1px solid var(--border-soft);flex:none}
.retention-view .rv2-modal-h{margin:0;padding:0;font-size:16px;font-weight:600;line-height:24px}
.retention-view .rt-sheet-subtitle{font-size:13px;margin-top:2px;line-height:1.5}
.retention-view .rv2-modal-body{font-family:inherit;padding:20px 20px 22px;font-size:15px;line-height:1.5}
.retention-view .rv2-modal-body p{line-height:inherit;margin:0}
.retention-view .rv2-modal-body p+p{margin-top:12px}
.retention-view .rt-intro{margin-bottom:24px}
.retention-view .rt-topic{font-size:23px;line-height:30px;font-weight:700;margin:0 0 12px}
.retention-view .rt-why{margin:14px 0 0;line-height:24px}
.retention-view .rt-why-title{font-size:13px;font-weight:700;line-height:24px;margin-bottom:4px;display:flex;align-items:center;gap:6px}
.retention-view .rt-why-title .rt-icon{width:1em;height:1em;flex:0 0 1em;color:var(--accent)}
.retention-view .rt-rows{margin-top:8px}
.retention-view .rt-rows .jl-row:first-child{border-top:0;padding-top:0}
.retention-view .jl-row{align-items:first baseline}
.retention-view .jl-anchor{min-width:0;padding-top:0}
.retention-view .jl-term{overflow-wrap:anywhere}
.retention-modal .jl-ru{font-size:14px;line-height:20px;margin-top:6px;color:var(--text)}
.retention-view .jl-body{line-height:24px}
.retention-view .rv2-modal-body .jl-body>p:not(:first-child){margin-top:12px}
.retention-view .jl-expl{line-height:24px;color:var(--text)}
.retention-view .jl-qname{font-size:13px;color:var(--text)}
.retention-view .jl-qava{font-weight:400;line-height:inherit;color:var(--accent);background:var(--accent-veil)}
.retention-view .rt-en{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow-wrap:anywhere}
.retention-view .rt-foot{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;border-top:1px solid var(--border-soft);margin-top:24px;padding-top:18px}
:is(.retention-view,.retention-technical) .rt-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
:is(.retention-view,.retention-technical) .rt-button{min-height:40px;height:auto;max-width:100%;white-space:normal;padding:8px 14px;font-size:14px;font-weight:500;line-height:22px;border-radius:10px;font-family:inherit;border:1px solid var(--border);background:var(--panel);color:var(--text);box-shadow:0 1px 2px var(--rt-shadow)}
:is(.retention-view,.retention-technical) .rt-button.primary{background:var(--accent-fill);border-color:var(--accent-fill);color:var(--on-accent)}
:is(.retention-view,.retention-technical) .rt-button.quiet{background:transparent;border-color:transparent;box-shadow:none;padding-left:0;color:var(--text)}
.retention-view .rt-progress{display:flex;gap:8px;align-items:center;margin-bottom:20px;flex-wrap:wrap;font-size:13px;line-height:1.5}
.retention-view .rt-track{width:120px;height:5px;background:var(--surface);border-radius:10px;overflow:hidden}
.retention-view .rt-track>span{display:block;height:100%;background:var(--accent)}
.retention-view .rt-question{font-size:21px;font-weight:700;line-height:28px;margin:0 0 12px}
.retention-view .rt-question:focus{outline:none}
.retention-view .rt-stimulus{font-size:18px;line-height:28px!important;margin:14px 0 20px!important}
.retention-view .rt-options{display:flex;align-items:stretch;flex-direction:column;gap:8px;padding:3px;margin:-3px;max-width:650px}
.retention-view .rt-options .gopt{text-align:left;justify-content:flex-start;flex:1 1 auto;white-space:normal;cursor:pointer}
.retention-view .rt-options .gopt.sel{border-color:var(--accent);background:var(--badge);box-shadow:0 0 0 3px var(--focus-ring)}
.retention-view .rt-input-label{display:block;font-size:14px;font-weight:500;margin-bottom:8px}
.retention-view .rt-input{display:block;resize:vertical;box-sizing:border-box;width:100%;min-height:108px;margin-bottom:12px}
.retention-view .rt-hint{margin-top:18px;padding:12px;background:var(--jl-quote-bg);border-radius:10px;line-height:1.5}
.retention-view .rt-origin{font-size:12px;margin:8px 0;display:block;line-height:1.5}
.retention-view .rt-feedback{margin-top:22px;border-radius:10px;padding:14px;background:var(--surface);line-height:24px}
.retention-view .rt-feedback.good{background:var(--ok-bg)}
.retention-view .rt-feedback.bad{background:var(--bad-bg)}
.retention-view .rt-feedback-title{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:600;margin-bottom:5px}
.retention-view .rt-feedback .rt-actions{margin-top:12px}
:is(.retention-view,.retention-technical) .rt-icon{flex:none}
.retention-view .gitem.stq{padding:0;margin:0}
.retention-view .gitem:is(.placing,.dragging) .gap:not(.filled){border-color:var(--chip-bd);background:transparent}
.retention-view .gitem:is(.placing,.dragging) .gap.next:not(.filled){border-color:var(--accent);background:var(--badge)}
.retention-view .gap.bad:not(.filled):not(.active):not(.dragover){box-shadow:none}
.retention-view .stq .stq-line{overflow-x:auto;max-width:100%;padding:3px;margin:18px -3px 24px}
.retention-view .gap,.retention-view .word{cursor:pointer;font-family:inherit}
.retention-view :is(.gap,.word,.gopt){transition:none}
.retention-view .gbank{display:flex;gap:8px;flex-wrap:wrap;padding:3px;margin:12px -3px -3px}
.retention-view .rt-error{color:var(--bad-tx);margin-top:12px!important}
.retention-view .rt-result-list{list-style:none;margin:22px 0;padding:0}
.retention-view .rt-result-list li{padding:14px 0;border-top:1px solid var(--border-soft);display:flex;align-items:flex-start;gap:12px}
.retention-view .rt-result-list .rt-icon{margin-top:4px;color:var(--ok-tx)}
.retention-view .rt-result-list .rt-outcome-help .rt-icon{color:var(--accent)}
.retention-view .rt-result-list .rt-outcome-pending .rt-icon{color:var(--text)}
.retention-view .rt-note{padding:10px 12px;background:var(--jl-quote-bg);border-radius:10px;margin-top:14px;line-height:24px}
:is(.retention-view,.retention-technical) .rt-technical{max-width:620px;margin:12px auto;padding:20px 0}
:is(.retention-view,.retention-technical) .rt-technical h2{font-size:23px;line-height:30px;margin:0 0 14px}
:is(.retention-view,.retention-technical) .rt-technical .rt-actions{margin-top:22px}
:is(.retention-view,.retention-technical) .rt-skeleton{display:grid;gap:12px;margin:18px 0}
:is(.retention-view,.retention-technical) .rt-skeleton span{height:12px;width:90%;background:var(--surface);border-radius:6px}
:is(.retention-view,.retention-technical) .rt-skeleton span:first-child{width:55%;height:18px}
:is(.retention-view,.retention-technical) .rt-skeleton span:last-child{width:65%}
@media(max-width:760px){.retention-view .rv2-modal-box .jl-row{grid-template-columns:1fr;row-gap:14px}}
@media(max-width:640px){
  .retention-view .rt-sheet-head{padding-left:16px}
  .retention-view .rv2-modal-body{font-family:inherit;padding:18px 16px 20px}
  .retention-view .rt-topic{font-size:21px;line-height:28px}
  .retention-view .rt-foot{align-items:stretch}
  :is(.retention-view,.retention-technical) .rt-button{min-height:44px}
  .retention-view .rt-options,.retention-view .gbank{gap:10px}
}

:is(.retention-view,.retention-technical) .rt-button:disabled{background:var(--surface-disabled);border-color:var(--surface-disabled);color:var(--text-disabled);box-shadow:none;cursor:default;pointer-events:auto}
[data-retention-hidden="true"]{display:none!important}
.main-grid.rt-technical-open{grid-template-columns:minmax(0,1fr)!important}
.retention-technical{font-size:15px;line-height:1.5;color:var(--text)}
.retention-technical .rt-technical h2{font-weight:700}
.retention-technical .rt-technical h2:focus{outline:none}
.retention-technical p{margin:0}
@media(hover:hover){
  .retention-view :is(.gopt,.word:not(.used),.gap:not(.filled)):hover{border-color:var(--accent)}
  #panel [data-retention-card]:not(.lc-tile):hover{box-shadow:0 6px 20px var(--rt-shadow);transform:translateY(-2px)}
  :is(.retention-view,.retention-technical) .rt-button:not(.primary):hover{background:var(--accent-veil)}
  :is(.retention-view,.retention-technical) .rt-button.primary:hover{background:var(--accent-fill-hover)}
  :is(.retention-view,.retention-technical) .rt-button.primary:hover:disabled{background:var(--accent-fill-hover)}
  :is(.retention-view,.retention-technical) .rt-button.primary:hover:not(:disabled):not([aria-disabled]){background:var(--accent-fill-hover);border-color:var(--accent-fill)}
}

/* Shared tile clones live in body; keep this consumer above its own z200 modal. */
body>.rt-retention-word.dragging{z-index:201!important;box-shadow:none;opacity:1}
.retention-view .lesson-wrap .gbank .word.ghost{visibility:visible;opacity:.5}

/* Inline content shares the retention recipe; its width/scroll belong to lc-detail. */
.retention-inline{min-width:0;color:var(--lc-text);--jl-quote-bg:var(--lc-quote)}
.retention-inline .rt-why{background:var(--lc-quote)}
.retention-inline .rt-inline-body{min-width:0;font-family:inherit}
.retention-inline .rt-inline-body p{line-height:inherit;margin:0}
.retention-inline .rt-inline-body p+p{margin-top:12px}
.retention-inline .rt-sheet-subtitle{color:var(--lc-muted);margin:4px 0 20px}
.retention-inline .rt-technical{padding:0}

/* Keep only the explanation CTA within the current scrollport, reserving its normal-flow space. */
.retention-view .rt-explanation-foot{position:sticky;bottom:0;z-index:2;background:var(--panel);padding-bottom:12px}
.retention-inline .rt-explanation-foot{background:var(--lc-panel)}
