/* Septodont · Saint-Maur-des-Fossés. Couleurs issues du site client existant. */
:root {
  --septodont-red:#e31e24;
  --septodont-deep:#b91c22;
  --ink:#26262b;
  --muted:#76717b;
  --blue:#c71f28;
  --blue-pale:#fff1f1;
  --paper:#f6f5f4;
  --surface:#fff;
  --raised:#f0eded;
  --line:#e9e5e4;
  --date-left:#c71f28;
  --date-right:#665c72;
}
.sidebar,body[data-page="admin"] .side{background:#24242a}
.brand-logo{max-width:100%;height:auto}
.sidebar-section-title{color:#c2b9be;letter-spacing:1.9px}
.main-nav{gap:7px}
.nav-item{border-radius:8px;color:#c3bec7;transition:background .18s,color .18s}
.nav-item.active,.nav-item.active:hover{background:var(--septodont-red);color:#fff;box-shadow:0 5px 14px #120b0b22}
.nav-item:hover{background:#38343c;color:#fff}
.nav-count{background:#ffffff18;color:#fff}
.sidebar-tv{border-color:#484049}
.sidebar-tv>.icon,.sidebar-tv button{color:#e2d6da}
.topbar{position:relative;min-height:96px;height:auto;padding-top:16px;padding-bottom:16px;background:#fff}
.topbar::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--septodont-red)}
.client-header{gap:18px;min-width:0}
.client-header>img{width:57px;height:57px;object-fit:contain;padding:0;border:0;border-radius:0;background:transparent;flex-shrink:0}
.client-header>div{border-left:1px solid var(--line);padding-left:18px}
.project-kicker{font-size:8px;letter-spacing:1.7px;text-transform:uppercase;font-weight:650;color:var(--septodont-deep);margin-bottom:1px}
.client-header h1{font-size:24px;font-weight:650;letter-spacing:-.8px;line-height:1.25}
.client-header>div>span{font-size:11px;color:var(--muted);max-width:none;margin-top:3px}
.topbar-actions{gap:9px}
.button-light{background:var(--surface);border-color:var(--line)}
.button-light:hover{background:var(--raised)}
.button-primary{background:var(--septodont-red);border-color:var(--septodont-red)}
.button-primary:hover{background:var(--septodont-deep)}
.button,button,input,select{outline-color:var(--septodont-red)}
.timeline-card,.camera-card,.comparison-card,.inline-passage,.media-entry,.media-card,.shooting-file{border-color:var(--line);border-radius:12px;box-shadow:0 3px 16px #25203004}
.timeline-card{background:var(--surface)}
.timeline-title h2{font-size:19px;letter-spacing:-.6px}
.timeline-title .quiet-badge{background:#f2eeed;color:#77717b}
.timeline-rule{background:#e2dcdc}
.timeline-progress{background:#e87579}
.timeline-track #timeline-slider{accent-color:var(--septodont-red)}
.timeline-track #timeline-slider::-webkit-slider-thumb{background:var(--septodont-red);box-shadow:0 0 0 1px #efb0b3}
.timeline-track #timeline-slider::-moz-range-thumb{background:var(--septodont-red)}
.timeline-date-tick.is-selected{color:var(--septodont-deep);background:#fff0f0;border-color:#edc5c7}
.camera-card-header{padding:16px 20px;min-height:64px}
.camera-title strong{font-size:16px;letter-spacing:-.25px}
.camera-number{border-color:#f3d5d7;background:#fff3f3;color:var(--septodont-deep);font-weight:650}
.camera-card-footer{background:var(--surface)}
.camera-player{background:#2c2930}
.camera-player .daylight-rail{background:#504a52}
.camera-player .daylight-bubble{background:#fff1ec;color:#3a2830;border-color:#f8d4cb}
.camera-player .player-noon .icon{color:#ffd9a3}
.player-day-navigation>button:focus-visible,.player-hour-navigation>button:focus-visible,.player-noon:focus-visible{outline-color:#ffb5b8}
.camera-player .player-scrubber input[type=range]::-webkit-slider-thumb{border-color:#2c2930}
.camera-player .player-scrubber input[type=range]::-moz-range-thumb{border-color:#2c2930}
.camera-pan-stage .camera-zoom-tools>.camera-quality[aria-pressed="true"],.quality-switch[aria-pressed="true"]{background:var(--septodont-red);border-color:var(--septodont-red);color:#fff}
.comparison-footer{background:var(--surface)}
.segmented{background:var(--raised)}
.segmented button.selected{color:var(--septodont-deep)}
.media-sort-menu button[aria-pressed="true"]{color:var(--septodont-deep);background:var(--blue-pale)}
.tv-view{background:#18171c}
.tv-view>header{border-color:#484049}
.tv-view>header h1{color:#fff}
body[data-page="admin"] .boitier-nav button.active{background:#653239;border-color:#95404a;color:#fff}
body[data-page="admin"] .side-footer{border-color:#4b414b}
body[data-page="admin"] .version{color:#9d1e28;background:#fff3f3;border-color:#f1d6d8}
body[data-page="admin"] .photo-preview{background:#222129}
body[data-page="admin"] .btn{background:var(--surface)}
:root[data-theme="dark"]{
  --ink:#f0ebef;--muted:#b4aab5;--paper:#17161c;--surface:#242129;
  --raised:#322d37;--line:#443b47;--blue:#ff9fa7;--blue-pale:#4a2831;
  --date-left:#ff979e;--date-right:#c3a4e6;color-scheme:dark;
}
[data-theme="dark"] .sidebar{background:#1e1b23}
[data-theme="dark"] .topbar{background:var(--surface)}
[data-theme="dark"] .project-kicker{color:#ffa3a8}
[data-theme="dark"] .client-header>img{background:#fff;border-radius:50%}
[data-theme="dark"] .camera-number{background:#492a34;border-color:#75404a;color:#ffc2c5}
[data-theme="dark"] .timeline-title .quiet-badge{background:var(--raised);color:var(--muted)}
[data-theme="dark"] .timeline-rule{background:#51454f}
[data-theme="dark"] .timeline-date-tick.is-selected{background:#4f2934;color:#ffb9bf;border-color:#8d4e5a}
[data-theme="dark"] .segmented button.selected{color:#ffd3d6;background:#5b3240}
@media(max-width:1050px){
  .topbar{padding-left:24px;padding-right:24px}
  .client-header h1{font-size:22px}
  .prototype-label{display:none}
  .topbar-actions{gap:6px}
}
@media(max-width:650px){
  .topbar{padding:16px 16px 13px;gap:14px;min-height:0}
  .client-header{gap:12px;flex:1 1 100%}
  .client-header>img{width:46px;height:46px}
  .client-header>div{padding-left:12px}
  .client-header h1{font-size:21px}
  .client-header>div>span{font-size:10px}
  .project-kicker{font-size:7px}
  .topbar-actions{width:100%;justify-content:flex-end}
  .timeline-title h2{font-size:17px}
  .camera-card-header{padding:13px 14px}
  .camera-title strong{font-size:15px}
  body[data-page="admin"] .topbar{padding:16px 18px}
}
@media(prefers-reduced-motion:reduce){.nav-item{transition:none}}

/* v2 mobile : le panorama possède le geste à deux doigts dès le premier contact.
   Le lecteur conserve le défilement de page à un doigt tant que le zoom est à 100 %. */
.camera-pan-stage,.camera-pan-stage.is-zoomed,#photo-stage{touch-action:none}
.camera-pan-stage img,#photo-stage img{-webkit-user-select:none;-webkit-touch-callout:none}
.camera-touch-help{display:none}
@media(hover:none) and (pointer:coarse){
  #tv-top-button,.sidebar-tv{display:none}
  .camera-touch-help{display:inline}
  .camera-desktop-help{display:none}
}
@media(max-width:650px){
  #tv-top-button,.sidebar-tv{display:none}
  .camera-touch-help{display:inline}
  .camera-desktop-help{display:none}
  /* Deux lignes de commandes tactiles, puis la frise horaire sans le doublon
     de l'heure en bulle. Le menu Heure affiche déjà la capture sélectionnée. */
  .camera-player{display:grid;grid-template-columns:40px minmax(0,1fr) 40px;gap:3px 6px;padding:6px 10px}
  .camera-player .player-date-time,.camera-player .player-scrubber,.camera-player .player-hour-navigation{display:contents}
  .camera-player .player-day-navigation{grid-column:1/-1;grid-row:1;gap:2px;justify-content:space-between}
  .camera-player .player-long-date{font-size:12px;padding:3px 0;line-height:1.2;white-space:nowrap;gap:6px}
  .camera-player .player-long-date>.icon{width:13px;height:13px}
  .camera-player .player-day-navigation>button,.camera-player .player-hour-navigation>button{width:40px;height:40px;margin:0;border-color:transparent;background:transparent;padding:8px}
  .camera-player .player-hour-tools{grid-column:2;grid-row:2;justify-content:center;gap:12px;min-width:0}
  .camera-player .player-hour-choice{gap:5px}
  .camera-player .player-hour-choice select{min-width:75px;width:78px;height:36px;font-size:14px;padding:4px 6px}
  .camera-player .player-noon{width:36px;height:36px;padding:7px}
  .camera-player .player-noon>span{display:none}
  .camera-player .player-hour-navigation>[data-photo-nav="previous"]{grid-column:1;grid-row:2}
  .camera-player .player-hour-navigation>[data-photo-nav="next"]{grid-column:3;grid-row:2}
  .camera-player .daylight-heading,.camera-player .daylight-bubble{display:none}
  .camera-player .player-hour-navigation>.daylight-control{grid-column:1/-1;grid-row:3;height:38px;margin:0;min-width:0}
  .camera-player .daylight-rail{top:10px;height:4px}
  .camera-player .daylight-ticks{top:22px;height:16px}
  .camera-player .daylight-ticks button{font-size:9px;padding:2px 0}
  .camera-player .daylight-empty{grid-column:1/-1;font-size:9px;margin:0 0 3px}
  .camera-card-header{padding:9px 12px;min-height:0;row-gap:5px}
  .camera-card-footer{padding:4px 10px;font-size:9px;justify-content:space-between}
  .camera-card-footer .camera-fullscreen{min-height:36px;padding:7px 5px;font-size:11px}
  .camera-pan-stage .camera-zoom-tools{padding:2px;gap:1px}
  .camera-pan-stage .camera-zoom-tools>button{width:32px;height:32px}
  .camera-pan-stage .camera-zoom-tools output{min-width:40px;font-size:10px}
  /* La visionneuse se déploie jusqu'aux bords, sans hauteur figée du bandeau. */
  .photo-dialog{display:flex;flex-direction:column;max-width:none;max-height:none;margin:0;inset:0}
  .photo-dialog:not([open]){display:none}
  .photo-dialog-header{height:auto;flex:none;padding:9px 12px;gap:7px}
  .photo-tools{gap:3px}
  .photo-tools .icon-button{width:36px;height:36px}
  .photo-stage{flex:1;min-height:0;height:auto}
  .photo-dialog-footer{flex:none;height:28px;font-size:10px}
}
@media(max-width:360px){
  .camera-player{column-gap:3px;padding-inline:6px}
  .camera-player .player-long-date{font-size:11px;gap:3px}
  .camera-player .player-long-date>.icon{display:none}
  .camera-player .player-hour-tools{gap:7px}
}
@media(max-width:650px){
  .camera-card-footer .camera-touch-help{display:none}
  .camera-card-footer .camera-zoom-tools{margin:0;background:transparent;border:0;box-shadow:none;padding:0;gap:2px;color:var(--ink)}
  .camera-card-footer .camera-zoom-tools>button{width:34px;height:36px}
  .camera-card-footer .camera-zoom-tools output{font-size:11px;min-width:42px}
  .camera-card-footer .camera-zoom-tools>.camera-quality{width:39px;border:1px solid var(--line);font-weight:650;font-size:11px}
  .camera-card-footer .camera-zoom-tools>.camera-quality[aria-pressed="true"]{background:var(--septodont-red);color:#fff;border-color:var(--septodont-red)}
  .camera-card-footer .camera-zoom-tools>button:hover{background:var(--raised)}
}
@media(max-width:360px){
  .main-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;width:100%}
  .main-nav .nav-item{width:100%;min-height:40px;font-size:11px;gap:7px}
  .main-nav .nav-item .icon{width:15px;height:15px}
}
@media(min-width:361px) and (max-width:650px){
  .main-nav .nav-item{font-size:11px;min-height:40px;gap:0}
  .main-nav .nav-item>.icon{display:none}
}
