:root{
  --ink:#111827;--ink-2:#27364a;--muted:#65758b;--paper:#f2f4f8;--card:#fff;
  --line:#dce3ed;--line-strong:#c8d2df;--blue:#0066cf;--blue-2:#0754a6;
  --blue-soft:#eaf4ff;--blue-pale:#f5f9ff;--yellow:#fdb415;--violet:#7957d5;
  --green:#16835d;--orange:#b96200;--red:#c23a43;--navy:#0b1324;
  --shadow:0 16px 42px rgba(15,30,55,.09);--shadow-soft:0 7px 22px rgba(15,30,55,.07);
  --radius:16px
}
*{box-sizing:border-box}
html{background:var(--paper)}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:14px}
button,input,select,textarea{font:inherit}
button,label,summary,select{touch-action:manipulation}
button{color:inherit}
a{color:var(--blue)}
[hidden]{display:none!important}

.app-header{position:sticky;top:0;z-index:50;border-bottom:1px solid var(--line-strong);background:rgba(255,255,255,.97);box-shadow:0 6px 20px rgba(16,30,50,.06);backdrop-filter:blur(14px)}
.brand-row{min-height:64px;display:flex;align-items:center;gap:12px;padding:8px clamp(16px,3vw,42px);border-bottom:1px solid #e8edf4}
.brand{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none}
.brand-logo{width:42px;height:42px;border-radius:11px;object-fit:contain;background:#fff}
.brand strong{display:block;font-size:18px;letter-spacing:-.4px}.brand-adoram{color:#0066cf}.brand-solfa{color:#fdb415}.brand small{display:block;margin-top:1px;color:var(--muted);font-size:10px;font-weight:750;letter-spacing:.09em;text-transform:uppercase}
.brand-spacer{flex:1}
.square-button{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer;font-size:17px}
.square-button:hover,.square-button:focus-visible{border-color:#9abce0;background:var(--blue-soft);outline:0}
.menu-button{display:none}
.app-header.ribbon-collapsed .action-ribbon{display:none}
.project-state{display:inline-flex;align-items:center;gap:7px;margin-left:12px;border:1px solid #cfe8dd;border-radius:999px;padding:6px 10px;background:#f2fbf7;color:var(--green);font-size:11px;font-weight:750;white-space:nowrap}
.project-state i,.transport-status i{width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 0 3px currentColor20}
.project-state.dirty{border-color:#f1d6ad;background:#fff9ef;color:var(--orange)}.project-state.saving{border-color:#cfe0f3;background:#f5f9ff;color:var(--blue)}
.library-entry-button{min-height:34px;border-color:#cfe0f3;padding:6px 10px;background:#f5f9ff;color:var(--blue);font-size:11px}.library-entry-button>span{font-size:16px}.library-entry-button small{display:grid;place-items:center;min-width:20px;height:20px;border-radius:999px;background:var(--blue);color:#fff;font-size:9px}

.button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;border:1px solid var(--line-strong);border-radius:10px;padding:8px 14px;background:#fff;color:var(--ink-2);font-weight:750;cursor:pointer}
.button:hover,.button:focus-visible{border-color:#9bbfe4;background:var(--blue-soft);outline:0;box-shadow:0 4px 14px rgba(0,102,207,.08)}
.button.primary{border-color:var(--blue);background:var(--blue);color:#fff}.button.primary:hover{background:var(--blue-2)}
.button.ghost{background:#fff}.assistant-button{border-color:#d9cff5;background:#f7f3ff;color:#5c3caf}.assistant-button span{font-size:16px}
.danger-text{color:var(--red)!important}.danger-button{border-color:var(--red);background:var(--red);color:#fff}

.action-ribbon{display:flex;align-items:stretch;gap:0;min-height:72px;padding:0 clamp(16px,3vw,42px);overflow-x:auto}
.action-group{position:relative;display:flex;align-items:center;gap:4px;padding:17px 20px 8px 0;margin-right:18px;border-right:1px solid #e6ebf2;white-space:nowrap}
.action-group:last-child{border-right:0}.export-group{margin-left:auto}
.group-label{position:absolute;left:1px;top:5px;color:#7c8ba0;font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.ribbon-button{position:relative;display:flex;align-items:center;gap:7px;min-height:40px;border:1px solid transparent;border-radius:9px;padding:7px 10px;background:transparent;color:var(--ink-2);font-size:12px;font-weight:720;cursor:pointer}
.ribbon-button:hover,.ribbon-button:focus-visible{border-color:#d4e2f1;background:var(--blue-pale);outline:0}
.ribbon-button i{display:grid;place-items:center;min-width:23px;height:23px;border-radius:7px;background:#eef2f7;color:#3f5066;font-size:10px;font-style:normal;font-weight:850}
.ribbon-button i.ribbon-icon{width:22px;min-width:22px;height:22px;border-radius:0;background:currentColor;-webkit-mask:var(--icon) center/18px 18px no-repeat;mask:var(--icon) center/18px 18px no-repeat}
.ribbon-button.accent-soft i,.preview-action i{background:#e4f2ff;color:var(--blue)}
.ribbon-button.accent-soft i.ribbon-icon,.preview-action i.ribbon-icon{background:currentColor}
.primary-ribbon{background:var(--blue);color:#fff!important}.primary-ribbon:hover{background:var(--blue-2)}.primary-ribbon i{background:rgba(255,255,255,.17);color:#fff}
.ribbon-button:disabled{opacity:.38;cursor:not-allowed}.ribbon-button:disabled:hover{border-color:transparent;background:transparent}
.history-action span,#toggleMoreActions span,.more-action-rail span{display:inline!important}
.more-actions{display:flex;align-items:center}.more-action-rail{display:flex;align-items:center;gap:3px;max-width:0;overflow:hidden;opacity:0;transform:translateX(-8px);transition:max-width .24s ease,opacity .18s ease,transform .24s ease}.more-action-rail.open{max-width:245px;opacity:1;transform:none}.more-action-rail .ribbon-button{flex:0 0 auto}

.app-shell{width:min(1780px,100%);margin:auto;padding:22px clamp(14px,2.5vw,36px) 54px}
.score-identity{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(390px,.8fr);gap:28px;align-items:end;border:1px solid var(--line);border-radius:var(--radius);padding:23px 26px;background:linear-gradient(135deg,#fff 0%,#fbfdff 68%,#eef6ff 100%);box-shadow:var(--shadow-soft)}
.eyebrow{margin:0 0 6px;color:var(--blue);font-size:10px;font-weight:850;letter-spacing:.15em}
.title-input{display:block;width:100%;max-width:850px;border:0;background:transparent;color:var(--ink);font-family:Georgia,"Times New Roman",serif;font-size:clamp(32px,4.3vw,55px);font-weight:650;letter-spacing:-1.8px;outline:0;white-space:nowrap;overflow:hidden}
.credit-fields{display:flex;gap:14px;margin-top:12px}.credit-fields label{flex:1;display:grid;gap:3px;color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.credit-fields input{width:100%;border:0;border-bottom:1px solid transparent;padding:3px 0;background:transparent;color:var(--ink-2);font-size:12px;text-transform:none;outline:0}.credit-fields input:focus{border-bottom-color:var(--blue)}
.global-music-settings{display:grid;grid-template-columns:repeat(2,minmax(150px,1fr));gap:9px}.global-music-settings label{display:grid;gap:4px;border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:#fff;color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.global-music-settings select,.global-music-settings input{width:100%;border:0;background:transparent;color:var(--ink);font-size:12px;font-weight:800;text-transform:none;outline:0}.tempo-field{display:flex;align-items:center;gap:2px;color:var(--muted);font-size:10px}.tempo-field input{width:54px}

.import-card{margin-top:10px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:var(--shadow-soft)}.import-card summary{display:flex;align-items:center;gap:9px;padding:12px 16px;color:var(--ink-2);font-size:12px;font-weight:800;cursor:pointer}.import-card summary:before{content:"›";color:var(--blue);font-size:18px;transition:.2s}.import-card[open] summary:before{transform:rotate(90deg)}.import-card summary small{margin-left:auto;color:var(--muted);font-size:9px;font-weight:600}.metadata-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:4px 16px 12px}.metadata-grid label{display:grid;gap:4px;color:var(--muted);font-size:10px;font-weight:700}.metadata-grid input{border:1px solid var(--line);border-radius:8px;padding:8px 10px}.import-summary{border-top:1px solid var(--line);padding:12px 16px;color:#53677d;font-size:11px;line-height:1.6}.warning{color:#a84c1d}

.tool-deck{margin-top:16px;border:1px solid var(--line-strong);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow)}
.tool-tabs{display:flex;align-items:center;gap:3px;padding:7px 8px;border-bottom:1px solid var(--line);background:#f7f9fc;border-radius:var(--radius) var(--radius) 0 0;overflow-x:auto}
.tool-tab{display:flex;align-items:center;gap:8px;min-height:44px;border:0;border-radius:10px;padding:7px 13px;background:transparent;color:#526379;font-size:12px;font-weight:760;white-space:nowrap;cursor:pointer}.tool-tab span{display:grid;place-items:center;width:27px;height:27px;border-radius:8px;background:#e9eef5;color:#53657b;font-family:Georgia,serif;font-size:14px}.tool-tab:hover{background:#edf3fa}.tool-tab.active{background:#fff;color:var(--blue);box-shadow:0 2px 10px rgba(18,45,76,.09)}.tool-tab.active span{background:var(--blue);color:#fff}
.tool-tab span.tool-tab-icon{width:24px;height:24px;border-radius:0;background:currentColor;color:inherit;-webkit-mask:var(--icon) center/20px 20px no-repeat;mask:var(--icon) center/20px 20px no-repeat}.tool-tab.active span.tool-tab-icon{background:currentColor;color:inherit}
.tool-panel{display:flex;align-items:stretch;gap:12px;min-height:137px;padding:13px;overflow-x:auto}.tool-panel:not(.active){display:none}.selection-summary{display:flex;align-items:center;gap:10px;min-width:190px;border-right:1px solid var(--line);padding:8px 14px 8px 3px}.selection-summary small{display:block;color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.selection-summary strong{display:block;max-width:180px;margin-top:3px;font-size:12px;line-height:1.35}.selection-dot{width:10px;height:10px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 5px #ddebfb}.selection-dot.violet{background:var(--violet);box-shadow:0 0 0 5px #eee8ff}
.tool-section{display:flex;flex-direction:column;gap:7px;padding:4px 12px;border-right:1px solid var(--line)}.tool-section:last-child{border:0}.tool-label{color:var(--muted);font-size:9px;font-weight:850;letter-spacing:.09em;text-transform:uppercase}.tool-help{max-width:470px;margin:8px 0;color:var(--muted);font-size:11px;line-height:1.5}
.solfa-section{min-width:470px}.solfa-keyboard{position:relative;width:max-content;padding-top:31px}.solfa-palette{display:flex;gap:5px}.solfa-palette button{width:54px;height:68px;border:1px solid #cfd9e5;border-radius:11px;background:#fff;color:var(--ink);cursor:pointer}.solfa-palette button:hover,.solfa-palette button:focus-visible{border-color:var(--blue);background:var(--blue-soft);outline:0;transform:translateY(-1px)}.solfa-palette strong{display:block;color:var(--blue);font-family:Georgia,serif;font-size:26px}.solfa-palette small{display:block;margin-top:2px;color:var(--muted);font-size:8px}
.chromatic-bubble{position:absolute;z-index:2;top:0;display:flex;gap:1px;border:1px solid #254a74;border-radius:999px;padding:2px;background:#172c45;box-shadow:0 4px 10px rgba(9,30,52,.18);transform:translateX(-50%)}.chromatic-bubble button{display:grid;place-items:center;min-width:27px;height:22px;border:0;border-radius:999px;padding:0 5px;background:transparent;color:#fff;font-family:Georgia,serif;font-size:10px;font-weight:800;cursor:pointer}.chromatic-bubble button:hover,.chromatic-bubble button:focus-visible{background:var(--yellow);color:#172033;outline:0}.gap-dr{left:57px}.gap-rm{left:116px}.gap-fs{left:234px}.gap-sl{left:293px}.gap-lt{left:352px}
.compact-section{min-width:152px}.segmented{display:flex;gap:3px;border:1px solid var(--line);border-radius:9px;padding:3px;background:#f3f6fa}.segmented button{min-height:32px;border:0;border-radius:7px;padding:5px 9px;background:transparent;color:var(--muted);font-size:10px;font-weight:800;cursor:pointer}.segmented button.active{background:#fff;color:var(--blue);box-shadow:0 2px 7px rgba(20,44,70,.12)}#activeOctave{color:var(--blue);font-size:9px;text-align:center}
.duration-palette{display:flex;gap:4px}.duration-palette button{display:grid;place-items:center;min-width:46px;height:61px;border:1px solid var(--line);border-radius:9px;background:#fff;cursor:pointer}.duration-palette button:hover,.duration-palette button.active{border-color:var(--blue);background:var(--blue-soft)}.duration-palette b{font-family:Georgia,serif;font-size:20px}.duration-palette small{font-size:8px;color:var(--muted)}
.rhythm-section{min-width:250px}.rhythm-palette{display:flex;gap:4px}.rhythm-palette button{width:44px;height:61px;border:1px solid var(--line);border-radius:9px;background:#fff;cursor:pointer}.rhythm-palette button:hover{border-color:var(--blue);background:var(--blue-soft)}.rhythm-palette strong{display:block;color:var(--ink);font-family:Georgia,serif;font-size:24px}.rhythm-palette small{display:block;color:var(--muted);font-size:7px}
.special-section{min-width:115px}.special-tool{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:9px;padding:7px 10px;background:#fff;cursor:pointer}.special-tool:hover{border-color:var(--blue);background:var(--blue-soft)}.special-tool strong{color:var(--blue);font-family:Georgia,serif;font-size:20px}.special-tool span{font-size:9px;font-weight:750}
.field-tool,.lyric-tool{display:grid;gap:5px;min-width:160px;color:var(--muted);font-size:9px;font-weight:800;text-transform:uppercase}.field-tool select,.lyric-tool textarea{border:1px solid var(--line);border-radius:9px;padding:9px;background:#fff;color:var(--ink);font-size:11px;text-transform:none}.lyric-tool{min-width:260px}.expression-palette{display:flex;gap:5px}.expression-palette button{min-width:42px;height:42px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--violet);font-family:Georgia,serif;font-weight:800;cursor:pointer}.expression-palette.labeled button{min-width:auto;padding:0 10px;font-family:inherit;font-size:10px}.expression-palette button:hover{border-color:var(--violet);background:#f5f1ff}.structure-actions{display:flex;gap:6px}
.tool-panel[data-tool-panel="lyrics"],.tool-panel[data-tool-panel="expression"],.tool-panel[data-tool-panel="structure"],.tool-panel[data-tool-panel="layout"]{flex-wrap:wrap}.tool-panel[data-tool-panel="expression"]>.button{align-self:center;white-space:nowrap}
.tool-panel[data-tool-panel="lyrics"]{display:grid;grid-template-columns:220px minmax(0,1fr);align-items:center;gap:16px;min-height:0;padding:14px 16px;overflow:visible}.tool-panel[data-tool-panel="lyrics"]:not(.active){display:none}.tool-panel[data-tool-panel="lyrics"] .selection-summary{align-self:stretch;min-width:0;padding-right:18px}.lyrics-editor{display:grid;min-width:0;gap:10px}.lyrics-fields{display:grid;grid-template-columns:minmax(145px,.65fr) minmax(170px,.8fr) minmax(260px,1.6fr);align-items:end;gap:10px}.lyrics-fields .field-tool,.lyrics-fields .lyric-tool{min-width:0}.lyrics-fields select,.lyrics-fields textarea{box-sizing:border-box;width:100%;height:40px}.lyrics-fields textarea{min-height:40px;resize:vertical}.lyrics-actions{display:flex;align-items:center;gap:8px}.lyrics-actions .button{min-height:38px;padding:7px 13px;white-space:nowrap}.lyrics-actions .button span{display:grid;place-items:center;width:17px;height:17px;border-radius:5px;background:rgba(255,255,255,.18);font-size:12px}.lyrics-actions .button.ghost span{background:#edf3f9;color:var(--ink-2)}

.editor-workspace{margin-top:16px;border:1px solid var(--line);border-radius:var(--radius);padding:19px;background:#e8edf4;box-shadow:var(--shadow)}
.editor-heading{display:flex;align-items:end;justify-content:space-between;margin:0 4px 13px}.editor-heading h2{margin:0;font-family:Georgia,serif;font-size:22px}.editor-view-actions{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:10px}.wrap-line-control{display:flex;align-items:center;gap:6px;border:1px solid var(--line-strong);border-radius:9px;padding:4px 7px;background:#fff;color:var(--ink-2);font-size:9px;font-weight:750}.wrap-line-control select{border:0;background:transparent;color:var(--blue);font-weight:850;outline:0}
.measure-status{display:flex;gap:6px;flex-wrap:wrap;margin:0 4px 10px}.measure-chip{border-radius:999px;padding:5px 9px;background:#e1ecf9;color:var(--blue-2);font-size:9px;font-weight:750}.measure-chip.preserved{background:#fff3d7;color:#815600}.measure-chip.invalid{background:#ffedea;color:#aa3d31}
.paper-surface{overflow:hidden;border:1px solid #cfd7e1;border-radius:12px;background:#fff;box-shadow:0 18px 35px rgba(28,41,57,.10)}.paper-ruler{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;border-bottom:1px solid var(--line);background:#f8fafc;color:var(--ink-2);font-size:9px;font-weight:800;text-transform:uppercase}.paper-ruler small{color:var(--muted);font-size:8px;font-weight:650;text-transform:none}
.matrix-wrap{position:relative;overflow:auto;max-height:56vh;background:#fff}table{border-collapse:separate;border-spacing:0;min-width:100%;background:#fff}th,td{border-right:1px solid #dde4ed;border-bottom:1px solid #e2e7ee;padding:0;text-align:center}th:last-child,td:last-child{border-right:0}tr:last-child td{border-bottom:0}thead th{position:sticky;top:0;z-index:2;height:56px;background:#f4f7fb;color:var(--muted);font-size:10px}
.voice-name{position:sticky;left:0;z-index:4;width:112px;min-width:112px;padding:12px!important;background:#f8fafc!important;text-align:left}.voice-name input{display:block;width:88px;border:0;border-bottom:1px solid transparent;background:transparent}.track-label-input{color:var(--ink);font-family:Georgia,serif;font-size:17px;font-weight:850;text-transform:uppercase}.track-name-input{margin-top:3px;color:var(--muted);font-size:9px}.voice-name input:focus{border-bottom-color:var(--blue);outline:0}.delete-track{position:absolute;top:4px;right:4px;border:0;background:transparent;color:var(--red);cursor:pointer}
.note-cell{position:relative;min-width:108px;padding:8px 6px!important;background:#fff;transition:.12s}.note-cell:hover{background:#f8fbff}.note-cell.selected{z-index:1;background:#eef6ff!important;box-shadow:inset 0 0 0 2px var(--blue)}.note-cell.barline{border-left:3px solid var(--ink)}.note-cell.silence-intentional:after{content:"silence";position:absolute;right:4px;top:4px;border-radius:5px;padding:2px 4px;background:#eef1f5;color:#7b8795;font-size:7px;font-weight:800;text-transform:uppercase}.note-cell.held{background:#fbfcfe}
.note-editor{display:flex;align-items:center;gap:3px}.cell-rhythm{min-width:8px;color:var(--ink);font-family:Georgia,serif;font-size:18px;font-weight:850}.token{min-width:30px;width:100%;border:0;padding:5px 1px;background:transparent;color:var(--blue);font-family:Georgia,serif;font-size:22px;font-weight:800;text-align:center;outline:0;text-transform:lowercase}.token:focus{background:#fff}.cell-duration{max-width:74px;border:1px solid #d8e1eb;border-radius:7px;padding:4px 2px;background:#f7f9fc;color:#5f7084;font-size:8px}.notation-button{display:grid;place-items:center;flex:0 0 23px;width:23px;height:23px;border:1px solid #d2deeb;border-radius:7px;background:#f1f6fc;color:var(--blue);cursor:pointer}.lyric{width:100%;border:0;border-top:1px dashed #dce4ec;padding:5px 2px;background:transparent;color:#586a7e;font-size:10px;text-align:center;outline:0;resize:vertical}.lyric:focus{background:#fff8e6}.matrix-notation-preview{display:block;min-height:8px;color:var(--violet)}
.rhythm-head{display:flex;align-items:center;justify-content:center;gap:2px}.start-play{border:0;background:transparent;color:var(--blue);cursor:pointer;font-size:9px}.marker{width:34px;border:0;background:transparent;color:var(--ink);font-family:Georgia,serif;font-size:18px;font-weight:850}.segment-duration{font-size:8px;color:#8390a0}.column-direction{display:block;max-width:96px;margin:auto;overflow:hidden;color:var(--violet);font-size:8px;font-style:italic;text-overflow:ellipsis;white-space:nowrap}
.playing{background:#fff3c7!important;box-shadow:inset 0 -3px var(--yellow)}.playing .token,.playing .lyric{color:#5a3900}.play-start{box-shadow:inset 3px 0 var(--yellow)}.hint{margin:12px 4px 1px;color:var(--muted);font-size:11px;line-height:1.5}
.matrix-wrap.wrap-mode{overflow:visible;max-height:none;background:transparent}.wrap-measures{display:grid;grid-template-columns:repeat(var(--wrap-measures-per-line,2),minmax(0,1fr));align-items:start;gap:14px;padding:14px;background:#edf1f6}.wrap-measure{min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:11px;background:#fff;box-shadow:var(--shadow-soft)}.wrap-measure h3{margin:0;padding:10px 16px;border-bottom:1px solid var(--line);background:#f2f7fd;color:var(--blue-2);font-family:Georgia,serif;font-size:13px}.wrap-measure-scroll{overflow-x:auto}.wrap-measure table.wrap-table{width:max-content;min-width:0;table-layout:fixed}.wrap-measure thead th{position:static}.wrap-measure .rhythm-head small{padding-inline:4px}.wrap-measure .voice-name{position:sticky;left:0;width:92px;min-width:92px;padding:8px!important}.wrap-measure .note-cell{width:auto;min-width:0;padding:7px 5px!important}.wrap-measure .note-editor{display:grid;grid-template-columns:9px minmax(24px,1fr) 23px;gap:3px}.wrap-measure .cell-rhythm{grid-column:1;grid-row:1}.wrap-measure .token{grid-column:2;grid-row:1;min-width:20px;font-size:20px}.wrap-measure .notation-button{grid-column:3;grid-row:1}.wrap-measure .cell-duration{grid-column:2/4;grid-row:2;width:100%;max-width:none}.wrap-measure .lyric{padding-inline:2px;font-size:9px}.wrap-measure .column-direction{max-width:100%}

.transport{position:sticky;bottom:10px;z-index:30;display:flex;align-items:center;gap:12px;min-height:68px;margin-top:14px;border:1px solid #354a67;border-radius:15px;padding:10px 14px;background:rgba(11,19,36,.98);color:#fff;box-shadow:0 18px 45px rgba(5,13,27,.24);backdrop-filter:blur(14px)}.transport-main{display:flex;align-items:center;gap:8px}.play,.round{display:grid;place-items:center;border:0;border-radius:50%;cursor:pointer}.play{width:44px;height:44px;background:var(--yellow)}.round{width:34px;height:34px;background:#314867}.icon-button img{width:18px;height:18px;object-fit:contain}.play img,.round.active img,.loop-button.active img,.metro-button.active img{filter:brightness(0) saturate(100%)}.round.active,.loop-button.active,.metro-button.active{background:var(--yellow)!important;color:#111827!important;box-shadow:0 0 0 3px rgba(253,180,21,.22)}.play.is-playing{box-shadow:0 0 0 4px rgba(253,180,21,.24)}
.play-position{display:grid;padding-left:5px}.play-position small{color:#91a1b8;font-size:8px;font-weight:800;letter-spacing:.08em}.play-position strong{font-size:11px}.transport-status{display:flex;align-items:center;gap:7px;color:#75d4ac;font-size:10px}.transport-spacer{flex:1}.transpose{display:grid;gap:2px;color:#95a5ba;font-size:8px;font-weight:800;text-transform:uppercase}.transpose select{min-width:130px;border:0;background:transparent;color:#fff;font-size:11px;font-weight:800}.transport-apply{border-color:#3d526d;background:#1c2b40;color:#fff}

.mixer{margin-top:12px;border:1px solid var(--line);border-radius:14px;padding:0 18px;background:#fff;box-shadow:var(--shadow-soft)}.mixer-title{display:flex;align-items:center;justify-content:space-between;min-height:58px;list-style:none;cursor:pointer}.mixer-title::-webkit-details-marker{display:none}.mixer-title .eyebrow{display:block;margin:0}.mixer-title strong{display:block;font-family:Georgia,serif;font-size:17px}.mixer-title small{color:var(--muted);font-size:9px}.mixer-transport{display:flex;align-items:center;gap:7px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:9px 0}.transport-button img{width:14px;height:14px}.mixer-transport .button.primary,.mixer-transport .button.primary span{color:#fff}.mixer-transport .button.ghost{border-color:#9fb0c3;background:#eef3f8;color:#17263a}.mixer-transport .button.ghost img{filter:brightness(0) saturate(100%)}.mixer-transport .button.active{border-color:var(--yellow);background:var(--yellow);color:#111827}#mixerPlaybackStatus{margin-left:auto;color:#43566d;font-size:10px;font-weight:750}
.mixer-channels{display:flex;justify-content:center;gap:8px;overflow-x:auto;padding:12px 2px 16px}.channel{position:relative;display:flex;flex:0 0 94px;min-height:250px;flex-direction:column;align-items:center;gap:7px;border:1px solid var(--line);border-radius:11px;padding:8px;background:#f5f9ff;text-align:center}.channel.muted{opacity:.5}.channel.soloed{border-color:var(--yellow);box-shadow:inset 0 0 0 1px var(--yellow)}.channel-name strong{display:block;color:var(--ink);font-family:Georgia,serif;font-size:19px}.channel-name span{display:block;max-width:74px;overflow:hidden;color:var(--muted);font-size:8px;text-overflow:ellipsis;white-space:nowrap}.channel .instrument{width:100%;border:1px solid var(--line);border-radius:6px;padding:4px 2px;background:#fff;font-size:8px}.volume-label{display:flex;height:127px;flex-direction:column;align-items:center;gap:3px;color:var(--muted);font-size:8px}.volume-label input{width:20px;height:103px;appearance:slider-vertical;direction:rtl;writing-mode:vertical-lr;accent-color:var(--blue)}.mix-button{width:25px;height:25px;border:1px solid var(--line);border-radius:6px;background:#fff;font-size:9px;font-weight:850;cursor:pointer}.mix-button[aria-pressed=true]{border-color:var(--yellow);background:var(--yellow)}.vu{position:absolute;right:7px;top:88px;display:flex;align-items:end;width:9px;height:100px;overflow:hidden;border-radius:4px;background:#dbe4ef}.vu i{display:block;width:100%;height:0;background:linear-gradient(to top,var(--blue) 0 58%,var(--yellow) 58% 84%,#e04c3d 84%);transition:height .08s}.channel[data-channel=METRO]{border-style:dashed;background:#f4f4ff}

.app-information{display:flex;align-items:center;justify-content:center;gap:15px;margin-top:22px;padding:20px;color:var(--muted);text-align:left}.app-information img{width:50px;height:50px;border-radius:11px}.app-information strong{color:var(--ink);font-size:12px}.app-information p{margin:4px 0;font-size:11px}.app-information small{font-size:9px}

.assistant-panel{position:fixed;z-index:90;top:0;right:0;width:min(390px,92vw);height:100vh;border-left:1px solid #dcd3f3;background:#fff;box-shadow:-22px 0 60px rgba(28,18,56,.18);transform:translateX(105%);transition:.25s}.assistant-panel.open{transform:none}.assistant-panel header{display:flex;align-items:center;justify-content:space-between;min-height:65px;padding:13px 17px;border-bottom:1px solid var(--line);background:#f8f5ff}.assistant-panel header div{display:flex;align-items:center;gap:9px;color:#5c3caf}.assistant-panel header span{font-size:20px}.assistant-panel header button{border:0;background:transparent;font-size:25px;cursor:pointer}.assistant-content{display:grid;gap:10px;padding:18px}.assistant-content p{color:var(--muted);font-size:12px;line-height:1.6}.assistant-content button{border:1px solid #ded5f4;border-radius:10px;padding:11px;background:#faf8ff;color:#5c3caf;text-align:left;font-weight:750;cursor:pointer}.assistant-answer{margin-top:8px;border-radius:11px;padding:14px;background:#f4f1fc;color:#594a74;font-size:12px;line-height:1.55}

#toast{position:fixed;z-index:120;right:20px;bottom:20px;max-width:min(430px,88vw);border-radius:11px;padding:12px 16px;background:var(--navy);color:#fff;box-shadow:var(--shadow);opacity:0;transform:translateY(10px);pointer-events:none;transition:.2s}#toast.show{opacity:1;transform:none}
dialog{color:var(--ink)}.settings-dialog,.confirm-dialog{width:min(700px,94vw);border:0;border-radius:17px;padding:21px;background:#fff;box-shadow:0 28px 90px rgba(0,0,0,.28)}dialog::backdrop{background:rgba(9,18,33,.62);backdrop-filter:blur(3px)}.settings-head,.preview-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.settings-head h2,.preview-head h2{margin:0;font-family:Georgia,serif}.settings-grid{display:grid;gap:13px}.settings-grid label{display:grid;gap:5px;color:var(--muted);font-size:11px;font-weight:750}.settings-grid select{border:1px solid var(--line);border-radius:9px;padding:9px;background:#fff}.settings-grid .switch-row{display:flex;align-items:center;gap:8px}.notation-dialog{width:min(760px,95vw)}.notation-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.notation-grid fieldset{display:grid;gap:10px;border:1px solid var(--line);border-radius:11px;padding:13px}.notation-grid legend{color:var(--blue);font-weight:850}.notation-grid label{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--muted);font-size:11px;font-weight:750}.notation-grid input[type=text],.notation-grid input[type=number],.notation-grid select,.notation-grid input:not([type]){width:53%;border:1px solid var(--line);border-radius:8px;padding:7px}.notation-grid input[type=checkbox]{margin-right:auto}.notation-actions,.preview-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}
.library-view .action-ribbon{display:none}.library-page{min-height:calc(100vh - 65px)}.library-page-head{display:flex;align-items:center;justify-content:space-between;gap:24px;border:1px solid var(--line);border-radius:16px;padding:24px 28px;background:linear-gradient(135deg,#fff 0%,#f4f9ff 100%);box-shadow:var(--shadow)}.library-page-head h1{margin:2px 0 5px;font-family:Georgia,serif;font-size:34px}.library-page-head p:last-child{margin:0;color:var(--muted);font-size:12px}.library-command-bar{display:flex;align-items:center;gap:9px;margin:14px 0;border:1px solid var(--line);border-radius:13px;padding:11px 13px;background:#fff;box-shadow:var(--shadow-soft)}.library-bulk-button{height:40px;white-space:nowrap}.inline-mask-icon{width:18px;height:18px;background:currentColor;-webkit-mask:var(--icon) center/contain no-repeat;mask:var(--icon) center/contain no-repeat}#libraryStatus{margin-left:auto;color:var(--muted);font-size:10px}.library-layout{display:grid;grid-template-columns:250px minmax(0,1fr);align-items:start;gap:14px}.library-filters,.library-results{border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:var(--shadow-soft)}.library-filters{position:sticky;top:78px;display:grid;gap:11px;padding:16px}.library-filter-head,.library-results>header{display:flex;align-items:center;justify-content:space-between;gap:12px}.library-filter-head h2,.library-results h2{margin:2px 0 0;font-family:Georgia,serif;font-size:18px}.text-button{border:0;padding:4px;background:transparent;color:var(--blue);font-size:9px;font-weight:800;cursor:pointer}.library-filters>label,.library-organize label{display:grid;gap:5px;color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.library-filters input,.library-filters select,.library-organize input{width:100%;height:39px;border:1px solid var(--line);border-radius:9px;padding:7px 9px;background:#fff;color:var(--ink);text-transform:none}.library-organize{display:grid;gap:7px;border-top:1px solid var(--line);padding-top:12px}.library-organize .button{width:100%}.library-results{min-height:520px;padding:17px}.library-results>header{margin-bottom:14px}.library-results>header strong{border-radius:999px;padding:6px 10px;background:var(--blue-soft);color:var(--blue-2);font-size:9px}.library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));align-items:start;gap:12px}.library-card{display:grid;gap:10px;border:1px solid var(--line);border-radius:13px;padding:14px;background:#fff;box-shadow:var(--shadow-soft)}.library-card header{display:flex;align-items:flex-start;gap:10px}.library-card-mark{display:grid;place-items:center;flex:0 0 37px;height:37px;border-radius:10px;background:var(--blue-soft);color:var(--blue);font-family:Georgia,serif;font-size:19px;font-weight:850}.library-card h3{margin:0;font-family:Georgia,serif;font-size:17px;line-height:1.15}.library-card header p{margin:3px 0 0;color:var(--muted);font-size:9px}.library-card-meta{display:flex;flex-wrap:wrap;gap:5px}.library-card-meta span{border-radius:999px;padding:4px 7px;background:#edf4fc;color:#34597f;font-size:8px;font-weight:750}.library-catalog{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:0}.library-catalog div{min-width:0;border-radius:8px;padding:6px;background:#f6f9fd}.library-catalog dt{color:var(--muted);font-size:7px;font-weight:850;text-transform:uppercase}.library-catalog dd{margin:2px 0 0;overflow:hidden;color:var(--ink-2);font-size:8px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.library-card label{display:grid;gap:4px;color:var(--muted);font-size:8px;font-weight:800;text-transform:uppercase}.library-card select{height:34px;border:1px solid var(--line);border-radius:8px;padding:5px 8px;background:#fff}.library-card-actions{display:flex;gap:7px}.library-card-actions .button{flex:1;min-height:34px;padding:6px 9px;font-size:10px}.library-empty{grid-column:1/-1;border:1px dashed var(--line-strong);border-radius:13px;padding:58px 36px;background:#fff;color:var(--muted);text-align:center}.library-empty strong{display:block;margin-bottom:5px;color:var(--ink);font-family:Georgia,serif;font-size:19px}
.preview-dialog{width:min(1500px,96vw);height:min(94vh,1050px);border:0;border-radius:18px;padding:20px;background:#f7f8fa}.preview-sheet{height:calc(100% - 105px);overflow:hidden;border:1px solid #ccd4dd;border-radius:12px;background:#6f7378}.pdf-preview-frame{display:block;width:100%;height:100%;border:0}.pdf-loading{display:grid;place-items:center;width:100%;height:100%;min-height:420px;background:#eef1f4;color:#526273;font-weight:800}.pdf-loading.error{color:var(--red)}.confirm-dialog{text-align:center}.confirm-icon{display:grid;place-items:center;width:50px;height:50px;margin:auto;border-radius:50%;background:#fff0ef;color:var(--red);font-size:24px;font-weight:900}.confirm-dialog h2{font-family:Georgia,serif}.confirm-dialog p{color:var(--muted);line-height:1.5}.confirm-dialog div:last-child{display:flex;justify-content:center;gap:8px}

/* Signes d’interprétation conservés dans l’éditeur et l’aperçu. */
.print-note{position:relative;display:inline-block;min-width:1ch}.fermata-mark{position:absolute;left:50%;top:-8px;width:9px;height:5px;transform:translateX(-50%);border:1px solid currentColor;border-bottom:0;border-radius:9px 9px 0 0}.fermata-mark:after{content:"";position:absolute;left:3px;top:5px;width:2px;height:2px;border-radius:50%;background:currentColor}.fermata-mark.inverted{top:11px;transform:translateX(-50%) rotate(180deg)}.staccato-mark{position:absolute;left:50%;top:-5px;width:2px;height:2px;border-radius:50%;background:currentColor}.tenuto-mark{position:absolute;left:50%;top:-5px;width:8px;border-top:1px solid currentColor;transform:translateX(-50%)}.accent-mark,.breath-mark,.ornament-mark{position:absolute;left:50%;top:-10px;transform:translateX(-50%);font:7px Arial,sans-serif;white-space:nowrap}.print-note.slur-start:before,.print-note.tie-start:after{content:"";position:absolute;left:40%;width:145%;height:6px;border-top:1px solid currentColor;border-radius:50%}.print-note.slur-start:before{top:-8px}.print-note.tie-start:after{top:8px;border-top:0;border-bottom:1px solid currentColor}.matrix-expression{position:relative;display:inline-block;min-width:16px;height:8px}

body.high-contrast{--muted:#3f4c5d;--line:#aeb9c7;--line-strong:#8998aa}.high-contrast .tool-label,.high-contrast .group-label{color:#39485a}

html.dark-mode{
  color-scheme:dark;--ink:#f1f6fd;--ink-2:#d7e2ef;--muted:#a9b8ca;--paper:#07111f;--card:#101c2c;
  --line:#2b3d53;--line-strong:#3a506b;--blue-soft:#102e4d;--blue-pale:#0d2239;
  --shadow:0 16px 42px rgba(0,0,0,.28);--shadow-soft:0 7px 22px rgba(0,0,0,.22)
}
.dark-mode .app-header{background:rgba(7,17,31,.97);box-shadow:0 6px 20px rgba(0,0,0,.25)}.dark-mode .brand-row{border-bottom-color:#22334a}
.dark-mode .square-button,.dark-mode .button,.dark-mode .button.ghost,.dark-mode .global-music-settings label,.dark-mode .import-card,.dark-mode .tool-deck,.dark-mode .mixer,.dark-mode .settings-dialog,.dark-mode .confirm-dialog,.dark-mode .assistant-panel{background:#101c2c;color:var(--ink)}
.dark-mode .score-identity{background:linear-gradient(135deg,#101c2c 0%,#0e1b2b 68%,#0c2945 100%)}
.dark-mode .action-group{border-right-color:#26384d}.dark-mode .ribbon-button i,.dark-mode .tool-tab span{background:#1b2a3d;color:#c5d3e2}
.dark-mode .tool-tabs,.dark-mode .paper-ruler,.dark-mode thead th,.dark-mode .voice-name{background:#101c2c!important}.dark-mode .tool-tab.active{background:#183451}
.dark-mode .solfa-palette button,.dark-mode .duration-palette button,.dark-mode .rhythm-palette button,.dark-mode .special-tool,.dark-mode .expression-palette button,.dark-mode .field-tool select,.dark-mode .lyric-tool textarea,.dark-mode .segmented,.dark-mode .segmented button.active{background:#122237;color:var(--ink)}
.dark-mode .lyrics-actions .button.ghost span{background:#1b3149;color:#d8e6f4}
.dark-mode .library-page-head,.dark-mode .library-command-bar,.dark-mode .library-filters,.dark-mode .library-results,.dark-mode .library-filters input,.dark-mode .library-filters select,.dark-mode .library-organize input,.dark-mode .library-card select{background:#0c1726;color:var(--ink)}.dark-mode .library-card,.dark-mode .library-empty{background:#111e2f}.dark-mode .library-card-meta span,.dark-mode .library-results>header strong{background:#16304b;color:#b9d8f7}.dark-mode .library-catalog div{background:#14263b}.dark-mode .library-entry-button{border-color:#33516e;background:#102b46}.dark-mode .wrap-line-control{background:#101c2c}
.dark-mode .editor-workspace,.dark-mode .wrap-measures{background:#0b1727}.dark-mode .paper-surface,.dark-mode .matrix-wrap,.dark-mode table,.dark-mode .note-cell,.dark-mode .wrap-measure{background:#101c2c}
.dark-mode .note-cell:hover,.dark-mode .note-cell.held{background:#14243a}.dark-mode .note-cell.selected{background:#123454!important}.dark-mode .token:focus,.dark-mode .lyric:focus{background:#172a42}.dark-mode .cell-duration,.dark-mode .notation-button{border-color:#344a64;background:#16273c;color:#c2d0df}
.dark-mode .channel{background:#12243a}.dark-mode .channel[data-channel=METRO]{background:#1b1d3a}.dark-mode .channel .instrument,.dark-mode .mix-button,.dark-mode .settings-grid select,.dark-mode .metadata-grid input,.dark-mode .notation-grid input,.dark-mode .notation-grid select{background:#0d1a2a;color:var(--ink)}
.dark-mode .mixer-transport .button.ghost{border-color:#4a607b;background:#1a2b41;color:#f2f6fb}.dark-mode .mixer-transport .button.ghost img{filter:none}.dark-mode .mixer-transport .button.active{background:var(--yellow);color:#111827}.dark-mode .mixer-transport .button.active img{filter:brightness(0) saturate(100%)}
.dark-mode #mixerPlaybackStatus{color:#c0cede}.dark-mode .assistant-panel header{background:#181c38}.dark-mode .assistant-content button{border-color:#4d416d;background:#201c3b;color:#d5c8ff}.dark-mode .assistant-answer{background:#1d1b35;color:#d4caed}
.dark-mode .project-state.saved{border-color:#2b6b55;background:#0d2c23}.dark-mode .project-state.dirty{border-color:#76562a;background:#30230f}.dark-mode .selection-summary{background:transparent}
.dark-mode body.high-contrast{--muted:#d1dbea;--line:#526b88;--line-strong:#6b84a0}.dark-mode .high-contrast .tool-label,.dark-mode .high-contrast .group-label{color:#dce8f5}

@media(max-width:1250px){
  .action-ribbon{padding-inline:16px}.ribbon-button span{display:none}.ribbon-button{padding-inline:8px}.action-group{padding-right:12px;margin-right:10px}
  .score-identity{grid-template-columns:1.2fr 1fr}.solfa-section{min-width:430px}.tool-panel{padding:10px}.selection-summary{min-width:170px}
  .tool-panel[data-tool-panel="notes"]{flex-wrap:wrap;overflow-x:hidden}.tool-panel[data-tool-panel="notes"] .solfa-section{flex:1}
  .tool-panel[data-tool-panel="lyrics"]{grid-template-columns:185px minmax(0,1fr)}.lyrics-fields{grid-template-columns:minmax(130px,.65fr) minmax(150px,.8fr) minmax(220px,1.4fr)}.lyrics-actions .button{font-size:11px}
}
@media(max-width:900px){
  .menu-button{display:grid}.project-state{display:none}.assistant-button{padding-inline:10px}.assistant-button:not(:focus) span+*{display:none}
  .score-identity{grid-template-columns:1fr}.credit-fields{flex-wrap:wrap}.credit-fields label{min-width:160px}.global-music-settings{grid-template-columns:repeat(2,1fr)}
  .tool-panel{min-height:150px}.editor-workspace{padding:11px}.paper-ruler small{display:none}.transport{bottom:5px;flex-wrap:wrap}.transport-spacer{display:none}.transport-status{margin-left:auto}.transpose{margin-left:auto}
  .tool-panel[data-tool-panel="lyrics"]{grid-template-columns:1fr;gap:10px}.tool-panel[data-tool-panel="lyrics"] .selection-summary{min-height:48px;border-right:0;border-bottom:1px solid var(--line);padding:2px 2px 10px}.lyrics-fields{grid-template-columns:1fr 1fr}.lyrics-fields .lyric-tool{grid-column:1/-1}.lyrics-actions{flex-wrap:wrap}
  .library-entry-button{padding-inline:8px}.library-layout{grid-template-columns:1fr}.library-filters{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}.library-filter-head,.library-organize{grid-column:1/-1}.library-command-bar{flex-wrap:wrap}.library-bulk-button{white-space:normal}#libraryStatus{width:100%;margin:4px 0 0}.wrap-measures{grid-template-columns:1fr}
  .notation-grid{grid-template-columns:1fr}
}
@media(max-width:620px){
  .brand-row{padding-inline:10px}.brand-logo{width:36px;height:36px}.brand strong{font-size:15px}.brand small{font-size:8px}.assistant-button{min-width:38px;padding:0}.assistant-button span{margin:0}
  .action-ribbon{min-height:61px;padding-inline:8px}.action-group{padding-top:14px}.group-label{top:3px}.ribbon-button{min-height:36px}.ribbon-button i{min-width:27px}.export-group{margin-left:0}
  .app-shell{padding:10px 8px 38px}.score-identity{padding:17px 15px}.title-input{font-size:31px}.credit-fields{display:grid;grid-template-columns:1fr 1fr}.global-music-settings{grid-template-columns:1fr 1fr}.global-music-settings label{min-width:0}
  .import-card summary small{display:none}.metadata-grid{grid-template-columns:1fr}.tool-tabs{gap:1px}.tool-tab{min-width:46px;justify-content:center;padding:6px}.tool-tab span{width:31px;height:31px}.tool-tab{font-size:0}
  .tool-panel{align-items:flex-start;min-height:162px}.tool-panel[data-tool-panel="notes"]{display:grid;grid-template-columns:minmax(0,1fr);gap:9px}.tool-panel[data-tool-panel="notes"] .selection-summary,.tool-panel[data-tool-panel="notes"] .tool-section{position:static;width:100%;min-width:0;border-right:0;border-bottom:1px solid var(--line);padding:8px}.tool-panel[data-tool-panel="notes"] .special-section{border-bottom:0}.solfa-section{min-width:385px}.solfa-keyboard{margin-inline:auto}.solfa-palette button{width:50px}.gap-dr{left:53px}.gap-rm{left:108px}.gap-fs{left:218px}.gap-sl{left:273px}.gap-lt{left:328px}.duration-palette,.rhythm-palette{flex-wrap:wrap}.tool-section{padding-inline:8px}
  .tool-panel[data-tool-panel="lyrics"]{padding:11px}.lyrics-fields{grid-template-columns:1fr}.lyrics-fields .lyric-tool{grid-column:auto}.lyrics-actions{display:grid;grid-template-columns:1fr 1fr}.lyrics-actions .button{white-space:normal}.lyrics-actions .button.primary{grid-column:1/-1}
  .editor-heading h2{font-size:18px}.editor-view-actions span{display:none}.paper-ruler{justify-content:center}.matrix-wrap{max-height:53vh}.voice-name{width:93px;min-width:93px}.note-cell{min-width:100px}
  .transport{border-radius:12px;padding:8px}.play-position{display:none}.transport-status{display:none}.transpose{width:calc(100% - 96px);margin:0}.transpose select{width:100%}.transport-apply{margin-left:auto}
  .mixer{padding-inline:12px}.mixer-transport .transport-button span{display:none}.app-information{align-items:flex-start;padding:14px 4px}
  .library-entry-button{font-size:0}.library-entry-button>span{font-size:16px}.library-entry-button small{font-size:9px}.library-page-head{align-items:flex-start;padding:18px}.library-page-head h1{font-size:26px}.library-page-head .button{padding-inline:9px;font-size:0}.library-page-head .button:before{content:"←";font-size:16px}.library-command-bar{align-items:stretch}.library-command-bar .button,.library-bulk-button{width:100%}#libraryStatus{text-align:center}.library-filters{grid-template-columns:1fr}.library-filter-head,.library-organize{grid-column:auto}.library-results{padding:13px}.library-grid{grid-template-columns:1fr}.library-catalog{grid-template-columns:1fr 1fr}.wrap-line-control{font-size:0}.wrap-line-control select{font-size:10px}
}

/* Passe de lisibilité et boîtes à outils professionnelles. */
.workspace-navigation{display:flex;align-items:center;gap:5px}.workspace-nav{min-height:36px;padding:6px 10px;background:#fff;font-size:12px}.workspace-nav.active{border-color:#b9d8f7;background:var(--blue-soft);color:var(--blue)}.workspace-nav small{display:grid;place-items:center;min-width:20px;height:20px;border-radius:999px;background:var(--blue);color:#fff;font-size:10px}
.tool-panel[data-tool-panel="notes"]{flex-wrap:wrap;overflow:visible}.tool-panel[data-tool-panel="notes"] .duration-toolbox{flex:1}
.group-label,.tool-label,.selection-summary small,.credit-fields label,.global-music-settings label{font-size:10px}.ribbon-button,.tool-tab{font-size:13px}.selection-summary strong{font-size:13px}.solfa-palette small,.duration-palette small,.rhythm-palette small,.special-tool span{font-size:10px}.field-tool,.lyric-tool{font-size:10px}.field-tool select,.lyric-tool textarea{font-size:12px}.track-name-input,.measure-chip,.paper-ruler,.wrap-line-control{font-size:10px}.cell-duration{font-size:9px}.lyric{font-size:11px}.hint,.tool-help{font-size:12px}
.duration-toolbox{min-width:615px}.duration-palette.expanded{display:grid;grid-template-columns:repeat(7,minmax(62px,1fr));gap:5px}.duration-palette.expanded button{min-width:62px;height:67px;padding:5px}.duration-palette.expanded button:nth-last-child(-n+2) b{font-size:17px}.augmentation-tools{display:flex;align-items:center;gap:8px}.augmentation-tools>span{color:var(--muted);font-size:10px;font-weight:800}.duration-dots button{white-space:nowrap}.duration-dots b{font-family:Georgia,serif;font-size:16px}.augmentation-tools output{min-width:155px;color:var(--blue);font-size:11px;font-weight:800}
.expression-panel{align-items:stretch;overflow:visible}.expression-group{display:grid;align-content:start;gap:7px;min-width:170px;border:1px solid var(--line);border-radius:11px;padding:10px 11px}.expression-group legend{padding-inline:4px;color:var(--blue);font-size:10px;font-weight:850;letter-spacing:.07em;text-transform:uppercase}.expression-group label{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--muted);font-size:11px;font-weight:700}.expression-group input:not([type=checkbox]),.expression-group select{min-width:100px;height:32px;border:1px solid var(--line);border-radius:7px;padding:5px 7px;background:#fff;color:var(--ink)}.expression-group input[type=checkbox]{accent-color:var(--blue)}.direction-group{grid-template-columns:repeat(2,minmax(130px,1fr));min-width:355px}.direction-group legend{grid-column:1/-1}.expression-actions{display:flex;align-items:end;gap:7px}.notation-button{font-size:16px;font-weight:800}
.library-result-tools{display:flex;align-items:center;gap:9px}.pinned-collections{display:grid;gap:7px;border-top:1px solid var(--line);padding-top:11px}.pinned-collections>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:6px}.pinned-collections strong{font-size:10px}.pinned-collections #libraryPinnedCollections{display:flex;flex-wrap:wrap;gap:5px}.pinned-collection{display:inline-flex;align-items:center;gap:4px;border:1px solid #c8ddf4;border-radius:999px;padding:5px 7px;background:var(--blue-soft);color:var(--blue-2);font-size:10px;font-weight:750;cursor:pointer}.pinned-collection .unpin{border:0;padding:0;background:transparent;color:var(--red);cursor:pointer}.library-grid.list-view{display:grid;grid-template-columns:1fr}.library-grid.list-view .library-card{grid-template-columns:minmax(250px,1.5fr) auto minmax(280px,1fr) minmax(160px,.55fr) auto;align-items:center}.library-grid.list-view .library-card .library-catalog{grid-template-columns:repeat(3,minmax(70px,1fr))}.library-grid.list-view .library-card>label{min-width:150px}.library-grid.list-view .library-card-actions{min-width:160px}.library-card header p,.library-card-meta span,.library-catalog dd,.library-card label,.library-catalog dt,#libraryStatus,.library-results>header strong,.text-button,.library-filters>label,.library-organize label{font-size:10px}
.dark-mode .workspace-nav,.dark-mode .expression-group input:not([type=checkbox]),.dark-mode .expression-group select{background:#101c2c;color:var(--ink)}.dark-mode .workspace-nav.active{background:#173451}.dark-mode .pinned-collection{border-color:#33516e;background:#102b46;color:#c7e3ff}
.mixer-channels{justify-content:flex-start}.channel{flex-basis:108px;min-height:285px}.channel-name span,.channel .instrument,.volume-label{font-size:10px}.pan-label{display:grid;width:100%;gap:2px;color:var(--muted);font-size:9px;font-weight:750}.pan-label span{display:flex;justify-content:space-between}.pan-label input{width:100%;accent-color:var(--blue)}.mix-switches{display:flex;gap:5px}.vu{top:125px;height:112px}.master-effects{display:flex;align-items:center;justify-content:flex-end;gap:18px;border-top:1px solid var(--line);padding:13px 4px 16px}.audio-quality{display:grid;margin-right:auto}.audio-quality strong{font-size:11px}.audio-quality span{color:var(--muted);font-size:10px}.effect-knob{display:grid;grid-template-columns:1fr auto;align-items:center;min-width:150px;gap:4px;color:var(--muted);font-size:10px;font-weight:750}.effect-knob output{color:var(--blue);font-weight:850}.effect-knob input{grid-column:1/-1;width:100%;accent-color:var(--blue)}.master-knob{min-width:180px}.dark-mode .master-effects{border-color:var(--line)}.dark-mode .pan-label input,.dark-mode .effect-knob input{color-scheme:dark}

@media(max-width:1250px){
  .workspace-navigation .workspace-nav{font-size:0}.workspace-navigation .inline-mask-icon{width:21px;height:21px}.workspace-navigation small{font-size:10px}
  .duration-toolbox{min-width:570px}.duration-palette.expanded{grid-template-columns:repeat(4,minmax(70px,1fr))}.augmentation-tools{flex-wrap:wrap}
  .library-grid.list-view .library-card{grid-template-columns:minmax(220px,1fr) auto minmax(230px,1fr) auto}.library-grid.list-view .library-card>label{display:none}
}
@media(max-width:900px){
  .expression-panel{overflow-x:auto;flex-wrap:nowrap!important}.direction-group{min-width:355px}
  .library-grid.list-view .library-card{grid-template-columns:1fr auto}.library-grid.list-view .library-card .library-catalog,.library-grid.list-view .library-card>label{display:none}.library-grid.list-view .library-card-actions{grid-column:1/-1}
  .master-effects{align-items:stretch;flex-wrap:wrap}.audio-quality{width:100%}.effect-knob{flex:1}
}
@media(max-width:620px){
  .workspace-navigation{margin-left:auto}.workspace-navigation .workspace-nav{min-width:38px;padding:6px}.workspace-navigation small{display:none}
  .tool-tabs{justify-content:flex-start}.tool-tab{min-width:48px;padding:6px 9px;font-size:0}.tool-tab span.tool-tab-icon{width:26px;height:26px;-webkit-mask-size:22px 22px;mask-size:22px 22px}
  .duration-toolbox{min-width:0}.duration-palette.expanded{grid-template-columns:repeat(4,minmax(64px,1fr))}.augmentation-tools{align-items:stretch;flex-direction:column}.duration-dots{overflow-x:auto}.augmentation-tools output{min-width:0}
}

/* Lisibilité adaptable, panneau Notes et rythme hiérarchisé, et mode Présentation. */
:root{--control-text-size:13px;--support-text-size:12px;--editor-lyric-size:14px}
html[data-text-size="large"]{--control-text-size:14.5px;--support-text-size:13.5px}
html[data-text-size="xlarge"]{--control-text-size:16px;--support-text-size:15px}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important}
select,option{font-size:var(--control-text-size)!important;line-height:1.35}.marker{font-size:20px!important}
.cell-duration{max-width:94px;min-height:30px;padding:5px 4px;font-size:var(--control-text-size)!important}
.lyric{min-height:34px;padding:7px 4px;font-size:var(--editor-lyric-size)!important;line-height:1.35}
.wrap-measure .lyric{font-size:var(--editor-lyric-size)!important}
.field-tool,.lyric-tool,.settings-grid label,.library-filters>label,.library-organize label,.expression-group label{font-size:var(--support-text-size)}
.field-tool select,.lyric-tool textarea,.settings-grid select,.library-filters input,.library-filters select,.library-organize input,.library-card select,.expression-group input:not([type=checkbox]),.expression-group select{font-size:var(--control-text-size)!important}
.track-name-input,.measure-chip,.paper-ruler,.wrap-line-control,.hint,.tool-help,.library-card header p,.library-card-meta span,.library-catalog dd,.library-card label,.library-catalog dt,#libraryStatus,.library-results>header strong,.text-button{font-size:var(--support-text-size)!important}
.range-setting{display:grid;grid-template-columns:minmax(160px,1fr) 54px;align-items:center;gap:10px}.range-setting input{width:100%;accent-color:var(--blue)}.range-setting output{color:var(--blue);font-size:12px;font-weight:850;text-align:right}
.notation-pen-icon{display:block;width:15px;height:15px;background:currentColor;-webkit-mask:url('/assets/action-expression-pen.svg') center/contain no-repeat;mask:url('/assets/action-expression-pen.svg') center/contain no-repeat}

.tool-panel.notes-workflow{display:grid!important;grid-template-columns:190px minmax(430px,.9fr) minmax(690px,1.5fr);align-items:stretch;gap:10px;min-height:218px;padding:12px;overflow-x:auto}
.tool-panel.notes-workflow:not(.active){display:none!important}
.notes-workflow .active-cell-context{min-width:0;border:0;border-radius:11px;padding:14px;background:#f3f8fe}
.notes-workflow .active-cell-context strong{max-width:165px;font-size:13px}
.workflow-group{min-width:0;border:1px solid var(--line);border-radius:12px;padding:10px 11px;background:#fbfdff}
.workflow-group>.tool-label{display:block;margin-bottom:8px;color:var(--ink-2);font-size:12px;letter-spacing:0;text-transform:none}
.tool-subgroup{display:grid;align-content:start;gap:5px;min-width:0}.subgroup-label{color:var(--muted);font-size:11px;font-weight:750}
.pitch-tools{display:grid;grid-template-columns:minmax(390px,1fr) 126px;align-items:end;gap:10px}
.pitch-workflow .solfa-section{min-width:0}.pitch-workflow .solfa-keyboard{padding-top:27px}.pitch-workflow .solfa-palette{gap:4px}.pitch-workflow .solfa-palette button{width:50px;height:59px;border-radius:9px}.pitch-workflow .solfa-palette strong{font-size:23px}.pitch-workflow .solfa-palette small{font-size:9px}.pitch-workflow .gap-dr{left:53px}.pitch-workflow .gap-rm{left:107px}.pitch-workflow .gap-fs{left:215px}.pitch-workflow .gap-sl{left:269px}.pitch-workflow .gap-lt{left:323px}
.octave-buttons{display:grid;grid-template-columns:repeat(3,1fr)}.octave-buttons button{display:grid;place-items:center;gap:0;min-width:0;padding:5px 3px}.octave-buttons button strong{font-size:12px}.octave-buttons button small{font-size:8px;font-weight:650}
.rhythm-workflow{display:grid;grid-template-rows:auto 1fr auto}.rhythm-tools{display:grid;grid-template-columns:112px minmax(390px,1fr) minmax(200px,.6fr);align-items:end;gap:8px}.duration-toolbox{min-width:0}.duration-palette.expanded{display:grid;grid-template-columns:repeat(7,minmax(49px,1fr));gap:4px}.duration-palette.expanded button{display:grid;grid-template-rows:25px auto auto;place-items:center;min-width:0;height:68px;padding:4px}.duration-palette.expanded b{font-size:20px}.duration-palette.expanded small{font-size:9px}.duration-palette.expanded em{color:var(--blue);font-size:8px;font-style:normal;font-weight:850}.cell-type-selector{display:grid;grid-template-columns:1fr}.cell-type-selector button{font-size:11px}.pointage-group{align-self:stretch}.duration-dots{display:grid;grid-template-columns:repeat(3,1fr)}.duration-dots button{min-width:0;padding-inline:5px;white-space:nowrap}.duration-dots b{font-family:Georgia,serif;font-size:15px}
.notes-workflow .rhythm-section{grid-column:1/3;min-width:0}.notes-workflow .rhythm-palette button{width:50px;height:48px}.notes-workflow .rhythm-palette strong{font-size:19px}.notes-workflow .hold-tool{grid-column:3;align-self:end;justify-content:center;min-height:48px}.notes-workflow .hold-tool strong{font-size:22px}.notes-workflow .hold-tool span{font-size:10px}.rhythm-summary{align-self:end;justify-self:end;margin-top:7px;border-radius:999px;padding:7px 11px;background:var(--blue-soft);color:var(--blue-2);font-size:11px;font-weight:850}
.solfa-palette button,.duration-palette button,.rhythm-palette button,.segmented button,.special-tool{box-shadow:none;transition:border-color .12s,background .12s,color .12s}.solfa-palette button.active,.duration-palette button.active,.rhythm-palette button.active,.segmented button.active,.special-tool.active{border-color:var(--blue);background:var(--blue-soft);color:var(--blue-2);box-shadow:none}

.presentation-view .action-ribbon{display:none}.presentation-page{min-height:calc(100vh - 65px);padding:14px;background:#081322}.presentation-toolbar{position:sticky;z-index:20;top:0;display:grid;grid-template-columns:minmax(240px,1fr) auto minmax(240px,1fr);align-items:center;gap:18px;border:1px solid #29415f;border-radius:14px;padding:12px 16px;background:rgba(11,25,43,.96);color:#fff;box-shadow:0 12px 36px rgba(0,0,0,.28);backdrop-filter:blur(12px)}.presentation-title h1{max-width:520px;margin:0;overflow:hidden;font-family:Georgia,serif;font-size:24px;text-overflow:ellipsis;white-space:nowrap}.presentation-title>span{color:#b9c9dc;font-size:11px}.presentation-transport,.presentation-toolbar-actions{display:flex;align-items:center;gap:7px}.presentation-toolbar-actions{justify-content:flex-end}.presentation-toolbar .button{min-height:39px;border-color:#52677f;background:#1a2d44;color:#fff}.presentation-toolbar .button.primary{border-color:var(--yellow);background:var(--yellow);color:#101927}.presentation-toolbar .button.active{border-color:var(--yellow);background:var(--yellow);color:#101927}.presentation-toolbar .button img{width:16px;height:16px;filter:brightness(0) invert(1)}.presentation-toolbar .button.primary img,.presentation-toolbar .button.active img{filter:brightness(0)}
.presentation-layout{display:grid;grid-template-columns:245px minmax(0,1fr);align-items:start;gap:13px;margin-top:13px}.presentation-settings{position:sticky;top:92px;display:grid;gap:15px;border:1px solid #29415f;border-radius:13px;padding:16px;background:#101f32;color:#eaf2fb;transition:.2s}.presentation-settings.collapsed{display:none}.presentation-settings>label{display:grid;gap:6px;color:#b9c9dc;font-size:12px;font-weight:750}.presentation-settings .switch-row{display:flex;align-items:center;gap:8px}.presentation-settings select{width:100%;border:1px solid #405570;border-radius:8px;padding:8px;background:#0b1727;color:#fff}.presentation-track-choices{display:grid;gap:6px}.presentation-track-choices label{display:grid;grid-template-columns:auto 30px 1fr;align-items:center;gap:7px;border:1px solid #2d4561;border-radius:8px;padding:7px 8px;color:#cbd8e7;font-size:11px}.presentation-track-choices label span{color:var(--yellow);font-family:Georgia,serif;font-size:15px;font-weight:850}
.presentation-stage{height:calc(100vh - 165px);overflow:auto;scroll-snap-type:y proximity;border-radius:14px;padding:16px;background:#050a12;color:#fff;--presentation-lyric-size:46px}.presentation-stage.theme-light{background:#f4f1e9;color:#152334}.presentation-stage.theme-blue{background:linear-gradient(145deg,#001d3d,#004d9d);color:#fff}.presentation-screen{min-height:calc(100vh - 205px);scroll-snap-align:center;border:1px solid rgba(255,255,255,.18);border-radius:14px;padding:18px;background:rgba(255,255,255,.045);box-shadow:0 18px 50px rgba(0,0,0,.2)}.theme-light .presentation-screen{border-color:#c9d2dc;background:#fff;box-shadow:0 12px 32px rgba(33,46,60,.12)}.presentation-screen+ .presentation-screen{margin-top:18px}.presentation-screen>header{display:flex;align-items:center;justify-content:space-between;min-height:32px;border-bottom:1px solid currentColor;padding-bottom:8px;opacity:.68;font-size:12px;font-weight:800;text-transform:uppercase}.presentation-track-row{display:grid;grid-template-columns:110px minmax(0,1fr);align-items:stretch;border-bottom:1px solid rgba(255,255,255,.14)}.theme-light .presentation-track-row{border-color:#dce3ea}.presentation-track-row:last-child{border-bottom:0}.presentation-track-name{display:grid;align-content:center;border-right:1px solid rgba(255,255,255,.18);padding:15px 12px}.theme-light .presentation-track-name{border-color:#d0d9e2}.presentation-track-name strong{color:var(--yellow);font-family:Georgia,serif;font-size:28px}.theme-light .presentation-track-name strong{color:var(--blue)}.presentation-track-name span{overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap;opacity:.72}.presentation-cells{display:grid;grid-auto-columns:minmax(88px,1fr);grid-auto-flow:column}.presentation-cell{display:grid;align-content:center;min-width:88px;border-left:1px solid rgba(255,255,255,.1);padding:12px 8px;text-align:center}.theme-light .presentation-cell{border-color:#e4e9ef}.presentation-cell.barline{border-left:3px solid currentColor}.presentation-note{display:flex;justify-content:center;gap:8px;font-family:Georgia,serif;font-size:32px;font-weight:850}.presentation-note i{font-style:normal;opacity:.72}.presentation-lyrics{display:grid;gap:3px;margin-top:8px}.presentation-lyric{font-family:Georgia,serif;font-size:var(--presentation-lyric-size);font-weight:650;line-height:1.05;overflow-wrap:anywhere}.presentation-lyric small{margin-right:5px;color:var(--yellow);font-family:system-ui,sans-serif;font-size:.34em}.theme-light .presentation-lyric small{color:var(--blue)}.presentation-stage.hide-notes .presentation-note{display:none}.presentation-stage.hide-lyrics .presentation-lyrics{display:none}.presentation-cell.playing{border-radius:8px;background:rgba(253,180,21,.22)!important;box-shadow:inset 0 -4px var(--yellow)}.presentation-cell.playing .presentation-note,.presentation-cell.playing .presentation-lyrics{color:inherit}.presentation-empty{display:grid;place-items:center;min-height:50vh;font-size:24px}
.presentation-page:fullscreen{overflow:hidden;padding:10px;background:#081322}.presentation-page:fullscreen .presentation-toolbar{top:0}.presentation-page:fullscreen .presentation-stage{height:calc(100vh - 104px)}.presentation-page:fullscreen .presentation-layout{grid-template-columns:1fr}.presentation-page:fullscreen .presentation-settings{position:fixed;z-index:30;left:14px;top:92px;width:250px;box-shadow:0 20px 70px #000}.presentation-page:fullscreen .presentation-settings.collapsed{display:none}
.dark-mode .notes-workflow .active-cell-context,.dark-mode .workflow-group{border-color:var(--line);background:#101f31}.dark-mode .presentation-toolbar{background:rgba(8,18,31,.97)}

@media(max-width:1320px){
  .tool-panel.notes-workflow{grid-template-columns:175px minmax(420px,.8fr) minmax(600px,1.3fr)}
  .rhythm-tools{grid-template-columns:100px minmax(340px,1fr) minmax(180px,.55fr)}
  .duration-palette.expanded{grid-template-columns:repeat(4,minmax(54px,1fr))}
  .presentation-toolbar{grid-template-columns:1fr auto}.presentation-toolbar-actions{grid-column:1/-1;justify-content:center}
}
@media(max-width:920px){
  .tool-panel.notes-workflow{grid-template-columns:1fr;max-height:none}.notes-workflow .active-cell-context{min-height:60px}.pitch-tools{grid-template-columns:minmax(390px,1fr) 130px}.rhythm-tools{grid-template-columns:110px minmax(380px,1fr) minmax(190px,.6fr)}
  .presentation-layout{grid-template-columns:1fr}.presentation-settings{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}.presentation-toolbar{grid-template-columns:1fr}.presentation-title{text-align:center}.presentation-transport,.presentation-toolbar-actions{justify-content:center}.presentation-track-row{grid-template-columns:82px 1fr}.presentation-track-name{padding-inline:8px}.presentation-track-name strong{font-size:22px}
}
@media(max-width:620px){
  .tool-panel.notes-workflow{display:grid!important}.pitch-tools,.rhythm-tools{grid-template-columns:1fr;min-width:390px}.notes-workflow .rhythm-section,.notes-workflow .hold-tool{grid-column:1}.duration-palette.expanded{grid-template-columns:repeat(4,minmax(66px,1fr))}.rhythm-summary{justify-self:start}
  .presentation-page{padding:7px}.presentation-settings{grid-template-columns:1fr}.presentation-toolbar .button span{display:none}.presentation-stage{padding:8px}.presentation-screen{padding:8px}.presentation-track-row{grid-template-columns:62px minmax(0,1fr)}.presentation-track-name span{display:none}.presentation-cells{overflow-x:auto}.presentation-cell{min-width:100px}.presentation-lyric{font-size:min(var(--presentation-lyric-size),40px)}
}
.presentation-cells{grid-auto-columns:minmax(120px,1fr);overflow-x:auto}
.presentation-cell{min-width:120px}
.presentation-lyric{position:relative;z-index:1;overflow-wrap:normal;white-space:nowrap}

/* Presentation workspace: stable stage, shared lyrics, rehearsal mixer and fullscreen */
.presentation-page{position:relative;inline-size:100%;max-inline-size:none;box-sizing:border-box}
.presentation-layout{grid-template-columns:minmax(280px,320px) minmax(0,1fr);inline-size:100%;min-inline-size:0}
.presentation-layout.config-collapsed,.presentation-page.config-collapsed .presentation-layout{grid-template-columns:minmax(0,1fr)}
.presentation-layout.config-collapsed .presentation-stage,.presentation-page.config-collapsed .presentation-stage{grid-column:1/-1}
.presentation-settings{max-height:calc(100vh - 120px);overflow:auto;align-content:start}
.presentation-settings>details{border:1px solid #2d4561;border-radius:10px;background:#0c1929}
.presentation-settings>details>summary{padding:11px 12px;color:#f4f8fd;font-size:12px;font-weight:850;cursor:pointer}
.presentation-settings-group{display:grid;gap:12px;border-top:1px solid #2d4561;padding:12px}
.presentation-setting-help{margin:0;color:#9fb2c9;font-size:11px;line-height:1.45}
.presentation-stage{inline-size:100%;min-inline-size:0;box-sizing:border-box;scroll-behavior:smooth;scroll-padding-block:18%}
.presentation-screen{display:grid;grid-template-rows:auto minmax(0,1fr) auto;align-content:center;justify-content:stretch;inline-size:100%;min-inline-size:0;box-sizing:border-box}
.presentation-screen>header em{margin-left:auto;padding-left:16px;font-style:normal}
.presentation-score-body{align-self:center;inline-size:100%;min-inline-size:0;overflow-x:auto;overscroll-behavior-inline:contain}
.presentation-track-row,.presentation-global-lyrics{grid-template-columns:110px minmax(0,1fr);inline-size:100%;min-inline-size:0}
.presentation-cells{min-inline-size:0;justify-content:center;overflow:visible}
.presentation-global-lyrics{display:grid;align-items:stretch;border-top:2px solid rgba(117,216,255,.58);border-bottom:1px solid rgba(255,255,255,.14)}
.theme-light .presentation-global-lyrics{border-color:rgba(0,102,207,.38)}
.presentation-lyrics-label{display:grid;align-content:center;border-right:1px solid rgba(255,255,255,.18);padding:14px 12px;color:#75d8ff}
.presentation-lyrics-label strong{font-size:12px;text-transform:uppercase;letter-spacing:.08em}
.presentation-lyrics-label span{font-size:11px;opacity:.78}
.theme-light .presentation-lyrics-label{border-color:#d0d9e2;color:#0057b8}
.presentation-lyric-cells{color:#75d8ff}
.theme-light .presentation-lyric-cells{color:#0057b8}
.presentation-lyric{font-weight:760}
.presentation-lyric small{display:block;margin:0 0 3px;color:var(--yellow);font-size:.28em;letter-spacing:.05em}
.presentation-lyric-empty{opacity:0}
.presentation-stage.hide-lyrics .presentation-global-lyrics{display:none}
.presentation-next-cue{align-self:end;display:grid;gap:7px;margin-top:14px;border-top:1px solid rgba(255,255,255,.19);padding:10px 3px 0;color:#aabbd0}
.presentation-next-cue>span{color:var(--yellow);font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.08em}
.presentation-next-cue>div{display:flex;flex-wrap:wrap;gap:7px 12px;font-family:Georgia,serif;font-size:16px}
.presentation-next-cue i{border-left:1px solid currentColor}
.theme-light .presentation-next-cue{border-color:#d2dce6;color:#52657a}
.presentation-track-choices label{grid-template-columns:auto 30px minmax(0,1fr) auto}
.presentation-track-choices label b{overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}
.presentation-track-choices label em{color:#75d8ff;font-size:8px;font-style:normal;font-weight:850}
.presentation-track-choices label.muted{opacity:.62}
.presentation-verse-choices{display:flex;flex-wrap:wrap;gap:6px}
.presentation-verse-choices label{display:flex;align-items:center;gap:5px;border:1px solid #2d4561;border-radius:999px;padding:7px 9px;color:#dce8f5;font-size:11px;font-weight:750}
.presentation-verse-program{display:grid;gap:6px}
.presentation-verse-program>small{color:#9fb2c9;font-weight:800}
.presentation-verse-program ol{display:grid;gap:5px;margin:0;padding:0;list-style:none}
.presentation-verse-program li{display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:7px;border:1px solid #2d4561;border-radius:8px;padding:5px 7px;color:#dbe6f2;font-size:11px}
.presentation-verse-program li.active{border-color:var(--yellow);box-shadow:inset 3px 0 var(--yellow)}
.presentation-verse-program li>strong{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#173452;color:#75d8ff}
.verse-order-actions{display:flex;gap:3px}
.verse-order-actions button{display:grid;place-items:center;width:25px;height:25px;border:1px solid #405570;border-radius:6px;background:#10253d;color:#fff;cursor:pointer}
.verse-order-actions button:disabled{opacity:.3}
.presentation-program-actions{display:flex;gap:6px}
.presentation-program-actions .button{flex:1;min-height:33px;padding:6px;font-size:10px}
.presentation-audio-status{display:block;border-radius:7px;padding:7px;background:#0a2238;color:#75d8ff;font-size:10px;line-height:1.35}
.presentation-mixer-channels{display:grid;gap:7px}
.presentation-mixer-channel{position:relative;display:grid;grid-template-columns:54px minmax(0,1fr) 42px;align-items:center;gap:6px;border:1px solid #2d4561;border-radius:9px;padding:8px 15px 8px 8px;background:#102238}
.presentation-mixer-channel.muted{opacity:.55}
.presentation-mixer-channel.soloed{border-color:var(--yellow);box-shadow:inset 3px 0 var(--yellow)}
.presentation-mixer-channel .channel-name strong{color:var(--yellow);font-size:15px}
.presentation-mixer-channel .channel-name span{max-width:52px;color:#b9c9dc;font-size:8px}
.presentation-mixer-channel .instrument{grid-column:2/-1;width:100%;border:1px solid #405570;border-radius:6px;padding:5px;background:#0b1727;color:#fff;font-size:10px}
.presentation-mixer-channel .pan-label{grid-column:1/-1;display:grid;gap:3px;color:#aebfd2;font-size:9px}
.presentation-mixer-channel .pan-label span{display:flex;justify-content:space-between}
.presentation-mixer-channel .pan-label input{width:100%;accent-color:#75d8ff}
.presentation-mixer-channel .volume-label{grid-column:1/3;display:grid;grid-template-columns:44px 1fr;height:auto;align-items:center;color:#aebfd2;font-size:9px}
.presentation-mixer-channel .volume-label input{width:100%;height:auto;appearance:auto;direction:ltr;writing-mode:horizontal-tb;accent-color:var(--blue)}
.presentation-mixer-channel .mix-switches{grid-column:3;grid-row:1;display:flex;gap:3px}
.presentation-mixer-channel .mix-button{width:21px;height:21px;border-color:#405570;background:#172b42;color:#fff}
.presentation-mixer-channel .mix-button[aria-pressed=true]{background:var(--yellow);color:#111927}
.presentation-mixer-channel .vu{right:5px;top:8px;width:5px;height:calc(100% - 16px);background:#253b53}
.presentation-master-effects{display:grid;gap:9px;border-top:1px solid #2d4561;padding-top:10px}
.presentation-master-effects label{display:grid;gap:4px;color:#b9c9dc;font-size:10px;font-weight:750}
.presentation-master-effects label span{display:flex;justify-content:space-between}
.presentation-master-effects output{color:#75d8ff}
.presentation-master-effects input{width:100%;accent-color:var(--blue)}
.presentation-brand{display:none}
.presentation-hover-handle{display:none}
.presentation-end-card{position:fixed;z-index:90;inset:0;display:grid;place-items:center;padding:24px;background:rgba(2,9,20,.78);backdrop-filter:blur(12px);opacity:0;transition:opacity .24s ease}
.presentation-end-card[hidden]{display:none}
.presentation-end-card.visible{opacity:1}
.presentation-end-panel{position:relative;display:grid;justify-items:center;gap:20px;width:min(430px,calc(100vw - 32px));border:1px solid rgba(117,216,255,.28);border-radius:26px;padding:38px 34px 32px;background:linear-gradient(155deg,#0a1d34,#07111f);box-shadow:0 32px 100px rgba(0,0,0,.55);color:#fff;text-align:center;transform:translateY(14px) scale(.98);transition:transform .28s ease}
.presentation-end-card.visible .presentation-end-panel{transform:none}
.presentation-end-panel>img{width:156px;height:156px;border-radius:22px;box-shadow:0 18px 42px rgba(0,102,207,.32)}
.presentation-end-panel p{margin:0;font-family:Georgia,serif;font-size:22px;font-weight:750;line-height:1.25}
.presentation-end-panel .button{min-height:48px;padding-inline:20px}
.presentation-end-panel .button img{width:18px;height:18px}
.presentation-end-close{position:absolute;top:14px;right:14px;display:grid;place-items:center;width:34px;height:34px;border:1px solid #36506d;border-radius:999px;background:#142940;color:#fff;font-size:22px;line-height:1}

.presentation-page:fullscreen{inline-size:100vw;block-size:100vh;padding:0}
.presentation-page:fullscreen .presentation-layout{block-size:100vh;margin:0;grid-template-columns:minmax(0,1fr)}
.presentation-page:fullscreen .presentation-stage{block-size:100vh;border-radius:0;padding:54px 22px 38px}
.presentation-page:fullscreen .presentation-screen{min-block-size:calc(100vh - 92px);border-color:transparent;background:transparent;box-shadow:none}
.presentation-page:fullscreen .presentation-toolbar{position:fixed;z-index:50;top:0;left:0;right:0;grid-template-columns:minmax(240px,1fr) auto minmax(240px,1fr);border:0;border-radius:0;padding:12px 22px;background:transparent;box-shadow:none;pointer-events:auto;transition:background .2s}
.presentation-page:fullscreen .presentation-toolbar:hover,.presentation-page:fullscreen .presentation-toolbar:focus-within{background:linear-gradient(to bottom,rgba(5,10,18,.9),transparent)}
.presentation-page:fullscreen .presentation-toolbar .presentation-title .eyebrow,.presentation-page:fullscreen .presentation-toolbar .presentation-title>span{display:none}
.presentation-page:fullscreen .presentation-toolbar .presentation-title{grid-column:1/-1;grid-row:1;text-align:center;pointer-events:none}
.presentation-page:fullscreen .presentation-toolbar .presentation-title h1{max-width:min(54vw,900px);margin:auto;font-size:22px}
.presentation-page:fullscreen .presentation-transport{grid-column:2;grid-row:1}
.presentation-page:fullscreen .presentation-toolbar-actions{grid-column:3;grid-row:1}
.presentation-page:fullscreen .presentation-transport,.presentation-page:fullscreen .presentation-toolbar-actions{opacity:0;transform:translateY(-8px);pointer-events:none;transition:opacity .2s,transform .2s}
.presentation-page:fullscreen .presentation-toolbar:hover .presentation-transport,.presentation-page:fullscreen .presentation-toolbar:hover .presentation-toolbar-actions,.presentation-page:fullscreen .presentation-toolbar:focus-within .presentation-transport,.presentation-page:fullscreen .presentation-toolbar:focus-within .presentation-toolbar-actions{opacity:1;transform:none;pointer-events:auto}
.presentation-page:fullscreen .presentation-hover-handle{position:absolute;top:10px;right:12px;display:grid;place-items:center;width:34px;height:24px;border:1px solid rgba(255,255,255,.25);border-radius:999px;background:rgba(10,24,40,.5);color:#fff;opacity:.42;cursor:pointer}
.presentation-page:fullscreen .presentation-toolbar:hover .presentation-hover-handle,.presentation-page:fullscreen .presentation-hover-handle:focus-visible{opacity:1}
.presentation-page:fullscreen .presentation-settings{position:fixed;z-index:60;left:14px;top:74px;display:grid;width:min(330px,calc(100vw - 28px));max-height:calc(100vh - 94px);box-shadow:0 24px 80px #000}
.presentation-page:fullscreen .presentation-settings.collapsed{display:none}
.presentation-page:fullscreen .presentation-brand{position:fixed;z-index:45;display:flex;align-items:center;gap:8px;color:rgba(255,255,255,.78);pointer-events:none}
.presentation-page:fullscreen .presentation-brand-top{top:15px;left:18px;font-size:10px;font-weight:850;letter-spacing:.05em}
.presentation-page:fullscreen .presentation-brand-top img{width:24px;height:24px}
.presentation-page:fullscreen .presentation-brand-bottom{right:18px;bottom:16px;display:block}
.presentation-page:fullscreen .presentation-brand-bottom img{display:block;width:72px;height:72px;border-radius:14px;box-shadow:0 10px 28px rgba(0,0,0,.28);opacity:.82}

/* Ambiance de scène : fond calme hors plein écran, filigrane Adoram cadré au centre en plein écran. */
.presentation-stage{
  background-color:#050a12;
  background-image:radial-gradient(ellipse at 50% 45%,#172434 0,#0b1420 54%,#050a12 100%);
  background-position:center;
  background-size:cover;
  background-attachment:local
}
.presentation-stage.theme-light{
  background-color:#f4f1e9;
  background-image:radial-gradient(ellipse at 50% 45%,#fff 0,#f4f1e9 72%,#e7e2d8 100%)
}
.presentation-stage.theme-blue{
  background-color:#003a78;
  background-image:radial-gradient(ellipse at 50% 43%,#075aaa 0,#003b78 56%,#001a38 100%)
}
.presentation-page:fullscreen .presentation-stage{
  position:relative;
  isolation:isolate;
  background-color:#050a12;
  background-image:radial-gradient(ellipse at 50% 48%,#152334 0,#0a121d 54%,#050a12 100%);
  background-position:center;
  background-size:cover;
  background-attachment:fixed;
}
.presentation-page:fullscreen .presentation-stage.theme-blue{
  background-color:#001d3d;
  background-image:radial-gradient(ellipse at 50% 48%,#0755a1 0,#00366f 48%,#00162f 100%)
}
.presentation-page:fullscreen .presentation-stage.theme-light{
  background-color:#f4f1e9;
  background-image:radial-gradient(ellipse at 50% 48%,#fff 0,#f4f1e9 66%,#e8e3da 100%)
}
.presentation-page:fullscreen .presentation-stage::before{
  content:"";
  position:fixed;
  z-index:0;
  inset:0;
  width:100vw;
  height:100vh;
  background:url("/assets/presentation-background.jpg") center/cover no-repeat;
  opacity:.105;
  filter:grayscale(1) contrast(.92) brightness(.66);
  mix-blend-mode:soft-light;
  pointer-events:none
}
.presentation-page:fullscreen .presentation-stage.theme-blue::before{opacity:.13;filter:grayscale(1) contrast(.94) brightness(.74);mix-blend-mode:soft-light}
.presentation-page:fullscreen .presentation-stage.theme-light::before{opacity:.055;filter:grayscale(1) contrast(.9) brightness(.96);mix-blend-mode:multiply}
.presentation-page:fullscreen .presentation-screen{
  position:relative;
  z-index:1
}
.presentation-settings.fullscreen-fading{opacity:0;transform:translateX(-18px);pointer-events:none}

/* Import, sélection multiple et table de Bibliothèque. */
.library-import-dialog{width:min(560px,calc(100vw - 32px));border:0;border-radius:18px;padding:22px;background:#fff;color:var(--ink);box-shadow:0 28px 90px rgba(7,22,40,.28)}
.library-import-dialog::backdrop{background:rgba(6,17,31,.52);backdrop-filter:blur(4px)}
.library-import-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.library-import-heading h2{margin:3px 0 0;font-family:Georgia,serif;font-size:25px}
.library-import-dialog>p{margin:12px 0 18px;color:var(--muted);font-size:13px;line-height:1.55}
.library-import-dialog>label:not(.button){display:grid;gap:6px;margin-top:12px;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase}
.library-import-dialog select,.library-import-dialog input{width:100%;height:43px;border:1px solid var(--line);border-radius:10px;padding:8px 11px;background:#fff;color:var(--ink);font-size:14px;text-transform:none}
.library-import-files{display:flex;margin-top:18px}
.dialog-close{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);font-size:22px;cursor:pointer}
.library-batch-bar{display:flex;align-items:center;gap:9px;margin:0 0 14px;border:1px solid #bdd9f5;border-radius:12px;padding:9px 11px;background:#f1f7ff}
.library-batch-bar[hidden]{display:none}
.library-batch-bar>strong{margin-right:auto;color:var(--blue-2);font-size:12px}
.library-batch-bar label{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:11px;font-weight:800}
.library-batch-bar select{height:36px;min-width:150px;border:1px solid var(--line);border-radius:8px;padding:5px 8px;background:#fff;color:var(--ink)}
.library-batch-bar .button{min-height:36px;padding:6px 10px;font-size:11px}
.library-delete-glyph{display:block;width:18px;height:18px;flex:0 0 18px;background:#d92d20;-webkit-mask:url("/assets/action-delete.svg") center/contain no-repeat;mask:url("/assets/action-delete.svg") center/contain no-repeat}
.library-card{position:relative}
.library-card-select{position:absolute;z-index:2;top:10px;right:10px;display:grid!important;place-items:center;width:26px;height:26px;border:1px solid var(--line);border-radius:8px;background:#fff}
.library-card-select input,.library-selection-cell input{width:16px;height:16px;accent-color:var(--blue)}
.library-delete-icon{display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;border:1px solid #efb4af;border-radius:9px;background:#fff1ef;color:var(--red);box-shadow:0 2px 7px rgba(217,45,32,.08);cursor:pointer}
.library-delete-icon:hover{border-color:#d92d20;background:#ffe2df;box-shadow:0 4px 12px rgba(217,45,32,.16)}
.library-delete-icon:focus-visible{outline:3px solid rgba(217,45,32,.22);outline-offset:2px}
.library-present-icon{display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;border:1px solid #8abdf0;border-radius:9px;background:#eef6ff;color:var(--blue);box-shadow:0 2px 7px rgba(0,102,207,.08);cursor:pointer}
.library-present-icon i{display:block;width:19px;height:19px;background:currentColor;-webkit-mask:url("/assets/nav-presentation.svg") center/contain no-repeat;mask:url("/assets/nav-presentation.svg") center/contain no-repeat}
.library-present-icon:hover{border-color:var(--blue);background:#dceeff;box-shadow:0 4px 12px rgba(0,102,207,.15)}
.library-present-icon:focus-visible{outline:3px solid rgba(0,102,207,.22);outline-offset:2px}
.library-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px}
.library-table{width:100%;min-width:1040px;border:0;border-collapse:separate;border-spacing:0;background:#fff;font-size:12px}
.library-table th,.library-table td{border:0;border-bottom:1px solid var(--line);padding:10px 9px;text-align:left;vertical-align:middle}
.library-table th{position:sticky;z-index:2;top:0;background:#eff5fb;color:#40546b;font-size:10px;text-transform:uppercase}
.library-table th button{display:flex;align-items:center;gap:5px;border:0;padding:2px;background:transparent;color:inherit;font:inherit;font-weight:850;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;white-space:nowrap}
.library-table th button span{color:var(--blue);font-size:9px}
.library-table tbody tr:hover{background:#f7fbff}
.library-table tbody tr:last-child td{border-bottom:0}
.library-selection-cell{width:36px;text-align:center!important}
.library-title-cell{min-width:190px}
.library-title-cell strong,.library-title-cell small{display:block}
.library-title-cell strong{max-width:280px;overflow:hidden;color:var(--ink);font-family:Georgia,serif;font-size:14px;text-overflow:ellipsis;white-space:nowrap}
.library-title-cell small{margin-top:3px;color:var(--muted);font-size:10px}
.library-table select{max-width:170px;height:34px;border:1px solid var(--line);border-radius:8px;padding:5px 7px;background:#fff;color:var(--ink);font-size:11px}
.library-table-actions{display:flex;align-items:center;gap:6px;white-space:nowrap}
.library-table-actions .button{min-height:36px;padding:6px 10px;font-size:11px}
.dark-mode .library-import-dialog,.dark-mode .library-import-dialog select,.dark-mode .library-import-dialog input,.dark-mode .library-batch-bar select,.dark-mode .library-card-select,.dark-mode .library-table,.dark-mode .library-table select{background:#101c2c;color:var(--ink)}
.dark-mode .library-batch-bar{border-color:#315272;background:#102b46}
.dark-mode .library-table-wrap,.dark-mode .library-table th,.dark-mode .library-table td{border-color:var(--line)}
.dark-mode .library-table th{background:#14263b;color:#c0cede}
.dark-mode .library-table tbody tr:hover{background:#14253a}
.dark-mode .library-delete-icon{border-color:#6b403e;background:#2d1c1d}

@media(max-width:900px){
  .library-batch-bar{align-items:stretch;flex-wrap:wrap}
  .library-batch-bar>strong{width:100%}
  .library-batch-bar label{flex:1}
  .library-batch-bar select{flex:1}
}

@media (max-width:900px){
  .presentation-layout{grid-template-columns:1fr}
  .presentation-settings{position:static;max-height:none}
  .presentation-layout:not(.config-collapsed) .presentation-stage{grid-row:2}
  .presentation-screen{min-height:calc(100vh - 160px)}
  .presentation-track-row,.presentation-global-lyrics{grid-template-columns:76px minmax(0,1fr)}
  .presentation-track-name,.presentation-lyrics-label{padding-inline:8px}
  .presentation-end-panel{gap:16px;padding:32px 24px 26px}
  .presentation-end-panel>img{width:128px;height:128px}
  .presentation-end-panel p{font-size:19px}
  .presentation-screen>header{grid-template-columns:1fr auto;gap:8px 12px}
  .presentation-system-directions{grid-column:1/-1;grid-row:2;justify-content:flex-start}
}

/* Presentation legibility and line-ahead reading */
.presentation-toolbar .button{min-height:44px;padding:9px 13px;font-size:13px;font-weight:820}
.presentation-toolbar .presentation-fullscreen-primary{min-height:50px;border-color:#2183e7;background:#0066cf;color:#fff;box-shadow:0 8px 24px rgba(0,102,207,.34);font-size:15px}
.presentation-toolbar .presentation-fullscreen-primary:hover{background:#0878e8}
.presentation-toolbar .presentation-fullscreen-primary img{width:22px;height:22px;filter:none}
.presentation-toolbar .presentation-play-accent{border-color:var(--yellow);background:var(--yellow);color:#111927}
.presentation-toolbar .presentation-play-accent img{filter:brightness(0)}
.presentation-title>span{font-size:13px}
.presentation-settings{font-size:14px}
.presentation-settings>details>summary{font-size:14px}
.presentation-settings-group>label{display:grid;gap:7px;color:#c5d3e3;font-size:14px;font-weight:750}
.presentation-settings select{font-size:14px}
.presentation-setting-help{font-size:13px}
.presentation-track-choices label{min-height:42px;font-size:13px}
.presentation-track-choices label span{font-size:18px}
.presentation-track-choices label b{font-size:13px}
.presentation-track-choices label em{font-size:10px}
.presentation-verse-choices label,.presentation-verse-program li{font-size:13px}
.presentation-audio-status{font-size:12px}
.presentation-mixer-channel .channel-name span{font-size:12px}
.presentation-mixer-channel .instrument,.presentation-mixer-channel .pan-label,.presentation-mixer-channel .volume-label{font-size:12px}
.presentation-master-effects label{font-size:12px}
.presentation-program-actions .button{font-size:12px}
.presentation-screen{transition:min-height .42s ease,opacity .28s ease,transform .42s ease}
.presentation-screen>header{display:grid;grid-template-columns:minmax(150px,1fr) auto minmax(150px,1fr);gap:16px;font-size:14px}
.presentation-measure-range{display:flex;align-items:baseline;gap:8px;white-space:nowrap}
.presentation-measure-range small{font-size:.78em;letter-spacing:.08em}
.presentation-measure-range strong{font-size:1.08em}
.presentation-system-directions{display:flex;align-items:center;justify-content:center;gap:7px;min-width:0}
.presentation-direction-chip{display:flex;align-items:baseline;gap:7px;max-width:360px;border:1px solid rgba(117,216,255,.3);border-radius:999px;padding:5px 10px;background:rgba(117,216,255,.08);overflow:hidden;white-space:nowrap}
.presentation-direction-chip small{color:#75d8ff;font-size:.7em;letter-spacing:.1em}
.presentation-direction-chip b{overflow:hidden;font-size:.86em;text-overflow:ellipsis}
.theme-light .presentation-direction-chip{border-color:rgba(0,102,207,.25);background:rgba(0,102,207,.07)}
.theme-light .presentation-direction-chip small{color:var(--blue)}
.presentation-screen>header em{justify-self:end;margin-left:0;padding-left:0;white-space:nowrap}
.presentation-track-row,.presentation-global-lyrics{grid-template-columns:132px minmax(0,1fr)}
.presentation-track-name{position:sticky;left:0;z-index:8;overflow:hidden;background:#11151c;box-shadow:1px 0 rgba(255,255,255,.16)}
.theme-light .presentation-track-name{background:#fff}
.theme-blue .presentation-track-name{background:#062b58}
.presentation-track-name strong{font-size:34px}
.presentation-track-name span{font-size:14px}
.presentation-global-lyrics{position:relative;isolation:isolate;overflow:hidden}
.presentation-lyrics-label{position:sticky;left:0;z-index:9;overflow:hidden;background:#11151c;box-shadow:1px 0 rgba(255,255,255,.16)}
.theme-light .presentation-lyrics-label{background:#fff}
.theme-blue .presentation-lyrics-label{background:#062b58}
.presentation-lyrics-label strong{font-size:14px}
.presentation-lyrics-label span{font-size:13px}
.presentation-lyric-cells{min-width:0;overflow:hidden;contain:paint}
.presentation-lyrics.presentation-cell{min-width:0;overflow:hidden;contain:paint;padding-inline:12px}
.presentation-lyric{display:block;max-width:100%;overflow:hidden;white-space:nowrap;overflow-wrap:normal;text-align:center;text-overflow:clip}
.presentation-note{font-size:36px}
.presentation-stage.presentation-reading-window{scroll-snap-type:none}
.presentation-stage.presentation-reading-window .presentation-screen.presentation-current-line,
.presentation-stage.presentation-reading-window .presentation-screen.presentation-next-line{min-height:max(330px,calc((100vh - 245px)/2));scroll-snap-align:none}
.presentation-stage.presentation-reading-window .presentation-screen.presentation-next-line{opacity:.76;transform:translateY(0);animation:presentation-line-arrival .42s ease both}
.presentation-screen.presentation-current-line{position:relative;z-index:3;opacity:1!important;filter:none}
.presentation-screen.presentation-next-line{position:relative;z-index:1;filter:saturate(.62)}
.presentation-screen.presentation-past-line{display:none}
.presentation-stage.presentation-reading-window .presentation-screen.presentation-current-line .presentation-score-body{align-self:end}
.presentation-stage.presentation-reading-window .presentation-screen.presentation-next-line .presentation-score-body{align-self:start}
@keyframes presentation-line-arrival{from{opacity:0;transform:translateY(42px)}to{opacity:.76;transform:translateY(0)}}
.presentation-page:fullscreen .presentation-stage.presentation-reading-window .presentation-screen.presentation-current-line,
.presentation-page:fullscreen .presentation-stage.presentation-reading-window .presentation-screen.presentation-next-line{min-block-size:max(380px,calc((100vh - 110px)/2))}

@media (max-width:900px){
  .presentation-track-row,.presentation-global-lyrics{grid-template-columns:104px minmax(0,1fr)}
  .presentation-toolbar .presentation-fullscreen-primary{width:auto;padding-inline:14px}
  .presentation-toolbar .presentation-fullscreen-primary span{display:inline!important}
  .presentation-track-name strong{font-size:30px}
  .presentation-track-name span{display:block;font-size:14px}
  .presentation-lyrics-label strong{font-size:13px}
  .presentation-lyrics-label span{font-size:12px}
}

/* À propos — contenu éditorial, crédits générés et licences. */
.about-view .action-ribbon{display:none}
.about-page{display:grid;gap:20px;background:radial-gradient(circle at 92% 4%,rgba(0,102,207,.11),transparent 30%)}
.about-page[hidden]{display:none}
.about-hero{position:relative;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(260px,.55fr);align-items:center;min-height:330px;overflow:hidden;border:1px solid #bfd9f3;border-radius:24px;padding:clamp(28px,4vw,64px);background:linear-gradient(135deg,#07182d 0%,#082846 62%,#0066cf 145%);color:#fff;box-shadow:0 22px 70px rgba(13,47,81,.18)}
.about-hero:after{position:absolute;right:-90px;bottom:-150px;width:430px;height:430px;border:1px solid rgba(255,255,255,.12);border-radius:50%;content:"";box-shadow:0 0 0 52px rgba(255,255,255,.035),0 0 0 104px rgba(255,255,255,.02)}
.about-hero-copy{position:relative;z-index:2;max-width:790px}
.about-hero .eyebrow{color:#75d8ff}
.about-hero h1{margin:5px 0 14px;font-family:Georgia,serif;font-size:clamp(44px,6vw,82px);line-height:.96}
.about-lead{max-width:720px;margin:0;color:#d8e8f6;font-size:clamp(17px,2vw,22px);line-height:1.55}
.about-hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.about-hero-actions .button{min-height:44px}
.about-hero-actions .button.ghost{border-color:rgba(255,255,255,.32);background:rgba(255,255,255,.08);color:#fff}
.about-branding{position:relative;z-index:2;display:grid;place-items:center;min-height:235px}
.about-product-logo{width:min(230px,72%);filter:drop-shadow(0 20px 30px rgba(0,0,0,.28))}
.about-ministry-logo{position:absolute;right:4%;bottom:0;width:88px;height:88px;border:5px solid rgba(255,255,255,.9);border-radius:20px;object-fit:cover;box-shadow:0 12px 30px rgba(0,0,0,.28)}
.about-content{overflow:hidden;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:0 18px 52px rgba(28,52,76,.1)}
.about-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;border-bottom:1px solid var(--line);padding:9px;background:#f3f7fb}
.about-tabs button{min-height:48px;border:1px solid transparent;border-radius:12px;padding:9px 14px;background:transparent;color:#53677e;font-size:13px;font-weight:800;cursor:pointer}
.about-tabs button:hover{background:#fff;color:var(--blue)}
.about-tabs button.active{border-color:#bedbf7;background:#fff;color:var(--blue);box-shadow:0 5px 18px rgba(0,102,207,.1)}
.about-panels{padding:clamp(22px,3vw,42px)}
.about-panel{animation:about-panel-in .2s ease both}
.about-section-heading{max-width:860px;margin-bottom:24px}
.about-section-heading h2{margin:5px 0 8px;font-family:Georgia,serif;font-size:clamp(25px,3vw,37px);color:var(--ink)}
.about-section-heading>p:not(.eyebrow){margin:0;color:var(--muted);font-size:14px;line-height:1.6}
.about-ministry-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);gap:28px}
.about-story{border-left:4px solid var(--yellow);padding:3px 0 3px 24px}
.about-story p{margin:0;color:#31455d;font-family:Georgia,serif;font-size:clamp(17px,1.65vw,21px);line-height:1.75}
.about-story p+p{margin-top:18px}
.about-contact-card{display:grid;align-content:center;gap:9px;border:1px solid #bdd9f5;border-radius:17px;padding:25px;background:linear-gradient(145deg,#eff7ff,#fff)}
.about-contact-card span{color:var(--muted);font-size:11px;font-weight:850;letter-spacing:.1em;text-transform:uppercase}
.about-contact-card strong{margin-bottom:8px;color:var(--blue-2);font-family:Georgia,serif;font-size:27px}
.about-contact-card a,.about-footer a{color:var(--blue);font-size:13px;font-weight:750;text-decoration:none}
.about-contact-card a:hover,.about-footer a:hover{text-decoration:underline}
.about-technical-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0}
.about-technical-grid div{min-height:108px;border:1px solid var(--line);border-radius:14px;padding:18px;background:#f8fbfe}
.about-technical-grid dt{color:var(--muted);font-size:10px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}
.about-technical-grid dd{margin:13px 0 0;color:var(--ink);font-size:17px;font-weight:800;overflow-wrap:anywhere}
.about-license-note{margin:18px 0 0;border-radius:12px;padding:14px 16px;background:#fff6df;color:#6e4c00;font-size:13px;line-height:1.55}
.about-loading,.about-fallback{border:1px dashed #a8c6e4;border-radius:14px;padding:28px;background:#f4f9ff;color:#4e647b;text-align:center}
.about-fallback{border-color:#edc56f;background:#fff9eb;color:#6b4a00}
.about-credits-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.about-credit-card{display:grid;grid-template-rows:auto auto 1fr auto;gap:14px;border:1px solid var(--line);border-radius:16px;padding:19px;background:#fbfdff}
.about-credit-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.about-credit-card>header small{color:var(--blue);font-size:9px;font-weight:850;letter-spacing:.09em;text-transform:uppercase}
.about-credit-card h3{margin:5px 0 0;color:var(--ink);font-family:Georgia,serif;font-size:20px}
.about-license-badge{flex:0 0 auto;border-radius:999px;padding:5px 9px;background:#e9f4ff;color:var(--blue-2);font-size:10px;font-weight:850}
.about-credit-card dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0}
.about-credit-card dl div{border-radius:9px;padding:9px;background:#f1f6fb}
.about-credit-card dt{color:var(--muted);font-size:9px;font-weight:850;text-transform:uppercase}
.about-credit-card dd{margin:4px 0 0;color:var(--ink-2);font-size:12px;line-height:1.45}
.about-credit-card p{margin:0;color:#51657b;font-size:12px;line-height:1.55}
.about-credit-card footer{display:flex;align-items:center;gap:12px;border-top:1px solid var(--line);padding-top:12px}
.about-credit-card footer span{margin-right:auto;color:var(--muted);font-size:10px}
.about-credit-card footer a{color:var(--blue);font-size:11px;font-weight:800;text-decoration:none}
.about-credit-warnings{margin-top:15px;border-radius:12px;padding:13px 15px;background:#fff6df;color:#684800;font-size:12px}
.about-credit-warnings summary{font-weight:850;cursor:pointer}
.about-credit-warnings li{margin:7px 0}
.about-licenses-list{display:grid;gap:9px}
.about-licenses-list details{overflow:hidden;border:1px solid var(--line);border-radius:13px;background:#fbfdff}
.about-licenses-list summary{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:15px 18px;cursor:pointer}
.about-licenses-list summary span{color:var(--ink);font-weight:800}
.about-licenses-list summary strong{color:var(--blue);font-size:11px}
.about-licenses-list details>div{border-top:1px solid var(--line);padding:16px 18px;background:#f3f7fb}
.about-licenses-list a{display:inline-block;margin-bottom:11px;color:var(--blue);font-size:12px;font-weight:800}
.about-licenses-list pre{max-height:360px;overflow:auto;margin:0;border-radius:10px;padding:16px;background:#081727;color:#dbe9f6;font:11px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap}
.about-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:0 8px;color:var(--muted);font-size:12px}
.dark-mode .about-page{background:radial-gradient(circle at 92% 4%,rgba(0,102,207,.15),transparent 30%)}
.dark-mode .about-content,.dark-mode .about-tabs button.active,.dark-mode .about-credit-card,.dark-mode .about-licenses-list details{background:#101c2c;color:var(--ink)}
.dark-mode .about-tabs{border-color:var(--line);background:#0b1727}
.dark-mode .about-tabs button{color:#b9c8d9}.dark-mode .about-tabs button:hover,.dark-mode .about-tabs button.active{background:#173451;color:#79bdff}
.dark-mode .about-story p{color:#c9d7e6}
.dark-mode .about-contact-card{border-color:#315272;background:linear-gradient(145deg,#102b46,#101c2c)}
.dark-mode .about-technical-grid div,.dark-mode .about-credit-card dl div,.dark-mode .about-licenses-list details>div{background:#14263b}
.dark-mode .about-license-note,.dark-mode .about-credit-warnings{background:#30240f;color:#f1ce80}
.dark-mode .about-license-badge{background:#183a5c;color:#8dc9ff}
@keyframes about-panel-in{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:900px){
  .about-hero{grid-template-columns:1fr}.about-branding{display:none}
  .about-tabs{grid-template-columns:repeat(2,1fr)}
  .about-ministry-grid,.about-credits-list{grid-template-columns:1fr}
  .about-technical-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:620px){
  .about-page{padding-inline:9px}.about-hero{min-height:0;padding:28px 22px}.about-hero h1{font-size:43px}
  .about-tabs{grid-template-columns:1fr}.about-tabs button{min-height:42px;text-align:left}
  .about-panels{padding:20px 16px}.about-technical-grid{grid-template-columns:1fr}.about-credit-card dl{grid-template-columns:1fr}
  .about-credit-card>header,.about-licenses-list summary,.about-footer{align-items:flex-start;flex-direction:column}
}

/* Responsive application shell
   Desktop rules above remain authoritative. Tablet and mobile behavior is isolated
   here so a compact screen never changes the desktop composition. */
@media (min-width:641px) and (max-width:1100px){
  .brand-row{gap:8px;padding-inline:14px}
  .brand strong{font-size:16px}
  .brand small{font-size:9px}
  .workspace-navigation{margin-left:auto}
  .brand-spacer{display:none}
  .assistant-button{min-width:40px;padding-inline:10px;font-size:0}
  .assistant-button span{font-size:18px}
  .action-ribbon{scroll-snap-type:x proximity;overscroll-behavior-inline:contain}
  .action-group{flex:0 0 auto;scroll-snap-align:start}
  .app-shell{padding-inline:14px}
  .tool-tabs{scroll-snap-type:x proximity}
  .tool-tab{flex:0 0 auto;scroll-snap-align:start}
  .tool-panel.notes-workflow{overflow-x:hidden}
  .pitch-tools{grid-template-columns:minmax(390px,1fr) 126px}
  .rhythm-tools{grid-template-columns:105px minmax(350px,1fr) minmax(180px,.55fr)}
  .mixer-channels{justify-content:flex-start;scroll-snap-type:x proximity}
  .channel{scroll-snap-align:start}
  .library-page-head{padding:22px}
  .library-command-bar{overflow-x:auto;overscroll-behavior-inline:contain}
}

@media (max-width:640px){
  :root{--mobile-nav-height:68px}
  html,body{max-width:100%;overflow-x:hidden}
  body{padding-bottom:var(--mobile-nav-height)}
  .app-header{top:0;backdrop-filter:none}
  .brand-row{
    display:grid;
    grid-template-columns:40px minmax(0,1fr) 40px 40px;
    min-height:60px;
    gap:6px;
    padding:7px 9px
  }
  .menu-button{display:grid}
  .brand{min-width:0;gap:7px}
  .brand-logo{width:36px;height:36px}
  .brand span{min-width:0}
  .brand strong{overflow:hidden;font-size:14px;text-overflow:ellipsis;white-space:nowrap}
  .brand small{overflow:hidden;font-size:7px;text-overflow:ellipsis;white-space:nowrap}
  .brand-spacer,.project-state{display:none}
  .assistant-button{
    width:40px;
    min-width:40px;
    height:40px;
    min-height:40px;
    overflow:hidden;
    padding:0;
    font-size:0
  }
  .assistant-button span{margin:0;font-size:18px}
  .square-button{width:40px;height:40px}

  .workspace-navigation{
    position:fixed;
    z-index:80;
    right:0;
    bottom:0;
    left:0;
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:3px;
    height:var(--mobile-nav-height);
    margin:0;
    border-top:1px solid var(--line-strong);
    padding:5px max(7px,env(safe-area-inset-right)) max(5px,env(safe-area-inset-bottom)) max(7px,env(safe-area-inset-left));
    background:rgba(255,255,255,.97);
    box-shadow:0 -8px 30px rgba(15,30,55,.13);
    backdrop-filter:blur(16px)
  }
  .workspace-navigation .workspace-nav{
    position:relative;
    display:flex;
    min-width:0;
    min-height:56px;
    flex-direction:column;
    gap:2px;
    border-color:transparent;
    padding:5px 2px;
    background:transparent;
    font-size:10px!important;
    line-height:1.05
  }
  .workspace-navigation .workspace-nav.active{border-color:#c5def7;background:var(--blue-soft)}
  .workspace-navigation .inline-mask-icon{width:22px;height:22px}
  .workspace-navigation small{
    position:absolute;
    top:3px;
    right:calc(50% - 23px);
    display:grid;
    min-width:17px;
    height:17px;
    border:2px solid #fff;
    font-size:8px
  }
  .dark-mode .workspace-navigation{border-color:#2c415b;background:rgba(8,18,31,.97)}
  .dark-mode .workspace-navigation small{border-color:#0b1727}

  .action-ribbon{
    min-height:78px;
    align-items:stretch;
    padding:0 7px;
    scroll-padding-inline:7px;
    scroll-snap-type:x mandatory;
    overscroll-behavior-inline:contain
  }
  .action-group{
    flex:0 0 auto;
    gap:1px;
    margin-right:7px;
    padding:18px 8px 5px 0;
    scroll-snap-align:start
  }
  .group-label{top:4px;font-size:8px}
  .ribbon-button{
    min-width:58px;
    min-height:52px;
    flex:0 0 auto;
    flex-direction:column;
    gap:2px;
    padding:5px 4px;
    font-size:9px!important;
    line-height:1.05;
    text-align:center
  }
  .ribbon-button span{display:block!important;max-width:68px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .ribbon-button i,.ribbon-button i.ribbon-icon{width:24px;min-width:24px;height:24px}
  .more-action-rail.open{max-width:180px}
  .export-group{margin-left:0}

  .app-shell{width:100%;padding:10px 8px 28px}
  .score-identity{gap:18px;padding:16px 14px;border-radius:14px}
  .title-input{max-width:100%;font-size:clamp(29px,9vw,38px);letter-spacing:-1px}
  .credit-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 10px}
  .credit-fields label{min-width:0}
  .credit-fields label:last-child{grid-column:1/-1}
  .credit-fields input{font-size:12px}
  .global-music-settings{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .global-music-settings label{min-width:0;padding:9px}
  .global-music-settings select,.global-music-settings input{font-size:13px!important}
  .import-card summary{min-height:48px;padding-inline:13px}
  .import-card summary span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

  .tool-deck{margin-top:12px;border-radius:14px}
  .tool-tabs{
    position:sticky;
    top:60px;
    z-index:12;
    gap:2px;
    padding:5px 6px;
    scroll-snap-type:x mandatory;
    overscroll-behavior-inline:contain
  }
  .tool-tab{flex:0 0 56px;min-width:56px;scroll-snap-align:start}
  .tool-panel,.tool-panel.notes-workflow{width:100%;max-width:100%;padding:9px;overflow-x:hidden}
  .tool-panel.notes-workflow{grid-template-columns:minmax(0,1fr);gap:8px}
  .notes-workflow .active-cell-context{min-height:54px;padding:11px}
  .notes-workflow .active-cell-context strong{max-width:none}
  .workflow-group{width:100%;max-width:100%;padding:9px}
  .pitch-tools,.rhythm-tools{grid-template-columns:minmax(0,1fr)!important;min-width:0!important;gap:9px}
  .pitch-workflow .solfa-section,.solfa-section,.solfa-keyboard{width:100%;min-width:0}
  .pitch-workflow .solfa-keyboard{padding-top:31px}
  .pitch-workflow .solfa-palette,.solfa-palette{
    display:grid;
    grid-template-columns:repeat(7,minmax(0,1fr));
    width:100%;
    gap:3px
  }
  .pitch-workflow .solfa-palette button,.solfa-palette button{width:auto;min-width:0;height:58px}
  .pitch-workflow .gap-dr{left:14.3%}.pitch-workflow .gap-rm{left:28.6%}.pitch-workflow .gap-fs{left:57.1%}.pitch-workflow .gap-sl{left:71.4%}.pitch-workflow .gap-lt{left:85.7%}
  .chromatic-bubble button{min-width:24px;padding-inline:4px}
  .octave-buttons{grid-template-columns:repeat(3,minmax(0,1fr))}
  .rhythm-tools .cell-type-selector{grid-template-columns:repeat(2,minmax(0,1fr))}
  .duration-palette.expanded{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}
  .duration-palette.expanded button{min-width:0;height:66px}
  .duration-dots{grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible}
  .duration-dots button{min-width:0;white-space:normal}
  .notes-workflow .rhythm-section,.notes-workflow .hold-tool{grid-column:1}
  .notes-workflow .rhythm-palette{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    width:100%
  }
  .notes-workflow .rhythm-palette button{width:auto;min-width:0;height:52px}
  .rhythm-summary{justify-self:stretch;text-align:center}
  .tool-panel[data-tool-panel="lyrics"]{grid-template-columns:minmax(0,1fr);padding:10px}
  .lyrics-fields{grid-template-columns:minmax(0,1fr)}
  .lyrics-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lyrics-actions .button{min-width:0;padding-inline:8px}
  .expression-panel{display:grid!important;grid-template-columns:minmax(0,1fr);overflow-x:hidden!important}
  .expression-panel:not(.active){display:none!important}
  .expression-panel .selection-summary,.expression-panel .tool-section,.expression-group,.direction-group{width:100%;min-width:0;border-right:0}
  .direction-group{grid-template-columns:minmax(0,1fr)}
  .direction-group legend{grid-column:1}
  .expression-actions{justify-content:stretch}
  .expression-actions .button{flex:1}

  .editor-workspace{margin-top:12px;padding:9px;border-radius:14px}
  .editor-heading{align-items:flex-start;gap:9px}
  .editor-heading h2{font-size:19px}
  .editor-view-actions{flex-wrap:wrap;justify-content:flex-end}
  .matrix-wrap{max-height:none}
  .matrix-wrap.responsive-wrap-mode .wrap-measures{grid-template-columns:1fr}
  .matrix-wrap.responsive-wrap-mode .wrap-measures:before{
    grid-column:1/-1;
    border-radius:999px;
    padding:6px 10px;
    background:#dfeeff;
    color:var(--blue-2);
    content:"WRAP mobile automatique";
    font-size:10px;
    font-weight:850;
    text-align:center
  }
  .wrap-measures{gap:10px;padding:9px}
  .wrap-measure{border-radius:10px}
  .wrap-measure h3{padding:9px 11px}
  .wrap-measure-scroll{max-width:100%;overscroll-behavior-inline:contain}
  .wrap-measure .voice-name{width:78px;min-width:78px;padding:7px!important}
  .wrap-measure .track-label-input{width:58px;font-size:15px}
  .wrap-measure .track-name-input{width:58px;font-size:10px}
  .wrap-measure .note-cell{padding:6px 4px!important}
  .wrap-measure .token{font-size:21px}
  .wrap-measure .lyric{font-size:var(--editor-lyric-size)!important}
  .paper-ruler{padding-inline:9px}

  .transport{
    z-index:35;
    bottom:calc(var(--mobile-nav-height) + 5px);
    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto;
    gap:8px;
    margin:10px 0 0;
    border-radius:13px;
    padding:8px
  }
  .transport-main{grid-column:1}
  .transport-spacer,.play-position,.transport-status{display:none}
  .transpose{grid-column:2;width:auto;min-width:0;margin:0}
  .transpose select{width:100%;min-width:0}
  .transport-apply{grid-column:3;margin:0;padding-inline:10px}
  .play{width:42px;height:42px}.round{width:34px;height:34px}

  .mixer{padding-inline:10px}
  .mixer-title{min-height:55px}
  .mixer-transport{overflow-x:auto;overscroll-behavior-inline:contain}
  .mixer-transport .transport-button{flex:0 0 auto;min-width:42px;min-height:42px}
  .mixer-channels{justify-content:flex-start;scroll-padding-inline:2px;scroll-snap-type:x mandatory}
  .channel{flex-basis:116px;scroll-snap-align:start}
  .master-effects{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  .audio-quality{grid-column:1/-1;width:100%}
  .effect-knob,.master-knob{min-width:0}
  .master-knob{grid-column:1/-1}

  .library-page{min-height:0}
  .library-page-head{display:grid;gap:12px;padding:17px}
  .library-page-head h1{font-size:28px}
  .library-page-head .button{justify-self:start;width:auto;font-size:11px}
  .library-page-head .button:before{content:none}
  .library-command-bar{display:flex;align-items:stretch;flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x mandatory}
  .library-command-bar .button,.library-bulk-button{width:auto;min-width:max-content;scroll-snap-align:start}
  #libraryStatus{flex:0 0 100%;text-align:left}
  .library-layout{grid-template-columns:minmax(0,1fr)}
  .library-filters{grid-template-columns:minmax(0,1fr);padding:13px}
  .library-results{min-width:0;padding:11px}
  .library-results>header{align-items:flex-start;flex-direction:column}
  .library-result-tools{width:100%;justify-content:space-between}
  .library-grid{grid-template-columns:minmax(0,1fr)}
  .library-card{min-width:0;padding:12px}
  .library-card-actions{display:grid;grid-template-columns:1fr auto}
  .library-grid.list-view{display:block;max-width:100%;overflow-x:auto}
  .library-table-wrap{min-width:760px}
  .library-batch-bar{display:grid;grid-template-columns:1fr}
  .library-batch-bar label,.library-batch-bar select,.library-batch-bar .button{width:100%}

  .presentation-page{padding:6px 6px 14px}
  .presentation-toolbar{position:sticky;top:0;grid-template-columns:minmax(0,1fr);gap:8px;padding:9px}
  .presentation-title{text-align:left}
  .presentation-title h1{font-size:20px}
  .presentation-title>span{font-size:11px}
  .presentation-transport,.presentation-toolbar-actions{
    justify-content:flex-start;
    overflow-x:auto;
    overscroll-behavior-inline:contain
  }
  .presentation-toolbar .button{flex:0 0 auto;min-height:42px;padding:8px 10px}
  .presentation-toolbar .button span{display:inline}
  .presentation-toolbar .presentation-fullscreen-primary{order:-1;min-height:46px}
  .presentation-layout{grid-template-columns:minmax(0,1fr)}
  .presentation-settings{grid-template-columns:minmax(0,1fr);max-height:none}
  .presentation-stage{height:auto;min-height:calc(100vh - 235px);padding:6px}
  .presentation-screen{min-height:calc(100vh - 245px);padding:8px}
  .presentation-screen>header{grid-template-columns:1fr auto;gap:6px 10px;font-size:12px}
  .presentation-system-directions{grid-column:1/-1}
  .presentation-track-row,.presentation-global-lyrics{grid-template-columns:76px minmax(0,1fr)}
  .presentation-track-name,.presentation-lyrics-label{padding-inline:7px}
  .presentation-track-name strong{font-size:25px}
  .presentation-track-name span{display:block;font-size:11px}
  .presentation-lyrics-label strong{font-size:11px}
  .presentation-lyrics-label span{font-size:10px}
  .presentation-score-body{max-width:100%;overflow-x:auto}
  .presentation-cells{justify-content:start}
  .presentation-cell{min-width:96px;padding-inline:7px}
  .presentation-note{font-size:29px}
  .presentation-lyric{font-size:min(var(--presentation-lyric-size),36px)}
  .presentation-page:fullscreen .presentation-stage{padding:48px 5px 78px}
  .presentation-page:fullscreen .presentation-toolbar{grid-template-columns:minmax(0,1fr);padding:8px}
  .presentation-page:fullscreen .presentation-toolbar .presentation-title h1{max-width:72vw;font-size:17px}
  .presentation-page:fullscreen .presentation-transport{grid-column:1;grid-row:2}
  .presentation-page:fullscreen .presentation-toolbar-actions{grid-column:1;grid-row:3}
  .presentation-page:fullscreen .presentation-brand-bottom{right:10px;bottom:78px}
  .presentation-page:fullscreen .presentation-brand-bottom img{width:54px;height:54px}

  .about-page{padding-inline:0}
  .about-hero{border-radius:16px}
  .about-hero h1{font-size:40px}
  .about-tabs{position:sticky;top:60px;z-index:8;display:flex;overflow-x:auto;scroll-snap-type:x mandatory}
  .about-tabs button{flex:0 0 auto;min-width:145px;scroll-snap-align:start;text-align:center}
  .about-panels{padding:18px 14px}
  .about-footer{padding-bottom:12px}

  dialog{max-width:calc(100vw - 20px)}
  .settings-dialog,.confirm-dialog{width:calc(100vw - 20px)}
  .assistant-panel{width:min(100%,390px)}
}

@media (max-width:640px) and (orientation:landscape) and (max-height:520px){
  :root{--mobile-nav-height:58px}
  .workspace-navigation{height:var(--mobile-nav-height);padding-block:3px}
  .workspace-navigation .workspace-nav{min-height:48px}
  .workspace-navigation .inline-mask-icon{width:19px;height:19px}
  .brand-row{min-height:52px;padding-block:5px}
  .brand-logo{width:32px;height:32px}
  .tool-tabs{top:52px}
  .transport{bottom:calc(var(--mobile-nav-height) + 4px)}
  .presentation-page:fullscreen .presentation-brand-bottom{bottom:65px}
}

/* Responsive v2 — règles strictement limitées aux écrans inférieurs au desktop. */
@media (max-width:1023px){
  :root{--control-text-size:16px}
  html[data-text-size="large"]{--control-text-size:17px}
  html[data-text-size="xlarge"]{--control-text-size:18px}
  html,body{max-width:100%;overflow-x:hidden}
  body *{min-width:0}
  img,svg,video,canvas,iframe{max-width:100%}
  h1,h2,h3,.title-input,.presentation-title h1{overflow-wrap:anywhere;white-space:normal}
  .button,.square-button,.ribbon-button,.tool-tab,.segmented button,.icon-button,
  .responsive-editor-actions button,.presentation-mobile-transport button{
    min-height:44px
  }
  button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
    outline:3px solid var(--yellow);
    outline-offset:2px
  }

  .brand-row{gap:8px;padding-inline:12px}
  .workspace-navigation{gap:3px}
  .workspace-navigation .workspace-nav{padding-inline:8px}
  .workspace-navigation small{min-width:17px;height:17px;padding:0 4px;font-size:8px}

  .app-shell,.library-page,.about-page{width:100%;max-width:100%}
  .score-identity{grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:18px}
  .identity-main,.global-music-settings,.credit-fields,.global-music-settings label{min-width:0}
  .title-input{width:100%;max-width:100%;font-size:clamp(34px,5.3vw,48px)}
  .credit-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .global-music-settings{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .global-music-settings label{width:100%;max-width:100%}

  .tool-deck,.editor-workspace,.paper-surface,.matrix-wrap{max-width:100%}
  .tool-panel{max-width:100%;overscroll-behavior-inline:contain}
  .editor-heading{gap:10px}
  .editor-heading>div{min-width:0}
  .editor-heading h2{font-size:clamp(19px,3vw,26px);white-space:normal}
  .editor-view-actions{flex-wrap:wrap}
  .matrix-wrap{overflow:auto;overscroll-behavior-inline:contain}
  .matrix-wrap:not(.wrap-mode) #matrix{min-width:max(840px,100%)}
  #matrix .voice-name{position:sticky;z-index:7;left:0;background:#f6f9fd}
  #matrix thead{position:sticky;z-index:6;top:0}
  #matrix thead th{background:#f4f8fc}
  #matrix .note-cell{min-width:108px}
  #matrix .cell-duration,#matrix .notation-button,#matrix .segment-duration{display:none}
  #matrix .note-cell textarea{min-height:40px;max-height:40px;overflow:hidden}
  .paper-ruler{white-space:normal}

  .transport{display:none!important}
  #editorPage{padding-bottom:88px}
  .responsive-editor-actions{
    position:fixed;
    z-index:38;
    left:50%;
    bottom:8px;
    transform:translateX(-50%);
    display:grid;
    grid-template-columns:repeat(7,minmax(0,1fr));
    gap:8px;
    width:min(760px,calc(100% - 20px));
    margin:12px auto;
    border:1px solid #2c4663;
    border-radius:16px;
    padding:8px;
    background:rgba(7,22,39,.97);
    box-shadow:0 16px 40px rgba(7,22,39,.3);
    backdrop-filter:blur(16px)
  }
  .responsive-editor-actions[hidden]{display:none}
  .responsive-editor-actions button{
    display:grid;
    place-items:center;
    align-content:center;
    gap:2px;
    min-width:0;
    border:1px solid #29435f;
    border-radius:10px;
    padding:5px 3px;
    background:#132942;
    color:#fff;
    font-weight:800
  }
  .responsive-editor-actions button:disabled{opacity:.45}
  .responsive-editor-actions button.responsive-play{border-color:var(--yellow);background:var(--yellow);color:#102034}
  .responsive-editor-actions img{width:17px;height:17px}
  .responsive-editor-actions span{font-size:25px;line-height:.75}
  .responsive-editor-actions small{font-size:9px;line-height:1.05}

  .library-page-head{min-height:0;padding:18px 20px}
  .library-page-head h1{font-size:clamp(29px,4vw,42px)}
  .library-command-bar{align-items:stretch;flex-wrap:wrap;gap:8px;padding:10px 14px}
  .library-command-bar .button,.library-command-bar>label{flex:1 1 220px;justify-content:center;white-space:normal}
  .library-layout{grid-template-columns:minmax(0,1fr);gap:12px}
  .library-filters{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px 12px;
    padding:14px
  }
  .library-filter-head,.library-search,.pinned-collections,.library-organize{grid-column:1/-1}
  .library-filters label{gap:4px}
  .library-filters input,.library-filters select{min-height:44px}
  .library-filter-head-actions{display:flex;align-items:center;gap:8px}
  .library-filter-close{display:none}
  .library-results{min-width:0;padding:14px}
  .library-results>header{gap:10px}
  .library-table-wrap{width:100%;max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain}
  .library-table{min-width:980px}
  .library-table th:first-child,.library-table td:first-child{position:sticky;z-index:3;left:0;background:#fff}
  .library-table th:nth-child(2),.library-table td:nth-child(2){position:sticky;z-index:2;left:50px;background:#fff}
  .library-card{min-width:0}

  .presentation-page{width:100%;max-width:100%;overflow-x:hidden}
  .presentation-toolbar{
    grid-template-columns:minmax(0,1fr);
    gap:8px;
    padding:10px
  }
  .presentation-title h1{max-width:100%;font-size:clamp(21px,3.5vw,30px)}
  .presentation-transport{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:8px;
    width:100%;
    overflow:visible
  }
  .presentation-transport .button{justify-content:center;min-width:0;white-space:normal}
  .presentation-transport #presentationMetronome{grid-column:1/-1}
  .presentation-toolbar-actions{display:flex;flex-wrap:wrap;gap:8px;overflow:visible}
  .presentation-toolbar-actions .button{flex:1 1 150px;justify-content:center;white-space:normal}
  .presentation-layout{grid-template-columns:minmax(0,1fr);gap:10px}
  .presentation-layout .presentation-settings{grid-row:2;grid-column:1;max-height:none;grid-template-columns:minmax(0,1fr);gap:8px}
  .presentation-settings>details{border:1px solid #29415d;border-radius:12px;overflow:hidden}
  .presentation-settings>details>summary{min-height:48px;padding:12px}
  .presentation-settings>details:not([open]) .presentation-settings-group{display:none}
  .presentation-mixer-channels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .presentation-mixer-channel{min-height:0;grid-template-columns:auto minmax(0,1fr) auto;gap:7px;padding:8px}
  .presentation-mixer-channel .pan-label,.presentation-mixer-channel .volume-label,.presentation-mixer-channel .vu{display:none}
  .presentation-layout .presentation-stage,
  .presentation-layout:not(.config-collapsed) .presentation-stage{
    grid-row:1;
    grid-column:1;
    height:auto;
    min-height:0;
    max-height:min(62vh,720px);
    max-width:100%;
    padding:8px;
    overflow-x:hidden;
    overflow-y:auto
  }
  .presentation-screen{
    min-height:0!important;
    margin:0 0 10px;
    padding:10px;
    align-content:start
  }
  .presentation-stage.presentation-reading-window .presentation-screen.presentation-current-line,
  .presentation-stage.presentation-reading-window .presentation-screen.presentation-next-line{min-block-size:0}
  .presentation-score-body{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain}
  .presentation-cells{min-width:max-content}
  .presentation-screen>header{margin-bottom:8px}
  .presentation-cell{min-width:92px}
  .presentation-track-row,.presentation-global-lyrics{min-width:max-content}
  .presentation-track-name,.presentation-lyrics-label{
    position:sticky;
    z-index:4;
    left:0;
    background:inherit
  }
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-stage{max-height:none}
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-screen{min-height:calc(100vh - 52px)!important}
  .presentation-mobile-launch,.presentation-mobile-transport,.presentation-mobile-menu{display:none}

  dialog{max-width:calc(100vw - 24px)}
  dialog::backdrop{background:rgba(4,13,24,.68);backdrop-filter:blur(5px)}
}

@media (min-width:768px) and (max-width:1023px){
  .workspace-navigation .workspace-nav{
    width:auto;
    font-size:9.5px!important;
    line-height:1.05;
    white-space:normal
  }
  .workspace-navigation .inline-mask-icon{width:17px;height:17px}
}

@media (max-width:767px){
  :root{--mobile-nav-height:68px;--control-text-size:17px}
  html[data-text-size="large"]{--control-text-size:18px}
  html[data-text-size="xlarge"]{--control-text-size:19px}
  body{padding-bottom:var(--mobile-nav-height)}
  .brand-row{grid-template-columns:44px minmax(0,1fr) 44px 44px;min-height:60px;padding:7px 8px}
  .brand-logo{width:36px;height:36px}
  .brand strong{font-size:14px}
  .brand small{font-size:7px}
  .brand-spacer,.project-state{display:none}
  .assistant-button{width:44px;min-width:44px;padding:0;font-size:0}
  .assistant-button span{font-size:18px}

  .workspace-navigation{
    position:fixed;
    z-index:80;
    right:0;
    bottom:0;
    left:0;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    height:var(--mobile-nav-height);
    gap:4px;
    margin:0;
    border-top:1px solid var(--line-strong);
    padding:5px 8px max(5px,env(safe-area-inset-bottom));
    background:rgba(255,255,255,.97);
    box-shadow:0 -8px 30px rgba(15,30,55,.13);
    backdrop-filter:blur(16px)
  }
  .workspace-navigation #openAbout{display:none}
  .workspace-navigation .workspace-nav{
    display:flex;
    min-height:54px;
    flex-direction:column;
    justify-content:center;
    gap:2px;
    padding:4px 2px;
    font-size:10px!important;
    white-space:normal
  }
  .workspace-navigation .inline-mask-icon{width:22px;height:22px}
  .workspace-navigation small{
    top:2px;
    right:calc(50% - 24px);
    min-width:15px;
    height:15px;
    border-width:1px;
    background:#e5f1ff;
    color:#345575;
    font-size:7px
  }

  .action-ribbon{max-width:100vw;overflow-x:auto;overscroll-behavior-inline:contain}
  .action-group{flex:0 0 auto}
  .ribbon-button{white-space:normal}
  .ribbon-button span{overflow:visible;text-overflow:clip;white-space:normal}

  .app-shell{padding:9px 8px 24px}
  .score-identity{grid-template-columns:minmax(0,1fr);gap:12px;padding:14px 12px}
  .title-input{display:none}
  .mobile-title-input{
    display:block;
    width:100%;
    max-width:100%;
    min-height:76px;
    resize:none;
    overflow:hidden;
    border:0;
    padding:0;
    background:transparent;
    color:var(--ink);
    font-family:Georgia,serif;
    font-size:clamp(29px,9vw,38px);
    font-weight:850;
    line-height:1.02;
    letter-spacing:-1px
  }
  .credit-fields{grid-template-columns:minmax(0,1fr);gap:8px}
  .credit-fields label:last-child{grid-column:auto}
  .global-music-settings{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .global-music-settings label{padding:9px}
  .import-card summary span{white-space:normal}
  .import-card summary small{display:none}

  .tool-deck,.paper-surface,.editor-workspace>.hint,.editor-view-actions{display:none}
  .editor-workspace{margin-top:10px;padding:10px;border-radius:14px}
  .editor-heading{padding:2px 2px 10px}
  .editor-heading h2{font-size:20px}
  .measure-status{max-height:74px;overflow:auto}
  .mobile-score-editor{display:block}
  .mobile-measure-heading{display:flex;align-items:end;justify-content:space-between;gap:12px;padding:8px 4px 12px}
  .mobile-measure-heading h3{margin:3px 0 0;font-family:Georgia,serif;font-size:24px}
  .mobile-measure-heading>span{color:var(--muted);font-size:11px;font-weight:750}
  .mobile-measure-navigation{display:grid;grid-template-columns:48px minmax(0,1fr) 48px;gap:8px;margin-bottom:9px}
  .mobile-measure-navigation button,.mobile-measure-navigation select{width:100%;min-height:48px;border:1px solid var(--line-strong);border-radius:11px;background:#fff;color:var(--ink);font-size:15px;font-weight:800}
  .mobile-measure-navigation button{font-size:28px}
  .mobile-voice-switcher{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-bottom:10px}
  .mobile-voice-switcher button{min-height:44px;border:1px solid var(--line);border-radius:10px;background:#f4f8fd;color:var(--blue);font-weight:850}
  .mobile-voice-switcher button.active{border-color:var(--blue);background:var(--blue);color:#fff;box-shadow:inset 0 -3px var(--yellow)}
  .mobile-position-list{display:grid;gap:8px}
  .mobile-position-card{
    display:grid;
    grid-template-columns:64px minmax(58px,.7fr) minmax(0,1.5fr) auto;
    align-items:center;
    gap:8px;
    width:100%;
    min-height:72px;
    border:1px solid var(--line);
    border-radius:12px;
    padding:9px 10px;
    background:#fff;
    color:var(--ink);
    text-align:left
  }
  .mobile-position-card.selected{border-color:var(--blue);box-shadow:inset 4px 0 var(--blue)}
  .mobile-position-number{color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase}
  .mobile-position-note,.mobile-position-lyric{display:grid;gap:2px}
  .mobile-position-card small{color:var(--muted);font-size:9px;text-transform:uppercase}
  .mobile-position-note strong{color:var(--blue);font-family:Georgia,serif;font-size:25px}
  .mobile-position-lyric strong{display:-webkit-box;overflow:hidden;font-size:14px;line-height:1.2;-webkit-box-orient:vertical;-webkit-line-clamp:2}
  .mobile-position-duration{color:#536b84;font-size:10px;font-weight:750}
  .mobile-all-voices-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain}
  .mobile-all-voices-scroll table{min-width:620px;border-collapse:separate;border-spacing:0}
  .mobile-all-voices-scroll th,.mobile-all-voices-scroll td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:6px}
  .mobile-all-voices-scroll th:first-child{position:sticky;z-index:3;left:0;width:76px;background:#f5f9fe}
  .mobile-all-voices-scroll th small{display:block;color:var(--muted);font-size:8px}
  .mobile-all-voices-scroll td button{display:grid;width:100%;min-height:58px;border:0;background:#fff;color:var(--ink)}
  .mobile-all-voices-scroll td strong{font-family:Georgia,serif;font-size:21px}
  .mobile-all-voices-scroll td small{max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

  #editorPage{padding-bottom:calc(var(--mobile-nav-height) + 92px)}
  .responsive-editor-actions{
    position:fixed;
    right:7px;
    bottom:calc(var(--mobile-nav-height) + 6px);
    left:7px;
    transform:none;
    width:auto;
    grid-template-columns:repeat(7,minmax(0,1fr));
    gap:4px;
    margin:0;
    border-radius:14px;
    padding:6px
  }
  .responsive-editor-actions button{min-height:48px;padding:4px 1px}
  .responsive-editor-actions img{width:16px;height:16px}
  .responsive-editor-actions small{font-size:7.5px}

  .mobile-cell-editor{
    position:fixed;
    top:auto;
    right:0;
    bottom:0;
    left:0;
    width:100%;
    max-width:100%;
    max-height:min(86vh,720px);
    margin:0;
    overflow:auto;
    border:0;
    border-radius:22px 22px 0 0;
    padding:0;
    background:#fff;
    color:var(--ink)
  }
  .mobile-cell-editor form{display:grid;gap:14px;padding:18px 16px max(18px,env(safe-area-inset-bottom))}
  .mobile-cell-editor header{display:flex;align-items:start;justify-content:space-between;gap:12px}
  .mobile-cell-editor h2{margin:3px 0 0;font-family:Georgia,serif;font-size:24px}
  .mobile-cell-editor header button{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:#f4f7fb;font-size:24px}
  .mobile-cell-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .mobile-cell-fields label{display:grid;gap:5px;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase}
  .mobile-cell-fields input,.mobile-cell-fields select,.mobile-cell-fields textarea{width:100%;min-height:48px;border:1px solid var(--line-strong);border-radius:10px;padding:10px;background:#fff;color:var(--ink);font-size:15px;text-transform:none}
  .mobile-cell-lyric-field{grid-column:1/-1}
  .mobile-cell-editor footer{display:grid;grid-template-columns:auto 1fr auto auto;gap:8px}

  .library-page{padding-bottom:calc(var(--mobile-nav-height) + 18px)}
  .library-page-head{gap:9px;padding:14px}
  .library-page-head h1{font-size:30px;line-height:1}
  .library-page-head p:last-child{margin:5px 0 0}
  .library-page-head .button{min-height:44px}
  .library-command-bar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:9px}
  .library-command-bar .button,.library-command-bar>label{width:100%;min-width:0;min-height:48px;padding:8px;font-size:10px;text-align:center}
  .library-command-bar .button:nth-of-type(n+3),.library-command-bar>label:nth-of-type(n+2),#libraryExportArchive,#libraryRequestClear{display:none}
  #libraryStatus{grid-column:1/-1;font-size:10px}
  .library-mobile-controls{display:grid;gap:9px;margin:10px 0;padding:10px;border:1px solid var(--line);border-radius:14px;background:#fff}
  .library-mobile-controls[hidden]{display:none}
  .library-mobile-search input{width:100%;min-height:48px;border:1px solid var(--line-strong);border-radius:11px;padding:10px 12px;font-size:15px}
  .library-mobile-actions{display:grid;grid-template-columns:1fr 1fr auto;gap:7px}
  .library-mobile-actions .button{justify-content:center;padding-inline:8px;white-space:normal}
  .library-mobile-actions .segmented{min-width:110px}
  .library-mobile-actions .segmented button{padding-inline:7px}
  .library-mobile-summary{display:flex;align-items:center;justify-content:space-between;gap:10px}
  .library-mobile-summary strong{font-size:12px}
  .library-layout{display:block}
  .library-filters{
    position:fixed;
    z-index:110;
    right:0;
    bottom:0;
    left:0;
    display:grid;
    grid-template-columns:minmax(0,1fr);
    max-height:86vh;
    overflow:auto;
    border:0;
    border-radius:22px 22px 0 0;
    padding:16px 14px max(18px,env(safe-area-inset-bottom));
    background:#fff;
    box-shadow:0 -24px 80px rgba(6,24,45,.32);
    opacity:0;
    visibility:hidden;
    transform:translateY(105%);
    transition:transform .22s ease,opacity .2s
  }
  .library-filters.mobile-open,.library-filters.mobile-collection-open{opacity:1;visibility:visible;transform:none}
  .library-filter-head,.library-search,.pinned-collections,.library-organize{grid-column:auto}
  .library-filter-close{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:#f4f7fb;font-size:25px}
  .library-filters .library-search,.library-filters .pinned-collections,.library-filters .library-organize{display:none}
  .library-filters.mobile-collection-open>*{display:none}
  .library-filters.mobile-collection-open .library-filter-head,.library-filters.mobile-collection-open .library-organize{display:grid}
  .library-filters.mobile-collection-open .library-filter-head>div:first-child h2{font-size:0}
  .library-filters.mobile-collection-open .library-filter-head>div:first-child h2:after{content:"Nouvelle collection";font-size:22px}
  .library-filters.mobile-collection-open .library-organize{gap:10px}
  .library-results{padding:4px 0 12px}
  .library-results>header{display:none}
  .library-batch-bar{margin:8px 0;grid-template-columns:minmax(0,1fr)}
  .library-grid,.library-grid.list-view{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;overflow:visible}
  .library-mobile-card{
    position:relative;
    display:grid;
    grid-template-columns:28px minmax(0,1fr) auto;
    gap:9px;
    border:1px solid var(--line);
    border-radius:13px;
    padding:11px;
    background:#fff;
    box-shadow:0 5px 16px rgba(23,52,85,.07)
  }
  .library-mobile-card.compact{padding-block:8px}
  .library-mobile-select{padding-top:3px}
  .library-mobile-select input{width:20px;height:20px;accent-color:var(--blue)}
  .library-mobile-card-copy h3{display:-webkit-box;margin:0;overflow:hidden;font-family:Georgia,serif;font-size:17px;line-height:1.12;-webkit-box-orient:vertical;-webkit-line-clamp:2}
  .library-mobile-card-copy p{margin:5px 0 4px;color:var(--muted);font-size:11px}
  .library-mobile-card-copy>span{color:#4f6984;font-size:10px;font-weight:750}
  .library-mobile-card-actions{display:grid;align-content:center;gap:6px}
  .library-mobile-card-actions .button{min-height:42px;padding:7px 10px}
  .library-mobile-more{display:grid;place-items:center;width:44px;height:42px;border:1px solid var(--line);border-radius:9px;background:#f4f7fb;color:var(--ink);font-size:21px}
  .library-mobile-card-menu{grid-column:2/-1;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;border-top:1px solid var(--line);padding-top:9px}
  .library-mobile-card-menu[hidden]{display:none}
  .library-mobile-card-menu label{display:grid;gap:4px;font-size:9px;font-weight:800}
  .library-mobile-card-menu select{min-height:42px}
  .library-mobile-card-menu button{min-height:42px;border:1px solid #f0b8b4;border-radius:9px;background:#fff5f4;padding:7px}

  .presentation-page{padding:5px 5px calc(var(--mobile-nav-height) + 16px)}
  .presentation-toolbar{position:sticky;top:0;z-index:30;padding:8px}
  .presentation-title h1{display:-webkit-box;overflow:hidden;font-size:22px;line-height:1.08;-webkit-box-orient:vertical;-webkit-line-clamp:2}
  .presentation-transport,.presentation-toolbar-actions{display:none}
  .presentation-layout{display:grid;gap:8px}
  .presentation-layout .presentation-settings{grid-row:3;display:grid;gap:7px;max-height:none}
  .presentation-settings>details{border-radius:11px}
  .presentation-settings>details>summary{font-size:13px}
  .presentation-settings-group{padding:9px}
  .presentation-mixer-channels{grid-template-columns:minmax(0,1fr)}
  .presentation-mobile-launch{
    position:sticky;
    z-index:35;
    grid-row:2;
    grid-column:1;
    bottom:calc(var(--mobile-nav-height) + 7px);
    display:flex;
    justify-content:center;
    width:calc(100% - 12px);
    min-height:50px;
    margin:0 6px;
    box-shadow:0 12px 30px rgba(0,102,207,.28)
  }
  .presentation-mobile-launch[hidden]{display:none}
  .presentation-stage{min-height:0;padding:5px}
  .presentation-screen{min-height:0!important;padding:8px}
  .presentation-screen>header{min-height:36px;margin-bottom:5px;padding-bottom:5px;font-size:10px}
  .presentation-system-directions{gap:4px}
  .presentation-track-row,.presentation-global-lyrics{grid-template-columns:68px minmax(0,1fr)}
  .presentation-track-name,.presentation-lyrics-label{padding:5px}
  .presentation-track-name strong{font-size:23px}
  .presentation-track-name span{font-size:9px}
  .presentation-cell{min-width:86px;padding:6px}
  .presentation-note{font-size:26px}
  .presentation-lyric{font-size:min(var(--presentation-lyric-size),29px)}
  .presentation-stage[data-responsive-flow="focus"] .presentation-screen.presentation-next-line{display:grid;max-height:none;overflow:visible;opacity:.58}
  .presentation-stage[data-responsive-flow="focus"] .presentation-screen:not(.presentation-current-line):not(.presentation-next-line){display:none}

  .presentation-page.mobile-reading{position:fixed;z-index:120;inset:0;overflow:hidden;padding:0;background:#050a12}
  body.presentation-mobile-reading{overflow:hidden;padding-bottom:0}
  body.presentation-mobile-reading .app-header{display:none}
  .presentation-page.mobile-reading .presentation-toolbar{position:absolute;z-index:4;top:0;left:0;right:0;border:0;background:linear-gradient(to bottom,rgba(5,10,18,.92),transparent);box-shadow:none;pointer-events:none}
  .presentation-page.mobile-reading .presentation-title{color:#fff;text-align:center}
  .presentation-page.mobile-reading .presentation-title .eyebrow{display:none}
  .presentation-page.mobile-reading .presentation-title>span{display:block;color:#c6d6e7}
  .presentation-page.mobile-reading .presentation-layout{height:100vh}
  .presentation-page.mobile-reading .presentation-settings{display:none}
  .presentation-page.mobile-reading .presentation-stage{height:100vh;max-height:none;padding:70px 5px 78px;overflow-y:auto}
  .presentation-page.mobile-reading .presentation-screen{background:rgba(255,255,255,.035)}
  .presentation-mobile-transport{
    position:fixed;
    z-index:140;
    right:7px;
    bottom:max(7px,env(safe-area-inset-bottom));
    left:7px;
    display:grid;
    grid-template-columns:44px minmax(74px,1fr) minmax(64px,.8fr) 44px 44px;
    gap:6px;
    border:1px solid #29435f;
    border-radius:15px;
    padding:7px;
    background:rgba(7,22,39,.96);
    box-shadow:0 16px 44px rgba(0,0,0,.38)
  }
  .presentation-mobile-transport[hidden]{display:none}
  .presentation-mobile-transport button{display:flex;align-items:center;justify-content:center;gap:5px;border:1px solid #29435f;border-radius:9px;padding:5px;background:#132942;color:#fff;font-weight:800}
  .presentation-mobile-transport button:nth-child(2){border-color:var(--yellow);background:var(--yellow);color:#102034}
  .presentation-mobile-transport img{width:16px;height:16px}
  .presentation-mobile-transport span{font-size:10px}
  .presentation-mobile-menu{
    position:fixed;
    z-index:141;
    right:8px;
    bottom:76px;
    display:grid;
    min-width:210px;
    gap:5px;
    border:1px solid #29435f;
    border-radius:12px;
    padding:7px;
    background:#0d2137;
    box-shadow:0 18px 50px rgba(0,0,0,.4)
  }
  .presentation-mobile-menu[hidden]{display:none}
  .presentation-mobile-menu button{min-height:44px;border:0;border-radius:8px;background:#17304a;color:#fff;text-align:left;padding:9px 12px}

  .about-tabs{grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible}
  .about-tabs button{min-width:0;white-space:normal}
}

/* Administration 2.0 — tables de données, import suivi et configuration financière. */
.admin-section-heading>div>p:last-child{margin:6px 0 0;color:#64778d;font-size:13px;line-height:1.45}.admin-section-heading>div:last-child:not(:first-child){display:flex;align-items:center;gap:12px}.admin-data-toolbar{display:grid;grid-template-columns:minmax(280px,1.5fr) minmax(150px,.55fr) minmax(170px,.65fr) auto auto;align-items:end;gap:12px;border:1px solid #d5e2ef;border-radius:14px;padding:14px;background:#f7fbff}.admin-data-toolbar label,.admin-upload-settings label{display:grid;gap:6px;min-width:0;color:#52667d;font-size:11px;font-weight:850}.admin-data-toolbar input,.admin-data-toolbar select,.admin-upload-settings select,.admin-bulk-bar select,.admin-role-select,.admin-plan-matrix input{width:100%;min-width:0;min-height:44px;border:1px solid #bacde0;border-radius:10px;padding:9px 11px;background:#fff;color:#10233a;font-size:14px;font-weight:650}.admin-search-field input{padding-left:14px}.admin-toolbar-primary{white-space:nowrap}.admin-create-user[hidden]{display:none}.admin-bulk-bar{display:flex;align-items:center;gap:9px;border:1px solid #b8d6f4;border-left:4px solid #0066cf;border-radius:12px;padding:10px 12px;background:#eef7ff}.admin-bulk-bar[hidden]{display:none}.admin-bulk-bar strong{margin-right:auto;color:#0c3761}.admin-bulk-bar select{width:auto;min-width:160px;min-height:40px}.admin-table th button{border:0;padding:0;background:transparent;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer}.admin-table th button:hover,.admin-table th button.active{color:#0066cf}.admin-table th:first-child,.admin-table td:first-child{width:42px;text-align:center}.admin-table input[type=checkbox],.admin-plan-matrix input[type=checkbox]{width:18px;height:18px;accent-color:#0066cf}.admin-users-table{min-width:1180px}.admin-songs-table{min-width:1120px}.admin-user-id{max-width:125px;color:#61758b;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;word-break:break-all}.admin-user-name{font-weight:850;color:#0e2b48}.admin-role-select{min-width:155px;min-height:40px;font-size:14px}.admin-table-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;color:#64778d;font-size:11px}.admin-table-footer span:first-child{font-weight:850;color:#234c74}.admin-upload-workspace{display:grid;grid-template-columns:minmax(270px,.75fr) minmax(220px,.65fr) minmax(360px,1.35fr);gap:14px}.admin-upload-dropzone{display:grid;place-items:center;align-content:center;gap:7px;min-height:178px;border:2px dashed #9bc6ef;border-radius:15px;padding:20px;background:#f8fcff;color:#0066cf;text-align:center;cursor:pointer}.admin-upload-dropzone:hover{border-color:#0066cf;background:#eef7ff}.admin-upload-dropzone .inline-mask-icon{width:34px;height:34px}.admin-upload-dropzone strong{font-size:15px}.admin-upload-dropzone span{color:#63778d;font-size:11px}.admin-upload-settings{display:grid;align-content:start;gap:10px;border:1px solid #d5e2ef;border-radius:15px;padding:16px;background:#fff}.admin-upload-settings p{margin:3px 0 0;color:#6a7e92;font-size:11px;line-height:1.5}.admin-upload-queue{display:grid;grid-template-rows:auto minmax(94px,1fr) auto;gap:10px;border:1px solid #d5e2ef;border-radius:15px;padding:14px;background:#fff}.admin-upload-queue header,.admin-upload-item,.admin-upload-total{display:flex;align-items:center;gap:10px}.admin-upload-queue header{justify-content:space-between}.admin-upload-queue header span{color:#62758b;font-size:11px}.admin-upload-item{display:grid;grid-template-columns:minmax(120px,1fr) minmax(100px,.65fr) 62px;gap:10px;border-top:1px solid #edf2f7;padding:8px 0;font-size:11px}.admin-upload-item:first-child{border-top:0}.admin-upload-item strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-upload-item progress,.admin-upload-total progress{width:100%;height:8px;accent-color:#0066cf}.admin-upload-item span{color:#60768d;text-align:right}.admin-upload-item.done span{color:#147a4f}.admin-upload-item.failed span{color:#c43f48}.admin-upload-total{display:grid;grid-template-columns:auto 1fr auto;border-top:1px solid #e3ebf3;padding-top:10px;color:#4b6178;font-size:11px}.admin-empty-inline{margin:auto;color:#78899c;font-size:11px;text-align:center}.admin-catalog-toolbar{grid-template-columns:minmax(280px,1.5fr) minmax(150px,.5fr) minmax(190px,.65fr) auto}.admin-plan-matrix{overflow-x:auto;border:1px solid #cfdeed;border-radius:15px}.admin-plan-matrix table{width:100%;min-width:920px;border-collapse:collapse;table-layout:fixed}.admin-plan-matrix th,.admin-plan-matrix td{border-right:1px solid #dde7f1;border-bottom:1px solid #dde7f1;padding:11px;text-align:center}.admin-plan-matrix th:first-child,.admin-plan-matrix td:first-child{width:240px;text-align:left}.admin-plan-matrix th{background:#f4f9ff;color:#183b5e;vertical-align:top}.admin-plan-matrix th:first-child{color:#567087;font-size:11px;letter-spacing:.06em;text-transform:uppercase}.admin-plan-column{display:grid;gap:8px}.admin-plan-column input[type=text]{text-align:center;font-weight:850}.admin-plan-column label{display:flex;align-items:center;justify-content:center;gap:6px;color:#5e7186;font-size:10px}.admin-plan-matrix tbody th{background:#fbfdff;color:#36536f;font-size:12px}.admin-plan-matrix .admin-price-group th{background:#eaf4ff;color:#0066cf;font-size:10px;letter-spacing:.05em;text-transform:uppercase}.admin-plan-matrix .admin-price-cell{display:grid;grid-template-columns:1fr auto;align-items:center;gap:5px}.admin-plan-matrix .admin-price-cell input{min-height:38px;text-align:right}.admin-plan-matrix .admin-price-cell span{color:#60768d;font-size:10px;font-weight:800}.admin-create-plan-disclosure{border:1px solid #d5e2ef;border-radius:14px;background:#f8fbff}.admin-create-plan-disclosure summary{padding:14px 16px;color:#0066cf;font-size:13px;font-weight:850;cursor:pointer}.admin-create-plan-disclosure[open] summary{border-bottom:1px solid #dce7f2}.admin-create-plan-disclosure .admin-create-plan{border:0;border-radius:0;background:transparent}.admin-provider-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.admin-provider-card{display:grid;gap:14px;border:1px solid #cedeed;border-radius:16px;padding:18px;background:#fff;box-shadow:0 5px 16px rgba(17,55,90,.05)}.admin-provider-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.admin-provider-name{display:flex;align-items:center;gap:11px}.admin-provider-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:11px;background:#0066cf;color:#fff;font-size:16px;font-weight:900}.admin-provider-card h3{margin:0;color:#123555}.admin-provider-card header p{margin:3px 0 0;color:#65798e;font-size:11px}.admin-provider-fields{display:grid;gap:9px}.admin-provider-field{display:grid;grid-template-columns:130px minmax(0,1fr);align-items:center;gap:10px}.admin-provider-field span{color:#65778b;font-size:11px;font-weight:750}.admin-provider-value{display:flex;align-items:center;min-height:42px;border:1px solid #d3e0ec;border-radius:9px;padding:8px 10px;background:#f8fbff;color:#263f59;font-size:12px;word-break:break-all}.admin-provider-value.secret{letter-spacing:.16em}.admin-provider-actions{display:flex;justify-content:flex-end;gap:8px}.admin-security-note{display:flex;align-items:center;gap:12px;border:1px solid #c9dff5;border-radius:12px;padding:12px 14px;background:#eff7ff;color:#234a70}.admin-security-note strong{white-space:nowrap}.admin-security-note span{font-size:11px;line-height:1.45}.dark-mode .admin-data-toolbar,.dark-mode .admin-upload-dropzone,.dark-mode .admin-upload-settings,.dark-mode .admin-upload-queue,.dark-mode .admin-provider-card,.dark-mode .admin-create-plan-disclosure,.dark-mode .admin-plan-matrix th,.dark-mode .admin-plan-matrix tbody th{border-color:#31506d;background:#10263c;color:#eaf4ff}.dark-mode .admin-data-toolbar input,.dark-mode .admin-data-toolbar select,.dark-mode .admin-upload-settings select,.dark-mode .admin-bulk-bar select,.dark-mode .admin-role-select,.dark-mode .admin-plan-matrix input,.dark-mode .admin-provider-value{border-color:#3a5975;background:#142d45;color:#eef6ff}.dark-mode .admin-bulk-bar,.dark-mode .admin-security-note{border-color:#315a80;background:#102f4b;color:#c8e2fa}

@media (max-width:1199px){.admin-data-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-search-field{grid-column:1/-1}.admin-toolbar-primary{grid-column:2}.admin-upload-workspace{grid-template-columns:1fr 1fr}.admin-upload-queue{grid-column:1/-1}.admin-provider-grid{grid-template-columns:1fr}}
@media (max-width:1023px){.admin-data-toolbar,.admin-catalog-toolbar{grid-template-columns:1fr 1fr}.admin-search-field{grid-column:1/-1}.admin-upload-workspace{grid-template-columns:1fr}.admin-upload-queue{grid-column:auto}.admin-bulk-bar{align-items:stretch;flex-wrap:wrap}.admin-bulk-bar strong{width:100%}.admin-table-footer{align-items:flex-start;flex-direction:column}.admin-section-heading>div:last-child:not(:first-child){align-items:flex-start;flex-direction:column}.admin-security-note{align-items:flex-start;flex-direction:column}.admin-provider-field{grid-template-columns:1fr}.admin-plan-matrix{margin-inline:-8px}}
@media (max-width:767px){.admin-data-toolbar,.admin-catalog-toolbar{grid-template-columns:1fr}.admin-search-field,.admin-toolbar-primary{grid-column:auto}.admin-data-toolbar .button{width:100%}.admin-upload-dropzone{min-height:150px}.admin-upload-item{grid-template-columns:1fr 70px}.admin-upload-item progress{grid-column:1/-1;grid-row:2}.admin-bulk-bar select,.admin-bulk-bar .button{width:100%}.admin-provider-card{padding:14px}.admin-provider-actions{display:grid;grid-template-columns:1fr}.admin-security-note strong{white-space:normal}.admin-section-heading>div:last-child:not(:first-child) .button{width:100%}}

@media (max-width:1023px) and (orientation:landscape) and (max-height:520px){
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-toolbar{
    min-height:38px;
    padding:5px 48px 5px 10px
  }
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-title-block h2{
    font-size:clamp(17px,3vw,24px)
  }
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-track-row,
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-global-lyrics{
    grid-template-columns:minmax(76px,9vw) minmax(0,1fr)
  }
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-track-row{
    min-height:39px
  }
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-global-lyrics{
    min-height:47px
  }
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-track-name strong{
    font-size:clamp(21px,4.2vh,30px)
  }
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-note{
    font-size:clamp(19px,4.2vh,29px)
  }
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-lyric{
    font-size:clamp(16px,3.8vh,25px)
  }
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-track-name span,
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-lyrics-label span{
    display:none
  }
}

@media (max-width:1100px) and (hover:none) and (pointer:coarse){
  .button,.square-button,.ribbon-button,.tool-tab,.segmented button,.mix-button,.start-play,.notation-button{min-height:44px}
  .chromatic-bubble button{min-height:28px}
}

/* Audit responsive approfondi : commandes toujours accessibles et plein écran épuré. */
.presentation-page.theater-mode{
  position:fixed;
  z-index:120;
  inset:0;
  width:100vw;
  height:100vh;
  margin:0;
  overflow:hidden;
  padding:0;
  background:#081322
}
body.presentation-theater-active{overflow:hidden;padding-bottom:0}
.presentation-page:is(:fullscreen,.theater-mode) .presentation-layout{
  display:block;
  width:100vw;
  height:100vh;
  margin:0
}
.presentation-page:is(:fullscreen,.theater-mode) .presentation-stage{
  width:100vw;
  height:100vh;
  min-height:0;
  border-radius:0;
  padding:44px 12px 8px;
  scroll-padding-block:0
}
.presentation-page:is(:fullscreen,.theater-mode) .presentation-screen{
  min-height:calc(100vh - 52px);
  border-color:transparent;
  border-radius:0;
  padding:10px;
  background:transparent;
  box-shadow:none
}
.presentation-page:is(:fullscreen,.theater-mode) .presentation-stage.presentation-reading-window .presentation-screen.presentation-current-line,
.presentation-page:is(:fullscreen,.theater-mode) .presentation-stage.presentation-reading-window .presentation-screen.presentation-next-line{
  min-block-size:calc(100vh - 52px)
}
.presentation-page:is(:fullscreen,.theater-mode) .presentation-toolbar{
  position:fixed;
  z-index:140;
  top:0;
  right:0;
  left:0;
  display:block;
  width:100%;
  height:44px;
  min-height:44px;
  border:0;
  border-radius:0;
  padding:0;
  background:linear-gradient(to bottom,rgba(5,10,18,.64),transparent);
  box-shadow:none;
  pointer-events:none
}
.presentation-page:is(:fullscreen,.theater-mode) .presentation-title{
  position:absolute;
  top:9px;
  left:50%;
  width:min(62vw,820px);
  transform:translateX(-50%);
  text-align:center;
  pointer-events:none
}
.presentation-page:is(:fullscreen,.theater-mode) .presentation-title .eyebrow,
.presentation-page:is(:fullscreen,.theater-mode) .presentation-title>span{display:none}
.presentation-page:is(:fullscreen,.theater-mode) .presentation-title h1{
  max-width:none;
  margin:0;
  overflow:hidden;
  color:rgba(255,255,255,.9);
  font-size:18px;
  text-overflow:ellipsis;
  white-space:nowrap
}
.presentation-page:is(:fullscreen,.theater-mode) .presentation-hover-handle{
  position:fixed;
  z-index:145;
  top:8px;
  right:9px;
  display:grid;
  place-items:center;
  width:38px;
  height:30px;
  border:1px solid rgba(255,255,255,.28);
  border-radius:999px;
  background:rgba(5,18,34,.72);
  color:#fff;
  opacity:.72;
  pointer-events:auto
}
.presentation-page:is(:fullscreen,.theater-mode) .presentation-transport,
.presentation-page:is(:fullscreen,.theater-mode) .presentation-toolbar-actions{
  position:fixed;
  z-index:144;
  top:50px;
  right:10px;
  display:flex;
  max-width:min(620px,calc(100vw - 20px));
  flex-wrap:wrap;
  justify-content:flex-end;
  border:1px solid rgba(117,216,255,.24);
  border-radius:13px;
  padding:8px;
  background:rgba(6,19,34,.94);
  box-shadow:0 18px 60px rgba(0,0,0,.42);
  opacity:0!important;
  transform:translateY(-8px);
  pointer-events:none!important;
  transition:opacity .18s,transform .18s
}
.presentation-page:is(:fullscreen,.theater-mode) .presentation-toolbar-actions{top:112px}
.presentation-page:is(:fullscreen,.theater-mode).fullscreen-controls-visible .presentation-transport,
.presentation-page:is(:fullscreen,.theater-mode).fullscreen-controls-visible .presentation-toolbar-actions{
  opacity:1!important;
  transform:none;
  pointer-events:auto!important
}
.presentation-page:is(:fullscreen,.theater-mode) .presentation-settings{
  position:fixed;
  z-index:146;
  top:50px;
  left:10px;
  width:min(330px,calc(100vw - 20px));
  max-height:calc(100vh - 60px)
}
.presentation-page:is(:fullscreen,.theater-mode) .presentation-settings.collapsed{display:none}
.presentation-page:is(:fullscreen,.theater-mode) .presentation-brand-top{top:10px;left:10px}
.presentation-page:is(:fullscreen,.theater-mode) .presentation-brand-bottom{right:10px;bottom:10px}

/* Protection desktop : la cordée suivante reste prépositionnée comme avant
   les adaptations mobile/tablette. */
@media (min-width:1024px){
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-stage.presentation-reading-window .presentation-screen.presentation-current-line,
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-stage.presentation-reading-window .presentation-screen.presentation-next-line{
    min-height:max(380px,calc((100vh - 110px)/2));
    min-block-size:max(380px,calc((100vh - 110px)/2))
  }
}

@media (max-width:640px){
  #editorPage{padding-bottom:calc(var(--mobile-nav-height) + 126px)}
  .ribbon-button{
    min-width:64px;
    min-height:56px;
    font-size:10.5px!important;
    line-height:1.15
  }
  .ribbon-button span{
    max-width:76px;
    overflow:visible;
    text-overflow:clip;
    white-space:normal
  }
  .start-play{
    width:26px;
    min-width:26px;
    height:26px;
    min-height:26px;
    border-radius:50%;
    background:#eef6ff;
    font-size:10px
  }
  .mix-button,
  .presentation-mixer-channel .mix-button{
    width:30px;
    min-width:30px;
    height:30px;
    min-height:30px;
    font-size:11px
  }
  .transport{
    position:fixed;
    right:8px;
    bottom:calc(var(--mobile-nav-height) + 6px);
    left:8px;
    width:auto;
    min-height:0;
    margin:0;
    grid-template-columns:minmax(0,1fr) auto;
    padding:7px 9px
  }
  .transport-main{grid-column:1/-1;justify-content:center}
  .transpose{grid-column:1;min-width:0}
  .transport-apply{grid-column:2}
  .play{width:40px;height:40px}.round{width:32px;height:32px}

  .tool-tabs{gap:4px}
  .tool-tab{
    flex:0 0 auto;
    min-width:92px;
    gap:5px;
    padding:6px 8px;
    font-size:10px!important;
    line-height:1.12;
    white-space:normal
  }
  .tool-tab span.tool-tab-icon{width:22px;height:22px;flex:0 0 22px;-webkit-mask-size:19px 19px;mask-size:19px 19px}

  .about-tabs{
    position:static;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:5px;
    overflow:visible
  }
  .about-tabs button{
    min-width:0;
    min-height:54px;
    padding:8px 7px;
    font-size:11px;
    line-height:1.22;
    text-align:center;
    white-space:normal;
    overflow-wrap:anywhere
  }

  .presentation-page:is(:fullscreen,.theater-mode) .presentation-stage{padding:40px 5px 5px}
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-screen{
    display:grid;
    min-height:calc(100vh - 45px);
    grid-template-rows:auto minmax(0,1fr);
    align-content:center;
    padding:5px
  }
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-stage.presentation-reading-window .presentation-screen.presentation-current-line,
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-stage.presentation-reading-window .presentation-screen.presentation-next-line{
    min-block-size:calc(100vh - 45px)
  }
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-screen>header{
    min-height:28px;
    gap:4px 8px;
    padding:3px 4px 6px;
    font-size:10px
  }
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-score-body{align-self:center;overflow-x:auto}
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-track-row,
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-global-lyrics{
    grid-template-columns:64px minmax(0,1fr)
  }
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-track-row{min-height:clamp(48px,9vh,68px)}
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-global-lyrics{min-height:clamp(58px,11vh,82px)}
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-track-name,
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-lyrics-label{padding:4px 5px}
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-track-name strong{font-size:23px}
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-track-name span{font-size:9px}
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-lyrics-label strong{font-size:9px}
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-lyrics-label span{font-size:8px}
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-cell{min-width:88px;padding:4px 6px}
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-note{font-size:27px}
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-lyric{font-size:min(var(--presentation-lyric-size),30px)}
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-title{top:10px;width:62vw}
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-title h1{font-size:14px}
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-brand-top{display:none}
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-brand-bottom img{width:48px;height:48px}
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-transport,
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-toolbar-actions{
    right:7px;
    left:7px;
    max-width:none;
    justify-content:center
  }
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-toolbar-actions{top:152px}
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-toolbar .button{min-height:40px;padding:7px 9px;font-size:11px}
}

@media (max-width:640px) and (orientation:landscape) and (max-height:520px){
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-stage{padding-top:36px}
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-screen{min-height:calc(100vh - 40px)}
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-stage.presentation-reading-window .presentation-screen.presentation-current-line,
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-stage.presentation-reading-window .presentation-screen.presentation-next-line{min-block-size:calc(100vh - 40px)}
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-track-row{min-height:42px}
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-global-lyrics{min-height:48px}
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-track-name strong{font-size:20px}
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-note{font-size:24px}
  .presentation-page:is(:fullscreen,.theater-mode) .presentation-lyric{font-size:min(var(--presentation-lyric-size),27px)}
}

@media (max-width:767px) and (orientation:landscape) and (max-height:520px){
  .presentation-page.mobile-reading .presentation-stage[data-responsive-flow="focus"]{
    display:grid;
    grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
    grid-auto-rows:max-content;
    align-items:start;
    gap:7px;
    padding:36px 5px 70px;
    overflow:auto
  }
  .presentation-page.mobile-reading .presentation-stage[data-responsive-flow="focus"] .presentation-screen.presentation-current-line,
  .presentation-page.mobile-reading .presentation-stage[data-responsive-flow="focus"] .presentation-screen.presentation-next-line{
    min-width:0;
    min-height:0!important;
    max-height:none;
    margin:0;
    overflow:visible;
    padding:5px
  }
  .presentation-page.mobile-reading .presentation-stage[data-responsive-flow="focus"] .presentation-screen.presentation-current-line{grid-column:1}
  .presentation-page.mobile-reading .presentation-stage[data-responsive-flow="focus"] .presentation-screen.presentation-next-line{grid-column:2}
  .presentation-page.mobile-reading .presentation-stage[data-responsive-flow="focus"] .presentation-screen>header{
    min-height:24px;
    margin-bottom:3px;
    padding:2px 3px 4px;
    font-size:8px
  }
  .presentation-page.mobile-reading .presentation-stage[data-responsive-flow="focus"] .presentation-score-body{min-width:0;overflow-x:auto}
  .presentation-page.mobile-reading .presentation-stage[data-responsive-flow="focus"] .presentation-track-row,
  .presentation-page.mobile-reading .presentation-stage[data-responsive-flow="focus"] .presentation-global-lyrics{
    min-width:0;
    grid-template-columns:48px minmax(0,1fr)
  }
  .presentation-page.mobile-reading .presentation-stage[data-responsive-flow="focus"] .presentation-track-row{min-height:31px}
  .presentation-page.mobile-reading .presentation-stage[data-responsive-flow="focus"] .presentation-global-lyrics{min-height:37px}
  .presentation-page.mobile-reading .presentation-stage[data-responsive-flow="focus"] .presentation-track-name,
  .presentation-page.mobile-reading .presentation-stage[data-responsive-flow="focus"] .presentation-lyrics-label{padding:2px 3px}
  .presentation-page.mobile-reading .presentation-stage[data-responsive-flow="focus"] .presentation-track-name strong{font-size:17px}
  .presentation-page.mobile-reading .presentation-stage[data-responsive-flow="focus"] .presentation-track-name span,
  .presentation-page.mobile-reading .presentation-stage[data-responsive-flow="focus"] .presentation-lyrics-label span{display:none}
  .presentation-page.mobile-reading .presentation-stage[data-responsive-flow="focus"] .presentation-lyrics-label strong{font-size:7px}
  .presentation-page.mobile-reading .presentation-stage[data-responsive-flow="focus"] .presentation-cell{min-width:64px;padding:2px 4px}
  .presentation-page.mobile-reading .presentation-stage[data-responsive-flow="focus"] .presentation-note{font-size:19px}
  .presentation-page.mobile-reading .presentation-stage[data-responsive-flow="focus"] .presentation-lyric{font-size:min(var(--presentation-lyric-size),20px)}
}

/* Navigation condensée de la partition — invisible et sans effet sur le desktop. */
.responsive-score-info-heading{display:contents}
.responsive-disclosure-button{display:none}

/* Le décor et les signatures Adoram restent visibles dans tous les modes de lecture. */
.presentation-page:is(:fullscreen,.theater-mode,.mobile-reading) .presentation-brand{
  position:fixed;
  z-index:145;
  display:flex;
  align-items:center;
  gap:8px;
  color:rgba(255,255,255,.78);
  pointer-events:none
}
.presentation-page:is(:fullscreen,.theater-mode,.mobile-reading) .presentation-brand-top{top:12px;left:14px;font-size:10px;font-weight:850;letter-spacing:.05em}
.presentation-page:is(:fullscreen,.theater-mode,.mobile-reading) .presentation-brand-top img{width:24px;height:24px}
.presentation-page:is(:fullscreen,.theater-mode,.mobile-reading) .presentation-brand-bottom{right:14px;bottom:14px;display:block}
.presentation-page:is(:fullscreen,.theater-mode,.mobile-reading) .presentation-brand-bottom img{display:block;width:64px;height:64px;border-radius:13px;opacity:.84;box-shadow:0 10px 28px rgba(0,0,0,.28)}
.presentation-page:is(:fullscreen,.theater-mode,.mobile-reading) .presentation-stage::before{
  content:"";
  position:fixed;
  z-index:0;
  inset:0;
  width:100vw;
  height:100vh;
  background:url("/assets/presentation-background.jpg") center/cover no-repeat;
  opacity:.105;
  filter:grayscale(1) contrast(.92) brightness(.66);
  mix-blend-mode:soft-light;
  pointer-events:none
}
.presentation-page:is(:fullscreen,.theater-mode,.mobile-reading) .presentation-screen{position:relative;z-index:1}

@media (max-width:1023px){
  .score-identity{
    grid-template-columns:minmax(0,1fr);
    gap:10px;
    padding:11px 12px
  }
  .responsive-score-info-heading{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px
  }
  .responsive-score-info-heading .eyebrow{margin:0}
  .responsive-disclosure-button{
    display:flex;
    min-height:44px;
    align-items:center;
    justify-content:space-between;
    gap:9px;
    border:1px solid var(--line);
    border-radius:10px;
    padding:8px 11px;
    background:#edf6ff;
    color:var(--blue-2);
    font-size:12px;
    font-weight:850;
    text-align:left
  }
  .responsive-disclosure-button i{font-style:normal;font-size:18px;line-height:1}
  .responsive-disclosure-button small{margin-left:auto;color:var(--muted);font-size:9px}
  .responsive-disclosure-button[aria-expanded="true"]{border-color:#86bff2;background:#dceeff;box-shadow:inset 3px 0 var(--blue)}
  .responsive-score-info-heading .responsive-disclosure-button{max-width:230px}
  .score-identity:not(.responsive-details-open) .credit-fields,
  .score-identity:not(.responsive-details-open) .global-music-settings{display:none}
  .score-identity:not(.responsive-details-open) .title-input{font-size:clamp(30px,5vw,42px)}
  .responsive-measure-toggle{width:100%;margin:0 0 8px}
  .editor-workspace:not(.responsive-status-open) .measure-status{display:none}

  /* Une seule mesure, les quatre pistes, sans miniaturiser le desktop. */
  .tool-deck,.paper-surface,.editor-workspace>.hint{display:none}
  .mobile-score-editor{display:block}
  .mobile-measure-heading{display:flex;align-items:end;justify-content:space-between;gap:12px;padding:8px 4px 10px}
  .mobile-measure-heading h3{margin:3px 0 0;font-family:Georgia,serif;font-size:clamp(22px,3.5vw,29px)}
  .mobile-measure-heading>span{color:var(--muted);font-size:11px;font-weight:750}
  .mobile-measure-navigation{display:grid;grid-template-columns:48px minmax(0,1fr) 48px;align-items:center;gap:8px;margin-bottom:9px}
  .mobile-measure-navigation button{width:100%;min-height:48px;border:1px solid var(--line-strong);border-radius:11px;background:#fff;color:var(--ink);font-size:28px;font-weight:800}
  .mobile-measure-navigation>strong{display:grid;place-items:center;min-height:48px;border:1px solid var(--line);border-radius:11px;background:#f4f8fd;color:#49627d;font-size:12px}
  .mobile-voice-switcher{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-bottom:10px}
  .mobile-voice-switcher button{min-height:44px;border:1px solid var(--line);border-radius:10px;background:#f4f8fd;color:var(--blue);font-weight:850}
  .mobile-voice-switcher button.active{border-color:var(--blue);background:var(--blue);color:#fff;box-shadow:inset 0 -3px var(--yellow)}
  .mobile-satb-segments{display:grid;gap:10px}
  .mobile-satb-segment{overflow:hidden;border:1px solid var(--line);border-radius:12px;background:#fff}
  .mobile-satb-segment>header{min-height:28px;border-bottom:1px solid var(--line);padding:6px 9px;background:#edf6ff;color:#4b6682;font-size:9px;font-weight:850;text-transform:uppercase}
  .mobile-satb-grid{
    display:grid;
    grid-template-columns:72px repeat(var(--mobile-position-count),minmax(0,1fr));
    width:100%;
    max-width:100%
  }
  .mobile-satb-corner,.mobile-satb-position-label{
    display:grid;
    min-height:28px;
    place-items:center;
    border-right:1px solid var(--line);
    border-bottom:1px solid var(--line);
    background:#f7faff;
    color:#60768e;
    font-size:8px;
    font-weight:850;
    text-transform:uppercase
  }
  .mobile-satb-voice{
    display:grid;
    min-height:60px;
    align-content:center;
    border-right:2px solid #4b6076;
    border-bottom:1px solid var(--line);
    padding:5px 7px;
    background:#f7faff
  }
  .mobile-satb-voice strong{color:var(--blue);font-family:Georgia,serif;font-size:23px;line-height:1}
  .mobile-satb-voice small{overflow:hidden;color:var(--muted);font-size:8px;text-overflow:ellipsis;white-space:nowrap}
  .mobile-satb-voice.active{background:#e5f2ff;box-shadow:inset 4px 0 var(--yellow)}
  .mobile-satb-cell{
    display:grid;
    min-width:0;
    min-height:60px;
    align-content:center;
    gap:3px;
    overflow:hidden;
    border:0;
    border-right:1px solid var(--line);
    border-bottom:1px solid var(--line);
    padding:4px 2px;
    background:#fff;
    color:var(--ink);
    text-align:center
  }
  .mobile-satb-cell strong{overflow:hidden;color:#172c43;font-family:Georgia,serif;font-size:clamp(17px,3.1vw,25px);text-overflow:clip;white-space:nowrap}
  .mobile-satb-cell small{overflow:hidden;color:#526c86;font-size:clamp(7px,1.25vw,10px);text-overflow:ellipsis;white-space:nowrap}
  .mobile-satb-cell.selected{background:#e8f3ff;box-shadow:inset 0 -3px var(--blue)}
  .mobile-satb-cell.playing{background:#fff2ce;box-shadow:inset 0 -4px var(--yellow)}

  .mobile-cell-editor{width:min(620px,calc(100vw - 24px))}

  /* Les mesures de présentation occupent exactement la largeur disponible. */
  .presentation-score-body{width:100%;max-width:100%;overflow-x:hidden!important}
  .presentation-track-row,.presentation-global-lyrics{min-width:0!important}
  .presentation-cells{width:100%;min-width:0!important;overflow:visible!important}
  .presentation-cell{min-width:0!important;padding-inline:clamp(2px,.7vw,7px)}
  .presentation-note{font-size:clamp(17px,3.4vw,29px)}
  .presentation-lyric{
    max-width:100%;
    overflow:hidden;
    font-size:min(var(--presentation-lyric-size),var(--presentation-screen-lyric-size))!important;
    overflow-wrap:normal;
    text-overflow:clip;
    white-space:nowrap
  }
  .presentation-page:is(:fullscreen,.theater-mode,.mobile-reading) .presentation-score-body{overflow-x:hidden!important}
}

@media (max-width:767px){
  .score-identity:not(.responsive-details-open) .mobile-title-input{min-height:48px;font-size:clamp(25px,8vw,34px)}
  .responsive-score-info-heading{align-items:flex-start}
  .responsive-score-info-heading .responsive-disclosure-button{max-width:205px;font-size:10px}
  .editor-heading{align-items:center}
  .mobile-satb-grid{grid-template-columns:58px repeat(var(--mobile-position-count),minmax(0,1fr))}
  .mobile-satb-voice{min-height:55px;padding-inline:5px}
  .mobile-satb-voice strong{font-size:21px}
  .mobile-satb-voice small{font-size:7px}
  .mobile-satb-cell{min-height:55px;padding-inline:1px}
  .mobile-satb-cell strong{font-size:clamp(15px,5vw,21px)}
  .mobile-satb-cell small{font-size:clamp(6px,2.2vw,9px)}
  .presentation-track-row,.presentation-global-lyrics{grid-template-columns:58px minmax(0,1fr)}
  .presentation-track-name,.presentation-lyrics-label{position:static}
  .presentation-cell{padding-inline:2px}
  .presentation-note{font-size:clamp(15px,5.3vw,25px)}
  .presentation-page:is(:fullscreen,.theater-mode,.mobile-reading) .presentation-brand-bottom{right:9px;bottom:76px}
  .presentation-page:is(:fullscreen,.theater-mode,.mobile-reading) .presentation-brand-bottom img{width:48px;height:48px}
}

/* Ajustements d’interface généraux. */
.brand-action-icon{
  display:inline-block;
  width:18px;
  height:18px;
  flex:0 0 18px;
  background:currentColor;
  -webkit-mask:var(--icon) center/contain no-repeat;
  mask:var(--icon) center/contain no-repeat
}
.settings-button .brand-action-icon{width:20px;height:20px;flex-basis:20px}
.library-add-current-responsive,.presentation-exit-reading{display:none}
.voice-name,.voice-name input,.mobile-satb-voice{justify-items:center;text-align:center}

/* L’overlay de scène reste perceptible sans concurrencer la partition. */
.presentation-page:is(:fullscreen,.theater-mode,.mobile-reading) .presentation-stage::before{
  opacity:.14;
  filter:grayscale(1) contrast(1.04) brightness(.76);
  mix-blend-mode:screen
}
.presentation-page:is(:fullscreen,.theater-mode,.mobile-reading) .presentation-stage.theme-light::before{
  opacity:.1;
  filter:grayscale(1) contrast(.96) brightness(.9);
  mix-blend-mode:multiply
}

@media (max-width:1023px){
  /* Bibliothèque : recherche et résultats d’abord, import en fin de page. */
  .library-page{
    display:flex;
    min-height:100vh;
    flex-direction:column
  }
  .library-page[hidden]{display:none}
  .library-page-head{order:1}
  .library-mobile-controls{order:2;display:grid}
  .library-mobile-controls[hidden]{display:none}
  .library-layout{order:3;display:block}
  .library-command-bar{
    order:4;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    margin:14px 0 0;
    padding:12px
  }
  .library-page-head-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px}
  .library-add-current-responsive{display:flex}
  #libraryAddCurrent{display:none!important}
  .library-command-bar>.button,.library-command-bar>label{
    display:flex!important;
    width:100%;
    min-width:0;
    min-height:44px;
    align-items:center;
    justify-content:center;
    padding:8px 10px;
    white-space:normal
  }
  #libraryStatus{display:block!important;grid-column:1/-1;width:100%;margin:2px 0 0;text-align:center}
  .library-mobile-controls{margin:10px 0 8px}
  .library-results{min-height:0;padding:8px}
  .library-results>header{display:none}
  .library-grid,.library-grid.list-view{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(min(310px,100%),1fr));
    gap:8px;
    overflow:visible
  }
  .library-grid.list-view{grid-template-columns:minmax(0,1fr)}
  .library-filters{
    position:fixed;
    z-index:110;
    right:0;
    bottom:0;
    left:0;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    max-height:86vh;
    overflow:auto;
    border:0;
    border-radius:22px 22px 0 0;
    padding:16px 14px max(18px,env(safe-area-inset-bottom));
    background:#fff;
    box-shadow:0 -24px 80px rgba(6,24,45,.32);
    opacity:0;
    visibility:hidden;
    transform:translateY(105%);
    transition:transform .22s ease,opacity .2s
  }
  .library-filters.mobile-open,.library-filters.mobile-collection-open{opacity:1;visibility:visible;transform:none}
  .library-filter-head,.library-search,.pinned-collections,.library-organize{grid-column:1/-1}
  .library-filter-close{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:#f4f7fb;font-size:25px}

  .library-mobile-card{
    display:grid;
    grid-template-columns:26px minmax(0,1fr) auto;
    gap:8px;
    border-radius:12px;
    padding:9px 10px
  }
  .library-mobile-card.compact{padding-block:7px}
  .library-mobile-card-copy h3{font-size:16px}
  .library-mobile-card-copy p{margin:3px 0;font-size:10px}
  .library-mobile-card-copy>span{font-size:9px}
  .library-mobile-card-actions{
    display:flex;
    align-items:center;
    align-self:center;
    gap:6px
  }
  .library-mobile-open-icon,.library-mobile-more{
    display:grid;
    width:42px;
    min-width:42px;
    height:42px;
    min-height:42px;
    place-items:center;
    border:1px solid #9bc8f1;
    border-radius:10px;
    background:#eef6ff;
    color:var(--blue);
    cursor:pointer
  }
  .library-mobile-open-icon i{
    width:21px;
    height:21px;
    background:currentColor;
    -webkit-mask:url("/assets/library-open.svg") center/contain no-repeat;
    mask:url("/assets/library-open.svg") center/contain no-repeat
  }
  .library-mobile-more{border-color:var(--line);background:#f5f8fc;color:var(--ink);font-size:20px}
  .library-mobile-card-menu{grid-column:2/-1}

  /* Le lancement responsive est explicitement un passage en plein écran. */
  .presentation-mobile-launch{
    grid-row:2;
    grid-column:1;
    display:flex;
    align-items:center;
    gap:9px
  }
  .presentation-mobile-launch[hidden]{display:none}
  .presentation-layout .presentation-settings{grid-row:3}
  .presentation-mobile-launch img{width:20px;height:20px;filter:brightness(0) invert(1)}
  .presentation-exit-reading{
    position:fixed;
    z-index:152;
    top:max(10px,env(safe-area-inset-top));
    right:10px;
    min-height:40px;
    border:1px solid rgba(255,255,255,.38);
    border-radius:999px;
    padding:8px 14px;
    background:rgba(7,22,39,.68);
    color:#fff;
    font-size:11px;
    font-weight:850;
    backdrop-filter:blur(12px)
  }
  .presentation-page:is(:fullscreen,.theater-mode,.mobile-reading) .presentation-exit-reading{display:block}
  .presentation-page:is(:fullscreen,.theater-mode,.mobile-reading) .presentation-brand-bottom{
    right:12px;
    bottom:92px
  }
}

@media (max-width:767px){
  /* Sur les autres espaces, le hamburger de projet disparaît sans laisser de vide. */
  body:is(.library-view,.presentation-view,.about-view) .brand-row{grid-template-columns:minmax(0,1fr) 44px 44px}
  body:is(.library-view,.presentation-view,.about-view) #toggleMainRibbon{display:none}
  body:is(.library-view,.presentation-view,.about-view) .brand{grid-column:1}
  .assistant-button span{display:none}
  .assistant-button .brand-action-icon{display:block;width:20px;height:20px}

  /* À propos devient une destination mobile de premier niveau. */
  .workspace-navigation{grid-template-columns:repeat(4,minmax(0,1fr))}
  .workspace-navigation #openAbout{display:flex}
  .workspace-navigation .workspace-nav{font-size:9px!important}
  .workspace-navigation .inline-mask-icon{width:20px;height:20px}

  .app-information{
    align-items:center;
    flex-direction:column;
    gap:9px;
    padding:16px 8px;
    text-align:center
  }
  .app-information img{order:-1;width:54px;height:54px}
  .app-information div{display:grid;justify-items:center}
  .app-information p{line-height:1.65}

  .library-page-head-actions{width:100%;justify-content:stretch}
  .library-page-head-actions .button{flex:1;justify-content:center;font-size:9px}
  .library-command-bar{grid-template-columns:minmax(0,1fr)}
  .library-command-bar>.button,.library-command-bar>label{grid-column:1}
  .library-filters{grid-template-columns:minmax(0,1fr)}
  .library-filter-head,.library-search,.pinned-collections,.library-organize{grid-column:1}
  .library-mobile-card-actions{gap:5px}
  .library-mobile-open-icon,.library-present-icon,.library-mobile-more{width:40px;min-width:40px;height:40px;min-height:40px}
  .presentation-page:is(:fullscreen,.theater-mode,.mobile-reading) .presentation-brand-bottom{right:10px;bottom:88px}
  .presentation-page:is(:fullscreen,.theater-mode,.mobile-reading) .presentation-brand-bottom img{width:42px;height:42px}
  .presentation-page.mobile-reading .presentation-title{padding-right:76px;padding-left:38px}
  .presentation-page.mobile-reading .presentation-title h1{
    color:#fff;
    font-size:18px;
    line-height:1.05;
    text-shadow:0 1px 5px rgba(0,0,0,.65)
  }
}

@media (max-width:1023px){
  .library-mobile-card-menu .library-delete-icon{
    align-self:end;
    justify-self:end;
    width:40px;
    min-width:40px;
    height:40px;
    min-height:40px;
    padding:0
  }
  .library-mobile-card-actions .library-present-icon{flex:0 0 42px;width:42px;height:42px}
}

@media (max-width:767px){
  .library-mobile-card-actions .library-present-icon{flex-basis:40px;width:40px;height:40px}
}

/* Lecture responsive : le plein écran reste dégagé jusqu’à une interaction. */
@media (max-width:1023px){
  .presentation-mobile-launch{
    justify-self:center;
    width:min(360px,calc(100% - 24px));
    min-height:48px;
    border-radius:999px;
    background:rgba(0,102,207,.94);
    box-shadow:0 10px 28px rgba(0,53,112,.24);
    backdrop-filter:blur(12px)
  }
}

/* Entre 1024 et 1320 px, les deux rangées de transport forment un seul bloc aligné. */
@media (min-width:1024px) and (max-width:1320px){
  .presentation-toolbar{
    grid-template-columns:minmax(270px,1fr) auto;
    gap:8px 18px
  }
  .presentation-title{grid-column:1;grid-row:1/3;align-self:center}
  .presentation-transport{grid-column:2;grid-row:1;justify-content:flex-end}
  .presentation-toolbar-actions{grid-column:2;grid-row:2;justify-content:flex-end}
}

@media (max-width:767px), (orientation:landscape) and (max-height:520px){
  .presentation-page.mobile-reading{
    position:fixed;
    z-index:120;
    inset:0;
    overflow:hidden;
    padding:0;
    background:#050a12
  }
  body.presentation-mobile-reading{overflow:hidden;padding-bottom:0}
  body.presentation-mobile-reading .app-header{display:none}
  .presentation-page.mobile-reading .presentation-toolbar{
    position:absolute;
    z-index:4;
    top:0;
    right:0;
    left:0;
    border:0;
    background:linear-gradient(to bottom,rgba(5,10,18,.82),transparent);
    box-shadow:none;
    pointer-events:none
  }
  .presentation-page.mobile-reading .presentation-toolbar{
    grid-template-columns:minmax(0,1fr);
    justify-items:center
  }
  .presentation-page.mobile-reading .presentation-title{color:#fff;text-align:center}
  .presentation-page.mobile-reading .presentation-title .eyebrow{display:none}
  .presentation-page.mobile-reading .presentation-title>span{display:block;color:#c6d6e7}
  .presentation-page.mobile-reading .presentation-transport,
  .presentation-page.mobile-reading .presentation-toolbar-actions,
  .presentation-page.mobile-reading .presentation-hover-handle{display:none!important}
  .presentation-page.mobile-reading .presentation-layout{height:100vh}
  .presentation-page.mobile-reading .presentation-settings{display:none}
  .presentation-page.mobile-reading .presentation-stage{
    height:100vh;
    max-height:none;
    padding-top:64px;
    padding-bottom:12px;
    overflow-y:auto;
    transition:padding-bottom .18s ease
  }
  .presentation-page.mobile-reading.mobile-controls-visible .presentation-stage{padding-bottom:76px}

  .presentation-mobile-transport{
    position:fixed;
    z-index:150;
    right:7px;
    bottom:max(7px,env(safe-area-inset-bottom));
    left:7px;
    display:grid;
    grid-template-columns:44px minmax(68px,1fr) 44px 44px 44px 44px;
    gap:3px;
    min-height:54px;
    border:1px solid rgba(159,202,241,.34);
    border-radius:16px;
    padding:5px;
    background:rgba(5,22,40,.72);
    box-shadow:0 16px 44px rgba(0,0,0,.32);
    backdrop-filter:blur(16px) saturate(1.25)
  }
  .presentation-mobile-transport[hidden]{display:none}
  .presentation-mobile-transport button{
    display:flex;
    min-width:0;
    min-height:44px;
    align-items:center;
    justify-content:center;
    gap:5px;
    border:1px solid rgba(159,202,241,.26);
    border-radius:11px;
    padding:5px;
    background:rgba(21,51,79,.76);
    color:#fff;
    font-weight:800
  }
  .presentation-mobile-transport button:nth-child(2){
    border-color:rgba(253,180,21,.9);
    background:rgba(253,180,21,.96);
    color:#102034
  }
  .presentation-mobile-transport img{width:16px;height:16px}
  .presentation-mobile-transport span{font-size:10px}
  #presentationMobileExit{
    border-color:rgba(255,255,255,.35);
    background:rgba(83,101,120,.72)
  }
  #presentationMobileExit>span:first-child{font-size:20px;line-height:1}

  /* Le logo inférieur et le bouton isolé ne doivent jamais couvrir la partition. */
  .presentation-page.mobile-reading .presentation-brand-bottom,
  .presentation-page.mobile-reading .presentation-exit-reading{display:none!important}
}

@media (orientation:landscape) and (max-height:520px){
  .presentation-page.mobile-reading .presentation-stage{padding-top:52px}
  .presentation-page.mobile-reading .presentation-title h1{font-size:18px;line-height:1.05}
  .presentation-page.mobile-reading .presentation-title>span{font-size:9px}
  .presentation-page.mobile-reading .presentation-screen{
    min-height:0!important;
    padding:5px 8px
  }
  .presentation-page.mobile-reading .presentation-screen>header{
    min-height:25px;
    margin-bottom:3px;
    padding:2px 2px 4px;
    font-size:8px
  }
  .presentation-page.mobile-reading .presentation-track-row,
  .presentation-page.mobile-reading .presentation-global-lyrics{
    min-height:43px;
    grid-template-columns:88px minmax(0,1fr)
  }
  .presentation-page.mobile-reading .presentation-track-name,
  .presentation-page.mobile-reading .presentation-lyrics-label{padding:2px 8px}
  .presentation-page.mobile-reading .presentation-track-name strong{font-size:20px}
  .presentation-page.mobile-reading .presentation-track-name span{font-size:8px}
  .presentation-page.mobile-reading .presentation-cell{padding:2px 4px}
  .presentation-page.mobile-reading .presentation-note{font-size:23px}
  .presentation-page.mobile-reading .presentation-lyric{font-size:min(var(--presentation-lyric-size),22px)}
  .presentation-mobile-transport{
    right:auto;
    left:50%;
    width:min(453px,calc(100% - 14px));
    grid-template-columns:44px minmax(100px,150px) 64px 44px 44px minmax(68px,82px);
    transform:translateX(-50%)
  }
}

@media (max-width:479px){
  .presentation-mobile-transport .presentation-mobile-exit-label,
  .presentation-mobile-transport #presentationMobileStop span{display:none}
  .presentation-page.mobile-reading .presentation-title{padding-right:18px;padding-left:38px}
}

/* Rhythm toolbox: structural grid and SVG-only rhythmic values */
.rhythm-workflow{
  --rhythm-space-1:8px;
  --rhythm-space-2:12px;
  --rhythm-space-3:16px;
  --rhythm-space-4:24px;
  --rhythm-space-5:32px;
  display:grid;
  grid-template-rows:auto auto auto;
  gap:var(--rhythm-space-2);
  min-inline-size:940px;
  padding:var(--rhythm-space-3)
}
.rhythm-workflow>.tool-label{margin:0}
.rhythm-tools{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--rhythm-space-3);min-width:0}
.rhythm-primary-grid{
  display:grid;
  grid-template-columns:112px minmax(0,1fr) 300px;
  align-items:start;
  gap:var(--rhythm-space-3);
  min-width:0
}
.rhythm-secondary-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) 300px;
  align-items:start;
  gap:var(--rhythm-space-3);
  min-width:0
}
.rhythm-workflow .rhythm-field{
  display:grid;
  grid-template-rows:18px auto;
  align-content:start;
  gap:var(--rhythm-space-1);
  min-width:0
}
.rhythm-workflow .subgroup-label{
  display:flex;
  min-height:18px;
  align-items:baseline;
  margin:0;
  color:var(--muted);
  font-size:11px;
  font-weight:750;
  line-height:18px
}
.rhythm-workflow .duration-toolbox{min-width:0}
.rhythm-workflow .cell-type-selector{
  display:grid;
  grid-template-columns:1fr;
  grid-template-rows:repeat(2,minmax(0,1fr));
  min-height:96px
}
.rhythm-workflow .cell-type-selector button{min-width:0;font-size:11px}
.rhythm-workflow .duration-palette.expanded{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:var(--rhythm-space-1);
  min-width:0
}
.rhythm-workflow .duration-palette.expanded button{
  display:grid;
  grid-template-rows:40px 20px 16px;
  place-items:center;
  gap:4px;
  width:100%;
  min-width:0;
  height:96px;
  padding:8px 6px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  color:var(--ink-2);
  cursor:pointer
}
.rhythm-workflow .duration-palette.expanded button:hover,
.rhythm-workflow .duration-palette.expanded button:focus-visible,
.rhythm-workflow .duration-palette.expanded button.active{
  border-color:var(--blue);
  background:var(--blue-soft);
  color:var(--blue-2);
  outline:0
}
.rhythm-workflow .rhythm-icon{
  display:block;
  width:36px;
  height:36px;
  object-fit:contain;
  object-position:center;
  background:transparent
}
.rhythm-workflow .duration-palette.expanded button.active .rhythm-icon{
  filter:invert(27%) sepia(91%) saturate(1483%) hue-rotate(184deg) brightness(83%) contrast(103%)
}
.rhythm-workflow .duration-palette.expanded small{
  display:flex;
  min-width:0;
  align-items:center;
  justify-content:center;
  color:inherit;
  font-size:9px;
  font-weight:750;
  line-height:10px;
  text-align:center
}
.rhythm-workflow .duration-palette.expanded em{
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--blue);
  font-size:8px;
  font-style:normal;
  font-weight:850;
  line-height:10px;
  text-align:center
}
.rhythm-workflow .duration-palette.expanded button.active em{color:currentColor}
.rhythm-workflow .duration-dots{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  min-height:48px;
  overflow:visible
}
.rhythm-workflow .duration-dots button{min-width:0;padding-inline:8px;white-space:normal}
.rhythm-workflow .rhythm-palette{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:var(--rhythm-space-1);
  width:100%;
  min-width:0
}
.notes-workflow .rhythm-secondary-grid .rhythm-section{grid-column:auto;min-width:0}
.notes-workflow .rhythm-workflow .rhythm-palette button{
  width:100%;
  min-width:0;
  height:64px;
  padding:8px;
  text-align:center
}
.notes-workflow .rhythm-workflow .rhythm-palette strong{font-size:19px}
.notes-workflow .rhythm-workflow .rhythm-palette small{font-size:9px;line-height:12px}
.notes-workflow .rhythm-workflow .rhythm-palette .irregular-marker{padding-inline:10px}
.notes-workflow .rhythm-options .hold-tool{
  grid-column:auto;
  align-self:auto;
  justify-content:center;
  min-height:64px;
  padding:8px 12px
}
.notes-workflow .rhythm-options .hold-tool strong{font-size:22px}
.notes-workflow .rhythm-options .hold-tool span{font-size:10px}
.rhythm-footer{display:flex;justify-content:flex-end;min-width:0}
.rhythm-summary{
  align-self:auto;
  justify-self:auto;
  margin:0;
  border-radius:999px;
  padding:8px 12px;
  background:var(--blue-soft);
  color:var(--blue-2);
  font-size:11px;
  font-weight:850;
  line-height:16px;
  text-align:right
}
.dark-mode .rhythm-workflow .duration-palette.expanded button{border-color:var(--line);background:#122237;color:var(--ink)}
.dark-mode .rhythm-workflow .duration-palette.expanded button:hover,
.dark-mode .rhythm-workflow .duration-palette.expanded button:focus-visible,
.dark-mode .rhythm-workflow .duration-palette.expanded button.active{border-color:var(--blue);background:#173657;color:#7dbdff}

@media (min-width:921px) and (max-width:1023px){
  .tool-panel.notes-workflow{grid-template-columns:175px minmax(0,1fr);overflow-x:hidden}
  .notes-workflow .rhythm-workflow{grid-column:1/-1}
}

@media (min-width:768px) and (max-width:1023px){
  .rhythm-workflow{min-inline-size:0}
  .rhythm-primary-grid{grid-template-columns:112px minmax(0,1fr)}
  .rhythm-field-type{grid-row:1/3}
  .rhythm-field-value{grid-column:2;grid-row:1}
  .rhythm-field-dots{grid-column:2;grid-row:2}
  .rhythm-workflow .duration-palette.expanded{grid-template-columns:repeat(auto-fit,minmax(88px,1fr))}
  .rhythm-secondary-grid{grid-template-columns:minmax(0,1fr) 260px}
}

@media (max-width:767px){
  .rhythm-workflow{min-inline-size:0;padding:var(--rhythm-space-2)}
  .rhythm-primary-grid,.rhythm-secondary-grid{grid-template-columns:minmax(0,1fr);gap:var(--rhythm-space-2)}
  .rhythm-field-type,.rhythm-field-value,.rhythm-field-dots{grid-column:auto;grid-row:auto}
  .rhythm-workflow .cell-type-selector{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:1fr;min-height:48px}
  .rhythm-workflow .duration-palette.expanded{grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:var(--rhythm-space-1)}
  .rhythm-workflow .duration-palette.expanded button{height:96px}
  .rhythm-workflow .duration-dots{grid-template-columns:repeat(3,minmax(0,1fr))}
  .rhythm-footer{justify-content:flex-end}
  .rhythm-summary{max-width:100%;white-space:normal}
}

/* Desktop adaptable : une fenêtre Mac 16 pouces ne doit jamais nécessiter
   de défilement horizontal dans la boîte à outils. Les très grands écrans
   gardent les trois panneaux sur une ligne ; une fenêtre desktop plus étroite
   place le rythme sur une seconde ligne sans activer le profil tablette. */
@media (min-width:1024px){
  .tool-panel.notes-workflow{align-items:start;overflow-x:hidden}
  .notes-workflow .rhythm-workflow{min-inline-size:0}
  .notes-workflow .rhythm-summary{max-width:100%;white-space:normal}
}

@media (min-width:1024px) and (max-width:1599px){
  .tool-panel.notes-workflow{
    grid-template-columns:170px minmax(0,1fr);
    grid-template-rows:auto auto
  }
  .notes-workflow .active-cell-context{align-self:stretch}
  .notes-workflow .pitch-workflow{grid-column:2;grid-row:1}
  .notes-workflow .rhythm-workflow{grid-column:1/-1;grid-row:2}
}

/* Centered cell inspector for tablet and mobile editors only */
@media (max-width:1023px){
  .mobile-cell-editor{
    position:fixed;
    inset:50% auto auto 50%!important;
    width:min(720px,calc(100vw - 32px));
    max-width:none;
    max-height:calc(100dvh - 32px);
    margin:0;
    overflow:hidden;
    transform:translate(-50%,-50%);
    border:1px solid rgba(103,128,158,.28);
    border-radius:24px;
    padding:0;
    background:#f8fbff;
    color:var(--ink);
    box-shadow:0 30px 90px rgba(6,20,38,.34)
  }
  .mobile-cell-editor::backdrop{
    background:rgba(8,19,36,.66);
    backdrop-filter:blur(7px) saturate(.72)
  }
  .mobile-cell-editor>form{
    display:grid;
    grid-template-rows:auto minmax(0,1fr) auto;
    gap:0;
    max-height:calc(100dvh - 32px);
    padding:0
  }
  .mobile-cell-editor>form>header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
    border-bottom:1px solid var(--line);
    padding:20px 24px 16px;
    background:#fff
  }
  .mobile-cell-editor>form>header .eyebrow{margin:0 0 6px;font-size:10px}
  .mobile-cell-editor>form>header h2{
    max-width:560px;
    margin:0;
    color:var(--ink);
    font-family:Georgia,serif;
    font-size:clamp(25px,4vw,32px);
    line-height:1.08
  }
  .mobile-cell-editor>form>header button{
    display:grid;
    width:48px;
    min-width:48px;
    height:48px;
    place-items:center;
    border:1px solid var(--line-strong);
    border-radius:50%;
    background:#f3f7fc;
    color:var(--ink);
    font-size:28px;
    line-height:1;
    cursor:pointer
  }
  .mobile-cell-editor>form>header button:focus-visible{outline:3px solid rgba(0,102,207,.24);outline-offset:2px}
  .mobile-cell-editor-body{
    display:grid;
    gap:16px;
    min-height:0;
    overflow-y:auto;
    overscroll-behavior:contain;
    padding:18px 24px;
    scrollbar-gutter:stable
  }
  .mobile-cell-type-group{
    min-width:0;
    margin:0;
    border:0;
    padding:0
  }
  .mobile-cell-type-group legend,
  .mobile-cell-fields label,
  .mobile-cell-lyric-field{
    color:#53677f;
    font-size:12px;
    font-weight:850;
    line-height:16px;
    letter-spacing:.04em;
    text-transform:uppercase
  }
  .mobile-cell-type-group legend{margin-bottom:8px;padding:0}
  .mobile-cell-type-selector{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:6px;
    border:1px solid var(--line);
    border-radius:13px;
    padding:5px;
    background:#edf3f9
  }
  .mobile-cell-type-selector button{
    min-width:0;
    min-height:48px;
    border:1px solid transparent;
    border-radius:9px;
    padding:8px 10px;
    background:transparent;
    color:#50647c;
    font-size:16px;
    font-weight:850;
    cursor:pointer
  }
  .mobile-cell-type-selector button.active{
    border-color:#8bbcea;
    background:#fff;
    color:var(--blue-2);
    box-shadow:0 4px 14px rgba(23,58,94,.10)
  }
  .mobile-cell-type-selector button:focus-visible{outline:3px solid rgba(0,102,207,.20);outline-offset:1px}
  .mobile-cell-control-card{
    display:grid;
    gap:12px;
    min-width:0;
    border:1px solid var(--line);
    border-radius:15px;
    padding:14px;
    background:#fff;
    transition:opacity .15s,background .15s
  }
  .mobile-cell-control-card.disabled{background:#f0f3f7;opacity:.62}
  .mobile-cell-section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
  .mobile-cell-section-heading span{color:var(--ink-2);font-size:15px;font-weight:850}
  .mobile-cell-section-heading small{color:#718197;font-size:11px;font-weight:700;text-align:right}
  .mobile-cell-fields{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px
  }
  .mobile-cell-fields label,.mobile-cell-lyric-field{display:grid;gap:7px;min-width:0}
  .mobile-cell-fields select,.mobile-cell-lyric-field textarea{
    width:100%;
    min-width:0;
    min-height:54px;
    border:1px solid #bfcddd;
    border-radius:11px;
    padding:12px 14px;
    background:#fff;
    color:var(--ink);
    font-size:18px!important;
    font-weight:720;
    line-height:1.35;
    text-transform:none
  }
  .mobile-cell-fields select option,.mobile-cell-fields select optgroup{
    font-size:22px!important;
    line-height:1.5
  }
  .mobile-cell-fields select:focus,.mobile-cell-lyric-field textarea:focus{border-color:var(--blue);outline:3px solid rgba(0,102,207,.14)}
  .mobile-cell-fields select:disabled{cursor:not-allowed;color:#7d8a99;background:#e7ebf0}
  .mobile-cell-lyric-field textarea{min-height:92px;max-height:180px;resize:vertical;font-weight:650}
  .mobile-cell-editor>form>footer{
    display:grid;
    grid-template-columns:auto minmax(108px,1fr) minmax(108px,1fr);
    gap:10px;
    border-top:1px solid var(--line);
    padding:14px 24px max(14px,env(safe-area-inset-bottom));
    background:#fff
  }
  .mobile-cell-editor>form>footer .button{min-width:0;min-height:50px;padding:10px 16px;font-size:15px}
  .mobile-cell-editor>form>footer .danger-text{border-color:#efd0d4;background:#fff7f7;color:var(--red)!important}
  .dark-mode .mobile-cell-editor{border-color:#334a64;background:#0d1b2c;color:#eef5fd}
  .dark-mode .mobile-cell-editor>form>header,
  .dark-mode .mobile-cell-editor>form>footer,
  .dark-mode .mobile-cell-control-card{border-color:#334a64;background:#122237}
  .dark-mode .mobile-cell-type-selector{border-color:#334a64;background:#0a1828}
  .dark-mode .mobile-cell-type-selector button.active{border-color:#4b8fcd;background:#1a3552;color:#a8d5ff}
  .dark-mode .mobile-cell-fields select,.dark-mode .mobile-cell-lyric-field textarea{border-color:#405a76;background:#0b1929;color:#f3f7fc}
}

@media (max-width:479px){
  .mobile-cell-editor{
    width:calc(100vw - 20px);
    max-height:calc(100dvh - 20px);
    border-radius:19px
  }
  .mobile-cell-editor>form{max-height:calc(100dvh - 20px)}
  .mobile-cell-editor>form>header{gap:10px;padding:16px 16px 13px}
  .mobile-cell-editor>form>header h2{font-size:clamp(23px,7vw,29px)}
  .mobile-cell-editor>form>header button{width:44px;min-width:44px;height:44px;font-size:25px}
  .mobile-cell-editor-body{gap:12px;padding:14px 16px}
  .mobile-cell-control-card{gap:10px;padding:12px}
  .mobile-cell-fields{grid-template-columns:minmax(0,1fr);gap:10px}
  .mobile-cell-section-heading{align-items:flex-start;flex-direction:column;gap:2px}
  .mobile-cell-section-heading small{text-align:left}
  .mobile-cell-fields select,.mobile-cell-lyric-field textarea{min-height:56px;font-size:18px!important}
  .mobile-cell-editor>form>footer{grid-template-columns:minmax(0,.9fr) minmax(0,1fr) minmax(0,1.1fr);gap:7px;padding:11px 12px max(11px,env(safe-area-inset-bottom))}
  .mobile-cell-editor>form>footer .button{min-height:48px;padding:8px 7px;font-size:13px}
}

/* Cloud account and catalogue synchronization */
.access-gate{position:fixed;inset:0;z-index:10000;display:grid;grid-template-rows:auto 1fr auto;overflow:auto;padding:clamp(22px,4vw,54px);background:radial-gradient(circle at 12% 8%,rgba(0,102,207,.38),transparent 34%),radial-gradient(circle at 88% 92%,rgba(253,180,21,.17),transparent 29%),linear-gradient(145deg,#07182b,#0b2847 58%,#061322);color:#fff}
.auth-unlocked .access-gate{display:none}.access-gate-brand{display:flex;align-items:center;gap:13px;width:max-content}.access-gate-brand img{width:54px;height:54px;object-fit:contain}.access-gate-brand>span{display:grid}.access-gate-brand strong{font-size:20px;font-style:normal;line-height:1}.access-gate-brand strong b{color:#6db7ff}.access-gate-brand strong em{color:#fdb415;font-style:normal}.access-gate-brand small{margin-top:5px;color:#c9dbed;font-size:9px;font-weight:800;letter-spacing:.13em;text-transform:uppercase}
.access-gate-card{align-self:center;justify-self:center;width:min(480px,100%);border:1px solid rgba(255,255,255,.18);border-radius:25px;padding:clamp(24px,4vw,38px);background:rgba(255,255,255,.97);color:#10233a;box-shadow:0 30px 90px rgba(0,0,0,.38);backdrop-filter:blur(16px)}.access-gate-loading{display:flex;align-items:center;justify-content:center;gap:13px;min-height:220px;color:#52667d;text-align:center}.access-gate-loading i{width:21px;height:21px;border:3px solid #d9e6f3;border-top-color:#0066cf;border-radius:50%;animation:access-spin .8s linear infinite}@keyframes access-spin{to{transform:rotate(360deg)}}
.access-gate-card .eyebrow{margin:0 0 7px;color:#0066cf}.access-gate-card h1{margin:0;font-family:Georgia,serif;font-size:clamp(28px,4vw,38px);line-height:1.08}.access-gate-intro{margin:12px 0 21px;color:#5e7084;font-size:13px;line-height:1.55}.access-auth-mode{margin-bottom:18px}.access-auth-mode button{min-height:42px;padding:9px 18px}.access-gate-card form{display:grid;gap:14px}.access-gate-card form label{display:grid;gap:7px;color:#52667d;font-size:11px;font-weight:850}.access-gate-card form input{width:100%;min-height:51px;border:1px solid #c9d7e7;border-radius:12px;padding:11px 14px;background:#fff;color:#10233a;font-size:16px;outline:none}.access-gate-card form input:focus{border-color:#0066cf;box-shadow:0 0 0 4px rgba(0,102,207,.12)}.access-gate-card form .button{min-height:51px;margin-top:3px;font-size:15px}.access-auth-status{min-height:20px;margin:14px 0 0;color:#0066cf;font-size:12px;font-weight:750}.access-auth-status.error{color:#c93d4b}.access-gate>footer{display:flex;justify-content:space-between;gap:18px;color:#a9bfd5;font-size:10px}.access-gate>footer span:first-child{color:#fdb415;font-weight:850}
.cloud-account-button{display:flex;align-items:center;gap:8px;min-height:36px;border-color:#cfe0f3;background:#f5f9ff;color:var(--blue);white-space:nowrap}
.cloud-user-icon{display:block;flex:0 0 auto;width:19px;height:19px;background:currentColor;mask:url('/assets/user.svg') center/contain no-repeat;-webkit-mask:url('/assets/user.svg') center/contain no-repeat}
.cloud-connection-dot,.library-cloud-identity>i{display:block;flex:0 0 auto;width:8px;height:8px;border-radius:50%;background:#8190a3;box-shadow:0 0 0 3px rgba(129,144,163,.12)}
.cloud-account-button.connected .cloud-connection-dot,.library-cloud-identity>i.connected{background:#13a36f;box-shadow:0 0 0 3px rgba(19,163,111,.13)}
.library-cloud-panel{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:14px 0;border:1px solid #cfe0f3;border-radius:14px;padding:12px 14px;background:linear-gradient(135deg,#f8fbff,#edf6ff);box-shadow:var(--shadow-soft)}
.library-cloud-identity{display:flex;align-items:center;gap:12px;min-width:0}.library-cloud-identity>i{flex:0 0 auto;width:11px;height:11px}.library-cloud-identity>div{display:grid;gap:2px;min-width:0}.library-cloud-identity strong{color:var(--ink);font-size:13px}.library-cloud-identity span{overflow:hidden;color:var(--muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}
.library-cloud-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}.library-cloud-actions .button{min-height:37px;padding:7px 12px}.library-source-filter{min-width:max-content}.library-source-filter button{min-height:35px;padding-inline:10px}
.library-card.remote-entry,.library-mobile-card.remote-entry{border-color:#bdd9f5;background:linear-gradient(180deg,#fff,#f5faff)}.library-cloud-badge{display:inline-flex;align-items:center;width:max-content;border-radius:999px;padding:4px 7px;background:#e4f2ff;color:#0066cf;font-size:8px;font-weight:850;letter-spacing:.04em;text-transform:uppercase}.library-card.remote-entry .library-card-mark{background:#0066cf;color:#fff}.library-card-actions .cloud-open-button{flex:1}.library-table tr.remote-entry{background:#f7fbff}.library-table tr.remote-entry .library-title-cell strong:after{content:"Cloud";display:inline-block;margin-left:7px;border-radius:999px;padding:2px 5px;background:#e4f2ff;color:#0066cf;font:750 7px/1 sans-serif;vertical-align:middle}
.cloud-auth-dialog{width:min(520px,calc(100vw - 28px));border:0;border-radius:20px;padding:24px;background:#fff;color:var(--ink);box-shadow:0 30px 100px rgba(5,19,37,.32)}.cloud-auth-dialog::backdrop{background:rgba(5,16,29,.62);backdrop-filter:blur(5px)}.cloud-auth-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.cloud-auth-head h2{margin:2px 0 0;font-family:Georgia,serif;font-size:28px}.cloud-auth-mode{margin-bottom:16px}.cloud-auth-mode button{min-height:40px;padding-inline:18px}.cloud-auth-dialog form{display:grid;gap:13px}.cloud-auth-dialog form label{display:grid;gap:6px;color:var(--muted);font-size:11px;font-weight:800}.cloud-auth-dialog form input{width:100%;min-height:48px;border:1px solid var(--line);border-radius:11px;padding:10px 13px;background:#fff;color:var(--ink);font-size:15px}.cloud-auth-dialog form .button{min-height:48px;margin-top:3px}.cloud-auth-note{margin:14px 0 0;color:var(--muted);font-size:11px;line-height:1.55}.cloud-auth-status{min-height:18px;margin:14px 0 0;color:var(--blue);font-size:11px;font-weight:750}.cloud-auth-status.error{color:var(--red)}.cloud-signed-in{display:grid;gap:7px;border:1px solid #cfe0f3;border-radius:14px;padding:17px;background:#f6faff}.cloud-signed-in>span,.cloud-signed-in>small{color:var(--muted);font-size:10px}.cloud-signed-in>strong{font-size:19px}.cloud-signed-in>div:last-child{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.cloud-role-list{display:flex;flex-wrap:wrap;gap:5px}.cloud-role-list span{border-radius:999px;padding:4px 7px;background:#e4f2ff;color:#0066cf;font-size:8px;font-weight:800;text-transform:uppercase}
.cloud-account-upgrade{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:12px;margin:10px 0 4px;border:1px solid #f0c45c;border-radius:13px;padding:13px;background:linear-gradient(135deg,#fffaf0,#fff4d8)}.cloud-account-upgrade[hidden]{display:none}.cloud-account-upgrade-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#fdb415;color:#112b47;font-size:22px;font-weight:900}.cloud-account-upgrade strong{display:block;color:#153552;font-size:13px}.cloud-account-upgrade p{margin:3px 0 0;color:#66788b;font-size:10px;line-height:1.45}.cloud-account-upgrade .button{min-height:40px;white-space:nowrap}
.upgrade-dialog{width:min(960px,calc(100vw - 32px));max-height:min(820px,calc(100vh - 32px));overflow:auto;border:0;border-radius:24px;padding:0;background:#fff;color:#10233a;box-shadow:0 35px 120px rgba(2,17,34,.4)}.upgrade-dialog::backdrop{background:rgba(3,15,29,.72);backdrop-filter:blur(7px)}.upgrade-dialog-close{position:sticky;z-index:2;top:18px;float:right;margin:18px 18px -58px 0;background:rgba(255,255,255,.9)}.upgrade-dialog-head{display:grid;justify-items:center;padding:32px 72px 22px;background:radial-gradient(circle at 50% -80%,rgba(253,180,21,.42),transparent 62%),linear-gradient(145deg,#071c34,#0a3b70);color:#fff;text-align:center}.upgrade-dialog-head .eyebrow{margin:10px 0 6px;color:#77c7ff}.upgrade-dialog-head h2{max-width:690px;margin:0;font-family:Georgia,serif;font-size:clamp(28px,4vw,42px);line-height:1.08}.upgrade-dialog-head p:last-child{max-width:680px;margin:11px 0 0;color:#d7e8f8;font-size:13px;line-height:1.55}.upgrade-crown{display:grid;place-items:center;width:48px;height:48px;border:1px solid rgba(253,180,21,.52);border-radius:50%;background:rgba(253,180,21,.14);color:#fdb415;font-size:25px}.upgrade-dialog-controls{display:flex;align-items:end;justify-content:center;gap:12px;padding:18px 24px 4px}.upgrade-dialog-controls .segmented{margin-right:10px}.upgrade-dialog-controls label{display:grid;gap:5px;color:#60758a;font-size:9px;font-weight:850;letter-spacing:.04em;text-transform:uppercase}.upgrade-dialog-controls select{min-width:110px;height:40px;border:1px solid #c7d8e8;border-radius:9px;padding:7px 10px;background:#fff;color:#173754;font-size:14px}.upgrade-plan-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:18px 24px 20px}.upgrade-plan-card{position:relative;display:grid;grid-template-rows:auto auto auto 1fr auto;gap:10px;min-width:0;border:1px solid #d2dfec;border-radius:17px;padding:20px;background:#fff;box-shadow:0 8px 24px rgba(16,55,91,.06)}.upgrade-plan-card.recommended{border:2px solid #0066cf;padding:19px;background:linear-gradient(180deg,#f8fbff,#fff)}.upgrade-recommended{position:absolute;top:-11px;right:18px;border-radius:999px;padding:5px 10px;background:#fdb415;color:#17324e;font-size:9px;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.upgrade-plan-card h3{margin:0;color:#153451;font-size:20px}.upgrade-plan-price{display:flex;align-items:baseline;gap:5px;color:#0066cf}.upgrade-plan-price strong{font-size:28px}.upgrade-plan-price span{font-size:11px;font-weight:750}.upgrade-plan-card>p{margin:0;color:#657a8e;font-size:11px;line-height:1.5}.upgrade-plan-card ul{display:grid;align-content:start;gap:7px;margin:2px 0 4px;padding:0;list-style:none}.upgrade-plan-card li{display:flex;align-items:flex-start;gap:7px;color:#36516d;font-size:11px}.upgrade-plan-card li span{color:#159064;font-weight:900}.upgrade-plan-card .button{min-height:46px}.upgrade-plan-empty{grid-column:1/-1;margin:0;border:1px dashed #c7d8e8;border-radius:13px;padding:28px;color:#687c90;text-align:center}.upgrade-status{min-height:18px;margin:-7px 24px 10px;color:#0066cf;font-size:11px;font-weight:750;text-align:center}.upgrade-status.error{color:#c33e4c}.upgrade-dialog>footer{display:flex;align-items:center;justify-content:space-between;gap:18px;border-top:1px solid #e0e9f2;padding:14px 24px;color:#6d8093;font-size:10px}.upgrade-dialog>footer .button{min-height:38px}
.dark-mode .cloud-account-button,.dark-mode .library-cloud-panel,.dark-mode .cloud-auth-dialog,.dark-mode .cloud-auth-dialog form input,.dark-mode .cloud-signed-in,.dark-mode .upgrade-dialog,.dark-mode .upgrade-plan-card{border-color:#31506d;background:#0f2134;color:var(--ink)}.dark-mode .cloud-account-upgrade{border-color:#745f2a;background:#2b281d}.dark-mode .cloud-account-upgrade strong,.dark-mode .upgrade-plan-card h3{color:#edf6ff}.dark-mode .cloud-account-upgrade p,.dark-mode .upgrade-plan-card>p,.dark-mode .upgrade-plan-card li{color:#bed0e2}.dark-mode .upgrade-dialog-controls select{border-color:#3a5975;background:#142d45;color:#eef6ff}.dark-mode .library-card.remote-entry,.dark-mode .library-mobile-card.remote-entry,.dark-mode .library-table tr.remote-entry{border-color:#315a80;background:#10263d}.dark-mode .library-cloud-badge,.dark-mode .library-table tr.remote-entry .library-title-cell strong:after,.dark-mode .cloud-role-list span{background:#173a5c;color:#a9d6ff}

/* Administration — cet espace n'existe que pour les rôles autorisés. */
.admin-view .action-ribbon,.admin-view .assistant-button{display:none}
.admin-navigation[hidden]{display:none!important}.admin-page{display:grid;gap:18px;padding-bottom:48px}.admin-page[hidden]{display:none}.admin-page-head{display:flex;align-items:center;justify-content:space-between;gap:24px;border:1px solid #cbdced;border-radius:20px;padding:28px 30px;background:linear-gradient(135deg,#071d35 0%,#0b3969 72%,#0066cf 140%);color:#fff;box-shadow:0 18px 45px rgba(8,42,76,.14)}.admin-page-head h1{margin:5px 0 7px;font-family:Georgia,serif;font-size:clamp(30px,3vw,46px);line-height:1}.admin-page-head p:not(.eyebrow){max-width:760px;margin:0;color:#d8e9fb;line-height:1.55}.admin-page-head .eyebrow{color:#76c8ff}.admin-page-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}.admin-page-head .button.ghost{border-color:#7293b4;background:rgba(255,255,255,.08);color:#fff}.admin-kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.admin-kpi-grid article{display:grid;gap:7px;min-width:0;border:1px solid #cfdeed;border-radius:16px;padding:18px;background:#fff;box-shadow:0 7px 20px rgba(17,55,90,.06)}.admin-kpi-grid span{color:#62738a;font-size:11px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.admin-kpi-grid strong{color:#0a2747;font-family:Georgia,serif;font-size:30px;line-height:1}.admin-kpi-grid small{overflow:hidden;color:#65778e;text-overflow:ellipsis;white-space:nowrap}.admin-tabs{display:flex;gap:8px;border:1px solid #cbdced;border-radius:16px;padding:7px;background:#edf5fd}.admin-tabs button{min-height:44px;border:0;border-radius:11px;padding:9px 18px;background:transparent;color:#4c6078;font-weight:800;cursor:pointer}.admin-tabs button.active{background:#fff;color:#0066cf;box-shadow:0 5px 16px rgba(0,72,145,.11)}.admin-panel{display:grid;gap:18px;border:1px solid #cbdced;border-radius:20px;padding:24px;background:#fff;box-shadow:0 12px 32px rgba(17,55,90,.07)}.admin-panel[hidden]{display:none}.admin-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;border-bottom:1px solid #dce7f2;padding-bottom:15px}.admin-section-heading h2{margin:3px 0 0;font-family:Georgia,serif;font-size:25px}.admin-section-heading [role=status]{color:#0066cf;font-size:12px;font-weight:750}.admin-create-user{display:grid;grid-template-columns:1fr 1.2fr 1.1fr 2.2fr auto;align-items:end;gap:12px;border:1px solid #d5e2ef;border-radius:15px;padding:16px;background:#f7fbff}.admin-create-user>label,.admin-create-plan label{display:grid;gap:6px;min-width:0;color:#52667d;font-size:11px;font-weight:800}.admin-create-user input,.admin-create-plan input,.admin-create-plan textarea,.admin-user-status,.admin-feature-select{width:100%;min-height:44px;border:1px solid #bacde0;border-radius:10px;padding:9px 11px;background:#fff;color:#10233a;font:inherit}.admin-create-user fieldset,.admin-create-plan fieldset{display:flex;flex-wrap:wrap;align-items:center;gap:8px 13px;min-width:0;border:0;padding:0}.admin-create-user legend,.admin-create-plan legend{width:100%;margin-bottom:6px;color:#52667d;font-size:11px;font-weight:800}.admin-create-user fieldset label,.admin-create-plan fieldset label{display:flex;align-items:center;gap:5px;color:#344b63;font-size:11px;font-weight:700}.admin-table-wrap{width:100%;max-width:100%;overflow-x:auto;border:1px solid #d7e3ef;border-radius:14px}.admin-table{width:100%;border-collapse:collapse;min-width:820px}.admin-table th{padding:11px 13px;background:#edf5fd;color:#4f647b;font-size:10px;letter-spacing:.06em;text-align:left;text-transform:uppercase}.admin-table td{border-top:1px solid #e3ebf3;padding:12px 13px;color:#24394f;font-size:12px;vertical-align:middle}.admin-table tbody tr:hover{background:#f8fbff}.admin-user-identity{display:grid;gap:2px}.admin-user-identity strong{color:#0d263f}.admin-user-identity small{color:#6a7d92}.admin-role-editor{display:flex;flex-wrap:wrap;gap:5px}.admin-role-editor label{display:flex;align-items:center;gap:4px;border-radius:999px;padding:5px 8px;background:#eaf4ff;color:#155b9d;font-size:9px;font-weight:800}.admin-user-rights{display:grid;grid-template-columns:minmax(140px,1fr) auto;gap:6px}.admin-table-actions{display:flex;gap:6px}.admin-table .button{min-height:36px;padding:7px 11px;font-size:10px}.admin-catalog-actions{display:flex;align-items:center;gap:18px;border:1px solid #d5e2ef;border-radius:15px;padding:15px;background:#f7fbff}.admin-catalog-actions p{margin:0;color:#65788e;font-size:12px}.admin-status-badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;background:#e9f7ef;color:#167247;font-size:9px;font-weight:850;text-transform:uppercase}.admin-status-badge.review,.admin-status-badge.pending,.admin-status-badge.past_due{background:#fff4d7;color:#9a6400}.admin-status-badge.suspended,.admin-status-badge.failed,.admin-status-badge.canceled,.admin-status-badge.expired{background:#fff0f0;color:#bd353b}.admin-create-plan{display:grid;gap:13px;border:1px solid #d5e2ef;border-radius:15px;padding:17px;background:#f7fbff}.admin-create-plan>div:first-child,.admin-plan-prices{display:grid;grid-template-columns:1fr 1.4fr;gap:12px}.admin-plan-prices{grid-template-columns:180px 180px 1fr auto;align-items:end}.admin-plans-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.admin-plan-card{display:grid;gap:11px;border:1px solid #ccdeee;border-radius:15px;padding:16px;background:#fff}.admin-plan-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.admin-plan-card h3{margin:0;color:#102b48}.admin-plan-card p{margin:0;color:#65788d;font-size:12px;line-height:1.5}.admin-plan-features{display:flex;flex-wrap:wrap;gap:5px}.admin-plan-features span{border-radius:999px;padding:4px 7px;background:#edf5fd;color:#155b9d;font-size:9px;font-weight:800}.admin-plan-prices-list{display:flex;flex-wrap:wrap;gap:7px;color:#193a5e;font-weight:850}.admin-finance-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.admin-finance-grid section{min-width:0}.admin-finance-grid h3{margin:0 0 9px;color:#163552}.admin-table.compact{min-width:680px}.admin-empty{padding:28px!important;color:#75879b!important;text-align:center!important}.dark-mode .admin-page-head{border-color:#31506d}.dark-mode .admin-kpi-grid article,.dark-mode .admin-panel,.dark-mode .admin-plan-card{border-color:#31506d;background:#0f2134}.dark-mode .admin-kpi-grid strong,.dark-mode .admin-section-heading h2,.dark-mode .admin-plan-card h3{color:#eef6ff}.dark-mode .admin-kpi-grid span,.dark-mode .admin-kpi-grid small,.dark-mode .admin-panel,.dark-mode .admin-table td{color:#bdd0e4}.dark-mode .admin-tabs,.dark-mode .admin-create-user,.dark-mode .admin-create-plan,.dark-mode .admin-catalog-actions,.dark-mode .admin-table th{border-color:#31506d;background:#102a43}.dark-mode .admin-tabs button.active,.dark-mode .admin-create-user input,.dark-mode .admin-create-plan input,.dark-mode .admin-create-plan textarea,.dark-mode .admin-user-status,.dark-mode .admin-feature-select{border-color:#3a5975;background:#142d45;color:#eef6ff}.dark-mode .admin-table-wrap{border-color:#31506d}.dark-mode .admin-table td{border-color:#29455f}

@media (max-width:1199px){.admin-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-create-user{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-create-user fieldset{grid-column:1/-1}.admin-plans-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:1023px){.admin-page{padding:12px 12px 96px}.admin-page-head{align-items:flex-start;padding:22px}.admin-page-actions{justify-content:flex-start}.admin-finance-grid{grid-template-columns:1fr}.admin-plan-prices{grid-template-columns:1fr 1fr}.admin-plan-prices .switch-row,.admin-plan-prices .button{min-height:44px}.admin-tabs{overflow-x:auto}.admin-tabs button{flex:0 0 auto}.admin-table{min-width:760px}}
@media (max-width:767px){.admin-page-head{display:grid}.admin-page-head h1{font-size:32px}.admin-page-actions{display:grid;grid-template-columns:1fr 1fr}.admin-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-kpi-grid article{padding:14px}.admin-kpi-grid strong{font-size:25px}.admin-panel{padding:16px}.admin-section-heading{display:grid}.admin-create-user,.admin-create-plan>div:first-child,.admin-plan-prices{grid-template-columns:1fr}.admin-create-user fieldset{grid-column:auto}.admin-create-user .button{min-height:48px}.admin-catalog-actions{align-items:flex-start;flex-direction:column}.admin-plans-list{grid-template-columns:1fr}.admin-tabs{margin-inline:-4px}.admin-tabs button{font-size:12px}}

@media (max-width:1023px){
  .cloud-account-button{position:relative;min-width:44px;min-height:44px;justify-content:center;padding:8px}.cloud-account-button span{display:none}.cloud-user-icon{width:21px;height:21px}.cloud-connection-dot{position:absolute;right:6px;bottom:6px;width:7px;height:7px}
  .library-cloud-panel{align-items:stretch;flex-direction:column;gap:10px}.library-cloud-actions{justify-content:flex-start;flex-wrap:wrap}.library-cloud-actions .library-source-filter{order:3;width:100%}.library-cloud-actions .library-source-filter button{flex:1;min-width:0}
  .library-cloud-identity span{white-space:normal}
}
@media (max-width:767px){
  .access-gate{padding:20px 16px}.access-gate-brand img{width:45px;height:45px}.access-gate-brand strong{font-size:18px}.access-gate-card{align-self:start;margin-top:clamp(34px,10vh,90px);border-radius:20px;padding:23px 19px}.access-gate-card h1{font-size:29px}.access-gate-intro{font-size:12px}.access-auth-mode button{min-width:0}.access-gate-card form input{font-size:17px}.access-gate>footer{align-items:flex-start;flex-direction:column;gap:4px;margin-top:28px}
  .library-cloud-panel{margin:9px 0;padding:11px}.library-cloud-actions{display:grid;grid-template-columns:1fr 1fr}.library-cloud-actions .button{width:100%;min-width:0}.library-cloud-actions .library-source-filter{grid-column:1/-1}.library-source-filter button{font-size:9px}
  .cloud-auth-dialog{padding:18px}.cloud-auth-head h2{font-size:25px}.cloud-auth-dialog form input{font-size:17px}.cloud-signed-in>div:last-child{display:grid;grid-template-columns:1fr}.cloud-signed-in .button{width:100%}.cloud-account-upgrade{grid-template-columns:38px minmax(0,1fr)}.cloud-account-upgrade-icon{width:38px;height:38px}.cloud-account-upgrade .button{grid-column:1/-1;width:100%}
  .upgrade-dialog{width:calc(100vw - 20px);max-height:calc(100vh - 20px);border-radius:19px}.upgrade-dialog-close{top:11px;margin:11px 11px -53px 0}.upgrade-dialog-head{padding:26px 44px 18px}.upgrade-dialog-head h2{font-size:29px}.upgrade-dialog-head p:last-child{font-size:12px}.upgrade-dialog-controls{display:grid;grid-template-columns:1fr 1fr;padding:15px 14px 0}.upgrade-dialog-controls .segmented{grid-column:1/-1;width:100%;margin:0}.upgrade-dialog-controls select{width:100%;min-width:0}.upgrade-plan-cards{grid-template-columns:1fr;padding:16px 14px}.upgrade-plan-card{padding:17px}.upgrade-plan-card.recommended{padding:16px}.upgrade-dialog>footer{align-items:stretch;flex-direction:column;padding:13px 14px}.upgrade-dialog>footer .button{width:100%}.upgrade-status{margin-inline:14px}
}

/* Administration v3 — rendu de production aligné sur la maquette validée. */
.admin-view{background:#f5f8fc}
.admin-view .app-header{position:sticky;top:0;z-index:120;border-bottom:1px solid #d7e2ee;background:#fff;box-shadow:0 3px 14px rgba(25,56,88,.06)}
.admin-view .brand-row{min-height:62px}
.admin-page{width:100%;max-width:none;gap:0;padding:0 24px 48px;background:#f5f8fc}
.admin-page-head{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:0 -24px;border:0;border-bottom:1px solid #d9e4ef;border-radius:0;padding:18px 28px;background:#fff;color:#10233a;box-shadow:none}
.admin-page-head h1{margin:2px 0 4px;font-family:inherit;font-size:22px;line-height:1.15}
.admin-page-head p:not(.eyebrow){max-width:760px;margin:0;color:#687b90;font-size:12px;line-height:1.45}
.admin-page-head .eyebrow{margin:0;color:#0066cf;font-size:9px;letter-spacing:.14em}
.admin-page-head .button{min-height:40px;border-radius:8px;padding:8px 14px;font-size:12px}
.admin-page-head .button.ghost{border-color:#c8d7e6;background:#fff;color:#27425e}
.admin-kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;margin:0 -24px;border-bottom:1px solid #d9e4ef;padding:0 24px;background:#fff}
.admin-kpi-grid article{display:grid;grid-template-columns:auto 1fr;align-items:baseline;gap:2px 8px;min-width:0;border:0;border-right:1px solid #e4ebf2;border-radius:0;padding:12px 18px;background:transparent;box-shadow:none}
.admin-kpi-grid article:last-child{border-right:0}
.admin-kpi-grid span{grid-column:1/-1;color:#718297;font-size:9px;letter-spacing:.08em}
.admin-kpi-grid strong{color:#143352;font-family:inherit;font-size:20px;line-height:1}
.admin-kpi-grid small{color:#738398;font-size:9px;white-space:normal}
.admin-tabs{position:sticky;top:62px;z-index:100;display:flex;gap:28px;margin:0 -24px 20px;border:0;border-bottom:1px solid #d9e4ef;border-radius:0;padding:0 28px;background:#fff}
.admin-tabs button{position:relative;min-height:48px;border:0;border-radius:0;padding:13px 4px 11px;background:transparent;color:#62748a;font-size:12px;font-weight:750;box-shadow:none;cursor:pointer}
.admin-tabs button:after{position:absolute;right:0;bottom:-1px;left:0;height:3px;border-radius:3px 3px 0 0;background:transparent;content:""}
.admin-tabs button:hover{color:#0066cf}
.admin-tabs button.active{background:transparent;color:#0066cf;box-shadow:none}
.admin-tabs button.active:after{background:#0066cf}
.admin-panel{display:grid;gap:14px;border:1px solid #d5e1ed;border-radius:10px;padding:18px;background:#fff;box-shadow:0 3px 12px rgba(18,52,85,.045)}
.admin-section-heading{align-items:center;min-height:48px;gap:20px;border-bottom:0;padding:0}
.admin-section-heading h2{margin:2px 0 3px;font-family:inherit;font-size:18px;line-height:1.2}
.admin-section-heading .eyebrow{margin:0;color:#0066cf;font-size:8px;letter-spacing:.13em}
.admin-section-heading>div>p:last-child{margin:0;color:#6b7d91;font-size:11px;line-height:1.4}
.admin-section-heading [role=status]{font-size:11px}
.admin-data-toolbar{grid-template-columns:minmax(260px,1.5fr) minmax(135px,.55fr) minmax(150px,.65fr) auto auto;gap:9px;border:0;border-radius:8px;padding:10px;background:#f6f9fc}
.admin-catalog-toolbar{grid-template-columns:minmax(280px,1.6fr) minmax(145px,.5fr) minmax(180px,.7fr) auto}
.admin-data-toolbar label,.admin-upload-settings label{gap:4px;font-size:10px}
.admin-data-toolbar input,.admin-data-toolbar select,.admin-upload-settings select,.admin-bulk-bar select,.admin-role-select,.admin-user-status,.admin-feature-select,.admin-plan-matrix input{min-height:39px;border-radius:7px;padding:7px 10px;font-size:14px!important;line-height:1.3}
.admin-data-toolbar select option,.admin-upload-settings select option,.admin-bulk-bar select option,.admin-role-select option,.admin-user-status option,.admin-feature-select option{font-size:15px}
.admin-data-toolbar .button{min-height:39px;border-radius:7px;padding:7px 12px;font-size:11px}
.admin-bulk-bar{gap:8px;border:1px solid #acd0f4;border-left:4px solid #0066cf;border-radius:8px;padding:8px 10px;background:#eef7ff}
.admin-bulk-bar .button{min-height:38px;border-radius:7px;padding:7px 11px;font-size:11px}
.admin-create-user{grid-template-columns:1fr 1.2fr 1.1fr 2.1fr auto;gap:10px;border-radius:9px;padding:13px}
.admin-table-wrap{border-color:#d8e3ed;border-radius:8px;background:#fff}
.admin-table{min-width:900px}
.admin-users-table{min-width:1160px}
.admin-songs-table{min-width:1080px}
.admin-table th{height:40px;padding:9px 11px;background:#f5f8fb;color:#52667c;font-size:9px;letter-spacing:.05em;white-space:nowrap}
.admin-table td{height:50px;padding:9px 11px;color:#263d55;font-size:11px}
.admin-table tbody tr:nth-child(even){background:#fbfdff}
.admin-table tbody tr:hover{background:#eff7ff}
.admin-table .button{min-height:34px;border-radius:6px;padding:6px 9px;font-size:10px}
.admin-user-id{max-width:120px;font-size:9px}
.admin-user-name{font-size:12px}
.admin-user-rights{grid-template-columns:minmax(130px,1fr) auto}
.admin-table-footer{min-height:24px;font-size:10px}
.admin-upload-workspace{grid-template-columns:minmax(250px,.75fr) minmax(210px,.6fr) minmax(360px,1.35fr);gap:10px}
.admin-upload-dropzone{min-height:150px;border-radius:9px;padding:16px}
.admin-upload-dropzone strong{font-size:13px}
.admin-upload-settings,.admin-upload-queue{border-radius:9px;padding:13px}
.admin-upload-item{grid-template-columns:minmax(125px,1fr) minmax(100px,.7fr) 70px;min-height:34px}
.admin-plan-matrix{border-radius:8px}
.admin-plan-matrix table{min-width:900px}
.admin-plan-matrix th,.admin-plan-matrix td{height:44px;padding:8px 10px}
.admin-plan-matrix th:first-child,.admin-plan-matrix td:first-child{width:230px}
.admin-plan-matrix th{background:#f5f8fb}
.admin-plan-column{gap:6px}
.admin-plan-column input[type=text]{border:0;background:transparent;font-size:13px!important;text-align:center}
.admin-plan-column label{font-size:9px}
.admin-plan-matrix tbody th{font-size:11px}
.admin-plan-matrix .admin-price-group th{height:32px;background:#eaf4ff;font-size:9px}
.admin-plan-matrix .admin-price-cell input{min-height:34px}
.admin-create-plan-disclosure{border-radius:8px}
.admin-provider-grid{gap:12px}
.admin-provider-card{gap:11px;border-radius:9px;padding:14px;box-shadow:none}
.admin-provider-mark{width:38px;height:38px;border-radius:8px}
.admin-provider-card h3{font-size:15px}
.admin-provider-field{grid-template-columns:115px minmax(0,1fr);gap:8px}
.admin-provider-value{min-height:38px;border-radius:7px;font-size:11px}
.admin-provider-actions .button{min-height:38px;border-radius:7px;font-size:10px}
.admin-security-note{border-radius:8px;padding:10px 12px}
.admin-finance-grid{gap:12px}
.admin-finance-grid h3{font-size:14px}
.admin-provider-state{display:flex;align-items:center;justify-content:flex-end;gap:9px}
.admin-provider-switch{display:flex;align-items:center;gap:6px;color:#425b73;font-size:11px;font-weight:800}
.admin-provider-switch input{width:18px;height:18px;accent-color:#0066cf}
.admin-provider-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.admin-provider-form>label{display:grid;gap:5px;min-width:0;color:#52677d;font-size:10px;font-weight:800}
.admin-provider-form input,.admin-provider-form select{width:100%;min-width:0;min-height:42px;border:1px solid #c8d8e7;border-radius:7px;padding:8px 10px;background:#fff;color:#17324e;font-size:14px;outline:none}
.admin-provider-form select option{font-size:15px}
.admin-provider-form input:focus,.admin-provider-form select:focus{border-color:#0066cf;box-shadow:0 0 0 3px rgba(0,102,207,.11)}
.admin-provider-form input[readonly]{background:#f3f7fb;color:#587087}
.admin-provider-webhook{grid-column:1/-1}
.admin-provider-webhook>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}
.admin-provider-webhook .button{min-height:42px;border-radius:7px}
.admin-provider-actions{border-top:1px solid #e2eaf2;padding-top:11px}
.admin-provider-actions .button{min-width:150px}
.admin-songs-table th{font-size:11px}
.admin-songs-table td{font-size:13px;line-height:1.4}
.admin-songs-table td small{font-size:11px;line-height:1.35}
.admin-songs-table .admin-status-badge{font-size:10px}
.admin-plan-matrix{width:min(100%,960px);margin-inline:auto}
.admin-plan-matrix table{width:100%;min-width:780px}
.admin-plan-matrix th:first-child,.admin-plan-matrix td:first-child{width:218px}
.admin-plan-matrix th,.admin-plan-matrix td{padding-inline:8px}
.admin-plan-column{grid-template-columns:minmax(0,1fr) auto auto;align-items:center;column-gap:10px}
.admin-plan-column input[type=text]{grid-column:1/-1}
.admin-plan-column label{white-space:nowrap}
.dark-mode .admin-provider-form input,.dark-mode .admin-provider-form select{border-color:#3a5975;background:#142d45;color:#eef6ff}

/* Inscription guidée et droits d'offre. */
.access-gate-card.registering{width:min(1120px,calc(100vw - 40px));max-width:none}
.access-gate-card.registering #accessGatePanel>h1,.access-gate-card.registering .access-gate-intro{max-width:680px}
.access-plan-section{display:grid;gap:13px;border-top:1px solid #d9e5f0;padding-top:15px}
.access-plan-section>header{display:flex;align-items:end;justify-content:space-between;gap:18px}
.access-plan-section>header div{display:grid;gap:2px}.access-plan-section>header span{color:#0066cf;font-size:9px;font-weight:900;letter-spacing:.12em}.access-plan-section>header strong{color:#142c46;font-size:18px}.access-plan-section>header p{max-width:430px;margin:0;color:#687b90;font-size:11px;text-align:right}
.access-plan-controls{display:flex;align-items:end;gap:10px}.access-plan-controls .segmented{margin-right:auto}.access-plan-controls label{display:grid!important;gap:4px;color:#62778e;font-size:9px!important;font-weight:850;text-transform:uppercase}.access-plan-controls select{min-width:110px;height:38px;border:1px solid #cbd9e7;border-radius:8px;padding:6px 9px;background:#fff;color:#163654;font-size:14px}
.access-plan-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.access-plan-card{position:relative;display:grid;gap:9px;min-width:0;border:1px solid #d1deeb;border-radius:12px;padding:14px;background:#fff;color:#173653;cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .15s}
.access-plan-card:hover{border-color:#8abcf0;transform:translateY(-1px)}.access-plan-card.selected{border:2px solid #0066cf;padding:13px;background:#f4f9ff;box-shadow:0 7px 20px rgba(0,102,207,.1)}
.access-plan-card input{position:absolute;top:13px;right:13px;width:19px!important;height:19px!important;accent-color:#0066cf}.access-plan-card h3{margin:0;padding-right:27px;font-size:17px}.access-plan-card .access-plan-price{display:flex;align-items:baseline;gap:4px;color:#0066cf}.access-plan-card .access-plan-price strong{font-size:22px}.access-plan-card .access-plan-price span{font-size:10px}.access-plan-card p{min-height:30px;margin:0;color:#667b90;font-size:10px;line-height:1.45}.access-plan-features{display:flex;flex-wrap:wrap;gap:5px}.access-plan-features span{border-radius:999px;padding:4px 7px;background:#e9f3fd;color:#275d91;font-size:8px;font-weight:800}.access-plan-notice{margin:0;color:#697d91;font-size:10px}
.offer-readonly-banner{display:none;align-items:center;justify-content:space-between;gap:14px;border:1px solid #b9d6f3;border-radius:10px;margin-bottom:12px;padding:10px 13px;background:#edf7ff;color:#204e79;font-size:12px;font-weight:750}.cloud-readonly .offer-readonly-banner{display:flex}.offer-readonly-banner .button{flex:0 0 auto;min-height:38px;padding:7px 12px;font-size:11px}.cloud-readonly .editor-tools,.cloud-readonly .identity-main input,.cloud-readonly .identity-main select,.cloud-readonly #matrixWrap{pointer-events:none;opacity:.72}.cloud-readonly .editor-tools{display:none}
.cloud-plan-badge{display:inline-flex;align-items:center;width:max-content;min-height:28px;padding:4px 10px;border:1px solid #acd0f5;border-radius:999px;background:#edf7ff;color:#0066cf;font-size:12px;font-weight:800}

@media (max-width:1199px){
  .admin-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .admin-kpi-grid article:nth-child(3){border-right:0}
  .admin-kpi-grid article:nth-child(-n+3){border-bottom:1px solid #e4ebf2}
  .admin-data-toolbar,.admin-catalog-toolbar{grid-template-columns:minmax(240px,1.3fr) minmax(130px,.6fr) minmax(150px,.7fr) auto}
  .admin-toolbar-primary{grid-column:auto}
  .admin-upload-workspace{grid-template-columns:1fr 1fr}.admin-upload-queue{grid-column:1/-1}
}
@media (max-width:1023px){
  .admin-page{padding:0 12px 96px}.admin-page-head,.admin-kpi-grid,.admin-tabs{margin-inline:-12px}
  .admin-page-head{align-items:flex-start;padding:16px}.admin-tabs{top:62px;padding-inline:16px;gap:20px;overflow-x:auto}
  .admin-kpi-grid{padding-inline:12px}.admin-kpi-grid article{padding:10px 12px}
  .admin-data-toolbar,.admin-catalog-toolbar{grid-template-columns:1fr 1fr}.admin-search-field{grid-column:1/-1}.admin-toolbar-primary{grid-column:auto}
  .admin-upload-workspace{grid-template-columns:1fr}.admin-upload-queue{grid-column:auto}
  .admin-provider-grid{grid-template-columns:1fr}.admin-finance-grid{grid-template-columns:1fr}
  .admin-panel{padding:14px}.admin-table{min-width:820px}
}
@media (max-width:767px){
  .admin-page-head{display:grid}.admin-page-head h1{font-size:20px}.admin-page-actions{display:flex;justify-content:flex-start}
  .admin-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-kpi-grid article,.admin-kpi-grid article:nth-child(3){border-right:1px solid #e4ebf2;border-bottom:1px solid #e4ebf2}.admin-kpi-grid article:nth-child(even){border-right:0}.admin-kpi-grid article:nth-last-child(-n+2){border-bottom:0}
  .admin-tabs{gap:17px}.admin-tabs button{font-size:11px}
  .admin-data-toolbar,.admin-catalog-toolbar{grid-template-columns:1fr}.admin-search-field,.admin-toolbar-primary{grid-column:auto}
  .admin-data-toolbar .button{width:100%}.admin-bulk-bar{align-items:stretch}.admin-bulk-bar>*{width:100%}
  .admin-section-heading{display:grid}.admin-section-heading>div:last-child:not(:first-child){align-items:stretch}.admin-section-heading .button{width:100%}
  .admin-provider-field{grid-template-columns:1fr}.admin-provider-form{grid-template-columns:1fr}.admin-provider-webhook{grid-column:auto}.admin-provider-actions{display:grid;grid-template-columns:1fr 1fr}.admin-provider-actions .button{width:100%;min-width:0}
}
@media (max-width:767px){.access-gate-card.registering{width:calc(100vw - 24px);margin-top:12px}.access-plan-section>header{align-items:flex-start;flex-direction:column}.access-plan-section>header p{text-align:left}.access-plan-controls{display:grid;grid-template-columns:1fr 1fr;width:100%}.access-plan-controls .segmented{grid-column:1/-1;width:100%}.access-plan-cards{grid-template-columns:1fr}.access-plan-card p{min-height:0}}
/* Authentification moderne : récupération, Google Identity et TOTP. */
.upgrade-logo{width:76px;height:76px;object-fit:contain;filter:drop-shadow(0 8px 18px rgba(0,0,0,.22))}
.auth-text-button{justify-self:end;border:0;padding:0;background:transparent;color:#0066cf;font:inherit;font-size:12px;font-weight:800;cursor:pointer}
.auth-text-button:hover{text-decoration:underline}
.google-auth-section{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;margin-top:15px;color:#7a8b9d;font-size:10px;text-transform:uppercase;letter-spacing:.06em}
.google-auth-section::before,.google-auth-section::after{content:"";height:1px;background:#dce6ef}
.google-auth-button{grid-column:1/-1;display:flex;justify-content:center;min-height:44px;text-transform:none}
.cloud-security-card{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;border:1px solid #d5e2ee;border-radius:13px;padding:14px;background:#f7fbff}
.cloud-security-card>div{display:grid;gap:3px}.cloud-security-card strong{color:#153451}.cloud-security-card span{color:#657a8e;font-size:11px}
.security-dialog{width:min(520px,calc(100vw - 28px));max-height:calc(100vh - 28px);overflow:auto;border:0;border-radius:22px;padding:26px;background:#fff;color:#14253b;box-shadow:0 30px 100px rgba(1,18,35,.38)}
.security-dialog::backdrop{background:rgba(3,15,29,.72);backdrop-filter:blur(7px)}
.security-dialog>.dialog-close{position:absolute;top:17px;right:17px;z-index:2}
.security-dialog-head{display:flex;align-items:center;gap:14px;padding:2px 50px 18px 0;border-bottom:1px solid #e0e9f2}.security-dialog-head img{width:54px;height:54px;object-fit:contain}.security-dialog-head h2{margin:2px 0 0;font-family:Georgia,serif;font-size:25px}.security-dialog-head p{margin:0}
.security-dialog>section{padding-top:18px}.security-dialog>p,.security-dialog section>p{color:#64788c;font-size:13px;line-height:1.55}.security-dialog form{display:grid;gap:13px}.security-dialog label{display:grid;gap:6px;color:#49627b;font-size:11px;font-weight:800}.security-dialog input{min-width:0;height:47px;border:1px solid #c8d7e6;border-radius:10px;padding:10px 13px;background:#fff;color:#10233a;font-size:16px}.security-dialog form>.button{min-height:47px;margin-top:3px}
.password-input-wrap{position:relative;display:block}.password-input-wrap input{width:100%;padding-right:52px}.password-visibility{position:absolute;top:50%;right:5px;display:grid;place-items:center;width:38px;height:38px;transform:translateY(-50%);border:0;border-radius:9px;background:transparent;color:#526b83;cursor:pointer}.password-visibility:hover,.password-visibility:focus-visible{background:#eaf4fd;color:#0066cf;outline:none}.password-visibility svg{width:22px;height:22px;fill:currentColor}.password-visibility .eye-slash{display:none}.password-visibility.revealed .eye-open{display:none}.password-visibility.revealed .eye-slash{display:block}
.security-code-input{text-align:center;font-size:22px!important;font-weight:900;letter-spacing:.15em}.security-dialog-status{min-height:20px;margin:13px 0 0!important;color:#087b58!important;font-weight:750}.security-dialog-status.error{color:#c43b48!important}
.mfa-setup-grid{display:grid;grid-template-columns:168px 1fr;align-items:center;gap:18px;margin:14px 0}.mfa-setup-grid img{width:168px;height:168px;border:1px solid #d4e1ed;border-radius:12px}.mfa-setup-grid>div{display:grid;gap:8px;min-width:0}.mfa-setup-grid span{color:#60758a;font-size:11px;font-weight:800}.mfa-setup-grid code{overflow-wrap:anywhere;border-radius:9px;padding:10px;background:#edf5fc;color:#064b91;font-size:13px}
#mfaSecurityOverview{display:flex;flex-wrap:wrap;gap:10px}#mfaSecurityOverview p{flex:1 0 100%;margin-top:0}.account-security-dialog section[hidden]{display:none}.account-security-dialog pre{overflow:auto;border:1px solid #d7e3ee;border-radius:12px;padding:14px;background:#f5f9fd;color:#173754;font:800 14px/1.8 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.04em}.button.danger{background:#c33e4c;color:#fff;border-color:#c33e4c}
@media(max-width:767px){.security-dialog{padding:20px;border-radius:18px}.security-dialog-head h2{font-size:22px}.mfa-setup-grid{grid-template-columns:1fr;justify-items:center}.mfa-setup-grid>div{width:100%}.cloud-security-card{align-items:stretch;flex-direction:column}.upgrade-logo{width:62px;height:62px}}
@media (max-width:767px){
  .brand-row{
    display:flex;
    flex-wrap:nowrap;
    align-items:center;
    gap:8px;
    padding:8px 12px;
    min-width:0;
  }

  .brand{
    flex:0 1 auto;
    min-width:0;
  }

  .brand-logo{
    flex:0 0 38px;
    width:38px;
    height:38px;
  }

  .brand strong{
    font-size:16px;
  }

  .brand small{
    font-size:8px;
  }

  .brand-spacer{
    flex:1 1 auto;
    min-width:4px;
  }

  .square-button{
    flex:0 0 40px;
    width:40px;
    height:40px;
  }

  body:is(.library-view,.presentation-view,.about-view) .brand-row{
    display:flex;
  }

  .brand-spacer{
    display:block;
    flex:1 1 auto;
    min-width:8px;
  }
}

@media (max-width:1023px){
  .library-mobile-card.remote-entry{
    grid-template-columns:minmax(0,1fr) auto;
  }

  .library-mobile-card.remote-entry .library-mobile-card-copy{
    grid-column:1;
    min-width:0;
  }

  .library-mobile-card.remote-entry .library-mobile-card-actions{
    grid-column:2;
    justify-self:end;
  }
}

@media (max-width:1023px){
  .library-mobile-card.compact{
    grid-template-columns:26px minmax(0,1fr) auto;
    align-items:center;
    padding:7px 9px;
    min-height:64px;
  }

  .library-mobile-card.compact .library-mobile-card-copy{
    min-width:0;
  }

  .library-mobile-card.compact .library-mobile-card-copy h3{
    font-size:14px;
    line-height:1.1;
    -webkit-line-clamp:1;
  }

  .library-mobile-card.compact .library-mobile-card-copy p{
    margin:2px 0 0;
    font-size:9px;
  }

  .library-mobile-card.compact .library-mobile-card-copy>span{
    display:none;
  }

  .library-mobile-card.compact .library-mobile-card-actions{
    gap:4px;
  }

  .library-mobile-card.compact .library-mobile-open-icon,
  .library-mobile-card.compact .library-present-icon,
  .library-mobile-card.compact .library-mobile-more{
    width:36px;
    min-width:36px;
    height:36px;
    min-height:36px;
  }

  .library-mobile-card.compact.remote-entry{
    grid-template-columns:minmax(0,1fr) auto;
  }
}

@media (max-width:767px){
  .presentation-page.mobile-reading .presentation-brand-top{
    display:none!important;
  }

  .presentation-page.mobile-reading .presentation-title{
    width:100%;
    max-width:100%;
    padding-left:16px;
    padding-right:16px;
    box-sizing:border-box;
  }
}

.audio-pack-loading{
  position:fixed;
  inset:0;
  z-index:12000;
  display:grid;
  place-items:center;
  padding:18px;
  background:rgba(4,12,22,.58);
  backdrop-filter:blur(8px);
}
.audio-pack-loading[hidden]{display:none}
.audio-pack-loading-card{
  width:min(460px,100%);
  border:1px solid rgba(255,255,255,.22);
  border-radius:22px;
  padding:22px;
  background:rgba(255,255,255,.97);
  color:#10233a;
  box-shadow:0 28px 90px rgba(0,0,0,.36);
}
.audio-pack-loading-head{
  display:flex;
  align-items:center;
  gap:13px;
}
.audio-pack-loading-head i{
  flex:0 0 24px;
  width:24px;
  height:24px;
  border:3px solid #d9e6f3;
  border-top-color:#0066cf;
  border-radius:50%;
  animation:access-spin .8s linear infinite;
}
.audio-pack-loading-head>div{display:grid;gap:3px;min-width:0}
.audio-pack-loading-head strong{font-size:16px}
.audio-pack-loading-head span{color:#60758c;font-size:12px}
.audio-pack-loading progress{
  width:100%;
  height:12px;
  margin:18px 0 8px;
  accent-color:#0066cf;
}
.audio-pack-loading-meta{
  display:flex;
  justify-content:space-between;
  gap:12px;
  color:#60758c;
  font-size:11px;
}
.audio-pack-loading-meta strong{color:#0066cf}
.audio-pack-loading-card p{
  margin:16px 0 0;
  color:#6c7f91;
  font-size:11px;
  line-height:1.5;
}

@media (max-width:479px){
  .audio-pack-loading-card{
    border-radius:18px;
    padding:18px 16px;
  }
  .audio-pack-loading-head strong{font-size:15px}
}

/* Payment provider admin UI — stabilized layout */
.admin-provider-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}

.admin-provider-card{
  display:grid;
  gap:16px;
  min-width:0;
  border:1px solid #cedeed;
  border-radius:14px;
  padding:18px;
  background:#fff;
}

.admin-provider-card header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
}

.admin-provider-form{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}

.admin-provider-form > label{
  display:grid;
  align-content:start;
  gap:6px;
  min-width:0;
  color:#52677d;
  font-size:11px;
  font-weight:800;
}

.admin-provider-form input,
.admin-provider-form select{
  box-sizing:border-box;
  width:100%;
  min-width:0;
  min-height:44px;
  border:1px solid #bfcfe0;
  border-radius:9px;
  padding:9px 11px;
  background:#fff;
  color:#17324e;
  font-size:14px;
}

.admin-provider-form input[type=password]{
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
}

.admin-provider-form input:focus,
.admin-provider-form select:focus{
  border-color:#0066cf;
  outline:none;
  box-shadow:0 0 0 3px rgba(0,102,207,.12);
}

.admin-provider-webhook{
  grid-column:1 / -1;
}

.admin-provider-webhook > div{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
}

.admin-provider-actions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  border-top:1px solid #e2eaf2;
  padding-top:14px;
}

.admin-provider-actions .button{
  min-width:170px;
}

@media (max-width:1199px){
  .admin-provider-grid{
    grid-template-columns:1fr;
  }
}

@media (max-width:767px){
  .admin-provider-form{
    grid-template-columns:1fr;
  }

  .admin-provider-webhook{
    grid-column:auto;
  }

  .admin-provider-actions{
    display:grid;
    grid-template-columns:1fr;
  }

  .admin-provider-actions .button{
    width:100%;
    min-width:0;
  }
}

.dark-mode .admin-provider-card{
  border-color:#31506d;
  background:#10263c;
}

.dark-mode .admin-provider-form input,
.dark-mode .admin-provider-form select{
  border-color:#3a5975;
  background:#142d45;
  color:#eef6ff;
}



/* Payment provider admin UI v2 */
.payment-provider-card{
  gap:0;
  overflow:hidden;
  padding:0;
}

.payment-provider-header{
  padding:20px 22px;
  border-bottom:1px solid #e4edf5;
}

.payment-provider-section{
  display:grid;
  gap:14px;
  padding:20px 22px;
  border-bottom:1px solid #e8eef5;
}

.payment-provider-section-head strong{
  display:block;
  color:#173552;
  font-size:14px;
}

.payment-provider-section-head span{
  display:block;
  margin-top:3px;
  color:#718398;
  font-size:11px;
}

.payment-provider-general{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}

.payment-provider-general label,
.payment-webhook-section label{
  display:grid;
  gap:6px;
  color:#52677d;
  font-size:11px;
  font-weight:800;
}

.payment-provider-general input,
.payment-provider-general select,
.payment-webhook-section input,
.payment-secret-replacement{
  box-sizing:border-box;
  width:100%;
  min-height:44px;
  border:1px solid #c8d7e6;
  border-radius:9px;
  padding:9px 11px;
  background:#fff;
  color:#17324e;
  font-size:14px;
}

.payment-secret-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}

.payment-secret-card{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:14px;
  min-width:0;
  border:1px solid #d7e2ee;
  border-radius:14px;
  padding:16px 18px;
  background:#f8fafc;
}

.payment-secret-copy{
  display:grid;
  gap:5px;
  min-width:0;
}

.payment-secret-label{
  color:#52677d;
  font-size:11px;
  font-weight:850;
}

.payment-secret-value{
  display:block;
  overflow:hidden;
  color:#132f4a;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:16px;
  font-weight:750;
  letter-spacing:.02em;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.payment-secret-copy small{
  color:#718398;
  font-size:10px;
}

.payment-secret-actions{
  display:flex;
  align-items:center;
  gap:7px;
}

.payment-secret-actions .button{
  min-height:36px;
  border-radius:8px;
  padding-inline:12px;
  font-size:10px;
}

.payment-danger-button{
  border:1px solid #efc9cd;
  background:#fff;
  color:#b52e3c;
}

.payment-danger-button:hover{
  border-color:#d94a58;
  background:#fff5f6;
}

.payment-danger-button:disabled{
  opacity:.4;
  cursor:not-allowed;
}

.payment-secret-replacement{
  grid-column:1/-1;
  margin-top:2px;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
}

.payment-secret-replacement[hidden]{
  display:none;
}

.payment-webhook-section{
  background:#fbfdff;
}

.payment-webhook-section .admin-provider-webhook>div{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
}

.payment-provider-footer{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  padding:16px 22px;
  background:#fbfdff;
}

.payment-provider-footer .button{
  min-width:170px;
}

.dark-mode .payment-provider-header,
.dark-mode .payment-provider-section{
  border-color:#294760;
}

.dark-mode .payment-provider-section-head strong,
.dark-mode .payment-secret-value{
  color:#eef6ff;
}

.dark-mode .payment-secret-card{
  border-color:#31506d;
  background:#10263c;
}

.dark-mode .payment-webhook-section,
.dark-mode .payment-provider-footer{
  background:#0d2236;
}

.dark-mode .payment-danger-button{
  border-color:#7f4048;
  background:#142d45;
  color:#ff9da8;
}

@media (max-width:900px){
  .payment-provider-general,
  .payment-secret-grid{
    grid-template-columns:1fr;
  }
}

@media (max-width:600px){
  .payment-provider-header{
    align-items:flex-start;
    flex-direction:column;
  }

  .payment-provider-state{
    width:100%;
    justify-content:space-between;
  }

  .payment-secret-card{
    grid-template-columns:1fr;
  }

  .payment-secret-actions{
    justify-content:flex-start;
  }

  .payment-provider-footer{
    display:grid;
    grid-template-columns:1fr;
  }

  .payment-provider-footer .button{
    width:100%;
    min-width:0;
  }
}

/* Cantica embedded presentation */
html.cantica-embed .app-header,
html.cantica-embed .action-ribbon,
html.cantica-embed #presentationSettings,
html.cantica-embed #closePresentation,
html.cantica-embed #presentationConfigure,
html.cantica-embed #presentationFullscreen,
html.cantica-embed .presentation-brand,
html.cantica-embed .presentation-end-card {
  display: none !important;
}

html.cantica-embed body {
  margin: 0;
  background: #081322;
}

html.cantica-embed .presentation-page {
  min-height: 100vh;
  padding: 0;
}

html.cantica-embed .presentation-layout {
  grid-template-columns: minmax(0, 1fr) !important;
  margin: 0;
}

html.cantica-embed .presentation-stage {
  height: calc(100vh - 70px);
  border-radius: 0;
}

html.cantica-embed .presentation-toolbar {
  border-radius: 0;
  border-inline: 0;
  border-top: 0;
}

/* Cantica embedded persistent audio shell */
html.cantica-embed body {
  margin: 0;
  background: #081322;
}

html.cantica-embed #editorPage,
html.cantica-embed #libraryPage,
html.cantica-embed #aboutPage,
html.cantica-embed #adminPage,
html.cantica-embed .app-header,
html.cantica-embed .action-ribbon {
  display: none !important;
}

html.cantica-embed #presentationPage {
  display: block !important;
  min-height: 0;
  padding: 0;
}

html.cantica-embed #presentationSettings,
html.cantica-embed #presentationConfigure,
html.cantica-embed #closePresentation {
  display: none !important;
}

html.cantica-embed .presentation-layout {
  grid-template-columns: minmax(0, 1fr) !important;
  margin: 0;
}

html.cantica-embed .presentation-stage {
  height: calc(100vh - 180px);
  min-height: 360px;
  border-radius: 0;
}

html.cantica-embed .cantica-persistent-audio {
  position: sticky;
  z-index: 100;
  bottom: 0;
  display: block;
  padding: 8px 12px 10px;
  background: rgba(8,19,34,.98);
  backdrop-filter: blur(14px);
  border-top: 1px solid #29415f;
}

html.cantica-embed .cantica-persistent-audio .transport {
  position: static;
  margin: 0;
}

html.cantica-embed .cantica-persistent-audio .mixer {
  margin-top: 8px;
  max-height: 42vh;
  overflow: auto;
}

html.cantica-embed .cantica-persistent-audio .mixer[open] {
  display: block;
}

/* Cantica embed: fit the complete Tonic Sol-fa system inside the viewport */
html.cantica-embed .presentation-score-body {
  overflow-x: hidden !important;
}

html.cantica-embed .presentation-cells {
  width: 100%;
  min-width: 0 !important;
  overflow: visible !important;
}

html.cantica-embed .presentation-cell {
  min-width: 0 !important;
  padding-inline: 5px;
}

html.cantica-embed .presentation-track-row,
html.cantica-embed .presentation-global-lyrics {
  grid-template-columns: 76px minmax(0, 1fr);
}

html.cantica-embed .presentation-track-name {
  min-width: 0;
  padding-inline: 7px;
}

html.cantica-embed .presentation-track-name strong {
  font-size: 22px;
}

html.cantica-embed .presentation-note {
  min-width: 0;
  font-size: clamp(20px, 2.25vw, 30px);
  white-space: nowrap;
}

html.cantica-embed .presentation-lyric {
  font-size: min(var(--presentation-lyric-size), 34px);
}

/* Restore the useful presentation controls inside Cantica */
html.cantica-embed #presentationConfigure,
html.cantica-embed #presentationFullscreen {
  display: inline-flex !important;
}

html.cantica-embed #presentationSettings {
  display: grid !important;
}

html.cantica-embed #presentationSettings.collapsed {
  display: none !important;
}

html.cantica-embed #closePresentation {
  display: none !important;
}

html.cantica-embed .presentation-layout {
  grid-template-columns: minmax(220px, 270px) minmax(0, 1fr) !important;
}

html.cantica-embed .presentation-layout.config-collapsed,
html.cantica-embed .presentation-page.config-collapsed .presentation-layout {
  grid-template-columns: minmax(0, 1fr) !important;
}

html.cantica-embed .presentation-toolbar {
  grid-template-columns: minmax(180px,1fr) auto auto;
}

html.cantica-embed .presentation-toolbar-actions {
  display: flex !important;
}

@media (max-width: 900px) {
  html.cantica-embed .presentation-layout {
    grid-template-columns: minmax(0,1fr) !important;
  }

  html.cantica-embed #presentationSettings {
    position: static;
    grid-template-columns: repeat(2,minmax(0,1fr));
  }

  html.cantica-embed .presentation-track-row,
  html.cantica-embed .presentation-global-lyrics {
    grid-template-columns: 58px minmax(0,1fr);
  }

  html.cantica-embed .presentation-track-name strong {
    font-size: 18px;
  }
}

/* Cantica audio-only mode: keep the engine alive, hide only presentation */
html.cantica-embed.cantica-audio-only #presentationPage {
  display: none !important;
}

html.cantica-embed.cantica-audio-only body {
  min-height: 0 !important;
  overflow: hidden;
}

html.cantica-embed.cantica-audio-only .cantica-persistent-audio {
  position: static;
  min-height: 0;
  padding: 8px 12px 10px;
  border-top: 0;
}

html.cantica-embed.cantica-audio-only .cantica-persistent-audio .transport {
  position: static !important;
}

html.cantica-embed.cantica-audio-only .cantica-persistent-audio .mixer {
  max-height: 180px;
  overflow: auto;
}

/* Full embedded presentation */
html.cantica-embed.cantica-presentation-mode body {
  overflow: auto;
}

html.cantica-embed.cantica-presentation-mode #presentationPage {
  display: block !important;
}
