:root{--wtl-gold:#b7955d;--wtl-dark:#171717}.admin-sidebar{width:280px;min-width:280px}.admin-sidebar .nav-link{border-radius:.65rem}.admin-sidebar .nav-link:hover{background:rgba(255,255,255,.08)}.admin-sidebar .nav-link.active{background:var(--wtl-gold);color:#111!important}.brand-mark{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--wtl-gold);color:#111;font-weight:800;letter-spacing:-1px}.admin-content{min-width:0}.metric-card{border:0;box-shadow:0 .3rem 1.5rem rgba(0,0,0,.06);border-radius:1rem}.metric-icon{width:46px;height:46px;border-radius:.85rem;display:flex;align-items:center;justify-content:center;background:#f0ebe2;color:#6f5631;font-size:1.25rem}.table-card{border:0;border-radius:1rem;box-shadow:0 .3rem 1.5rem rgba(0,0,0,.06);overflow:hidden}.login-bg{background:radial-gradient(circle at 10% 10%,#4a4034 0,#1b1b1b 45%,#0f0f0f 100%)}.login-card{max-width:460px;width:100%;border-radius:1.25rem}.public-hero{background:linear-gradient(90deg,rgba(0,0,0,.9),rgba(0,0,0,.45)),radial-gradient(circle at 70% 30%,#5f5140,#111 60%)}.wizard-step{display:none}.wizard-step.active{display:block}.wizard-nav .step-dot{width:34px;height:34px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#dee2e6;font-weight:700}.wizard-nav .active .step-dot{background:var(--wtl-gold);color:#111}.sim-total{font-size:2rem;font-weight:800}@media(max-width:991.98px){.admin-sidebar{width:280px}.admin-content{width:100%}}@media(min-width:992px){.admin-sidebar{position:sticky;top:0;height:100vh}}

/* WTL V2 */
.sidebar-logo{display:block;max-width:190px;max-height:105px;object-fit:contain;margin:0 auto}.mobile-brand-logo{height:42px;width:auto;object-fit:contain}.login-logo{width:min(100%,300px);max-height:230px;object-fit:contain}.next-action-card{border-left:5px solid var(--wtl-gold)!important}.quick-actions .btn{min-height:44px}.detail-grid>div>span{display:block;color:#6c757d;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.2rem}.detail-grid>div>strong{display:block;font-size:1rem}.detail-grid>div>small{display:block;color:#6c757d}.process-row{display:flex;justify-content:space-between;gap:1rem;padding:.75rem .9rem;background:#f8f9fa;border-radius:.7rem}.process-row span{color:#6c757d}.timeline{position:relative}.timeline-item{position:relative;padding-left:1.7rem;border-left:2px solid #e6e1d8;margin-left:.35rem}.timeline-dot{position:absolute;width:11px;height:11px;border-radius:50%;background:var(--wtl-gold);left:-6.5px;top:.35rem;box-shadow:0 0 0 4px #fff}.white-space-preline{white-space:pre-line}.sim-step{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:#f0ebe2;color:#6f5631;font-weight:800;margin-right:.35rem}.sim-section .form-label{font-weight:600}.dt-container .dt-search input,.dt-container .dt-length select{border:1px solid #dee2e6;border-radius:.5rem;padding:.375rem .75rem}.dt-container .dt-layout-row{padding:.8rem 1rem;margin:0}.dt-container .dt-layout-row:last-child{border-top:1px solid #eee}.dt-container .pagination{margin-bottom:0}.sidebar-brand:hover{opacity:.9}@media(max-width:575.98px){.quick-actions .btn{flex:1 1 100%}.login-logo{max-height:170px}.process-row{font-size:.92rem}}

/* WTL V5 */
.admin-sidebar{height:100vh;overflow:hidden}.sidebar-shell{min-height:0}.sidebar-brand-wrap,.sidebar-footer{flex:0 0 auto}.sidebar-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.25) transparent}.sidebar-scroll::-webkit-scrollbar{width:6px}.sidebar-scroll::-webkit-scrollbar-thumb{background:rgba(255,255,255,.25);border-radius:10px}.sidebar-logo{max-height:92px}.admin-sidebar .nav-link{display:flex;align-items:center}.admin-sidebar .nav-link i{width:1.25rem;flex:0 0 1.25rem}.form-label.required::after,label.required::after{content:" *";color:#dc3545;font-weight:700}.contact-modal-card .btn,.modal-body .d-flex>.btn{align-self:flex-start;height:auto}.budget-indicator-neutral{border:1px solid transparent}.budget-ok{background:#eaf7ee;border:1px solid #8fd19e}.budget-warning{background:#fff5df;border:1px solid #ffc107}.budget-danger{background:#fdebec;border:1px solid #dc3545}.quote-lines-table td{vertical-align:middle}.quote-lines-table .form-control{min-width:80px}.quote-lines-table td:last-child{white-space:nowrap}.sidebar-footer{background:rgba(0,0,0,.12)}
@media(max-width:991.98px){.admin-sidebar{height:100vh}.sidebar-scroll{overflow-y:auto}}


/* WTL V7 - fiche administrative du lieu */
@media (min-width:992px){
.venue-admin-modal{height:calc(100vh - 40px);max-width:min(1200px,calc(100vw - 40px));margin:20px auto}
.venue-admin-modal .modal-content{height:100%;max-height:none;display:flex;flex-direction:column}
.venue-admin-modal .modal-header,.venue-admin-modal .modal-footer{flex:0 0 auto}
.venue-admin-modal .modal-body{flex:1 1 auto;overflow:visible;display:flex;align-items:stretch}
.venue-admin-modal .modal-body>.row{width:100%;align-content:start;margin-top:0;margin-bottom:0}
.venue-admin-modal .modal-body dl{margin-bottom:0}
.venue-admin-modal .modal-body .h-100{height:auto!important;min-height:100%}
}
@media (max-width:991.98px){
.venue-admin-modal{width:calc(100vw - 20px);max-width:none;height:calc(100vh - 20px);margin:10px auto}
.venue-admin-modal .modal-content{height:100%;max-height:none}
.venue-admin-modal .modal-body{overflow-y:auto}
}

/* WTL V8 — Fiches techniques et éditeur de plan de scène */
.stage-palette { max-height: 58vh; overflow-y: auto; }
.stage-palette-item { display:flex; align-items:center; gap:.7rem; width:100%; border:1px solid #dee2e6; background:#fff; border-radius:.6rem; padding:.55rem .65rem; margin-bottom:.4rem; cursor:grab; text-align:left; }
.stage-palette-item:hover { background:#f8f9fa; border-color:#adb5bd; }
.stage-palette-item img { width:30px; height:30px; object-fit:contain; }
.stage-editor { position:relative; width:100%; aspect-ratio: 1.45/1; min-height:520px; border:2px solid #343a40; background:#fff; overflow:hidden; user-select:none; }
.stage-editor.show-grid { background-image:linear-gradient(to right,rgba(0,0,0,.06) 1px,transparent 1px),linear-gradient(to bottom,rgba(0,0,0,.06) 1px,transparent 1px); background-size:5% 5%; }
.stage-center-guide { position:absolute; left:50%; top:0; bottom:0; border-left:1px dashed rgba(0,0,0,.22); pointer-events:none; }
.stage-public { position:absolute; bottom:.45rem; left:50%; transform:translateX(-50%); font-size:.75rem; font-weight:700; letter-spacing:.15em; color:#6c757d; pointer-events:none; }
.stage-object { position:absolute; width:72px; min-height:58px; display:flex; flex-direction:column; align-items:center; justify-content:center; cursor:move; transform-origin:center; z-index:2; }
.stage-object img { width:38px; height:38px; object-fit:contain; pointer-events:none; filter:drop-shadow(0 1px 1px rgba(0,0,0,.12)); }
.stage-object span { max-width:100px; font-size:.68rem; font-weight:600; line-height:1.05; text-align:center; background:rgba(255,255,255,.88); padding:.12rem .25rem; border-radius:.25rem; pointer-events:none; }
.stage-legend-item { display:flex; align-items:center; gap:.4rem; border:1px solid #dee2e6; border-radius:999px; padding:.3rem .55rem; background:#fff; font-size:.8rem; }
.stage-legend-item img { width:22px; height:22px; object-fit:contain; }
.tech-section-choice { display:block; cursor:pointer; }
.tech-section-choice input { position:absolute; opacity:0; pointer-events:none; }
.tech-section-choice span { display:flex; align-items:center; gap:.6rem; padding:.85rem 1rem; border:1px solid #dee2e6; border-radius:.7rem; background:#fff; transition:.15s ease; }
.tech-section-choice i { color:#adb5bd; }
.tech-section-choice input:checked + span { border-color:#212529; background:#f8f9fa; box-shadow:0 0 0 1px #212529 inset; }
.tech-section-choice input:checked + span i { color:#198754; }
.wizard-progress { display:flex; gap:.6rem; }
.wizard-progress .wizard-step { flex:1; display:flex; align-items:center; gap:.5rem; border-bottom:3px solid #dee2e6; padding:.55rem .2rem; font-weight:700; color:#adb5bd; }
.wizard-progress .wizard-step span { font-size:.78rem; font-weight:600; }
.wizard-progress .wizard-step.active { border-color:#212529; color:#212529; }
@media (max-width: 991.98px) { .stage-editor { min-height:420px; } .wizard-progress .wizard-step span { display:none; } }
.technical-mode-card { display:block; cursor:pointer; }
.technical-mode-card input { position:absolute; opacity:0; pointer-events:none; }
.technical-mode-card span { height:100%; min-height:175px; display:flex; flex-direction:column; align-items:flex-start; gap:.5rem; border:1px solid #dee2e6; border-radius:.8rem; padding:1rem; background:#fff; }
.technical-mode-card small { color:#6c757d; line-height:1.35; }
.technical-mode-card input:checked + span { border-color:#212529; box-shadow:0 0 0 2px #212529 inset; background:#f8f9fa; }

/* Stage plan editor — richer interaction */
.stage-object {
    width: 92px;
    min-height: 72px;
    transform: translate(-50%, -50%);
    z-index: 2;
}
.stage-object-visual {
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    transform: rotate(var(--stage-object-rotation, 0deg)) scale(var(--stage-object-scale, 1));
    transform-origin:center;
    transition: filter .12s ease, outline-color .12s ease;
}
.stage-object.is-selected .stage-object-visual {
    outline: 2px dashed #b89455;
    outline-offset: 5px;
    border-radius: .35rem;
    filter: drop-shadow(0 2px 3px rgba(0,0,0,.18));
}
.stage-object.is-selected::after {
    content: '';
    position:absolute;
    width:8px;
    height:8px;
    right:4px;
    bottom:4px;
    border-radius:50%;
    background:#b89455;
    box-shadow:0 0 0 2px #fff;
}
.stage-object img { width:42px; height:42px; }
.stage-context-menu {
    position: fixed;
    z-index: 1090;
    min-width: 205px;
    padding: .35rem;
    border: 1px solid rgba(0,0,0,.12);
    border-radius: .6rem;
    background: #fff;
    box-shadow: 0 .65rem 1.6rem rgba(0,0,0,.18);
}
.stage-context-menu button {
    display:flex;
    align-items:center;
    width:100%;
    gap:.55rem;
    padding:.48rem .65rem;
    border:0;
    border-radius:.4rem;
    background:transparent;
    text-align:left;
    font-size:.88rem;
}
.stage-context-menu button:hover { background:#f3f1ed; }
.stage-context-menu button.text-danger:hover { background:#fff0f0; }
.stage-context-separator { height:1px; background:#e9ecef; margin:.3rem .15rem; }
.stage-selection-panel {
    display:grid;
    grid-template-columns:minmax(150px,1fr) minmax(210px,1.4fr) auto;
    align-items:center;
    gap:1rem;
    padding:.7rem .85rem;
    border:1px solid #e1e3e5;
    border-radius:.65rem;
    background:#fbfbfa;
}
.stage-selection-actions { display:flex; gap:.35rem; flex-wrap:wrap; justify-content:flex-end; }
.stage-scale-control { display:flex; align-items:center; gap:.6rem; }
.stage-scale-control input[type="range"] { min-width:140px; }
@media (max-width: 767.98px) {
    .stage-selection-panel { grid-template-columns:1fr; }
    .stage-selection-actions { justify-content:flex-start; }
}
.stage-orientation { position:absolute; z-index:1; font-size:.67rem; font-weight:700; letter-spacing:.08em; color:#8b8171; pointer-events:none; }
.stage-orientation-back { top:.45rem; left:50%; transform:translateX(-50%); }
.stage-orientation-left { top:.55rem; left:.7rem; }
.stage-orientation-right { top:.55rem; right:.7rem; }


/* WTL V10 — stage editor mirrors the PDF stage-plan composition */
.stage-pdf-preview {
    width: 100%;
    max-width: 1180px;
    margin: 0 auto;
    background: #fff;
}
.stage-pdf-dimensions {
    display: inline-block;
    min-width: 260px;
    padding: .32rem .55rem;
    margin-bottom: .25rem;
    background: #f2ede4;
    font-size: .78rem;
    font-weight: 700;
    color: #403b34;
}
.stage-pdf-row {
    display: grid;
    grid-template-columns: minmax(0, 392fr) minmax(150px, 139fr);
    gap: 12px;
    align-items: start;
}
.stage-editor {
    min-height: 0 !important;
    aspect-ratio: 392 / 143 !important;
    border: 2px solid #343a40;
    background: #fdfcf9;
}
.stage-object {
    width: 64px;
    min-height: 54px;
}
.stage-object-visual span { display: none !important; }
.stage-object img { width: 34px; height: 34px; }
.stage-object.is-selected .stage-object-visual { outline-offset: 4px; }
.stage-front-label {
    position:absolute;
    left:50%;
    bottom:.45rem;
    transform:translateX(-50%);
    z-index:1;
    font-size:.62rem;
    font-weight:700;
    color:#776f63;
    pointer-events:none;
}
.stage-audience-preview {
    text-align:center;
    padding-top:.3rem;
    line-height:1.05;
    font-size:.62rem;
    letter-spacing:.05em;
}
.stage-audience-people {
    font-size:.78rem;
    letter-spacing:.18em;
    color:#222;
    white-space:nowrap;
}
.stage-pdf-legend {
    min-height: 100%;
    padding: .55rem .55rem .45rem;
    background: #faf7f1;
    font-size: .72rem;
}
.stage-pdf-legend > strong {
    display:block;
    margin-bottom:.45rem;
    font-size:.78rem;
}
.stage-pdf-legend-list { display:flex; flex-direction:column; gap:.2rem; }
.stage-legend-item {
    display:grid;
    grid-template-columns: 18px 18px minmax(0,1fr);
    align-items:center;
    gap:.25rem;
    border:0;
    border-radius:0;
    padding:.06rem 0;
    background:transparent;
    font-size:.68rem;
    line-height:1.15;
}
.stage-legend-item img { width:16px; height:16px; object-fit:contain; }
.stage-legend-number {
    display:inline-flex;
    width:17px;
    height:17px;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:#1f1f1f;
    color:#fff;
    font-size:.58rem;
    font-weight:700;
}
@media (max-width: 991.98px) {
    .stage-pdf-row { grid-template-columns:1fr; }
    .stage-pdf-legend { min-height:auto; }
    .stage-pdf-legend-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:1rem; }
}
.stage-editor { container-type: inline-size; }
.stage-object { width:12cqw; min-height:10cqw; }
.stage-object img { width:5cqw; height:5cqw; min-width:24px; min-height:24px; max-width:52px; max-height:52px; }
.stage-object-visual { position:relative; }
.stage-object-visual .stage-object-label { display:none !important; }
.stage-object-number {
    position:absolute;
    right:calc(50% - 3.1cqw);
    top:calc(50% - 3.1cqw);
    display:flex;
    align-items:center;
    justify-content:center;
    width:18px;
    height:18px;
    border-radius:50%;
    background:#1d1d1d;
    color:#fff;
    font-size:.62rem;
    font-weight:700;
    line-height:1;
    box-shadow:0 0 0 2px rgba(255,255,255,.95);
    pointer-events:none;
}

/* WTL V11 — technical sheet wizard inside prospection modal */
.technical-wizard-modal { max-width:min(1500px,calc(100vw - 32px)); }
.technical-wizard-modal .modal-content { max-height:calc(100vh - 32px); }
.technical-wizard-body { overflow-y:auto; min-height:560px; }
.technical-modal-progress { display:grid; grid-template-columns:repeat(6,1fr); gap:.35rem; }
.technical-modal-progress-step { position:relative; display:flex; flex-direction:column; align-items:center; gap:.25rem; color:#91979d; font-size:.72rem; text-align:center; }
.technical-modal-progress-step::before { content:''; position:absolute; left:-50%; right:50%; top:15px; height:2px; background:#e2e5e8; z-index:0; }
.technical-modal-progress-step:first-child::before { display:none; }
.technical-modal-progress-step > span { position:relative; z-index:1; display:flex; align-items:center; justify-content:center; width:30px; height:30px; border-radius:50%; background:#e9ecef; color:#6c757d; font-weight:700; }
.technical-modal-progress-step.active { color:#1e2327; font-weight:600; }
.technical-modal-progress-step.active::before { background:#bd995d; }
.technical-modal-progress-step.active > span { background:#bd995d; color:#171717; }
.technical-local-stage-editor { transition:opacity .15s ease; }
.technical-local-stage-editor .stage-pdf-preview { max-width:none; }
.technical-local-stage-editor .stage-pdf-row { grid-template-columns:minmax(0,392fr) minmax(170px,139fr); }
.technical-local-stage-editor .stage-palette { max-height:520px; overflow:auto; }
.technical-wizard-modal .tech-section-choice { min-height:56px; }
@media (max-width:991.98px) {
    .technical-wizard-modal { max-width:calc(100vw - 16px); margin:.5rem auto; }
    .technical-wizard-modal .modal-content { max-height:calc(100vh - 16px); }
    .technical-modal-progress { grid-template-columns:repeat(3,1fr); row-gap:.75rem; }
    .technical-modal-progress-step::before { display:none; }
}

.project-color-dot{display:inline-block;width:18px;height:18px;border-radius:5px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.22);flex:0 0 auto}
.project-color-dot-sm{width:11px;height:11px;border-radius:3px}
.project-context-card{border:1px solid rgba(255,255,255,.12);border-left:4px solid var(--project-primary);border-radius:.6rem;padding:.8rem;background:rgba(255,255,255,.04)}
.project-page-context{display:flex;align-items:center;gap:.5rem;border-left:4px solid;padding:.55rem .8rem;background:#fff;border-radius:.4rem;box-shadow:0 1px 3px rgba(0,0,0,.05)}

/* WTL V14.2 — repérage visuel du projet actif dans le back-office */
.admin-sidebar[style*="--project-primary"] .nav-link.active {
    background: color-mix(in srgb, var(--project-primary) 38%, #212529);
    color: #fff !important;
    box-shadow: inset 4px 0 0 var(--project-secondary);
}
.admin-sidebar[style*="--project-primary"] .nav-link.active i { color: var(--project-secondary); }
.admin-sidebar[style*="--project-primary"] .nav-link:hover:not(.active) {
    background: color-mix(in srgb, var(--project-primary) 13%, transparent);
}
.admin-sidebar[style*="--project-primary"] .project-context-card {
    border-left-color: var(--project-primary);
    border-bottom-color: color-mix(in srgb, var(--project-secondary) 45%, rgba(255,255,255,.12));
}
.admin-sidebar[style*="--project-primary"] .text-uppercase.text-secondary {
    color: color-mix(in srgb, var(--project-secondary) 60%, #adb5bd) !important;
}

/* WTL V14.2.1 — sélecteur de projet : garder nom + statut dans le menu */
.project-switch-menu {
    min-width: 100%;
    width: max-content;
    max-width: min(320px, calc(100vw - 2rem));
}
.project-switch-item {
    min-width: 0;
    gap: 0;
}
.project-switch-name {
    min-width: 0;
    flex: 1 1 auto;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.project-switch-item .badge {
    max-width: 88px;
}
