/* Repousse : cartes mémoire */
.rp-wrap{max-width:980px;margin:0 auto;padding:14px 16px 60px;color:var(--fg)}
.rp-top{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px}
.rp-sp{flex:1}
.rp-hero{display:flex;flex-wrap:wrap;gap:14px 24px;align-items:center;justify-content:space-between;margin:4px 0 18px;padding:18px 20px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(135deg,color-mix(in srgb,var(--c3) 14%,var(--surface)),color-mix(in srgb,var(--c4) 12%,var(--surface)))}
.rp-hero h1{margin:0 0 4px;font:800 28px var(--f-display)}
.rp-hero p{margin:0;max-width:420px;color:var(--muted);font-size:14px}
.rp-kpis{display:flex;gap:10px;flex-wrap:wrap}
.rp-kpis>div{min-width:92px;padding:8px 12px;border-radius:12px;background:var(--surface);border:1px solid var(--line);text-align:center}
.rp-kpis b{display:block;font:800 22px var(--f-display)}
.rp-kpis span{font-size:11.5px;color:var(--muted)}
.rp-kpis.rp-wide{margin-bottom:12px}
.rp-kpis.rp-wide>div{flex:1 1 120px}
.rp-decks{display:flex;flex-direction:column;gap:8px}
.rp-deck{display:flex;align-items:center;gap:10px;padding:6px 8px 6px calc(8px + var(--dp,0)*18px);border:1px solid var(--line);border-radius:12px;background:var(--surface);transition:border-color .2s,box-shadow .2s}
.rp-deck:hover{border-color:var(--dc);box-shadow:var(--shadow)}
.rp-dn{flex:1;min-width:0;display:flex;align-items:center;gap:10px;padding:8px;border:0;background:none;color:var(--fg);font:700 15px var(--f-body);text-align:left;cursor:pointer;border-radius:8px}
.rp-dn i{flex:none;width:10px;height:10px;border-radius:50%;background:var(--dc)}
.rp-dn span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rp-dn small{color:var(--muted);font:500 12px var(--f-body);white-space:nowrap}
.rp-cnt{display:flex;gap:10px;font:700 14px var(--f-mono)}
.rp-cnt b.n,.rp-legend b.n{color:var(--c3)}.rp-cnt b.l,.rp-legend b.l{color:var(--c1)}.rp-cnt b.r,.rp-legend b.r{color:var(--c2)}
.rp-cnt b.z{opacity:.28;font-weight:500}
.rp-cnt.big{font-size:16px;margin-left:auto}
.rp-cnt b.cur{text-decoration:underline;text-underline-offset:4px}
.rp-act{display:flex;gap:5px}
.rp-mk{margin-top:14px}
.rp-legend{margin:10px 2px;font-size:12px;color:var(--muted)}
.rp-legend b{font-weight:700}
.rp-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}
.rp-row input[type=text],.rp-form input,.rp-form select,.rp-form textarea,#rp-bq,#rp-sort,.rp-bulk select{padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--fg);font:400 14px var(--f-body);min-width:0}
.rp-row input[type=text]{flex:1 1 200px}
.rp-mut{color:var(--muted);font-size:12.5px}
.rp-empty{padding:26px 20px;border:1px dashed var(--line);border-radius:16px;text-align:center}
.rp-empty h2{margin:0 0 6px;font:800 20px var(--f-display)}
.rp-empty p{max-width:520px;margin:0 auto 12px;color:var(--muted)}
.rp-empty .rp-row{justify-content:center}
.rp-empty-s{padding:24px;text-align:center;color:var(--muted)}
/* panneau de style */
.rp-pop{margin:0 0 16px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:var(--shadow)}
.rp-pop-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.rp-themes{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px;margin-bottom:12px}
.rp-th{padding:6px;border:2px solid transparent;border-radius:12px;background:none;color:var(--fg);cursor:pointer;font:600 12px var(--f-body)}
.rp-th[aria-pressed=true]{border-color:var(--fg)}
.rp-th em{display:block;margin-top:4px;font-style:normal}
.rp-card.mini{display:grid;place-items:center;height:54px;min-height:0;padding:0;font:700 18px var(--f-display);box-shadow:none}
.rp-card.mini b{font-weight:800}
.rp-opt{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 12px;padding:6px 0;border-top:1px solid var(--line)}
.rp-opt>span{font-size:13px;font-weight:600}
.rp-chk{display:flex;gap:8px;align-items:flex-start;margin:10px 0;font-size:13px}
.rp-prev{margin:10px 0}
.rp-prev .rp-card{min-height:120px}
/* Cartes : variables par thème */
.rp-card{--cb:#FFFDF6;--cf:#2A2118;--cm:#7A6B58;--ca:#B4232A;--cl:#E8DFCB;--cs:0 8px 28px rgba(60,40,10,.14);position:relative;display:flex;flex-direction:column;min-height:min(46vh,380px);padding:0;border:1px solid var(--cl);border-radius:20px;background:var(--cb);color:var(--cf);box-shadow:var(--cs);perspective:1400px;outline:none;transition:box-shadow .2s}
.rp-card:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--c3) 55%,transparent),var(--cs)}
.rp-card[data-ct=papier]{background:linear-gradient(transparent 31px,rgba(80,110,170,.12) 32px) 0 6px/100% 32px,var(--cb)}
.rp-card[data-ct=ardoise]{--cb:#1E2733;--cf:#E8EEF6;--cm:#98A7BA;--ca:#7FD1AE;--cl:#2E3B4C;--cs:0 8px 28px rgba(0,0,0,.35)}
.rp-card[data-ct=neon]{--cb:#0B0B14;--cf:#F1F0FF;--cm:#9D98C9;--ca:#FF4FD8;--cl:#5B3DF5;--cs:0 0 0 1px #5B3DF5,0 0 28px rgba(91,61,245,.55)}
.rp-card[data-ct=ocean]{--cb:linear-gradient(160deg,#0E3A5C,#0B6E8E);--cf:#EAF7FF;--cm:#A9D3E6;--ca:#FFD479;--cl:#2B7FA4;--cs:0 8px 28px rgba(5,50,80,.35)}
.rp-card[data-ct=kraft]{--cb:#D9BC8E;--cf:#3A2812;--cm:#6B5130;--ca:#8E2B14;--cl:#B99A68;--cs:0 8px 24px rgba(70,45,10,.25)}
.rp-card[data-ct=aurore]{--cb:linear-gradient(135deg,#FFE3EC,#E6DAFF 55%,#D3F0FF);--cf:#2B2142;--cm:#6D6290;--ca:#C2185B;--cl:#E1D3F7;--cs:0 8px 28px rgba(120,80,200,.2)}
.rp-card[data-ct=minimal]{--cb:#fff;--cf:#111;--cm:#666;--ca:#111;--cl:#E5E5E5;--cs:none;border-radius:10px}
.rp-card[data-ct=auto]{--cb:var(--surface);--cf:var(--fg);--cm:var(--muted);--ca:var(--c3);--cl:var(--line);--cs:var(--shadow)}
.rp-card[data-ct=ocean],.rp-card[data-ct=aurore],.rp-card[data-ct=ardoise],.rp-card[data-ct=neon],.rp-card[data-ct=kraft]{background:var(--cb)}
.rp-in{position:relative;flex:1;display:flex;transform-style:preserve-3d}
.rp-face{flex:1;display:flex;align-items:center;justify-content:center;min-width:0;padding:28px 24px;font-size:var(--fs,22px);line-height:1.45;font-family:var(--ff)}
.rp-card[data-sz=s]{--fs:16px}.rp-card[data-sz=m]{--fs:21px}.rp-card[data-sz=l]{--fs:27px}.rp-card[data-sz=xl]{--fs:34px}
.rp-card[data-ff=sans]{--ff:var(--f-body)}.rp-card[data-ff=serif]{--ff:Georgia,"Times New Roman",serif}.rp-card[data-ff=mono]{--ff:var(--f-mono)}.rp-card[data-ff=hand]{--ff:"Segoe Print","Bradley Hand","Comic Sans MS",cursive}
.rp-card[data-al=center] .rp-body{text-align:center}.rp-card[data-al=left] .rp-body{text-align:left}
.rp-body{width:100%;max-width:640px;overflow-wrap:anywhere}
.rp-body p{margin:0 0 .5em}.rp-body p:last-child{margin:0}
.rp-body ul{margin:.3em 0;padding-left:1.2em;text-align:left}
.rp-body code{padding:1px 6px;border-radius:6px;background:color-mix(in srgb,var(--cf) 12%,transparent);font:.85em var(--f-mono)}
.rp-body mark{padding:0 3px;border-radius:4px;background:color-mix(in srgb,var(--ca) 28%,transparent);color:inherit}
.rp-body img{max-width:100%;max-height:260px;border-radius:10px}
.rp-body a{color:var(--ca)}
.rp-cz{padding:0 6px;border-radius:7px;font-weight:700}
.rp-cz.q{background:color-mix(in srgb,var(--ca) 20%,transparent);color:var(--ca)}
.rp-cz.a{background:color-mix(in srgb,var(--ca) 16%,transparent);color:var(--ca);box-shadow:inset 0 -2px 0 var(--ca)}
.rp-ans hr{border:0;border-top:2px dashed var(--cl);margin:16px 0}
.rp-x{margin-top:12px;font-size:.7em;color:var(--cm);text-align:left}
.rp-tags{position:absolute;left:14px;bottom:8px;display:flex;gap:6px;font:500 11px var(--f-mono);color:var(--cm)}
.rp-tags i{font-style:normal}.rp-tags i.lapse{color:var(--ca)}
/* mode « remplace » : deux faces */
.rp-card[data-lay=replace] .rp-in{display:grid}
.rp-card[data-lay=replace] .rp-face{grid-area:1/1}
.rp-card[data-lay=replace][data-fl=flip] .rp-face{backface-visibility:hidden;-webkit-backface-visibility:hidden;transition:transform .5s cubic-bezier(.3,.7,.2,1)}
.rp-card[data-lay=replace][data-fl=flip] .rp-a{transform:rotateY(180deg)}
.rp-card[data-lay=replace][data-fl=flip][data-rev="1"] .rp-q{transform:rotateY(-180deg)}
.rp-card[data-lay=replace][data-fl=flip][data-rev="1"] .rp-a{transform:rotateY(0)}
.rp-card[data-lay=replace][data-fl=fade] .rp-face{transition:opacity .25s}
.rp-card[data-lay=replace][data-fl=fade] .rp-a,.rp-card[data-lay=replace][data-fl=slide] .rp-a{opacity:0;pointer-events:none}
.rp-card[data-lay=replace][data-fl=fade][data-rev="1"] .rp-q,.rp-card[data-lay=replace][data-fl=slide][data-rev="1"] .rp-q{opacity:0;pointer-events:none}
.rp-card[data-lay=replace][data-fl=fade][data-rev="1"] .rp-a,.rp-card[data-lay=replace][data-fl=slide][data-rev="1"] .rp-a{opacity:1;pointer-events:auto}
.rp-card[data-lay=replace][data-fl=slide] .rp-face{transition:transform .35s cubic-bezier(.3,.7,.2,1),opacity .3s}
.rp-card[data-lay=replace][data-fl=slide] .rp-a{transform:translateX(40px)}
.rp-card[data-lay=replace][data-fl=slide][data-rev="1"] .rp-q{transform:translateX(-40px)}
.rp-card[data-lay=replace][data-fl=slide][data-rev="1"] .rp-a{transform:none}
.rp-card[data-lay=replace][data-fl=none] .rp-a{display:none}
.rp-card[data-lay=replace][data-fl=none][data-rev="1"] .rp-q{display:none}
.rp-card[data-lay=replace][data-fl=none][data-rev="1"] .rp-a{display:flex}
/* mode « sous la question » */
.rp-card[data-lay=stack] .rp-ans{display:none}
.rp-card[data-lay=stack][data-rev="1"] .rp-ans{display:block;animation:rpin .3s ease both}
@keyframes rpin{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
/* étude */
.rp-study{display:flex;flex-direction:column;gap:12px}
.rp-sbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.rp-st-t{font:700 15px var(--f-display);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.rp-prog{height:6px;border-radius:3px;background:var(--line);overflow:hidden}
.rp-prog i{display:block;height:100%;background:linear-gradient(90deg,var(--c3),var(--c2));transition:width .3s}
.rp-bar{display:flex;gap:8px;min-height:64px}
.rp-show{flex:1;padding:16px;border:0;border-radius:14px;background:var(--fg);color:var(--bg);font:700 16px var(--f-body);cursor:pointer}
.rp-show kbd,.rp-rt kbd{margin-left:6px;padding:1px 6px;border-radius:5px;border:1px solid currentColor;font:600 11px var(--f-mono);opacity:.6}
.rp-rt{flex:1;display:flex;flex-direction:column;align-items:center;gap:1px;padding:10px 6px;border:2px solid var(--rc);border-radius:14px;background:color-mix(in srgb,var(--rc) 10%,var(--surface));color:var(--fg);font:700 15px var(--f-body);cursor:pointer;transition:background .15s,transform .1s}
.rp-rt:hover{background:color-mix(in srgb,var(--rc) 24%,var(--surface))}.rp-rt:active{transform:scale(.97)}
.rp-rt small{font:500 11.5px var(--f-mono);color:var(--muted)}
.rp-rt kbd{margin:2px 0 0}
.rp-rt.r1{--rc:var(--c1)}.rp-rt.r2{--rc:var(--c5)}.rp-rt.r3{--rc:var(--c2)}.rp-rt.r4{--rc:var(--c3)}
.rp-tools{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}
.rp-done{padding:34px 16px;text-align:center}
.rp-done h2{margin:6px 0;font:800 24px var(--f-display)}
.rp-done p{margin:4px 0}
.rp-conf{font-size:54px;animation:rpin .5s ease both}
.rp-done .rp-row{justify-content:center;margin-top:16px}
/* parcourir */
.rp-bq{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:10px}
#rp-bq{flex:1 1 260px}
.rp-bulk{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:10px;padding:8px;border:1px solid var(--line);border-radius:10px;background:var(--raise);position:sticky;top:0;z-index:3}
.rp-tbl{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--surface)}
.rp-tr{display:grid;grid-template-columns:32px minmax(0,1fr) minmax(70px,170px) 118px;gap:8px;align-items:center;padding:6px 10px;border-top:1px solid var(--line)}
.rp-tr:first-child{border-top:0}
.rp-th2{background:var(--raise);font:700 12px var(--f-body);color:var(--muted)}
.rp-q2{border:0;background:none;color:var(--fg);font:500 14px var(--f-body);text-align:left;cursor:pointer;padding:4px 0;overflow:hidden;text-overflow:ellipsis}
.rp-q2 small{color:var(--muted);margin-left:6px}
.rp-pill{padding:1px 7px;border-radius:99px;background:var(--raise);border:1px solid var(--line);font:600 10.5px var(--f-mono);font-style:normal}
.rp-dk{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rp-tr em{font:600 11.5px var(--f-mono);font-style:normal;padding:2px 8px;border-radius:99px;background:var(--raise)}
.rp-tr em.new{color:var(--c3)}.rp-tr em.lrn{color:var(--c1)}.rp-tr em.rev.due{color:var(--c2)}.rp-tr em.sus{color:var(--muted);text-decoration:line-through}
.rp-pager{display:flex;gap:12px;justify-content:center;align-items:center;margin:12px 0}
/* stats */
.rp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px;margin-bottom:12px}
.rp-heat .hm{fill:var(--line)}.rp-heat .hm.l1{fill:color-mix(in srgb,var(--c2) 30%,var(--line))}.rp-heat .hm.l2{fill:color-mix(in srgb,var(--c2) 55%,var(--line))}.rp-heat .hm.l3{fill:color-mix(in srgb,var(--c2) 80%,var(--line))}.rp-heat .hm.l4{fill:var(--c2)}
.rp-heat .st-svg{width:100%;height:auto;max-height:170px}
/* fenêtres */
#rp-modal{position:fixed;inset:0;z-index:80;display:none;align-items:center;justify-content:center;padding:14px;background:rgba(5,10,18,.55);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
#rp-modal.on{display:flex}
.rp-box{width:100%;max-width:520px;max-height:92vh;overflow:auto;padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--surface);color:var(--fg);box-shadow:0 20px 60px rgba(0,0,0,.4);animation:rpin .2s ease both}
#rp-modal.wide .rp-box{max-width:680px}
.rp-bh{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px}
.rp-bh h2{margin:0;font:800 18px var(--f-display)}
.rp-form{display:flex;flex-direction:column;gap:10px}
.rp-form label,.rp-lab{display:flex;flex-direction:column;gap:4px;font:600 12.5px var(--f-body);color:var(--muted)}
.rp-form label.rp-chk{flex-direction:row;font-weight:400;color:var(--fg)}
.rp-form textarea{resize:vertical;font:400 14px var(--f-body)}
.rp-r2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.rp-tb{display:flex;flex-wrap:wrap;gap:5px;align-items:center}
.rp-ctx,.rp-prevh{margin:0;font-size:12.5px;color:var(--muted)}
.rp-prevh{font-weight:700}
.rp-edprev .rp-card{min-height:0}.rp-edprev .rp-face{padding:16px}
.rp-err{min-height:1em;margin:0;color:var(--c1);font-size:13px;font-weight:600}
.rp-modes,.rp-gl{display:flex;flex-direction:column;gap:6px}
.rp-gi{padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--raise);font-size:13px}
.rp-file{cursor:pointer}
#rp-toast{position:fixed;left:50%;bottom:22px;z-index:90;max-width:90vw;padding:10px 16px;border-radius:99px;background:var(--fg);color:var(--bg);font:600 13px var(--f-body);transform:translate(-50%,30px);opacity:0;pointer-events:none;transition:.25s}
#rp-toast.on{opacity:1;transform:translate(-50%,0)}
/* mobile */
@media (max-width:600px){
  .rp-wrap{padding:10px 10px 90px}
  .rp-hero{padding:14px}.rp-hero h1{font-size:23px}
  .rp-deck{flex-wrap:wrap}.rp-act{width:100%;justify-content:flex-end}
  .rp-card{min-height:48vh;border-radius:16px}
  .rp-face{padding:22px 16px}
  .rp-card[data-sz=l]{--fs:23px}.rp-card[data-sz=xl]{--fs:28px}
  .rp-study .rp-bar{position:sticky;bottom:0;z-index:4;padding:8px 0 calc(8px + env(safe-area-inset-bottom));background:linear-gradient(transparent,var(--bg) 25%)}
  .rp-rt{min-height:64px;font-size:14px}.rp-rt kbd{display:none}.rp-show kbd{display:none}
  .rp-tr{grid-template-columns:28px minmax(0,1fr) 92px}.rp-tr .rp-dk{display:none}
  .rp-r2{grid-template-columns:1fr}
  .rp-box{padding:14px}
}
@media (prefers-reduced-motion:reduce){.rp-card *,.rp-box,.rp-conf,#rp-toast{transition:none!important;animation:none!important}}
/* génération depuis une page */
.rp-form .rp-modes label{flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:2px 8px;padding:6px 8px;border:1px solid var(--line);border-radius:10px;font-weight:600;color:var(--fg);cursor:pointer}
.rp-modes small{flex-basis:100%;margin-left:24px;font-weight:400;color:var(--muted)}
.rp-gl{max-height:42vh;overflow:auto}
.rp-gi{display:flex;flex-wrap:wrap;gap:6px;align-items:flex-start}
.rp-gi .rp-chk{margin:0;flex-basis:100%}
.rp-gi textarea{flex:1 1 220px;min-height:64px;padding:8px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--fg);font:400 13.5px var(--f-body);resize:vertical}
