:root{--bg:#090c14;--panel:#121827;--panel2:#171e31;--border:#2c354c;--text:#f5f7ff;--muted:#9ea8be;--purple:#8c62ff;--purple2:#b79aff;--green:#35d58b;--danger:#ff8da1}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 12% 0,#241a50 0,transparent 30rem),linear-gradient(180deg,#090b13,#0e1220 65%,#080a11);color:var(--text);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.song-shell{width:min(1460px,calc(100% - 32px));margin:auto;padding:34px 0 64px}.song-hero{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.55fr);gap:20px;margin-bottom:20px}.song-hero>div:first-child,.plan-card,.auth-gate,.bank-panel,.composition-panel,.history-panel,.access-summary{border:1px solid var(--border);border-radius:24px;background:linear-gradient(180deg,rgba(24,30,49,.97),rgba(13,17,29,.98));box-shadow:0 18px 52px rgba(0,0,0,.22)}.song-hero>div:first-child{padding:32px}.eyebrow{display:block;font-size:.72rem;letter-spacing:.14em;font-weight:900;color:#bbaaff;margin-bottom:9px}.song-hero h1{font-size:clamp(2.1rem,4vw,4.3rem);line-height:1;margin:0 0 13px}.song-hero p,.history-head p{color:var(--muted);line-height:1.6}.plan-card{padding:24px;display:flex;flex-direction:column;justify-content:center;gap:7px}.plan-card span{font-size:.76rem;color:var(--muted);text-transform:uppercase}.plan-card strong{font-size:1.55rem}.plan-card small{color:var(--muted)}.plan-card a,.locked-hint a{color:#c9bcff;text-decoration:none;font-weight:800}.auth-gate{padding:36px;text-align:center}.primary-btn{background:linear-gradient(135deg,#7654f5,#a782ff)!important;color:#fff!important;border-color:transparent!important}.composer-mode-nav{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:22px 0 14px}.mode-link{min-width:0;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:10px;text-align:left;border:1px solid var(--border);background:#111727;color:var(--text);border-radius:18px;padding:15px 17px;cursor:pointer}.mode-link>span{grid-row:1/3;font-size:1.45rem}.mode-link strong{font-size:1rem}.mode-link small{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mode-link b{display:inline-flex;min-width:24px;height:24px;align-items:center;justify-content:center;padding:0 7px;border-radius:999px;background:#31265c;color:#ded5ff;margin-left:5px}.mode-link.active{border-color:#805df3;background:linear-gradient(135deg,#28204d,#191b31);box-shadow:0 0 0 1px rgba(140,98,255,.18)}.access-summary{display:flex;gap:9px;flex-wrap:wrap;padding:11px 14px;margin-bottom:15px}.access-summary span{border:1px solid #343d57;background:#111728;border-radius:999px;padding:7px 11px;color:#dce2f4;font-size:.82rem}.app-view[hidden]{display:none!important}.app-view.active{animation:viewIn .16s ease-out}@keyframes viewIn{from{opacity:.5;transform:translateY(3px)}to{opacity:1;transform:none}}.bank-panel,.composition-panel,.history-panel{padding:24px}.bank-toolbar,.composition-head,.history-head,.reserve-head,.lyrics-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.bank-toolbar h2,.history-head h2,.reserve-head h3,.lyrics-head h3{margin:0}.bank-intro{max-width:720px;color:var(--muted);line-height:1.55}.search-box,.history-search{display:grid;gap:6px;min-width:min(390px,42%);font-size:.75rem;color:var(--muted);font-weight:800}.search-box input,.history-search input,.draft-title{width:100%;background:#0c111e;color:#fff;border:1px solid #39435f;border-radius:14px;padding:13px 15px;outline:none}.search-box input:focus,.history-search input:focus,.draft-title:focus,#lyrics-editor:focus{border-color:var(--purple);box-shadow:0 0 0 3px rgba(140,98,255,.14)}.bank-tabs,.category-rail,.reserve-groups,.reserve-items{display:flex;gap:9px;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin}.bank-tabs{padding:20px 1px 12px}.category-rail{padding:3px 1px 17px;scroll-snap-type:x proximity}.bank-tab,.category-card,.reserve-groups button,.composition-actions button,.quiet-danger,.history-actions button,.reserve-empty button{border:1px solid #343d57;background:#12192a;color:#e5e9f6;border-radius:13px;padding:10px 14px;font-weight:800;cursor:pointer}.bank-tab{white-space:nowrap}.bank-tab.active,.reserve-groups button.active{border-color:#8b69ff;background:#2c2453;color:#fff}.category-card{min-width:145px;text-align:left;display:grid;gap:4px;scroll-snap-align:start}.category-card span{font-size:.74rem;color:var(--muted)}.category-card.active{border-color:#49d9a7;background:#15302d}.bank-heading{display:flex;justify-content:space-between;align-items:end;gap:12px;border-top:1px solid #252d43;padding-top:16px}.bank-heading h3{margin:0 0 4px}.bank-heading p{margin:0;color:var(--muted);font-size:.86rem}.bank-heading>span{font-size:.78rem;color:var(--muted);white-space:nowrap}.bank-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:15px}.bank-items.rhyme-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.idea-chip{position:relative;display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;min-height:52px;border:1px solid #303950;background:linear-gradient(180deg,#171e31,#111726);color:#f5f7ff;border-radius:15px;padding:12px 14px;text-align:left;cursor:pointer;line-height:1.3;transition:.14s ease}.idea-chip:hover{transform:translateY(-1px);border-color:#7865cf}.idea-chip.selected{border-color:#9a76ff;background:linear-gradient(135deg,#30265a,#1d2037);box-shadow:inset 0 0 0 1px rgba(183,154,255,.18)}.idea-chip.selected b{color:#cdbdff;font-size:1.05rem}.locked-hint,.empty-bank{margin-top:15px;border:1px dashed #514a70;background:#151328;border-radius:14px;padding:18px;color:var(--muted)}.composition-head{border-bottom:1px solid #273047;padding-bottom:18px}.draft-title{font-size:1.55rem;font-weight:900;padding:8px 0;border-width:0 0 1px;background:transparent;border-radius:0}.composition-meta{color:var(--muted);margin:7px 0 0}.composition-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.composition-actions button{white-space:nowrap}.creative-reserve,.lyrics-zone{margin-top:18px;border:1px solid #2d3650;background:#0e1422;border-radius:20px;padding:18px}.quiet-danger{color:#ffd0d7}.reserve-groups{padding:15px 0 10px}.reserve-groups button{white-space:nowrap;padding:8px 12px;font-size:.82rem}.reserve-items{padding:4px 0 8px;min-height:58px;align-items:center}.reserve-tag{display:flex;flex:0 0 auto;border:1px solid #6d59bd;background:#211c3c;border-radius:999px;overflow:hidden}.reserve-tag-main{display:block;width:100%;border:0;background:transparent;color:#f5f3ff;cursor:pointer;padding:10px 14px;font-weight:800;text-align:left;touch-action:manipulation}.reserve-tag-main:focus-visible{outline:2px solid #b79aff;outline-offset:-3px}.reserve-tag-main:active{background:rgba(140,98,255,.16)}.reserve-empty,.history-empty{display:grid;place-items:center;text-align:center;gap:7px;padding:28px;color:var(--muted);border:1px dashed #343d57;border-radius:15px}.reserve-empty strong,.history-empty strong{color:#f1f3fb}.reserve-empty button{margin-top:6px}.lyrics-head small{color:var(--muted)}#lyrics-editor{display:block;width:100%;min-height:420px;resize:vertical;margin-top:14px;padding:20px;background:#090e19;color:#f7f8ff;border:1px solid #323c57;border-radius:16px;font:500 1.05rem/1.75 Inter,system-ui,sans-serif;outline:none}.composer-status{min-height:22px;color:var(--muted);font-size:.84rem}.composer-status.success{color:#78e8bd}.composer-status.error{color:var(--danger)}.history-head{align-items:center}.history-search{margin:18px 0;min-width:0;width:min(560px,100%)}.history-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.history-card{border:1px solid #303950;background:linear-gradient(180deg,#171e31,#111725);border-radius:19px;padding:20px}.history-card-top,.history-stats,.history-actions{display:flex;gap:10px;align-items:center;justify-content:space-between}.history-card-top span{color:#cbbcff;font-weight:800}.history-card-top small,.history-card p,.history-stats{color:var(--muted)}.history-card h3{font-size:1.25rem;margin:14px 0 8px}.history-card p{min-height:48px;line-height:1.5}.history-stats{justify-content:flex-start;font-size:.82rem}.history-actions{margin-top:15px;justify-content:flex-start}.history-actions .resume{background:#2d2453;border-color:#785de2}.history-actions .delete{color:#ffb0bd}.mc-seo-section,.mc-seo-crosslinks{margin-top:28px}
@media(max-width:900px){.song-hero{grid-template-columns:1fr}.bank-items.rhyme-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.history-list{grid-template-columns:1fr}}
@media(max-width:620px){.song-shell{width:calc(100% - 16px);padding-top:14px}.song-hero>div:first-child,.plan-card,.bank-panel,.composition-panel,.history-panel{border-radius:18px;padding:17px}.song-hero h1{font-size:2.25rem}.composer-mode-nav{gap:6px;margin-top:14px}.mode-link{display:flex;flex-direction:column;align-items:center;text-align:center;padding:10px 6px;border-radius:14px}.mode-link>span{font-size:1.2rem}.mode-link strong{font-size:.78rem;line-height:1.2}.mode-link small{display:none}.mode-link b{min-width:20px;height:20px;font-size:.7rem;margin-left:2px}.access-summary{overflow-x:auto;flex-wrap:nowrap}.access-summary span{white-space:nowrap}.bank-toolbar,.composition-head,.history-head,.reserve-head,.lyrics-head{flex-direction:column;align-items:stretch}.search-box{min-width:0;width:100%}.bank-items{grid-template-columns:1fr}.bank-items.rhyme-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.idea-chip{min-height:48px;padding:10px 9px;font-size:.9rem;overflow-wrap:anywhere}.category-card{min-width:135px}.composition-actions{justify-content:flex-start}.creative-reserve,.lyrics-zone{padding:13px;border-radius:16px}.reserve-head{gap:9px}.quiet-danger{align-self:flex-start}.lyrics-head small{font-size:.78rem}#lyrics-editor{min-height:390px;padding:15px;font-size:1rem}.history-card{padding:16px}.history-actions{flex-wrap:wrap}}
@media(max-width:360px){.bank-items.rhyme-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mode-link strong{font-size:.72rem}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* YZBTZ — UX V3 : rails tactiles Rimes + Liaisons */
body{overflow-x:hidden}
.category-rail.rhyme-families{gap:10px;padding:5px 1px 14px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}
.rhyme-family-card{position:relative;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:9px;min-width:168px;padding:12px 14px;border-radius:16px;scroll-snap-align:start;background:linear-gradient(145deg,#151c2d,#111626)}
.rhyme-family-card .family-icon{grid-row:1/3;align-self:center;font-size:1.25rem;line-height:1}
.rhyme-family-card strong{align-self:end;font-size:.95rem;line-height:1.15}
.rhyme-family-card .family-phoneme{color:#c6baff;font-size:.82rem;font-weight:800}
.rhyme-family-card small{grid-column:1/3;color:var(--muted);font-size:.72rem;margin-top:3px}
.rhyme-family-card.active{border-color:#8f71ff;background:linear-gradient(135deg,#30255b,#172331);box-shadow:0 0 0 1px rgba(143,113,255,.22),0 10px 28px rgba(71,48,145,.18)}
.rhyme-alphabet-wrap{margin:3px 0 16px;border:1px solid #29334c;background:linear-gradient(180deg,#101624,#0d1320);border-radius:18px;padding:12px}
.rhyme-alphabet-wrap[hidden]{display:none!important}
.rail-label{display:flex;align-items:center;gap:8px;margin:0 2px 10px;color:#eef1fb}.rail-label>span{font-size:1.05rem}.rail-label strong{font-size:.88rem}.rail-label small{margin-left:auto;color:var(--muted);font-size:.72rem}
.rhyme-alphabet{display:flex;gap:7px;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;padding:1px 1px 5px;scrollbar-width:thin}
.letter-chip{flex:0 0 42px;height:42px;border:1px solid #36415d;border-radius:12px;background:#151c2c;color:#eef2ff;font-weight:900;cursor:pointer;scroll-snap-align:start;touch-action:manipulation}
.letter-chip:first-child{flex-basis:auto;min-width:76px;padding:0 13px}
.letter-chip.active{border-color:#72e7d1;background:linear-gradient(135deg,#183a38,#242657);color:#fff;box-shadow:0 0 0 1px rgba(114,231,209,.18)}
.letter-chip:disabled{opacity:.32;cursor:default}
.letter-chip:focus-visible,.rhyme-family-card:focus-visible,.rhyme-card:focus-visible,.liaison-card:focus-visible{outline:2px solid #c2b2ff;outline-offset:2px}
.bank-items.rhyme-rail{display:grid!important;grid-template-columns:none!important;grid-template-rows:repeat(3,74px);grid-auto-flow:column;grid-auto-columns:164px;gap:7px;overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;margin-top:14px;padding:2px 2px 12px;scrollbar-width:thin}
.rhyme-card{flex:0 0 164px;min-width:164px;min-height:74px;scroll-snap-align:start;display:grid;grid-template-columns:1fr auto;align-content:center;gap:8px;padding:14px;border-radius:17px;background:linear-gradient(145deg,#172034,#101625);touch-action:manipulation}
.rhyme-card .rhyme-word{font-size:1rem;font-weight:850;overflow-wrap:anywhere}
.rhyme-card .rhyme-add{color:#9a89d7;font-size:1.15rem;font-weight:900}
.rhyme-card.selected{border-color:#62dcae;background:linear-gradient(145deg,#17342d,#1d2440);box-shadow:0 0 0 1px rgba(98,220,174,.16)}
.bank-items.rhyme-rail .empty-bank{flex:0 0 100%;margin-top:0}
.liaison-panel{margin-top:18px;border:1px solid #33415b;background:linear-gradient(145deg,#10192a,#101421 62%,#17152c);border-radius:20px;padding:18px;overflow:hidden}
.liaison-head h3{margin:0;font-size:1.08rem}.liaison-head p{margin:7px 0 0;color:var(--muted);font-size:.84rem;line-height:1.45}
.liaison-rail{display:flex;gap:9px;overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;padding:14px 1px 5px;scrollbar-width:thin}
.liaison-card{flex:0 0 auto;min-width:128px;max-width:220px;display:flex;align-items:center;gap:8px;border:1px solid #485272;border-radius:15px;background:linear-gradient(145deg,#182033,#13192a);color:#f5f7ff;padding:11px 13px;text-align:left;cursor:pointer;scroll-snap-align:start;touch-action:manipulation;box-shadow:0 8px 20px rgba(0,0,0,.12)}
.liaison-card>span{font-size:1rem;line-height:1}.liaison-card strong{font-size:.86rem;line-height:1.2;white-space:nowrap}
.liaison-card:active{transform:translateY(1px);background:#24264a}
.liaison-empty{margin:12px 0 0;color:var(--muted)}
@media(max-width:620px){
  .rhyme-family-card{min-width:150px;padding:11px 12px}
  .rhyme-alphabet-wrap{margin-inline:-2px;padding:11px 9px;border-radius:15px}
  .rail-label small{display:none}
  .letter-chip{flex-basis:40px;height:40px;border-radius:11px}
  .rhyme-card{flex-basis:132px;min-width:132px;min-height:76px;padding:12px}
  .liaison-panel{padding:14px 12px;border-radius:17px}
  .liaison-card{min-width:122px;padding:10px 12px}
}

/* 96UBK */


/* Rimes V4 — filtres combinés : terminaison, initiale, ambiance, recherche */
.search-input-wrap{position:relative;display:block}
.search-input-wrap input{padding-right:44px}
.search-clear{position:absolute;right:7px;top:50%;transform:translateY(-50%);width:32px;height:32px;border:0;border-radius:10px;background:#222b40;color:#dfe5f7;font-size:1.25rem;line-height:1;cursor:pointer}
.search-clear:hover{background:#303b55}
.rhyme-section-label{display:flex;align-items:center;gap:8px;margin:4px 2px 8px;color:#eef1fb}
.rhyme-section-label>span{font-size:1.05rem}.rhyme-section-label strong{font-size:.9rem}.rhyme-section-label small{margin-left:auto;color:var(--muted);font-size:.72rem}
.rhyme-filter-section{margin:3px 0 12px;border:1px solid #29334c;background:linear-gradient(180deg,#101624,#0d1320);border-radius:18px;padding:0;overflow:hidden}
.rhyme-filter-section[hidden]{display:none!important}
.rhyme-filter-section summary{display:flex;align-items:center;gap:10px;padding:11px 12px;cursor:pointer;list-style:none;font-weight:850;color:#eef1fb;user-select:none}
.rhyme-filter-section summary::-webkit-details-marker{display:none}
.rhyme-filter-section summary::after{content:'⌄';margin-left:auto;color:#9fa9c2;transition:transform .15s ease}
.rhyme-filter-section[open] summary::after{transform:rotate(180deg)}
.rhyme-filter-section summary small{margin-left:auto;color:var(--muted);font-size:.72rem;font-weight:700}
.rhyme-filter-section .rhyme-alphabet,.rhyme-filter-section .rhyme-mood-rail{padding:0 10px 11px}
.rhyme-alphabet-wrap{padding:0}
.rhyme-mood-rail{display:flex;gap:7px;overflow-x:auto;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.mood-chip{flex:0 0 auto;min-height:40px;border:1px solid #36415d;border-radius:999px;background:#151c2c;color:#eef2ff;font-weight:850;padding:8px 13px;cursor:pointer;touch-action:manipulation}
.mood-chip.active{border-color:#e2a8ff;background:linear-gradient(135deg,#442452,#252657);color:#fff;box-shadow:0 0 0 1px rgba(226,168,255,.16)}
.mood-chip:disabled{opacity:.32;cursor:default}
.all-rhymes-card{border-style:dashed}
.all-rhymes-card .family-icon{font-size:1.45rem}
.rhyme-active-filters{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:4px 0 14px;padding:10px 12px;border:1px solid #34334f;background:#151426;border-radius:15px}
.rhyme-active-filters>div{min-width:0}.rhyme-active-filters strong{display:block;font-size:.74rem;color:#b7bfd2;margin-bottom:7px;text-transform:uppercase;letter-spacing:.06em}
.rhyme-filter-chips{display:flex;gap:6px;flex-wrap:wrap}
.active-filter-chip{display:inline-flex;align-items:center;gap:7px;border:1px solid #66569e;background:#282042;color:#f4efff;border-radius:999px;padding:6px 10px;font-size:.78rem;font-weight:800;cursor:pointer}
.active-filter-chip b{font-size:1rem;color:#d9cfff}
#rhyme-reset-filters{flex:0 0 auto;border:1px solid #4b5269;background:#151b2b;color:#dfe5f5;border-radius:11px;padding:8px 11px;font-weight:800;cursor:pointer}
.rhyme-card{align-items:center}
.rhyme-card-copy{display:grid;gap:4px;min-width:0}
.rhyme-card .rhyme-word{font-size:.96rem;font-weight:900;line-height:1.15;overflow-wrap:anywhere}
.rhyme-meta{display:block;color:#9da8c0;font-size:.66rem;line-height:1.2;white-space:normal;font-weight:700}
.rhyme-card .rhyme-add{align-self:center}
@media(max-width:620px){
  .rhyme-section-label small{display:none}
  .rhyme-filter-section{border-radius:15px}
  .rhyme-filter-section summary{padding:10px}
  .rhyme-active-filters{align-items:stretch;flex-direction:column}
  #rhyme-reset-filters{align-self:flex-start}
  .bank-items.rhyme-rail{grid-auto-columns:148px;grid-template-rows:repeat(3,78px)}
  .rhyme-card{min-width:148px;min-height:78px;padding:10px 11px}
  .rhyme-meta{font-size:.63rem}
}

.bank-items.rhyme-vertical .rhyme-card{width:100%;min-width:0;max-width:none}


/* Compositeur UX V5 — Réserve intelligente + Liaisons rapides adaptatives */
.reserve-empty[hidden],
.liaison-empty[hidden],
.liaison-rail[hidden]{display:none!important}

.liaison-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,330px);align-items:start;gap:16px}
.liaison-head>div:first-child{min-width:0}
.liaison-controls{display:grid;grid-template-columns:1fr;gap:7px;width:100%}
.liaison-control-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;padding:3px;border:1px solid #323d57;background:#0b111e;border-radius:12px}
.liaison-control-group button{width:100%;min-height:38px;border:0;border-radius:9px;background:transparent;color:#aeb8ce;padding:7px 10px;font-size:.74rem;font-weight:850;white-space:nowrap;cursor:pointer;touch-action:manipulation}
.liaison-control-group button.active{background:#2c2453;color:#fff;box-shadow:0 0 0 1px #8064e8}
.liaison-control-group button:focus-visible,.liaison-categories button:focus-visible{outline:2px solid #c2b2ff;outline-offset:2px}

.liaison-categories{display:flex;gap:7px;overflow-x:auto;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;padding:14px 1px 6px}
.liaison-categories button{flex:0 0 auto;min-height:38px;border:1px solid #35415e;border-radius:999px;background:#11192a;color:#b8c2d8;padding:7px 11px;font-size:.73rem;font-weight:800;white-space:nowrap;cursor:pointer;touch-action:manipulation}
.liaison-categories button.active{border-color:#7f63e7;background:#302457;color:#fff;box-shadow:0 0 0 1px rgba(151,123,255,.22)}

.liaison-rail{margin-top:8px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
.liaison-rail.liaison-horizontal{
  display:grid;
  grid-template-columns:none;
  grid-template-rows:repeat(3,56px);
  grid-auto-flow:column;
  grid-auto-columns:154px;
  gap:7px;
  overflow-x:auto;
  overflow-y:hidden;
  overscroll-behavior-inline:contain;
  scroll-snap-type:x proximity;
  padding:2px 2px 9px;
}
.liaison-card{justify-content:flex-start;text-align:left}
.liaison-card-icon{flex:0 0 auto;font-size:1rem;line-height:1}
.liaison-card-copy{display:grid;gap:2px;min-width:0;text-align:left}
.liaison-card-copy strong{min-width:0;line-height:1.13;white-space:normal;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.liaison-card-copy small{min-width:0;color:#98a6c3;font-size:.63rem;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.liaison-horizontal .liaison-card{width:100%;min-width:0;max-width:none;min-height:56px;padding:8px 10px;gap:8px;border-radius:12px;scroll-snap-align:start;overflow:hidden}
.liaison-horizontal .liaison-card-copy strong{font-size:.77rem}

.liaison-rail.liaison-vertical{
  display:grid;
  grid-template-columns:1fr;
  gap:7px;
  max-height:340px;
  overflow-y:auto;
  overflow-x:hidden;
  padding:2px 4px 4px 2px;
  overscroll-behavior-block:contain;
}
.liaison-vertical .liaison-card{width:100%;min-width:0;max-width:none;min-height:54px;padding:9px 11px;gap:9px;border-radius:12px}
.liaison-vertical .liaison-card-copy strong{font-size:.86rem;line-height:1.2}
.liaison-vertical .liaison-card-copy small{font-size:.67rem}

.liaison-rail.liaison-large.liaison-horizontal{grid-template-rows:repeat(3,68px);grid-auto-columns:178px}
.liaison-large.liaison-horizontal .liaison-card{min-height:68px;padding:10px 12px}
.liaison-large .liaison-card-icon{font-size:1.1rem}
.liaison-large.liaison-horizontal .liaison-card-copy strong{font-size:.95rem;line-height:1.18}
.liaison-large .liaison-card-copy small{font-size:.7rem}
.liaison-rail.liaison-large.liaison-vertical{max-height:390px}
.liaison-large.liaison-vertical .liaison-card{min-height:64px;padding:12px 14px}
.liaison-large.liaison-vertical .liaison-card-copy strong{font-size:1rem;line-height:1.25}

@media(max-width:620px){
  .liaison-head{grid-template-columns:1fr;gap:12px}
  .liaison-controls{display:grid;grid-template-columns:1fr;gap:7px;width:100%;overflow:visible;padding:0}
  .liaison-control-group{width:100%;grid-template-columns:repeat(2,minmax(0,1fr))}
  .liaison-control-group button{min-height:42px;padding:7px 8px;font-size:.72rem}
  .liaison-categories{padding-top:12px;margin-right:-2px}
  .liaison-categories button{min-height:40px;padding:8px 11px;font-size:.72rem}
  .liaison-rail.liaison-horizontal{grid-template-rows:repeat(3,58px);grid-auto-columns:150px;gap:6px}
  .liaison-horizontal .liaison-card{min-height:58px;padding:8px 9px}
  .liaison-horizontal .liaison-card-copy strong{font-size:.76rem}
  .liaison-card-copy small{font-size:.62rem}
  .liaison-rail.liaison-large.liaison-horizontal{grid-template-rows:repeat(3,70px);grid-auto-columns:176px}
  .liaison-large.liaison-horizontal .liaison-card{min-height:70px}
  .liaison-large.liaison-horizontal .liaison-card-copy strong{font-size:.93rem}
  .liaison-rail.liaison-vertical{max-height:320px}
  .liaison-rail.liaison-large.liaison-vertical{max-height:390px}
}


/* Compositeur UX V6 — multi-sélection terminaisons + ambiances */
.rhyme-section-label[hidden]{display:none!important}
.category-rail.rhyme-families{
  display:grid!important;
  grid-template-rows:repeat(2,66px);
  grid-auto-flow:column;
  grid-auto-columns:142px;
  gap:7px;
  overflow-x:auto;
  overflow-y:hidden;
  padding:4px 1px 11px;
  scroll-snap-type:x proximity;
  -webkit-overflow-scrolling:touch;
}
.rhyme-family-card{
  position:relative;
  width:100%!important;
  min-width:0!important;
  min-height:66px;
  height:66px;
  display:grid!important;
  grid-template-columns:22px minmax(0,1fr);
  grid-template-rows:minmax(0,1fr) auto;
  column-gap:7px;
  row-gap:1px;
  padding:8px 9px!important;
  border-radius:13px!important;
  scroll-snap-align:start;
  overflow:hidden;
}
.rhyme-family-card .family-icon{
  grid-column:1;
  grid-row:1/3;
  align-self:center;
  font-size:.95rem!important;
  line-height:1;
}
.rhyme-family-card .family-main{
  grid-column:2;
  grid-row:1;
  min-width:0;
  display:flex;
  align-items:baseline;
  gap:5px;
}
.rhyme-family-card .family-main strong{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:.82rem!important;
  line-height:1.05;
}
.rhyme-family-card .family-phoneme{
  flex:0 0 auto;
  font-size:.68rem!important;
  color:#c6baff;
  font-weight:850;
}
.rhyme-family-card small{
  grid-column:2!important;
  grid-row:2;
  margin:0!important;
  font-size:.64rem!important;
  color:var(--muted);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.rhyme-family-card.active::after{
  content:'✓';
  position:absolute;
  right:5px;
  bottom:4px;
  width:17px;
  height:17px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:#7e63e9;
  color:#fff;
  font-size:.62rem;
  font-weight:950;
  box-shadow:0 2px 8px rgba(0,0,0,.25);
}
.rhyme-family-card.active{
  border-color:#9a7bff!important;
  background:linear-gradient(135deg,#30255b,#172331)!important;
}
.all-rhymes-card{border-style:dashed!important}
.all-rhymes-card .family-main strong{font-size:.78rem!important}
.all-rhymes-card.active::after{background:#55d6b0}

.rhyme-mood-rail{
  display:grid!important;
  grid-template-rows:repeat(2,40px);
  grid-auto-flow:column;
  grid-auto-columns:132px;
  gap:7px;
  overflow-x:auto;
  overflow-y:hidden;
  overscroll-behavior-inline:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
}
.mood-chip{
  width:100%;
  min-width:0!important;
  min-height:40px;
  padding:7px 9px!important;
  border-radius:12px!important;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  font-size:.76rem;
}
.mood-chip.active{
  position:relative;
  padding-right:24px!important;
}
.mood-chip.active::after{
  content:'✓';
  position:absolute;
  right:8px;
  top:50%;
  transform:translateY(-50%);
  font-size:.68rem;
  font-weight:950;
}
.rhyme-active-filters[hidden]{display:none!important}

@media(max-width:620px){
  .category-rail.rhyme-families{
    grid-template-rows:repeat(2,62px);
    grid-auto-columns:126px;
    gap:6px;
    margin-inline:-2px;
  }
  .rhyme-family-card{
    min-height:62px;
    height:62px;
    grid-template-columns:19px minmax(0,1fr);
    column-gap:5px;
    padding:7px 8px!important;
  }
  .rhyme-family-card .family-icon{font-size:.84rem!important}
  .rhyme-family-card .family-main{display:grid;gap:0}
  .rhyme-family-card .family-main strong{font-size:.76rem!important}
  .rhyme-family-card .family-phoneme{font-size:.62rem!important}
  .rhyme-family-card small{font-size:.59rem!important;padding-right:16px}
  .rhyme-mood-rail{grid-auto-columns:122px;grid-template-rows:repeat(2,38px);gap:6px}
  .mood-chip{min-height:38px;font-size:.72rem;padding:6px 8px!important}
}


/* VCFGX — mode vertical compact des rimes */
.bank-items.rhyme-vertical{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  grid-auto-flow:row;
  gap:6px!important;
  max-height:min(44vh,320px);
  overflow-y:auto!important;
  overflow-x:hidden!important;
  overscroll-behavior-block:contain;
  padding:3px 4px 8px 2px!important;
  margin-top:12px;
  align-content:start;
  scrollbar-width:thin;
  -webkit-overflow-scrolling:touch;
}
.bank-items.rhyme-vertical .rhyme-card.rhyme-vertical-item{
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
  min-height:42px!important;
  height:auto!important;
  display:flex!important;
  align-items:center;
  justify-content:center;
  position:relative;
  padding:7px 6px!important;
  border-radius:11px!important;
  text-align:center!important;
  overflow:hidden;
  content-visibility:auto;
  contain-intrinsic-size:42px;
}
.bank-items.rhyme-vertical .rhyme-card.rhyme-vertical-item .rhyme-word{
  width:100%;
  min-width:0;
  display:block;
  font-size:.76rem!important;
  font-weight:850;
  line-height:1.15;
  white-space:normal;
  overflow-wrap:anywhere;
  text-align:center;
}
.bank-items.rhyme-vertical .rhyme-card.rhyme-span-1{grid-column:span 1}
.bank-items.rhyme-vertical .rhyme-card.rhyme-span-2{grid-column:span 2}
.bank-items.rhyme-vertical .rhyme-card.rhyme-span-3{grid-column:1/-1}
.rhyme-vertical-check{
  position:absolute;
  top:3px;
  right:4px;
  width:15px;
  height:15px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:#5ad6ac;
  color:#07140f!important;
  font-size:.58rem!important;
  line-height:1;
}
.bank-items.rhyme-vertical .empty-bank{grid-column:1/-1;margin-top:0}
@media(max-width:360px){
  .bank-items.rhyme-vertical{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:5px!important;
    max-height:min(43vh,285px);
  }
  .bank-items.rhyme-vertical .rhyme-card.rhyme-vertical-item{
    min-height:40px!important;
    padding:6px 4px!important;
  }
  .bank-items.rhyme-vertical .rhyme-card.rhyme-vertical-item .rhyme-word{
    font-size:.7rem!important;
  }
}


/* Compositeur V8 — copie rapide des paroles et des rimes */
.rhyme-copy-actions{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px;
  margin-top:12px;
}
.rhyme-copy-actions[hidden]{display:grid!important}
.rhyme-copy-actions button,
#copy-song-inline{
  min-height:42px;
  border:1px solid #4b5572;
  border-radius:12px;
  background:linear-gradient(145deg,#171f32,#121827);
  color:#eef2ff;
  padding:9px 12px;
  font-weight:850;
  cursor:pointer;
  touch-action:manipulation;
}
.rhyme-copy-actions button{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  text-align:center;
}
.rhyme-copy-actions button span{
  color:#b9c2d8;
  font-size:.78rem;
}
.rhyme-copy-actions button:hover,
#copy-song-inline:hover{border-color:#8269e5;background:#211c3d}
.rhyme-copy-actions button:disabled{
  opacity:.42;
  cursor:default;
}
.rhyme-copy-actions button.copy-success,
#copy-song-inline.copy-success,
#copy-song.copy-success{
  border-color:#4fd7a5!important;
  background:#17362e!important;
  color:#dffff3!important;
}
.lyrics-head-actions{
  display:grid;
  justify-items:end;
  gap:9px;
  max-width:min(360px,48%);
}
.lyrics-head-actions small{
  text-align:right;
  line-height:1.35;
}
#copy-song-inline{
  min-width:170px;
}

@media(max-width:620px){
  .rhyme-copy-actions{grid-template-columns:1fr;gap:7px}
  .rhyme-copy-actions button{justify-content:flex-start;text-align:left;padding:10px 12px}
  .lyrics-head-actions{max-width:none;justify-items:stretch}
  .lyrics-head-actions small{text-align:left}
  #copy-song-inline{width:100%;min-width:0;text-align:center}
}


/* Compositeur — commandes d'affichage propres, cohérentes avec le thème */
.rhyme-layout-controls{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:6px;
  padding:4px;
  border:1px solid #33405a;
  border-radius:13px;
  background:#0d1422;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.015);
}
.rhyme-layout-controls[hidden]{display:none!important}
.rhyme-layout-controls button{
  appearance:none;
  -webkit-appearance:none;
  width:100%;
  min-height:38px;
  border:1px solid transparent;
  border-radius:10px;
  background:transparent;
  color:#aeb8ce;
  padding:7px 10px;
  font:850 .76rem/1 Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  white-space:nowrap;
  cursor:pointer;
  touch-action:manipulation;
}
.rhyme-layout-controls button.active{
  border-color:#795fe0;
  background:linear-gradient(135deg,#32265c,#242044);
  color:#fff;
  box-shadow:0 0 0 1px rgba(140,98,255,.18);
}
.rhyme-layout-controls button:focus-visible{
  outline:2px solid #c2b2ff;
  outline-offset:2px;
}
.bank-heading-actions{
  display:grid!important;
  gap:8px!important;
  justify-items:stretch!important;
  min-width:230px!important;
}
#bank-count{
  justify-self:end;
  color:#eef2ff;
  font-weight:850;
  font-size:.95rem;
}
.composer-refresh-row{
  display:flex;
  justify-content:flex-end;
  margin:-2px 0 10px;
}
#composer-refresh{
  appearance:none;
  -webkit-appearance:none;
  min-height:38px;
  border:1px solid #3a4663;
  border-radius:11px;
  background:#11192a;
  color:#dce3f5;
  padding:8px 12px;
  font-weight:850;
  cursor:pointer;
}
#composer-refresh:active{transform:translateY(1px)}

@media(max-width:620px){
  .bank-heading{
    align-items:stretch;
    flex-direction:column;
  }
  .bank-heading-actions{
    min-width:0!important;
    width:100%;
  }
  #bank-count{
    justify-self:start;
  }
  .rhyme-layout-controls{
    width:100%;
  }
  .rhyme-layout-controls button{
    min-height:42px;
    font-size:.78rem;
  }
  #rhyme-copy-fixed{
    grid-template-columns:1fr!important;
  }
  .composer-refresh-row{
    justify-content:stretch;
  }
  #composer-refresh{
    width:100%;
  }
}


/* A4TJD 2026-09-25 — iOS : empêcher le zoom automatique au focus des champs de recherche.
   Safari iPhone zoome les inputs dont la taille de texte est inférieure à 16px. */
#bank-search,
#history-search{
  font-size:16px!important;
  line-height:1.25;
}
@supports (-webkit-touch-callout:none){
  #bank-search,
  #history-search{
    font-size:16px!important;
  }
}


/* A4TJD — rendu progressif des très grandes banques de rimes */
.rhyme-load-more{
  display:grid;
  place-items:center;
  align-content:center;
  gap:4px;
  min-width:148px;
  min-height:74px;
  border:1px dashed #7865cf;
  border-radius:15px;
  background:linear-gradient(145deg,#1a1930,#111726);
  color:#f5f7ff;
  padding:10px 12px;
  cursor:pointer;
  scroll-snap-align:start;
  touch-action:manipulation;
}
.rhyme-load-more strong{
  font-size:.82rem;
  font-weight:900;
}
.rhyme-load-more small{
  color:var(--muted);
  font-size:.66rem;
  text-align:center;
}
.rhyme-load-more:active{
  transform:translateY(1px);
}
.bank-items.rhyme-vertical .rhyme-load-more{
  grid-column:1/-1;
  min-height:48px;
  width:100%;
}


/* A4TJD — onglet lexical « Autour d’un mot » */
.explore-tool-tabs{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin:0 0 14px;
  padding:5px;
  border:1px solid #313b56;
  border-radius:16px;
  background:#0d1422;
}
.explore-tool-tabs button{
  min-height:54px;
  display:grid;
  grid-template-columns:auto 1fr;
  grid-template-rows:auto auto;
  align-items:center;
  column-gap:8px;
  border:1px solid transparent;
  border-radius:12px;
  background:transparent;
  color:#aeb8ce;
  padding:8px 12px;
  text-align:left;
  cursor:pointer;
  touch-action:manipulation;
}
.explore-tool-tabs button strong{
  color:inherit;
  font-size:.9rem;
  line-height:1.05;
}
.explore-tool-tabs button small{
  grid-column:2;
  color:#8592ac;
  font-size:.66rem;
  line-height:1.15;
}
.explore-tool-tabs button.active{
  border-color:#7d66df;
  background:linear-gradient(135deg,#31275a,#18263a);
  color:#fff;
  box-shadow:0 0 0 1px rgba(135,109,235,.14);
}
.explore-tool-tabs button.active small{color:#c7cfea}

.lexical-tool-panel[hidden],
#rhyme-tool-panel[hidden]{display:none!important}

.lexical-tool-panel{display:grid;gap:14px}
.lexical-toolbar{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(280px,360px);
  gap:18px;
  align-items:start;
}
.lexical-toolbar h2{margin:.25rem 0 .4rem}
.lexical-toolbar p{
  margin:0;
  color:var(--muted);
  line-height:1.45;
  max-width:720px;
}
.lexical-search-box{position:relative;display:grid;gap:6px}
.lexical-search-box label{
  color:#cbd3e8;
  font-size:.74rem;
  font-weight:850;
}
.lexical-search-wrap{position:relative}
#lexical-search{
  width:100%;
  min-height:46px;
  border:1px solid #3b4662;
  border-radius:12px;
  background:#0b111d;
  color:#f4f7ff;
  padding:10px 44px 10px 12px;
  font-size:16px!important;
  outline:none;
}
#lexical-search:focus{
  border-color:#8a6cf0;
  box-shadow:0 0 0 3px rgba(138,108,240,.14);
}
#lexical-search-clear{
  position:absolute;
  right:7px;
  top:50%;
  transform:translateY(-50%);
  width:32px;
  height:32px;
  border:0;
  border-radius:9px;
  background:#232c40;
  color:#fff;
  font-size:1.2rem;
  cursor:pointer;
}
.lexical-suggestions{
  position:absolute;
  z-index:120;
  top:calc(100% + 5px);
  left:0;
  right:0;
  display:grid;
  max-height:320px;
  overflow:auto;
  padding:6px;
  border:1px solid #3a4561;
  border-radius:13px;
  background:#0c1320;
  box-shadow:0 18px 38px rgba(0,0,0,.42);
}
.lexical-suggestions[hidden]{display:none!important}
.lexical-suggestion{
  display:grid;
  gap:2px;
  width:100%;
  border:0;
  border-radius:9px;
  background:transparent;
  color:#eef3ff;
  padding:9px 10px;
  text-align:left;
  cursor:pointer;
}
.lexical-suggestion:hover,
.lexical-suggestion:focus-visible{background:#1d2740}
.lexical-suggestion strong{font-size:.84rem}
.lexical-suggestion small{color:#929fba;font-size:.66rem}
.lexical-suggestion-empty{
  display:grid;
  gap:4px;
  padding:12px;
  color:#dfe6f7;
}
.lexical-suggestion-empty span{color:#98a4bd;font-size:.72rem;line-height:1.35}

.lexical-shortcuts{
  display:grid;
  gap:9px;
  padding:11px 12px;
  border:1px solid #28334b;
  border-radius:14px;
  background:#0f1624;
}
.lexical-shortcuts>div:first-child{
  display:flex;
  align-items:baseline;
  gap:8px;
  flex-wrap:wrap;
}
.lexical-shortcuts>div:first-child strong{font-size:.79rem}
.lexical-shortcuts>div:first-child small{color:#8e9ab2;font-size:.68rem}
.lexical-recent-words{
  display:flex;
  gap:7px;
  overflow-x:auto;
  padding-bottom:2px;
  -webkit-overflow-scrolling:touch;
}
.lexical-recent-words button{
  flex:0 0 auto;
  min-height:34px;
  border:1px solid #3a4662;
  border-radius:999px;
  background:#151d2e;
  color:#e7ecf8;
  padding:6px 10px;
  font-size:.72rem;
  font-weight:800;
  cursor:pointer;
}
.lexical-shortcuts-empty{color:#7f8ca7;font-size:.72rem}

.lexical-selected-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:13px 14px;
  border:1px solid #4b4280;
  border-radius:16px;
  background:linear-gradient(135deg,#211d3f,#111c2b);
}
.lexical-selected-main{display:grid;gap:2px;min-width:0}
.lexical-selected-main>span{
  color:#9da7be;
  font-size:.65rem;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.lexical-selected-main strong{
  font-size:1.25rem;
  color:#fff;
  overflow-wrap:anywhere;
}
.lexical-selected-main small{
  color:#aab4c9;
  font-size:.7rem;
  line-height:1.25;
}
.lexical-selected-actions{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
  min-width:260px;
}
.lexical-selected-actions button,
.lexical-result-actions button{
  min-height:38px;
  border:1px solid #43506c;
  border-radius:10px;
  background:#151e30;
  color:#e9eefb;
  padding:7px 10px;
  font-weight:820;
  font-size:.72rem;
  cursor:pointer;
  touch-action:manipulation;
}
.lexical-selected-actions button.selected,
.lexical-result-actions button.selected{
  border-color:#4bd1a5;
  background:#17362e;
  color:#dffff3;
}

.lexical-relation-tabs{
  display:flex;
  gap:7px;
  overflow-x:auto;
  padding:1px 1px 4px;
  -webkit-overflow-scrolling:touch;
}
.lexical-relation-tabs button{
  flex:0 0 auto;
  min-height:39px;
  border:1px solid #35415d;
  border-radius:999px;
  background:#121a2a;
  color:#b7c1d7;
  padding:7px 11px;
  font-size:.73rem;
  font-weight:850;
  cursor:pointer;
  touch-action:manipulation;
}
.lexical-relation-tabs button span{
  display:inline-grid;
  place-items:center;
  min-width:20px;
  height:20px;
  margin-left:4px;
  padding:0 5px;
  border-radius:999px;
  background:#202a40;
  color:#dbe3f4;
  font-size:.64rem;
}
.lexical-relation-tabs button.active{
  border-color:#8b6ff1;
  background:#302557;
  color:#fff;
}

.lexical-status-card,
.lexical-progress{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 12px;
  border:1px solid #2f3b55;
  border-radius:12px;
  background:#101827;
}
.lexical-status-card strong,
.lexical-progress strong{font-size:.76rem}
.lexical-status-card span,
.lexical-progress span{
  color:#8f9bb4;
  font-size:.68rem;
  line-height:1.3;
}
.lexical-progress{border-style:dashed}

.lexical-results{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}
.lexical-result-card{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  min-width:0;
  padding:10px 11px;
  border:1px solid #2e3953;
  border-radius:13px;
  background:linear-gradient(145deg,#141c2d,#0f1624);
}
.lexical-result-copy{
  display:grid;
  gap:3px;
  min-width:0;
}
.lexical-result-copy strong{
  color:#f2f5ff;
  font-size:.88rem;
  overflow-wrap:anywhere;
}
.lexical-result-copy small{
  color:#8f9bb4;
  font-size:.64rem;
  line-height:1.2;
}
.lexical-result-actions{
  display:grid;
  grid-template-columns:repeat(3,auto);
  gap:5px;
}
.lexical-result-actions button{
  min-height:34px;
  padding:6px 8px;
  font-size:.65rem;
  white-space:nowrap;
}
.lexical-results-empty{
  grid-column:1/-1;
  display:grid;
  gap:4px;
  padding:18px 14px;
  border:1px dashed #35415c;
  border-radius:13px;
  background:#101725;
  color:#dfe6f5;
}
.lexical-results-empty span{
  color:#8e9ab3;
  font-size:.72rem;
  line-height:1.4;
}

@media(max-width:760px){
  .lexical-toolbar{grid-template-columns:1fr}
  .lexical-selected-card{align-items:stretch;flex-direction:column}
  .lexical-selected-actions{min-width:0;width:100%}
  .lexical-results{grid-template-columns:1fr}
  .lexical-result-card{grid-template-columns:1fr}
  .lexical-result-actions{grid-template-columns:repeat(3,minmax(0,1fr))}
  .lexical-result-actions button{white-space:normal}
  .lexical-status-card,.lexical-progress{align-items:flex-start;flex-direction:column}
}
@media(max-width:430px){
  .explore-tool-tabs{gap:6px;padding:4px}
  .explore-tool-tabs button{min-height:52px;padding:7px 8px;column-gap:6px}
  .explore-tool-tabs button strong{font-size:.8rem}
  .explore-tool-tabs button small{font-size:.59rem}
  .lexical-selected-actions{grid-template-columns:1fr}
  .lexical-result-actions{grid-template-columns:1fr}
  .lexical-result-actions button{min-height:38px}
}

@supports (-webkit-touch-callout:none){
  #lexical-search{font-size:16px!important}
}


/* A4TJD — Explorer V2 : Rimes / Lexique / Métaphores / Expressions */
@media(min-width:761px){
  .explore-tool-tabs{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
}
@media(max-width:760px){
  .explore-tool-tabs{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

.category-rail.creative-themes{
  display:grid!important;
  grid-template-rows:repeat(2,62px);
  grid-auto-flow:column;
  grid-auto-columns:142px;
  gap:7px;
  overflow-x:auto;
  overflow-y:hidden;
  padding:4px 1px 11px;
  scroll-snap-type:x proximity;
  -webkit-overflow-scrolling:touch;
}
.creative-theme-card{
  width:100%!important;
  min-width:0!important;
  min-height:62px!important;
  height:62px;
  display:grid!important;
  align-content:center;
  gap:3px;
  padding:8px 10px!important;
  border-radius:13px!important;
  text-align:left!important;
  scroll-snap-align:start;
  overflow:hidden;
}
.creative-theme-card strong{
  font-size:.8rem;
  line-height:1.05;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.creative-theme-card span{
  color:var(--muted);
  font-size:.63rem;
  line-height:1.1;
}
.creative-theme-card.active{
  border-color:#8f72ef!important;
  background:linear-gradient(135deg,#30265a,#172638)!important;
  color:#fff;
}
.all-creative-card{
  border-style:dashed!important;
}

.creative-mood-rail{
  display:grid;
  grid-template-rows:repeat(2,40px);
  grid-auto-flow:column;
  grid-auto-columns:132px;
  gap:7px;
  overflow-x:auto;
  overflow-y:hidden;
  padding:0 10px 11px;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
}
.creative-mood-rail .mood-chip{
  width:100%;
  min-width:0!important;
}
.creative-mood-wrap[hidden]{display:none!important}

.bank-items .creative-idea-card{
  min-width:min(360px,84vw);
  max-width:420px;
  min-height:86px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:12px 13px;
  border-radius:14px;
  text-align:left;
}
.creative-idea-card .creative-idea-copy{
  display:grid;
  gap:6px;
  min-width:0;
}
.creative-idea-card .creative-idea-text{
  color:#f3f6ff;
  font-size:.86rem;
  font-weight:850;
  line-height:1.35;
  white-space:normal;
  overflow-wrap:anywhere;
}
.creative-idea-card .creative-idea-meta{
  color:#98a5bf;
  font-size:.64rem;
  line-height:1.2;
  white-space:normal;
}
.creative-idea-card .creative-idea-add{
  flex:0 0 auto;
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:#242e45;
  color:#cfd8ee;
  font-weight:900;
}
.creative-metaphor-card{
  border-color:#493d70!important;
  background:linear-gradient(145deg,#1b1730,#101827)!important;
}
.creative-expression-card{
  border-color:#31546a!important;
  background:linear-gradient(145deg,#132333,#101827)!important;
}

@media(max-width:620px){
  .category-rail.creative-themes{
    grid-template-rows:repeat(2,58px);
    grid-auto-columns:124px;
    gap:6px;
    margin-inline:-2px;
  }
  .creative-theme-card{
    min-height:58px!important;
    height:58px;
    padding:7px 8px!important;
  }
  .creative-theme-card strong{font-size:.74rem}
  .creative-theme-card span{font-size:.58rem}
  .creative-mood-rail{
    grid-template-rows:repeat(2,38px);
    grid-auto-columns:120px;
    gap:6px;
    padding-inline:9px;
  }
  .bank-items .creative-idea-card{
    min-width:82vw;
    max-width:88vw;
    min-height:82px;
    padding:11px 12px;
  }
  .creative-idea-card .creative-idea-text{font-size:.82rem}
}


/* A4TJD — clarification total banque vs accès formule */
.rhyme-family-card small{
  white-space:normal!important;
  line-height:1.12!important;
}
.rhyme-family-card small strong{
  color:#f5f7ff;
  font-weight:950;
}
.access-summary .access-count-card{
  display:grid;
  gap:2px;
  align-content:center;
  min-width:138px;
}
.access-summary .access-count-card strong{
  font-size:.9rem;
  line-height:1;
}
.access-summary .access-count-card small{
  display:block;
  color:var(--muted);
  font-size:.62rem;
  line-height:1.15;
  font-weight:750;
}
@media(max-width:620px){
  .rhyme-family-card{
    min-height:76px!important;
    height:76px!important;
  }
  .access-summary .access-count-card{
    min-width:126px;
  }
}


/* A4TJD — lisibilité premium des cartes de terminaisons — 2026-09-25 */
.category-rail.rhyme-families{
  grid-template-rows:repeat(2,94px)!important;
  grid-auto-columns:172px!important;
  gap:9px!important;
  padding:5px 2px 13px!important;
}

.rhyme-family-card{
  min-height:94px!important;
  height:94px!important;
  grid-template-columns:28px minmax(0,1fr)!important;
  grid-template-rows:auto minmax(0,1fr)!important;
  column-gap:8px!important;
  row-gap:6px!important;
  padding:11px 12px!important;
  border:1px solid rgba(92,112,166,.56)!important;
  border-radius:16px!important;
  background:
    linear-gradient(155deg,rgba(27,38,67,.98),rgba(13,21,40,.98))!important;
  box-shadow:
    0 9px 22px rgba(0,0,0,.22),
    inset 0 1px 0 rgba(255,255,255,.045)!important;
  color:#f5f7ff!important;
}

.rhyme-family-card .family-icon{
  grid-column:1!important;
  grid-row:1/3!important;
  align-self:center!important;
  width:27px;
  height:27px;
  display:grid!important;
  place-items:center;
  border-radius:9px;
  background:rgba(8,14,28,.58);
  border:1px solid rgba(121,142,200,.16);
  font-size:1rem!important;
  filter:drop-shadow(0 2px 5px rgba(0,0,0,.32));
}

.rhyme-family-card .family-main{
  grid-column:2!important;
  grid-row:1!important;
  display:grid!important;
  align-content:start!important;
  align-items:start!important;
  gap:3px!important;
  min-width:0!important;
}

.rhyme-family-card .family-main strong{
  display:block;
  color:#f7f8ff!important;
  font-size:.88rem!important;
  line-height:1.08!important;
  font-weight:950!important;
  letter-spacing:-.01em;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}

.rhyme-family-card .family-phoneme{
  display:block;
  color:#c9bdff!important;
  font-size:.69rem!important;
  line-height:1!important;
  font-weight:900!important;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.rhyme-family-card .family-stats{
  grid-column:2!important;
  grid-row:2!important;
  align-self:end;
  display:grid;
  gap:3px;
  min-width:0;
}

.rhyme-family-card .family-count{
  display:flex;
  align-items:baseline;
  gap:4px;
  min-width:0;
  color:#fff;
}

.rhyme-family-card .family-count strong{
  color:#fff!important;
  font-size:1.18rem!important;
  line-height:.95!important;
  font-weight:1000!important;
  letter-spacing:-.025em;
}

.rhyme-family-card .family-count span{
  color:#dce3f5;
  font-size:.66rem;
  line-height:1;
  font-weight:850;
}

.rhyme-family-card .family-access{
  display:block;
  max-width:100%;
  color:#75dfc2;
  font-size:.61rem;
  line-height:1.08;
  font-weight:850;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.rhyme-family-card .family-access.partial{
  color:#c8b8ff;
}

.rhyme-family-card.active{
  border-color:#aa89ff!important;
  background:
    radial-gradient(circle at 84% 18%,rgba(140,105,255,.20),transparent 40%),
    linear-gradient(145deg,#352867,#18243c)!important;
  box-shadow:
    0 0 0 1px rgba(170,137,255,.20),
    0 12px 28px rgba(74,49,151,.34),
    inset 0 1px 0 rgba(255,255,255,.075)!important;
}

.rhyme-family-card.active .family-icon{
  background:rgba(93,67,174,.38);
  border-color:rgba(187,163,255,.28);
}

.rhyme-family-card.active::after{
  right:7px!important;
  bottom:7px!important;
  width:21px!important;
  height:21px!important;
  background:#8d6cf4!important;
  font-size:.72rem!important;
  box-shadow:0 4px 12px rgba(50,29,111,.45)!important;
}

.all-rhymes-card{
  border-style:dashed!important;
  border-color:rgba(142,119,220,.68)!important;
  background:
    radial-gradient(circle at 85% 18%,rgba(116,91,204,.12),transparent 42%),
    linear-gradient(155deg,#1b233d,#11192d)!important;
}

.all-rhymes-card .family-main strong{
  font-size:.88rem!important;
}

.all-rhymes-card.active::after{
  background:#56d7b4!important;
}

@media(max-width:620px){
  .category-rail.rhyme-families{
    grid-template-rows:repeat(2,90px)!important;
    grid-auto-columns:154px!important;
    gap:7px!important;
    margin-inline:-2px!important;
  }
  .rhyme-family-card{
    min-height:90px!important;
    height:90px!important;
    grid-template-columns:24px minmax(0,1fr)!important;
    column-gap:7px!important;
    row-gap:5px!important;
    padding:10px!important;
    border-radius:15px!important;
  }
  .rhyme-family-card .family-icon{
    width:24px;
    height:24px;
    font-size:.9rem!important;
    border-radius:8px;
  }
  .rhyme-family-card .family-main strong{
    font-size:.82rem!important;
  }
  .rhyme-family-card .family-phoneme{
    font-size:.65rem!important;
  }
  .rhyme-family-card .family-count strong{
    font-size:1.1rem!important;
  }
  .rhyme-family-card .family-count span{
    font-size:.62rem!important;
  }
  .rhyme-family-card .family-access{
    padding-right:21px;
    font-size:.57rem!important;
  }
}


/* A4TJD — mode horizontal simplifié comme le mode vertical — 2026-09-25 */
.bank-items.rhyme-rail{
  grid-template-rows:repeat(3,64px)!important;
  grid-auto-columns:150px!important;
  gap:7px!important;
}

.bank-items.rhyme-rail .rhyme-card.rhyme-horizontal-item{
  position:relative;
  min-width:150px!important;
  min-height:64px!important;
  height:64px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:10px 12px!important;
  border-radius:13px!important;
  text-align:center!important;
  overflow:hidden;
}

.bank-items.rhyme-rail .rhyme-card.rhyme-horizontal-item .rhyme-word{
  width:100%;
  min-width:0;
  display:block;
  color:#f4f6ff;
  font-size:.9rem!important;
  font-weight:900!important;
  line-height:1.12!important;
  text-align:center!important;
  white-space:normal;
  overflow-wrap:anywhere;
}

.rhyme-horizontal-check{
  position:absolute;
  top:5px;
  right:6px;
  width:19px;
  height:19px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:#5ad6ac;
  color:#07140f!important;
  font-size:.67rem!important;
  font-weight:1000!important;
  line-height:1;
  box-shadow:0 3px 9px rgba(44,160,124,.28);
}

.bank-items.rhyme-rail .rhyme-card.rhyme-horizontal-item.selected{
  border-color:#62dcae!important;
  background:linear-gradient(145deg,#17342d,#1d2440)!important;
  box-shadow:0 0 0 1px rgba(98,220,174,.16)!important;
}

@media(max-width:620px){
  .bank-items.rhyme-rail{
    grid-template-rows:repeat(3,60px)!important;
    grid-auto-columns:138px!important;
  }
  .bank-items.rhyme-rail .rhyme-card.rhyme-horizontal-item{
    min-width:138px!important;
    min-height:60px!important;
    height:60px!important;
    padding:9px 10px!important;
  }
  .bank-items.rhyme-rail .rhyme-card.rhyme-horizontal-item .rhyme-word{
    font-size:.84rem!important;
  }
}


/* AKDST follow-up — stabilité absolue du rail de résultats sur Safari/iPhone */
.bank-items.rhyme-rail{
  scroll-snap-type:none!important;
  overflow-anchor:none;
}
.bank-items.rhyme-rail.scroll-restore-lock{
  scroll-snap-type:none!important;
  overflow-anchor:none!important;
}
.bank-items.rhyme-rail .rhyme-card{
  scroll-snap-align:none!important;
}


/* N7RFE — priorité/alternance des terminaisons + actualisation AJAX douce */
.rhyme-order-panel{
  margin:4px 0 14px;
  padding:11px 12px;
  border:1px solid #343d59;
  border-radius:15px;
  background:linear-gradient(180deg,#111829,#0e1423);
}
.rhyme-order-panel[hidden]{display:none!important}
.rhyme-order-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:10px;
  margin-bottom:8px;
}
.rhyme-order-head>div{display:grid;gap:2px}
.rhyme-order-head strong{font-size:.82rem;color:#f3f5ff}
.rhyme-order-head small{font-size:.66rem;color:var(--muted)}
.rhyme-order-list{
  display:flex;
  gap:7px;
  overflow-x:auto;
  overscroll-behavior-inline:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
  padding:1px 1px 5px;
}
.rhyme-order-item{
  flex:0 0 auto;
  min-width:156px;
  display:grid;
  grid-template-columns:25px minmax(78px,1fr) auto;
  align-items:center;
  gap:7px;
  padding:7px 8px;
  border:1px solid #35415f;
  border-radius:12px;
  background:#151d30;
}
.rhyme-order-rank{
  display:grid;
  place-items:center;
  width:24px;
  height:24px;
  border-radius:999px;
  background:#30245e;
  color:#fff;
  font-size:.72rem;
  font-weight:950;
}
.rhyme-order-item strong{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:.76rem;
}
.rhyme-order-actions{display:flex;gap:3px}
.rhyme-order-actions button{
  width:30px;
  height:30px;
  padding:0;
  border:1px solid #465474;
  border-radius:9px;
  background:#101727;
  color:#eef2ff;
  font-weight:950;
  cursor:pointer;
}
.rhyme-order-actions button:disabled{opacity:.3;cursor:default}
.rhyme-order-modes{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
  margin-top:7px;
}
.rhyme-order-modes button{
  min-height:36px;
  border:1px solid #3a4663;
  border-radius:10px;
  background:#101727;
  color:#cbd3e7;
  padding:7px 9px;
  font-size:.72rem;
  font-weight:850;
  cursor:pointer;
}
.rhyme-order-modes button.active{
  border-color:#8c62ff;
  background:#2b2250;
  color:#fff;
}
#rhyme-tool-panel{transition:opacity .18s ease}
#rhyme-tool-panel.catalogue-ajax-refreshing{opacity:.72}
#composer-refresh[aria-busy="true"]{opacity:.72;cursor:wait}
@media(max-width:620px){
  .rhyme-order-panel{padding:10px;margin-bottom:12px}
  .rhyme-order-head{align-items:flex-start}
  .rhyme-order-head>small{display:none}
  .rhyme-order-item{min-width:146px}
  .rhyme-order-modes button{min-height:40px}
}
@media(prefers-reduced-motion:reduce){
  #rhyme-tool-panel{transition:none}
}


/* 2026-10-03 — sélection réversible + répartition multi-sonorités */
#rhyme-balance-reset{
  flex:0 0 auto;
  min-height:32px;
  border:1px solid #53617f;
  border-radius:9px;
  background:#141c2e;
  color:#dce4f8;
  padding:5px 9px;
  font-size:.68rem;
  font-weight:850;
  cursor:pointer;
}
#rhyme-balance-reset:disabled{opacity:.42;cursor:default}

.rhyme-order-item{
  min-width:218px;
  grid-template-columns:25px minmax(92px,1fr) auto;
}
.rhyme-order-label{
  min-width:0;
  display:grid;
  gap:2px;
}
.rhyme-order-label strong{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.rhyme-order-label small{
  color:#9ca7c2;
  font-size:.62rem;
  font-weight:750;
}
.rhyme-order-controls{
  display:grid;
  grid-template-columns:auto auto;
  align-items:center;
  gap:5px;
}
.rhyme-quota-actions{
  display:grid;
  grid-template-columns:27px 28px 27px;
  align-items:center;
  gap:2px;
  padding:2px;
  border:1px solid #3b4867;
  border-radius:9px;
  background:#0d1423;
}
.rhyme-quota-actions button{
  width:27px;
  height:27px;
  padding:0;
  border:0;
  border-radius:7px;
  background:#202c45;
  color:#fff;
  font-size:.9rem;
  font-weight:950;
  cursor:pointer;
}
.rhyme-quota-actions button:disabled{opacity:.3;cursor:default}
.rhyme-quota-actions b{
  display:grid;
  place-items:center;
  min-width:28px;
  color:#fff;
  font-size:.73rem;
  font-weight:950;
}
.rhyme-order-controls .rhyme-order-actions button{
  width:27px;
  height:27px;
}
.rhyme-order-modes button:first-child.active{
  border-color:#45cfa2;
  background:#15372f;
  color:#effff9;
}

.rhyme-selection-tools{
  grid-column:1 / -1;
  display:grid;
  grid-template-columns:minmax(110px,.42fr) minmax(180px,1fr);
  gap:8px;
}
.rhyme-selection-tools button{
  min-height:38px;
  border-radius:10px;
  padding:7px 10px;
  font-size:.75rem;
  font-weight:900;
  cursor:pointer;
}
#undo-rhyme-selection{
  border:1px solid #566681;
  background:#151d2e;
  color:#dbe4f6;
}
#clear-rhyme-selection{
  border:1px solid #be6574;
  background:#351b25;
  color:#ffe9ee;
}
.rhyme-selection-tools button:disabled{
  opacity:.38;
  cursor:default;
}

@media(max-width:620px){
  #rhyme-balance-reset{
    min-height:31px;
    padding:5px 8px;
    font-size:.64rem;
  }
  .rhyme-order-item{
    min-width:248px;
  }
  .rhyme-order-controls{
    grid-template-columns:auto auto;
    justify-items:end;
    gap:4px;
  }
  .rhyme-order-actions{
    display:flex;
  }
  .rhyme-selection-tools{
    grid-template-columns:minmax(92px,.42fr) minmax(0,1fr);
  }
  .rhyme-selection-tools button{
    min-height:38px;
    padding:7px 8px;
    font-size:.72rem;
  }
}


/* =========================================================
   COMPOSITEUR — RAIL LEXICAL HORIZONTAL + BANQUES DE REGISTRE
   2026-10-06
   ========================================================= */
.explore-tool-tabs{
  display:flex!important;
  grid-template-columns:none!important;
  align-items:stretch;
  gap:9px!important;
  width:100%;
  margin:0 0 15px!important;
  padding:5px 6px 12px!important;
  overflow-x:auto;
  overflow-y:hidden;
  overscroll-behavior-inline:contain;
  scroll-snap-type:x proximity;
  scroll-padding-inline:6px;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  touch-action:pan-x pan-y;
  border-radius:17px!important;
}
.explore-tool-tabs::-webkit-scrollbar{display:none}
.explore-tool-tabs button{
  flex:0 0 clamp(136px,40vw,176px)!important;
  width:auto!important;
  min-width:0!important;
  min-height:78px!important;
  display:grid!important;
  grid-template-columns:30px minmax(0,1fr) auto!important;
  grid-template-rows:auto 1fr!important;
  gap:4px 7px!important;
  align-content:center!important;
  align-items:center!important;
  padding:10px 10px!important;
  scroll-snap-align:start;
  scroll-snap-stop:normal;
  border:1px solid #303a54!important;
  background:linear-gradient(180deg,#12192a,#0e1422)!important;
  border-radius:14px!important;
  color:#dbe2f5!important;
  box-shadow:none!important;
}
.explore-tool-tabs button:hover{border-color:#5e548e!important}
.explore-tool-tabs button:focus-visible{
  outline:2px solid #b79aff;
  outline-offset:2px;
}
.explore-tool-tabs button.active{
  border-color:#8c62ff!important;
  background:linear-gradient(135deg,#31255c,#18253b)!important;
  color:#fff!important;
  box-shadow:0 0 0 1px rgba(140,98,255,.2),0 10px 26px rgba(10,8,26,.2)!important;
}
.explore-tab-icon{
  grid-row:1/3;
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  font-size:1.18rem;
}
.explore-tab-copy{
  min-width:0;
  display:grid;
  gap:4px;
  align-self:center;
}
.explore-tool-tabs .explore-tab-copy strong{
  display:block;
  min-width:0;
  color:inherit;
  font-size:.86rem!important;
  line-height:1.12!important;
  white-space:normal;
  overflow-wrap:normal;
}
.explore-tool-tabs .explore-tab-copy small{
  grid-column:auto!important;
  display:block;
  color:#8f9bb5!important;
  font-size:.61rem!important;
  line-height:1.16!important;
  white-space:normal;
}
.explore-tool-tabs button.active .explore-tab-copy small{color:#c8d0e8!important}
.explore-tab-count{
  grid-column:3;
  grid-row:1/3;
  align-self:center;
  min-width:28px;
  max-width:52px;
  padding:4px 6px;
  border-radius:999px;
  background:#211a3d;
  color:#cdbfff;
  border:1px solid rgba(140,98,255,.3);
  font-size:.65rem;
  line-height:1;
  text-align:center;
  font-variant-numeric:tabular-nums;
  overflow-wrap:anywhere;
}
.explore-tab-count-text{font-size:.62rem}

/* Les compteurs deviennent eux aussi un rail propre : aucun texte tronqué. */
.access-summary{
  display:flex!important;
  flex-wrap:nowrap!important;
  gap:9px!important;
  overflow-x:auto;
  overflow-y:hidden;
  overscroll-behavior-inline:contain;
  scroll-snap-type:x proximity;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  padding:11px 14px 13px!important;
}
.access-summary::-webkit-scrollbar{display:none}
.access-summary .access-count-card{
  flex:0 0 clamp(152px,41vw,205px)!important;
  min-width:0!important;
  min-height:58px;
  display:grid!important;
  gap:4px!important;
  align-content:center;
  scroll-snap-align:start;
  border-radius:15px!important;
  padding:9px 12px!important;
  white-space:normal!important;
}
.access-summary .access-count-card strong{
  font-size:1rem!important;
  line-height:1!important;
  white-space:nowrap;
}
.access-summary .access-count-card small{
  min-width:0;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
  overflow-wrap:anywhere;
  font-size:.64rem!important;
  line-height:1.2!important;
}

/* Panneau partagé par Jeux sonores / Familier / Rue / Populaire */
.special-tool-panel[hidden]{display:none!important}
.special-tool-panel{
  display:grid;
  gap:14px;
  min-width:0;
}
.special-tool-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(260px,360px);
  gap:18px;
  align-items:start;
}
.special-tool-copy h2{
  margin:.2rem 0 .45rem;
  font-size:clamp(1.55rem,3vw,2.25rem);
}
.special-tool-copy p{
  margin:0;
  max-width:760px;
  color:var(--muted);
  line-height:1.5;
}
.special-tool-search{
  display:grid;
  gap:7px;
  color:#cbd3e8;
  font-size:.75rem;
  font-weight:850;
}
.special-tool-search-wrap{
  position:relative;
  display:block;
}
#special-tool-search{
  width:100%;
  min-height:48px;
  border:1px solid #3a4661;
  border-radius:13px;
  background:#0b111d;
  color:#f6f8ff;
  padding:11px 44px 11px 13px;
  font-size:16px!important;
  outline:none;
}
#special-tool-search:focus{
  border-color:#8c62ff;
  box-shadow:0 0 0 3px rgba(140,98,255,.14);
}
#special-tool-search-clear{
  position:absolute;
  top:50%;
  right:7px;
  transform:translateY(-50%);
  width:34px;
  height:34px;
  border:0;
  border-radius:9px;
  background:#1c2437;
  color:#dce3f6;
  font-size:1.2rem;
  cursor:pointer;
}
.special-tool-filters{
  display:flex;
  gap:7px;
  min-width:0;
  padding:2px 1px 8px;
  overflow-x:auto;
  overflow-y:hidden;
  overscroll-behavior-inline:contain;
  scroll-snap-type:x proximity;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
}
.special-tool-filters::-webkit-scrollbar{display:none}
.special-tool-filters button{
  flex:0 0 auto;
  min-height:38px;
  padding:8px 12px;
  border:1px solid #35405a;
  border-radius:999px;
  background:#101726;
  color:#cbd3e8;
  font-weight:800;
  font-size:.76rem;
  cursor:pointer;
  scroll-snap-align:start;
}
.special-tool-filters button.active{
  border-color:#8c62ff;
  background:#2a2250;
  color:#fff;
}
.special-tool-filters button:disabled{opacity:.38;cursor:default}
.special-tool-summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  min-width:0;
  border-top:1px solid #273047;
  padding-top:13px;
}
.special-tool-summary strong{font-size:.9rem}
.special-tool-summary span{
  color:var(--muted);
  font-size:.74rem;
  text-align:right;
}
.special-tool-results{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  min-width:0;
}
.sound-game-card,
.register-word-card{
  min-width:0;
  border:1px solid #303a53;
  border-radius:16px;
  background:linear-gradient(180deg,#161d30,#101624);
  padding:14px;
  box-shadow:0 8px 24px rgba(0,0,0,.1);
}
.sound-game-card{
  display:grid;
  gap:11px;
}
.sound-pair{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  align-items:center;
  gap:9px;
  min-width:0;
}
.sound-pair strong{
  min-width:0;
  padding:10px 9px;
  border:1px solid #39445e;
  border-radius:12px;
  background:#0c1320;
  color:#f5f7ff;
  font-size:clamp(.88rem,2.2vw,1.05rem);
  line-height:1.18;
  text-align:center;
  overflow-wrap:anywhere;
}
.sound-pair>span{
  color:#aa91ff;
  font-weight:950;
}
.sound-meta{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.sound-meta span,
.register-badges span{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  border:1px solid #3b4260;
  border-radius:999px;
  background:#141a2d;
  color:#aeb9d1;
  padding:3px 8px;
  font-size:.64rem;
  font-weight:800;
}
.special-result-actions{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:7px;
}
.special-result-actions.single{grid-template-columns:1fr}
.special-result-actions button{
  min-width:0;
  min-height:42px;
  border:1px solid #4b456d;
  border-radius:11px;
  background:#1a1930;
  color:#ece9ff;
  padding:8px 9px;
  font-size:.72rem;
  line-height:1.2;
  font-weight:850;
  cursor:pointer;
  overflow-wrap:anywhere;
}
.special-result-actions button:hover{border-color:#8c62ff}
.special-result-actions button.selected{
  border-color:#4fd4a5;
  background:#15302d;
  color:#dbfff2;
}
.register-word-card{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:14px;
  align-items:center;
}
.register-word-main{display:grid;gap:7px;min-width:0}
.register-word-title{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
}
.register-word-title>strong{
  font-size:1.08rem;
  line-height:1.1;
  color:#f7f8ff;
}
.register-badges{display:flex;flex-wrap:wrap;gap:5px}
.register-word-main p{
  margin:0;
  color:#c9d1e4;
  line-height:1.42;
  font-size:.83rem;
}
.register-word-main small{
  color:#939fb9;
  line-height:1.35;
}
.register-word-main small b{color:#bac4da}
.register-word-meta{
  text-transform:none;
  font-size:.68rem;
}
.register-word-card .special-result-actions{
  min-width:132px;
}
.special-tool-more{
  justify-self:center;
  min-height:44px;
  min-width:min(300px,100%);
  border:1px solid #5b4d93;
  border-radius:12px;
  background:#211b3d;
  color:#eeeaff;
  padding:10px 16px;
  font-weight:900;
  cursor:pointer;
}
.special-tool-empty{
  grid-column:1/-1;
  display:grid;
  gap:5px;
  justify-items:center;
  padding:28px 16px;
  border:1px dashed #3a435e;
  border-radius:14px;
  color:#929eb8;
  text-align:center;
}
.special-tool-empty strong{color:#e7ebf7}

@media(max-width:760px){
  .special-tool-head{grid-template-columns:1fr}
  .special-tool-results{grid-template-columns:1fr}
}
@media(max-width:430px){
  .explore-tool-tabs{
    gap:7px!important;
    padding:4px 5px 11px!important;
  }
  .explore-tool-tabs button{
    flex-basis:clamp(134px,42vw,158px)!important;
    min-height:74px!important;
    padding:8px 9px!important;
    grid-template-columns:27px minmax(0,1fr) auto!important;
    gap:3px 6px!important;
  }
  .explore-tab-icon{width:27px;height:27px;font-size:1.05rem}
  .explore-tool-tabs .explore-tab-copy strong{font-size:.8rem!important}
  .explore-tool-tabs .explore-tab-copy small{font-size:.57rem!important}
  .explore-tab-count{min-width:25px;max-width:45px;padding:4px 5px;font-size:.59rem}
  .access-summary{padding:9px 10px 11px!important}
  .access-summary .access-count-card{flex-basis:clamp(146px,46vw,174px)!important}
  .special-tool-summary{align-items:flex-start;flex-direction:column}
  .special-tool-summary span{text-align:left}
  .sound-pair{gap:6px}
  .sound-pair strong{padding:9px 7px;font-size:.82rem}
  .special-result-actions{grid-template-columns:1fr 1fr}
  .special-result-actions [data-add-both]{grid-column:1/-1}
  .register-word-card{grid-template-columns:1fr}
  .register-word-card .special-result-actions{min-width:0}
}
@media(max-width:340px){
  .explore-tool-tabs button{flex-basis:132px!important}
  .explore-tab-count{display:none}
}


/* 20261006 — Métaphores : Associations de mots */
.metaphor-subtabs{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px;
  margin:14px 0 15px;
}
.metaphor-subtabs[hidden]{display:none!important}
.metaphor-subtabs button{
  min-width:0;
  display:flex;
  align-items:center;
  gap:10px;
  min-height:60px;
  padding:10px 12px;
  border:1px solid #343d57;
  border-radius:15px;
  background:linear-gradient(180deg,#151c2d,#101624);
  color:#eef2ff;
  text-align:left;
  cursor:pointer;
}
.metaphor-subtabs button>span:first-child{font-size:1.2rem;flex:0 0 auto}
.metaphor-subtabs button>span:last-child{display:grid;gap:2px;min-width:0}
.metaphor-subtabs strong{font-size:.86rem;line-height:1.15}
.metaphor-subtabs small{
  color:#98a5bf;
  font-size:.63rem;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.metaphor-subtabs button.active{
  border-color:#9877ff;
  background:linear-gradient(135deg,#34265e,#18243a);
  box-shadow:0 0 0 1px rgba(152,119,255,.18);
}
.metaphor-word-filter-wrap{margin:0 0 16px}
.metaphor-word-filter-wrap[hidden]{display:none!important}
.metaphor-word-filter-rail{
  display:flex;
  gap:7px;
  overflow-x:auto;
  padding:1px 8px 9px;
  scrollbar-width:thin;
  -webkit-overflow-scrolling:touch;
}
.metaphor-word-filter-rail button{
  flex:0 0 auto;
  min-height:38px;
  padding:8px 12px;
  border:1px solid #36415d;
  border-radius:999px;
  background:#151c2c;
  color:#eef2ff;
  font-weight:850;
  font-size:.76rem;
  cursor:pointer;
}
.metaphor-word-filter-rail button.active{
  border-color:#aa89ff;
  background:#38275e;
  color:#fff;
}
.bank-items.metaphor-word-groups-list{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:12px;
  overflow:visible!important;
}
.metaphor-word-group-card{
  border:1px solid #493d70;
  border-radius:18px;
  background:linear-gradient(145deg,#1b1730,#101827);
  overflow:hidden;
}
.metaphor-word-group-card[open]{
  border-color:#7158a5;
  box-shadow:0 12px 30px rgba(0,0,0,.16);
}
.metaphor-word-group-card>summary{
  list-style:none;
  display:grid;
  grid-template-columns:1fr auto;
  gap:8px 12px;
  align-items:center;
  min-height:72px;
  padding:13px 14px;
  cursor:pointer;
}
.metaphor-word-group-card>summary::-webkit-details-marker{display:none}
.metaphor-word-group-title{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  min-width:0;
}
.metaphor-word-pill{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:5px 9px;
  border-radius:999px;
  border:1px solid #534875;
  background:#211b37;
  color:#efeaff;
  font-size:.72rem;
  font-weight:900;
}
.metaphor-word-group-meta{
  grid-column:1/2;
  color:#98a5bf;
  font-size:.66rem;
  line-height:1.3;
}
.metaphor-word-group-chevron{
  grid-column:2/3;
  grid-row:1/3;
  align-self:center;
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:#25203b;
  color:#cdbdff;
  font-weight:900;
  transition:transform .15s ease;
}
.metaphor-word-group-card[open] .metaphor-word-group-chevron{transform:rotate(180deg)}
.metaphor-word-suggestions{
  display:grid;
  gap:8px;
  padding:0 11px 12px;
  border-top:1px solid rgba(118,95,164,.28);
}
.metaphor-word-suggestion{
  width:100%;
  min-height:66px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:11px 12px;
  border:1px solid #38344e;
  border-radius:13px;
  background:#121727;
  color:#f4f5fb;
  text-align:left;
  cursor:pointer;
}
.metaphor-word-suggestion:first-child{margin-top:10px}
.metaphor-word-suggestion:hover{border-color:#7865cf}
.metaphor-word-suggestion.selected{
  border-color:#9a76ff;
  background:linear-gradient(135deg,#30265a,#1d2037);
}
.metaphor-word-suggestion-text{
  font-size:.82rem;
  line-height:1.35;
  font-weight:820;
}
.metaphor-word-suggestion-action{
  flex:0 0 auto;
  width:29px;
  height:29px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:#242e45;
  color:#d7def0;
  font-weight:950;
}
.metaphor-word-suggestion.selected .metaphor-word-suggestion-action{
  background:#4a376e;
  color:#dacdff;
}
.metaphor-word-groups-empty{
  border:1px dashed #514a70;
  border-radius:14px;
  padding:18px;
  color:#9ea8be;
  background:#151328;
}
@media(max-width:620px){
  .metaphor-subtabs{gap:7px;margin-top:11px}
  .metaphor-subtabs button{min-height:56px;padding:9px 10px}
  .metaphor-subtabs strong{font-size:.78rem}
  .metaphor-subtabs small{font-size:.58rem}
  .metaphor-word-group-card>summary{padding:12px;min-height:68px}
  .metaphor-word-pill{font-size:.68rem;padding:5px 8px}
  .metaphor-word-suggestion{min-height:62px;padding:10px 11px}
  .metaphor-word-suggestion-text{font-size:.78rem}
}


/* 20261006 — Associations de mots V2 */
.metaphor-atelier{
  margin:0 0 14px;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(320px,.8fr);
  gap:14px;
  align-items:end;
  border:1px solid #443a68;
  border-radius:18px;
  padding:15px;
  background:linear-gradient(145deg,#1a1830,#101827);
}
.metaphor-atelier[hidden]{display:none!important}
.metaphor-atelier-copy{display:grid;gap:5px}
.metaphor-atelier-copy .eyebrow{margin:0}
.metaphor-atelier-copy>strong{font-size:1rem}
.metaphor-atelier-copy>small{color:#9ea8be;line-height:1.45}
.metaphor-atelier-controls{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  gap:7px;
}
.metaphor-atelier-controls input{
  min-width:0;
  min-height:44px;
  border:1px solid #3b4561;
  border-radius:12px;
  background:#0b111d;
  color:#fff;
  padding:10px 12px;
  outline:none;
}
.metaphor-atelier-controls input:focus{border-color:#8c62ff;box-shadow:0 0 0 3px rgba(140,98,255,.14)}
.metaphor-atelier-controls button{
  min-height:44px;
  border:1px solid #4c4568;
  border-radius:12px;
  background:#211b37;
  color:#f4f2ff;
  font-weight:900;
  padding:9px 12px;
  cursor:pointer;
}
#metaphor-atelier-search{border-color:#8c62ff;background:#30245a}
.metaphor-atelier-status{
  grid-column:1/-1;
  min-height:18px;
  color:#aeb9d0;
  font-size:.74rem;
  line-height:1.35;
}
.metaphor-atelier-status strong{color:#eeeaff}
.metaphor-meta-filter-wrap{margin:0 0 14px}
.metaphor-meta-filter-wrap[hidden]{display:none!important}
.metaphor-meta-filter-grid{display:grid;gap:12px;padding:2px 8px 10px}
.metaphor-meta-filter-grid>div{display:grid;gap:7px}
.metaphor-meta-filter-grid>div>strong{font-size:.72rem;color:#b8c1d6}
.metaphor-meta-filter-rail{
  display:flex;
  gap:7px;
  overflow-x:auto;
  padding:1px 1px 4px;
  scrollbar-width:thin;
  -webkit-overflow-scrolling:touch;
}
.metaphor-meta-filter-rail button{
  flex:0 0 auto;
  min-height:36px;
  padding:7px 11px;
  border:1px solid #36415d;
  border-radius:999px;
  background:#151c2c;
  color:#eef2ff;
  font-size:.72rem;
  font-weight:850;
  cursor:pointer;
}
.metaphor-meta-filter-rail button.active{
  border-color:#9f7dff;
  background:#38275e;
  color:#fff;
}
.metaphor-word-group-badges{
  grid-column:1/2;
  display:flex;
  flex-wrap:wrap;
  gap:5px;
}
.metaphor-word-group-badge{
  display:inline-flex;
  align-items:center;
  min-height:22px;
  padding:3px 7px;
  border:1px solid #3e4966;
  border-radius:999px;
  background:#131a2a;
  color:#aeb9d0;
  font-size:.58rem;
  font-weight:850;
}
.metaphor-word-group-badge.intensity{color:#e7dcff;border-color:#5b477e}
.metaphor-related-groups{
  display:grid;
  gap:8px;
  padding:0 11px 12px;
  border-top:1px solid rgba(118,95,164,.2);
}
.metaphor-related-groups>strong{
  margin-top:10px;
  font-size:.7rem;
  color:#b6c0d5;
}
.metaphor-related-rail{display:flex;gap:7px;overflow-x:auto;padding-bottom:2px;scrollbar-width:thin}
.metaphor-related-rail button{
  flex:0 0 auto;
  max-width:260px;
  border:1px solid #3c4560;
  border-radius:999px;
  background:#151c2c;
  color:#e9edfb;
  padding:7px 10px;
  font-size:.66rem;
  font-weight:850;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  cursor:pointer;
}
.metaphor-word-suggestions[hidden]{display:none!important}
.metaphor-word-group-card.is-focused{
  border-color:#9c7cff;
  box-shadow:0 0 0 2px rgba(156,124,255,.18),0 16px 38px rgba(0,0,0,.2);
}
@media(max-width:760px){
  .metaphor-atelier{grid-template-columns:1fr}
}
@media(max-width:620px){
  .metaphor-atelier{padding:12px;border-radius:15px}
  .metaphor-atelier-controls{grid-template-columns:1fr 1fr}
  .metaphor-atelier-controls input{grid-column:1/-1;font-size:16px}
  .metaphor-atelier-controls button{width:100%}
  .metaphor-meta-filter-grid{padding-inline:3px}
  .metaphor-word-group-badge{font-size:.56rem}
}


/* 20261006 — Phrases sonores V1 */
.phonetic-phrase-panel{
  display:grid;
  gap:14px;
}
.phonetic-phrase-panel[hidden]{display:none!important}
.phonetic-phrase-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(260px,.72fr);
  gap:16px;
  align-items:end;
  padding:16px;
  border:1px solid #323b55;
  border-radius:18px;
  background:linear-gradient(145deg,#151a2b,#101521);
}
.phonetic-phrase-head h2{margin:4px 0 7px}
.phonetic-phrase-head p{margin:0;color:#aab4c8;line-height:1.48}
.phonetic-phrase-search{display:grid;gap:6px;color:#c8d0e0;font-size:.72rem;font-weight:850}
.phonetic-phrase-search-wrap{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  border:1px solid #3a4562;
  border-radius:13px;
  background:#0b111d;
  overflow:hidden;
}
.phonetic-phrase-search-wrap:focus-within{border-color:#8d66ff;box-shadow:0 0 0 3px rgba(141,102,255,.14)}
.phonetic-phrase-search input{
  min-width:0;
  min-height:46px;
  border:0;
  outline:0;
  background:transparent;
  color:#fff;
  padding:10px 12px;
}
.phonetic-phrase-search button{
  width:42px;
  height:42px;
  border:0;
  background:transparent;
  color:#aeb8cc;
  font-size:1.25rem;
  cursor:pointer;
}
.phonetic-phrase-section-label{
  display:flex;
  align-items:center;
  gap:8px;
  color:#eef2ff;
}
.phonetic-phrase-section-label strong{font-size:.82rem}
.phonetic-phrase-section-label small{margin-left:auto;color:#8f9bb4;font-size:.68rem}
.phonetic-family-rail,
.phonetic-filter-rail{
  display:flex;
  gap:8px;
  overflow-x:auto;
  padding:2px 1px 8px;
  scrollbar-width:thin;
  -webkit-overflow-scrolling:touch;
}
.phonetic-family-chip{
  flex:0 0 auto;
  min-width:92px;
  max-width:190px;
  min-height:58px;
  display:grid;
  gap:3px;
  align-content:center;
  padding:9px 11px;
  border:1px solid #38435d;
  border-radius:14px;
  background:#151c2d;
  color:#eef2ff;
  text-align:left;
  cursor:pointer;
}
.phonetic-family-chip strong{font-size:.92rem}
.phonetic-family-chip small{
  color:#99a5bd;
  font-size:.59rem;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.phonetic-family-chip.active{
  border-color:#9b7cff;
  background:linear-gradient(135deg,#33265c,#18243a);
  box-shadow:0 0 0 1px rgba(155,124,255,.18);
}
.phonetic-filter-section{
  border:1px solid #2e3850;
  border-radius:14px;
  background:#101623;
}
.phonetic-filter-section>summary{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:42px;
  padding:9px 12px;
  cursor:pointer;
  list-style:none;
}
.phonetic-filter-section>summary::-webkit-details-marker{display:none}
.phonetic-filter-section>summary span{font-weight:850;font-size:.75rem}
.phonetic-filter-section>summary small{margin-left:auto;color:#919cb4;font-size:.65rem}
.phonetic-filter-rail{padding:2px 10px 10px}
.phonetic-filter-chip{
  flex:0 0 auto;
  min-height:36px;
  padding:7px 11px;
  border:1px solid #37415b;
  border-radius:999px;
  background:#151d2e;
  color:#e9edf8;
  font-size:.71rem;
  font-weight:850;
  cursor:pointer;
}
.phonetic-filter-chip.active{
  border-color:#9a79ff;
  background:#3a295f;
  color:#fff;
}
.phonetic-phrase-summary{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:12px;
  padding:4px 1px;
}
.phonetic-phrase-summary>div{display:grid;gap:3px}
.phonetic-phrase-summary strong{font-size:.88rem}
.phonetic-phrase-summary span,
.phonetic-phrase-summary small{color:#96a2ba;font-size:.66rem}
.phonetic-phrase-results{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.phonetic-phrase-card{
  display:grid;
  gap:9px;
  min-width:0;
  padding:12px;
  border:1px solid #343e57;
  border-radius:15px;
  background:linear-gradient(145deg,#151b2a,#101624);
}
.phonetic-phrase-card.selected{
  border-color:#8566cf;
  background:linear-gradient(145deg,#241d3d,#15192c);
}
.phonetic-phrase-card-head{
  display:flex;
  align-items:center;
  gap:7px;
  flex-wrap:wrap;
}
.phonetic-position-badge,
.phonetic-anchor-badge,
.phonetic-length-badge{
  display:inline-flex;
  align-items:center;
  min-height:23px;
  padding:3px 7px;
  border-radius:999px;
  font-size:.58rem;
  font-weight:900;
}
.phonetic-position-badge{border:1px solid #735cc0;background:#2d2350;color:#e7deff}
.phonetic-anchor-badge{border:1px solid #345c70;background:#142d3a;color:#bfeaff}
.phonetic-length-badge{border:1px solid #445068;background:#18202f;color:#b8c1d3}
.phonetic-phrase-card p{
  margin:0;
  color:#f1f3f8;
  font-size:.84rem;
  line-height:1.42;
  font-weight:760;
}
.phonetic-phrase-card-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}
.phonetic-phrase-card-footer small{
  color:#8f9ab1;
  font-size:.6rem;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.phonetic-phrase-card-footer button{
  flex:0 0 auto;
  min-height:34px;
  border:1px solid #476077;
  border-radius:10px;
  background:#1c2a3a;
  color:#f5f7fb;
  padding:6px 9px;
  font-size:.66rem;
  font-weight:900;
  cursor:pointer;
}
.phonetic-phrase-card-footer button.selected{
  border-color:#745da8;
  background:#352753;
  color:#eadfff;
}
.phonetic-phrase-more{
  justify-self:center;
  min-height:42px;
  border:1px solid #4b5674;
  border-radius:12px;
  background:#182033;
  color:#f1f4fb;
  padding:9px 14px;
  font-weight:900;
  cursor:pointer;
}
.phonetic-phrase-empty{
  grid-column:1/-1;
  border:1px dashed #46516d;
  border-radius:14px;
  padding:18px;
  color:#9ca8bf;
  background:#111724;
}
@media(max-width:760px){
  .phonetic-phrase-head{grid-template-columns:1fr}
  .phonetic-phrase-results{grid-template-columns:1fr}
}
@media(max-width:620px){
  .phonetic-phrase-head{padding:12px;border-radius:15px}
  .phonetic-phrase-search input{font-size:16px}
  .phonetic-family-chip{min-width:88px;min-height:54px;padding:8px 10px}
  .phonetic-phrase-summary{align-items:flex-start;flex-direction:column}
  .phonetic-phrase-card{padding:11px}
  .phonetic-phrase-card p{font-size:.8rem}
}

/* Compositeur 2026-10-11 — emplacements sécurisés, stables et accessibles */
#bank-items .rhyme-card.rhyme-locked-slot{
  display:flex!important;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
  gap:4px;
  min-width:0;
  overflow:hidden;
  border:1px dashed rgba(157,136,214,.48)!important;
  border-radius:13px;
  background:linear-gradient(145deg,rgba(81,59,119,.15),rgba(20,27,46,.85))!important;
  box-shadow:none!important;
  color:#c9bde8;
  pointer-events:none;
  cursor:default;
}
#bank-items .rhyme-locked-slot .rhyme-word{
  opacity:.53;
  filter:blur(2px);
  letter-spacing:.15em;
  font-size:.85rem;
  user-select:none;
}
#bank-items .rhyme-locked-slot small{
  font-size:.62rem;
  line-height:1.25;
  font-weight:750;
  color:#c6b3ee;
  overflow-wrap:anywhere;
}
#bank-items.rhyme-vertical .rhyme-locked-slot{
  grid-column:span 1;
}
@media(max-width:620px){
  #bank-items .rhyme-locked-slot small{font-size:.58rem}
}

/* Démarrage sans saut de fenêtre — Compositeur 2026-10-11 */
html:has(body.composer-boot-pending),body.composer-boot-pending{overflow:hidden!important}
.song-shell[data-composer-loading="true"]{
  position:relative;
  min-height:calc(100dvh - 100px);
  isolation:isolate;
}
.song-shell[data-composer-loading="true"] #composer-app{
  position:absolute!important;
  inset:0 0 auto 0!important;
  visibility:hidden!important;
  pointer-events:none!important;
  contain:layout style;
}
.composer-initial-loader{
  display:grid;
  min-height:max(480px,calc(100dvh - 145px));
  place-items:center;
  padding:36px 18px;
  color:#f3f0ff;
  text-align:center;
}
.composer-initial-loader[hidden]{display:none!important}
.composer-initial-loader-inner{
  display:grid;gap:13px;justify-items:center;
  width:min(100%,410px);
  border:1px solid #414064;
  border-radius:22px;
  background:linear-gradient(150deg,#1a1c35,#111727);
  padding:36px 28px;
  box-shadow:0 12px 28px #070b163b;
}
.composer-initial-loader-inner strong{font-size:1.06rem;letter-spacing:.01em}
.composer-initial-loader-inner p{
  margin:0;line-height:1.55;
  font-size:.84rem;color:#bac3d9;
}
.composer-loading-spinner{
  display:inline-block;
  width:29px;height:29px;
  border:3px solid #524a78;
  border-top-color:#b39aff;
  border-radius:50%;
  animation:composerSpin .9s linear infinite;
}
@keyframes composerSpin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.composer-loading-spinner{animation:none}}

/* Secours si l'authentification tarde anormalement. */
.composer-loading-retry{color:#cab8ff;font-weight:800;font-size:.8rem;text-decoration:underline;text-underline-offset:4px;opacity:0;pointer-events:none;animation:composerShowRetry .2s ease 10s forwards}
@keyframes composerShowRetry{to{opacity:1;pointer-events:auto}}

/* 2026-10-11 — rail mobile : compteurs lisibles et onglet actif fiable */
.explore-tool-tabs .explore-tab-count{
  white-space:nowrap!important;
  word-break:keep-all!important;
  overflow-wrap:normal!important;
  overflow:hidden!important;
  text-overflow:clip!important;
  max-width:none!important;
  min-width:39px;
  font-variant-numeric:tabular-nums;
  flex-shrink:0;
}
@media(max-width:620px){
  .explore-tool-tabs button{
    grid-template-columns:24px minmax(0,1fr)!important;
    grid-template-rows:1fr auto!important;
    align-items:center;
    min-height:86px!important;
    position:relative;
    padding:9px 8px!important;
  }
  .explore-tool-tabs .explore-tab-icon{
    grid-column:1;grid-row:1/3;width:24px;
  }
  .explore-tool-tabs .explore-tab-copy{
    grid-column:2;grid-row:1/3;
    padding-bottom:21px!important;
  }
  .explore-tool-tabs .explore-tab-count{
    position:absolute!important;
    right:7px;bottom:7px;
    grid-column:auto;grid-row:auto;
    padding:4px 7px!important;
    font-size:.62rem!important;
    line-height:1.15!important;
  }
}

/* Démarrage atomique 2026-10-11 : aucune animation durant la première frame. */
html.composer-first-visible-frame .app-view.active,
html.composer-first-visible-frame .idea-chip,
html.composer-first-visible-frame .explore-tool-tabs button,
html.composer-first-visible-frame .access-count-card{
  animation:none!important;
  transition:none!important;
}
body.composer-boot-pending .song-shell,
body.composer-boot-pending .song-hero,
body.composer-boot-pending .mc-seo-section,
body.composer-boot-pending .mc-seo-crosslinks{
  overflow-anchor:none!important;
}
body.composer-boot-pending #composer-loading{
  overscroll-behavior:contain!important;
  touch-action:none;
}

/* 2026-10-12 — Recherche littérale triple : zone stable, mobile-first. */
#creative-search-box[hidden],#rhyme-advanced-search[hidden],#rhyme-phonetic-optional[hidden],
.rhyme-search-field-wrap button[hidden]{display:none!important}
.rhyme-advanced-search{display:block;max-width:100%;min-width:0;margin:16px 0 14px;padding:17px;border:1px solid #5b4b8d;border-radius:18px;background:linear-gradient(135deg,rgba(42,34,75,.82),rgba(21,29,51,.94))}
.rhyme-search-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.rhyme-search-heading>div{display:grid;gap:5px;min-width:0}
.rhyme-search-heading strong{font-size:1.07rem;color:#f6f2ff}
.rhyme-search-heading small,.rhyme-search-field>small,.rhyme-phonetic-optional>small{color:#b7bfd3;font-size:.8rem;line-height:1.45}
#rhyme-search-reset{background:#202640;border:1px solid #616b91;border-radius:12px;color:#eef1ff;padding:10px 12px;min-height:42px;font-weight:750;cursor:pointer}
.rhyme-search-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:start}
.rhyme-search-field{display:grid;gap:8px;min-width:0;color:#f0ecff;font-weight:760}
.rhyme-search-field>label{display:block;font-size:.91rem;cursor:text}
.rhyme-search-field-wrap{position:relative;display:flex;min-width:0;width:100%;align-items:center}
.rhyme-search-field-wrap input{width:100%;min-width:0;min-height:52px;padding:12px 44px 12px 13px;border-radius:13px;border:1px solid #526080;background:#0b1224;color:#fff;font:inherit;font-size:1rem;outline:none;-webkit-appearance:none;appearance:none}
.rhyme-search-field-wrap input:focus-visible{border-color:#b19aff;box-shadow:0 0 0 3px rgba(144,102,255,.18)}
.rhyme-search-field-wrap input::placeholder{color:#8894b2}
.rhyme-search-field-wrap button{position:absolute;right:6px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:36px;height:36px;border:0;border-radius:10px;background:#25304e;color:#fff;font-size:1.3rem;cursor:pointer}
.rhyme-search-result-count{min-height:1.35em;margin:13px 0 0;color:#8be4ca;font-size:.88rem;font-weight:700}
.rhyme-phonetic-optional{margin:0 0 14px;padding:11px 15px;border-radius:13px;border:1px solid #343d5e;background:#11192c;color:#c5cde3}
.rhyme-phonetic-optional summary{font-weight:750;cursor:pointer;min-height:26px}
.rhyme-phonetic-optional>label{display:block;margin:12px 0 7px;font-size:.9rem;font-weight:700}
.rhyme-phonetic-optional>.rhyme-search-field-wrap{max-width:530px}
.rhyme-phonetic-optional>small{display:block;margin:8px 0 0}
@media(max-width:850px){.rhyme-search-grid{grid-template-columns:1fr;gap:14px}.rhyme-advanced-search{padding:14px}.rhyme-search-heading{align-items:flex-start}.rhyme-search-heading strong{font-size:1rem}}
@media(max-width:620px){.rhyme-advanced-search{margin:12px 0;padding:12px;border-radius:15px}.rhyme-search-field-wrap input{min-height:49px}.rhyme-search-heading{gap:9px}.rhyme-search-result-count{font-size:.8rem}}
