:root{color-scheme:dark;--bg:#0b0e19;--surface:#151a2a;--surface2:#1d2336;--line:#343b50;--text:#f6f7fb;--dim:#a5aec2;--pink:#ff3e82;--pink2:#f12c72;--blue:#69bafe;--green:#5be0b3}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font:14px system-ui,-apple-system,'Segoe UI',sans-serif}button,input,textarea,select{font:inherit}button{cursor:pointer;border:1px solid var(--line);color:var(--text);background:var(--surface2);border-radius:10px;padding:8px 10px}button:hover{background:#2a324a}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--blue);outline-offset:1px}.accent{color:var(--pink)}.hidden{display:none!important}.header{height:62px;display:flex;align-items:center;gap:9px;background:#121625;border-bottom:1px solid var(--line);padding:0 13px}.brand{border:0;background:transparent;font-size:19px;font-weight:850;letter-spacing:-.6px;display:flex;align-items:center;gap:8px;padding:3px}.brand-icon{color:var(--pink);font-size:25px}.sep{width:1px;height:25px;background:var(--line)}.project-name{border:0;min-width:0;max-width:30vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:16px;font-weight:650;background:transparent;text-align:left}.grow{flex:1}.head-btn{white-space:nowrap;background:transparent}.workspace{display:grid;grid-template-columns:82px minmax(300px,1fr) 275px;height:calc(100dvh - 91px);min-height:500px}.tools{border-right:1px solid var(--line);background:#111522;display:flex;align-items:center;flex-direction:column;padding:12px 5px;gap:7px;overflow:auto}.tools button{width:72px;background:transparent;border:1px solid transparent;display:flex;align-items:center;flex-direction:column;gap:2px;padding:9px 0}.tools button strong{font-size:24px;font-weight:500;line-height:25px;color:#e4e5f0}.tools button span{font-size:10px;color:var(--dim)}.tools button:hover,.tools button.active{border-color:var(--line);background:var(--surface2)}.tools button.active strong{color:var(--pink)}.tool-rule{height:1px;width:46px;background:var(--line);margin:5px}.main{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden}.topline{height:49px;flex-shrink:0;padding:9px 16px;display:flex;align-items:center;justify-content:space-between;gap:9px;border-bottom:1px solid var(--line)}.topline-label{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.topline-label strong{font-size:15px}.topline-label span,.topline-actions span{color:var(--dim);font-size:12px}.topline-actions{display:flex;align-items:center;gap:5px}.topline-actions button{padding:6px 10px}.stage-shell{background:radial-gradient(ellipse at center,#212845 0%,#101523 73%);min-height:160px;flex:1;display:flex;align-items:stretch;flex-direction:column;position:relative;overflow:hidden}.scene-surface{flex:1;min-height:0;width:100%;touch-action:none}.stage-shell svg{display:block;width:100%;height:100%;user-select:none;touch-action:none}.stage-shell canvas{width:100%;height:100%}.stage-legend{display:flex;justify-content:space-around;color:#969db5;letter-spacing:1.3px;font-size:10px;padding:4px 0 8px;pointer-events:none}.hint{padding:7px 15px;font-size:12px;color:#bac3d9;background:#11192d;flex-shrink:0;min-height:31px}.timeline{flex-shrink:0;background:var(--surface);border-top:1px solid var(--line);padding:8px 12px}.timeline-head{display:flex;align-items:center;gap:6px;margin-bottom:7px}.timeline-head strong{margin-right:auto}.timeline-head span{font-size:12px;color:var(--dim)}.timeline-head button{font-size:11px;padding:5px 7px}.formation-strip{display:flex;overflow-x:auto;gap:8px;padding:4px 1px 10px;scrollbar-width:thin}.formation-pill{min-width:96px;max-width:160px;text-align:left;flex-shrink:0;padding:6px 10px;border-radius:9px;border:2px solid #ffffff22;background:#22293d;position:relative}.formation-pill.active{border-color:var(--pink);background:#303047}.formation-pill .small{font-size:10px;color:var(--dim);display:block;margin-top:3px}.formation-pill .tinybar{height:3px;display:block;border-radius:2px;margin-top:6px}.formation-add{min-width:85px;flex-shrink:0}.audio-line{display:flex;gap:9px;align-items:center}.primary-btn{background:var(--pink);border-color:var(--pink2);font-weight:700}.primary-btn:hover{background:#ec2669}.play{font-size:18px;padding:9px 13px}.seek-container{flex:1}.seek-container input{width:100%;accent-color:var(--pink)}.time-label{display:flex;justify-content:space-between;font-size:10px;color:var(--dim)}.waveform{display:block;width:100%;height:32px;margin-top:6px;border-radius:5px;background:#0d1220}.inspector{border-left:1px solid var(--line);background:var(--surface);display:flex;flex-direction:column;min-width:0}.inspector-tabs{display:flex;padding:9px;gap:4px;border-bottom:1px solid var(--line)}.inspector-tabs button{flex:1;padding:8px 3px;font-size:12px;background:transparent;border-color:transparent}.inspector-tabs .active{color:var(--pink);border-color:var(--pink)}.inspector-body{overflow:auto;padding:14px 14px 70px;min-height:0}.inspector-body h3{font-size:15px;margin:3px 0 14px}.inspector-body p{color:var(--dim);font-size:12px;line-height:1.5}.field{display:flex;flex-direction:column;gap:5px;margin:0 0 12px}.field span{font-size:12px;color:#cbd1de}.field input,.field textarea,.field select,.search{width:100%;border:1px solid var(--line);border-radius:8px;background:#101522;color:var(--text);padding:9px;outline:none}.field textarea{min-height:82px;resize:vertical}.field input[type=color]{padding:2px;height:37px}.inline-fields{display:flex;gap:8px}.inline-fields>.field{min-width:0;flex:1}.inspector-body button{margin:2px 3px 5px 0}.btn-warn{color:#ff869f;border-color:#714055}.tag{display:inline-block;border-radius:30px;background:#303c4f;color:#e3e9f5;font-size:11px;padding:3px 8px;margin:0 5px 7px 0}.foot{height:29px;display:flex;align-items:center;justify-content:space-between;gap:5px;padding:0 14px;color:#778299;font-size:11px;border-top:1px solid var(--line)}.mobile-inspector-bar{display:none}.modal-backdrop{position:fixed;z-index:40;inset:0;display:flex;justify-content:center;align-items:center;padding:15px;background:#050816ce;backdrop-filter:blur(4px)}.modal{width:min(740px,100%);max-height:93dvh;overflow:auto;background:#171d30;border:1px solid #434c69;border-radius:15px;box-shadow:0 25px 100px #0009;padding:18px}.modal-head{display:flex;align-items:center;gap:8px;margin-bottom:12px}.modal-head h2{font-size:20px;margin:0;flex:1}.close{padding:6px 10px}.modal-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.project-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;max-height:50vh;overflow:auto}.project-card{border:1px solid #3a4362;border-radius:12px;padding:12px;background:#202840}.project-card h3{font-size:15px;margin:0 0 7px;overflow-wrap:anywhere}.project-card small{color:var(--dim)}.project-card .actions{margin-top:14px;display:flex;gap:5px;flex-wrap:wrap}.project-card .actions button{font-size:11px;padding:6px}.modal .field{margin-bottom:10px}.modal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:9px}.modal-grid button{padding:16px 5px}.help-text{line-height:1.65;color:#ccd2e1}.help-text h3{color:white}.help-text code{color:var(--green)}#printRoot{display:none}.dancer-point{cursor:grab}.dancer-point:active{cursor:grabbing}.prop-point{cursor:move}.stage-handles{pointer-events:auto;cursor:move}.control-row{display:flex;gap:6px;flex-wrap:wrap}.hint-box{background:#243047;border-radius:10px;padding:9px;color:#c8d2eb;font-size:12px;margin-bottom:10px}.status-ok{color:var(--green)}
@media(max-width:1000px){.workspace{grid-template-columns:65px minmax(0,1fr) 235px}.tools button{width:57px}.tools button span{font-size:9px}.inspector-body{padding:10px}.topline-actions span{display:none}}
@media(max-width:740px){.desktop{display:none}.header{height:54px;padding:0 8px;gap:3px}.brand{font-size:16px;gap:3px;padding:3px}.brand-icon{font-size:19px}.project-name{font-size:13px;max-width:35vw;padding:6px 3px}.head-btn{padding:6px 8px}.workspace{height:calc(100dvh - 112px);min-height:420px;grid-template-columns:51px minmax(0,1fr)}.tools{padding:4px 0;gap:0}.tools button{width:49px;padding:7px 0}.tools button strong{font-size:21px}.tools button span{font-size:8px}.tool-rule{width:27px;margin:2px}.topline{height:42px;padding:6px 9px}.topline-label{gap:5px}.topline-label strong{font-size:12px}.topline-label span{font-size:10px}.topline-actions button{padding:4px 6px}.stage-legend{font-size:9px}.hint{padding:5px 7px;font-size:10px;min-height:26px}.timeline{padding:6px}.timeline-head{gap:3px}.timeline-head button{padding:4px 5px;font-size:10px}.formation-pill{min-width:80px;max-width:110px;padding:5px 6px;font-size:11px}.formation-pill .small{font-size:9px}.formation-strip{padding-bottom:7px}.audio-line{gap:4px}.audio-line button{padding:6px 7px}.waveform{height:22px}.inspector{display:none;position:fixed;z-index:30;left:0;right:0;top:55px;bottom:48px;box-shadow:0 0 0 9999px #0009}.inspector.open{display:flex}.mobile-inspector-bar{height:39px;display:flex;background:#151b2e;border-top:1px solid var(--line);justify-content:center;gap:5px;align-items:center}.mobile-inspector-bar button{font-size:11px;padding:5px 7px}.foot{height:19px;padding:0 8px;font-size:9px}.foot span:last-child{display:none}.modal{padding:13px}.modal-head h2{font-size:17px}}
@media print{body{background:white!important;color:#111!important}.header,.workspace,.mobile-inspector-bar,.foot,.modal-backdrop{display:none!important}#printRoot{display:block!important}#printRoot h1{font-size:20pt}#printRoot p{font-size:10pt}#printRoot .print-page{break-after:page;border-bottom:1px solid #bbb;padding:10mm 0}#printRoot .print-page svg{width:100%;max-height:235mm}#printRoot .print-info{font-size:12pt;color:#222;margin-bottom:7mm}#printRoot .print-notes{font-size:10pt;margin-top:10mm;white-space:pre-wrap}}

/* Édition tactile, zoom et chronologie v0.3 */
.stage-view-tools{z-index:4;position:absolute;top:7px;left:50%;transform:translateX(-50%);background:#10192be8;border:1px solid #424c66;border-radius:10px;display:flex;align-items:center;gap:4px;padding:4px;max-width:calc(100% - 6px);white-space:nowrap}
.stage-view-tools button{font-size:11px;padding:6px 8px;border:0;background:transparent}
.stage-view-tools button.active{background:#314568;color:#bde1ff}
.stage-view-tools span{font-size:10px;color:#bbcae6}
.prop-grip{cursor:grab;touch-action:none}
.timeline-editor{display:flex;min-height:40px;gap:2px;overflow-x:auto;align-items:stretch;margin:0 0 7px;padding:3px 0;scrollbar-width:thin}
.time-segment{position:relative;display:flex;align-items:center;border:1px solid #52607a;border-radius:6px;min-width:52px;min-height:32px;padding:4px 23px 4px 6px;overflow:hidden;color:#f7f8ff;font-size:10px;cursor:pointer;user-select:none}
.time-segment.active{outline:1px solid #fc78a3}
.time-segment.transition-segment{background:#273448;border:1px dashed #64768b;color:#d5ddef;min-width:45px}
.time-segment span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.duration-handle{position:absolute;right:0;top:0;bottom:0;width:22px;display:flex;align-items:center;justify-content:center;cursor:ew-resize;touch-action:none;background:#ffffff20;color:#fff;font-size:15px}
#waveform{touch-action:none;cursor:crosshair}
.timing-disclosure{border:1px solid #34415b;border-radius:9px;background:#0c1426;margin:5px 0 9px}
.timing-disclosure summary{padding:8px 10px;cursor:pointer;font-size:12px;font-weight:650;color:#e8effd;touch-action:manipulation}
.timing-disclosure summary::marker{color:#f56a9e}
.timing-panel{padding:4px 9px 9px;display:flex;flex-direction:column;gap:6px}
.timing-panel-head{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:space-between;font-size:12px}
.timing-panel-head small{color:#aebbd0;font-size:10px}
.timing-panel-fields{display:flex;gap:9px;flex-wrap:wrap;align-items:end}
.timing-field{display:flex;align-items:center;gap:5px;min-width:0}
.timing-field>span{font-size:10px;color:#c5d2e8;min-width:52px}
.timing-field input{width:68px;min-width:0;border:1px solid #48566d;color:#fff;background:#161e30;padding:6px;border-radius:6px;font-size:12px;text-align:center}
.timing-field button{min-width:30px;padding:5px 7px;border-radius:6px;touch-action:manipulation}
.timing-sync-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.timing-sync-actions button{font-size:11px;padding:6px 8px}
.timing-readout{font-size:10px;color:#adc8e7;flex:1}
.timeline-editor .time-segment{touch-action:pan-x}
.timing-panel button:disabled{opacity:.42;cursor:not-allowed}
.music-controls{display:flex;gap:12px;flex-wrap:wrap;align-items:center;color:#abb8cf;font-size:10px;margin:6px 0 0}
.music-controls label{display:flex;gap:5px;align-items:center}
.music-controls input[type=number]{width:65px;padding:3px 5px;background:#0d1525;color:#eee;border:1px solid #49536d;border-radius:5px}
.music-controls input[type=checkbox]{accent-color:var(--pink)}
@media(max-width:740px){.stage-view-tools{top:4px;gap:2px}.stage-view-tools button{font-size:9px;padding:5px 4px}.stage-view-tools span{font-size:9px}.timeline-editor{min-height:32px}.time-segment{min-height:25px;font-size:9px}.music-controls{font-size:9px;gap:6px}.timing-panel{padding:7px 6px}.timing-field>span{min-width:auto}.timing-panel-fields{gap:5px}.timing-sync-actions button{font-size:10px}}

/* Édition tactile v2 : barre contextuelle accessible sur téléphone et PC. */
.selection-quickbar{display:flex;align-items:center;justify-content:center;gap:5px;padding:5px 8px;overflow-x:auto;flex-shrink:0;background:#121c31;border-top:1px solid #3f506e;scrollbar-width:thin;white-space:nowrap;max-width:100%}
.selection-quickbar.hidden{display:none}
.selection-quickbar span{font-size:11px;color:#d6e0f3;margin-right:5px}
.selection-quickbar button{font-size:14px;min-width:32px;min-height:32px;padding:5px 8px;touch-action:manipulation;background:#263756;border-color:#425a7c}
.selection-quickbar button:active{background:#4b6ea2}
.selection-quickbar button:disabled{opacity:.36;cursor:not-allowed}
@media(max-width:740px){.selection-quickbar{justify-content:flex-start;gap:4px;padding:4px}.selection-quickbar span{font-size:10px}.selection-quickbar button{min-width:30px;min-height:34px;padding:3px 6px}}
