/* LogiMission V3.0.2 — Habillage immersif d'après les 3 références validées.
   CSS seulement, plus un affichage compact des tickets sur le tableau de bord.
   Ne change ni les données ni les permissions, et conserve le portail public unique. */
:root[data-theme]{--iv-ink:var(--v3-text);--iv-sub:var(--v3-muted);--iv-stroke:var(--v3-border);--iv-light:var(--v3-accent)}
:root[data-theme="neo"]{--v3-bg:#020b26;--v3-panel:#061b47;--v3-soft:#092653;--v3-sidebar:#04132f;--v3-sidebarEnd:#051c48;--v3-border:#235dcc;--v3-accent:#48dfff;--v3-contrast:#c656ff;--v3-nav:#7150fa;--v3-glow:#267cff77;--iv-panel-grad:linear-gradient(143deg,#0d3571 0%,#0a2352 42%,#0a1541 100%);--iv-muted-shadow:#1aa3ff44;--iv-head-glow:#24abff8e}
:root[data-theme="foret"]{--v3-bg:#04170e;--v3-panel:#071f17;--v3-soft:#0d3021;--v3-sidebar:#03190e;--v3-sidebarEnd:#05281b;--v3-border:#326b46;--v3-accent:#a4e27b;--v3-contrast:#d7efad;--v3-nav:#7bc24c;--v3-glow:#71a94b55;--iv-panel-grad:linear-gradient(136deg,#103a25,#092618 55%,#071b13);--iv-muted-shadow:#5ea44822;--iv-head-glow:#b2f6844a}
:root[data-theme="noel"]{--v3-bg:#0b101c;--v3-panel:#211520;--v3-soft:#2a1c27;--v3-sidebar:#160e18;--v3-sidebarEnd:#260f1a;--v3-border:#934557;--v3-accent:#f9d8aa;--v3-contrast:#fff2d9;--v3-nav:#b62242;--v3-glow:#b9355272;--iv-panel-grad:linear-gradient(145deg,#43202c 0%,#241725 42%,#10182b 100%);--iv-muted-shadow:#ed8b8430;--iv-head-glow:#fbdba163}
:root[data-theme="clair"]{--iv-panel-grad:linear-gradient(145deg,#fffdf6,#f7f0e2);--iv-muted-shadow:#2d533d24;--iv-head-glow:#e1d6a9}
:root[data-theme] body{font-size:14px}
:root[data-theme] .app{grid-template-columns:252px minmax(0,1fr);grid-template-rows:136px minmax(0,1fr);min-width:0;background:var(--v3-bg);isolation:isolate}
:root[data-theme] .v3-masthead{min-height:136px;height:136px;gap:19px;padding:12px 24px;border-bottom:0;overflow:hidden;box-shadow:0 8px 35px #0006;background:linear-gradient(110deg,var(--v3-mast) 0%,var(--v3-mast) 28%,#111c37 82%,#081124 100%)}
:root[data-theme="foret"] .v3-masthead{background:linear-gradient(115deg,#031d0e 0%,#072e1c 48%,#0e3823 85%,#052012)}
:root[data-theme="noel"] .v3-masthead{background:linear-gradient(115deg,#0c1423 0%,#121323 50%,#131d30 100%)}
:root[data-theme="neo"] .v3-masthead{background:linear-gradient(110deg,#021537 0%,#072456 49%,#061a4b 80%,#061033)}
:root[data-theme] .v3-masthead::after{content:"";position:absolute;inset:auto 0 0;display:block;width:100%;height:42px;border:0;box-shadow:none;transform:none;background:url('./assets/v302-neo-wave.svg') center bottom/100% 100% no-repeat;opacity:.65;pointer-events:none;z-index:1;border-radius:0}
:root[data-theme="foret"] .v3-masthead::after{background:linear-gradient(transparent 75%,#061b13),url('./assets/v302-foret-canopy.svg') center bottom/100% 130px no-repeat;opacity:.42}
:root[data-theme="noel"] .v3-masthead::after{background:url('./assets/v302-noel-snow.svg') center bottom/100% 100% no-repeat;opacity:1}
:root[data-theme="clair"] .v3-masthead::after{background:linear-gradient(90deg,#9cbf7444,#f6f4d6,#9cbf7444);height:5px;opacity:.9}
:root[data-theme] .v3-masthead::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;display:block;opacity:.62}
:root[data-theme="noel"] .v3-masthead::before{background:url('./assets/v302-noel-garland.svg') top center/100% 110px no-repeat;opacity:.92}
:root[data-theme="foret"] .v3-masthead::before{background:url('./assets/v302-foret-canopy.svg') top center/100% 135px no-repeat;opacity:.8}
:root[data-theme="neo"] .v3-masthead::before{background:radial-gradient(ellipse at 50% 5%,#1599ff44,transparent 64%);opacity:1}
:root[data-theme] .v3-masthead>*{position:relative;z-index:2}
:root[data-theme] .v3-municipality{flex:0 0 280px;min-height:76px;border-right:1px solid #ffffff6b;gap:13px;padding-right:18px}
:root[data-theme] .v3-municipality img{width:70px;height:71px;object-fit:contain;filter:drop-shadow(0 3px 4px #0004)}
:root[data-theme] .v3-municipality strong{font-size:17px;line-height:1.1}
:root[data-theme] .v3-municipality span{font-size:9px;letter-spacing:3.1px}
:root[data-theme] .v3-mast-brand{flex:0 0 315px;gap:11px}
:root[data-theme] .v3-mast-brand img{width:49px;height:49px}
:root[data-theme] .v3-mast-brand strong{font-size:31px;text-shadow:0 2px 10px #0006}
:root[data-theme] .v3-mast-brand em{font-size:17px;box-shadow:inset 0 1px 1px #fff5,0 3px 12px var(--v3-glow)}
:root[data-theme="neo"] .v3-mast-brand em{background:linear-gradient(100deg,#027ef6,#9c26f4)}
:root[data-theme="noel"] .v3-mast-brand em{background:linear-gradient(100deg,#b42035,#f34a40)}
:root[data-theme="foret"] .v3-mast-brand em{background:#c5e7a0;color:#143e1d}
:root[data-theme] .v3-mast-brand small{font-size:8px;letter-spacing:1.2px;color:#e3f2ff;margin-top:8px}
:root[data-theme] .v3-mast-photo{align-self:stretch;flex:1 1 auto;min-width:175px;margin:-10px -20px -10px -10px;mask-image:linear-gradient(90deg,transparent,#000 10%,#000 86%,transparent);background:linear-gradient(90deg,var(--v3-mast) 0%,transparent 22%,transparent 78%,var(--v3-mast) 100%),url('./assets/mairie-facade-originale.jpg') center 60%/cover no-repeat;filter:saturate(1.12) contrast(1.08)}
:root[data-theme="noel"] .v3-mast-photo{filter:saturate(.87) hue-rotate(-7deg) contrast(1.07)}
:root[data-theme="neo"] .v3-mast-photo{filter:saturate(1.35) contrast(1.1)}
:root[data-theme] .v3-mast-user{font-size:11px;align-self:flex-start;padding-top:10px}
:root[data-theme] .sidebar{min-height:calc(100dvh - 136px);padding:16px 12px 26px;border-right:1px solid var(--v3-border);position:relative;overflow:hidden;isolation:isolate;z-index:1;box-shadow:inset -14px 0 24px #0003}
:root[data-theme] .sidebar:before{content:"";position:absolute;inset:0;pointer-events:none;z-index:-1;opacity:.55;background:linear-gradient(180deg,transparent 60%,var(--iv-muted-shadow))}
:root[data-theme="noel"] .sidebar:before{background:linear-gradient(180deg,transparent 35%,#40202a82 100%),url('./assets/v302-noel-garland.svg') 0 0/auto 88px repeat-x;opacity:.7}
:root[data-theme="foret"] .sidebar:before{background:url('./assets/v302-foret-canopy.svg') left bottom/auto 230px no-repeat;opacity:.48}
:root[data-theme="neo"] .sidebar:before{background:linear-gradient(165deg,#164c9730,transparent 45%,#8537d737 100%)}
:root[data-theme] .sidebar .nav-section{position:relative;z-index:1}
:root[data-theme] .nav-section summary{color:#d8e6f1;font-size:12px;font-weight:850;letter-spacing:1px;text-transform:uppercase;border-bottom:1px solid #ffffff18;border-radius:0;padding:14px 12px 12px}
:root[data-theme="clair"] .nav-section summary{color:#d5e4d0}
:root[data-theme] .nav-section .nav-btn{font-size:12px;min-height:46px;padding:12px 10px;font-weight:730;border-radius:11px;margin:5px 0}
:root[data-theme] .nav-btn.active{box-shadow:0 5px 18px var(--v3-glow),inset 0 1px 1px #ffffff85;border:1px solid #ffffff66}
:root[data-theme="neo"] .nav-btn.active{background:linear-gradient(110deg,#00bdfc,#7539ed)}
:root[data-theme="foret"] .nav-btn.active{background:linear-gradient(110deg,#a9e581,#689f4d);color:#0b2513}
:root[data-theme="noel"] .nav-btn.active{background:linear-gradient(110deg,#b61c31,#ed3749)}
:root[data-theme] .sidebar-bottom{z-index:2;position:relative;background:color-mix(in srgb,var(--v3-sidebar) 68%,transparent);backdrop-filter:blur(6px);font-size:10px}
:root[data-theme="noel"] .sidebar::after{content:"";position:absolute;left:1px;bottom:105px;width:235px;height:188px;display:block;background:url('./assets/deco-noel-chalet.png') left bottom/contain no-repeat;pointer-events:none;opacity:.96;margin:0}
:root[data-theme="foret"] .sidebar::after{content:"";position:absolute;left:14px;bottom:93px;width:220px;height:150px;display:block;background:url('./assets/deco-foret-chene.png') center bottom/contain no-repeat;pointer-events:none;opacity:.92;margin:0}
:root[data-theme="neo"] .sidebar::after{content:"";position:absolute;left:0;right:0;bottom:120px;height:85px;background:url('./assets/v302-neo-wave.svg') center center/auto 100% no-repeat;filter:drop-shadow(0 2px 10px #02cfff9e);pointer-events:none;opacity:.6}
:root[data-theme] .main{padding:22px 24px 70px;min-width:0;position:relative;background:var(--v3-bg)}
:root[data-theme="neo"] .main{background:radial-gradient(ellipse 58% 42% at 100% 20%,#242c9a38,transparent),linear-gradient(130deg,#030d26,#020a1e 66%,#07133a)}
:root[data-theme="foret"] .main{background:radial-gradient(ellipse 65% 40% at 88% 15%,#1e5c3235,transparent),linear-gradient(120deg,#071a11,#03150e)}
:root[data-theme="noel"] .main{background:radial-gradient(ellipse 50% 35% at 88% 9%,#61253e42,transparent),linear-gradient(125deg,#16101d,#080f1e 68%,#190d1c)}
:root[data-theme] .topbar{margin-bottom:15px;gap:14px;align-items:center}
:root[data-theme] .heading{font-size:34px;font-weight:850;letter-spacing:-1.05px;line-height:1.1}
:root[data-theme] .topbar .eyebrow{display:none}
:root[data-theme] .subheading{font-size:13px;margin-top:6px;color:var(--v3-muted)}
:root[data-theme] .v302-current-date{font-size:11px;font-weight:750;white-space:nowrap;display:inline-flex;align-items:center;border-radius:30px;padding:10px 13px;color:var(--v3-text);border:1px solid var(--v3-border);background:var(--v3-soft)}
:root[data-theme] .role-pill{font-size:11px;padding:11px 13px}
:root[data-theme] .notice.demo{padding:8px 12px;font-size:10px;color:var(--v3-muted);background:var(--v3-soft);border-color:var(--v3-border);margin-bottom:10px!important}
:root[data-theme] .card{border-radius:15px;background:var(--iv-panel-grad);border-color:var(--v3-border);box-shadow:0 6px 22px #0006,inset 0 1px 1px #ffffff14;position:relative;isolation:isolate;overflow:hidden}
:root[data-theme] .card.pad{padding:17px 17px 16px}
:root[data-theme] .card-head{border:0;padding:0 0 10px;margin-bottom:9px;flex-wrap:nowrap}
:root[data-theme] .card-title{font-size:17px;font-weight:850;letter-spacing:-.4px}
:root[data-theme] .metric{min-height:91px;padding:14px 16px;gap:13px;border-width:1.5px;border-bottom-width:2px;flex-direction:row}
:root[data-theme] .metric>div{display:flex;flex-direction:column-reverse;align-items:flex-start;justify-content:center;gap:6px}
:root[data-theme] .metric-value{font-size:32px;letter-spacing:-1px;line-height:1;font-variant-numeric:tabular-nums}
:root[data-theme] .metric-label{font-size:10px;line-height:1.25;margin:0;color:var(--v3-text);opacity:.94}
:root[data-theme] .metric-icon{flex:none;width:49px;height:51px;font-size:26px;background:#ffffff1b;border-radius:12px;box-shadow:inset 0 1px #ffffff2b}
:root[data-theme="neo"] .v3-board-metrics .metric:nth-child(1){background:linear-gradient(115deg,#3a1b9d,#112653);border-color:#9157ff;box-shadow:0 2px 21px #833afa80}
:root[data-theme="neo"] .v3-board-metrics .metric:nth-child(2){background:linear-gradient(115deg,#0668b9,#09306b);border-color:#25bcfc;box-shadow:0 2px 21px #04ccff55}
:root[data-theme="neo"] .v3-board-metrics .metric:nth-child(3){background:linear-gradient(115deg,#0e7b78,#0b3e69);border-color:#2bcda4;box-shadow:0 2px 21px #04d7b455}
:root[data-theme="neo"] .v3-board-metrics .metric:nth-child(4){background:linear-gradient(115deg,#863790,#202b77);border-color:#d177fc;box-shadow:0 2px 21px #b53aff55}
:root[data-theme="foret"] .v3-board-metrics .metric:nth-child(1){background:linear-gradient(112deg,#235a2a,#103922);border-color:#79bb59}
:root[data-theme="foret"] .v3-board-metrics .metric:nth-child(2){background:linear-gradient(112deg,#203d2c,#102a20);border-color:#527c57}
:root[data-theme="foret"] .v3-board-metrics .metric:nth-child(3){background:linear-gradient(112deg,#214e32,#0f2f20);border-color:#568958}
:root[data-theme="foret"] .v3-board-metrics .metric:nth-child(4){background:linear-gradient(112deg,#283b28,#13291f);border-color:#82985c}
:root[data-theme="noel"] .v3-board-metrics .metric:nth-child(1){background:linear-gradient(120deg,#a82237,#56162b);border-color:#f36b7b;box-shadow:0 4px 25px #ef3e5060}
:root[data-theme="noel"] .v3-board-metrics .metric:nth-child(2){background:linear-gradient(120deg,#8b5518,#34241f);border-color:#dfa354}
:root[data-theme="noel"] .v3-board-metrics .metric:nth-child(3){background:linear-gradient(120deg,#155a3c,#102b2a);border-color:#5baf75}
:root[data-theme="noel"] .v3-board-metrics .metric:nth-child(4){background:linear-gradient(120deg,#1a4579,#171f46);border-color:#6da4f5}
.v3-dashboard{gap:15px}
.v3-board-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}
.v3-dashboard-grid{grid-template-columns:minmax(0,1.18fr) minmax(0,.94fr);grid-template-areas:'day requests' 'quick requests' 'stock vehicles' 'forecast forecast';align-items:start;grid-auto-rows:max-content;gap:15px}
:root[data-theme="noel"] .v3-dashboard-grid{grid-template-areas:'forecast requests' 'day requests' 'quick requests' 'stock vehicles'}
:root[data-theme="noel"] .v3-forecast-widget{min-height:214px}
:root[data-theme="neo"] .v3-dashboard-grid{grid-template-areas:'day requests' 'quick requests' 'forecast vehicles' 'stock vehicles'}
:root[data-theme] .v3-public-widget{align-self:stretch;min-height:300px}
:root[data-theme="foret"] .v3-public-widget{min-height:330px}
:root[data-theme="noel"] .v3-public-widget{min-height:310px}
:root[data-theme] .v3-day-widget,.v3-quick-widget,.v3-public-widget,.v3-stock-widget,.v3-vehicle-widget{min-width:0}
:root[data-theme] .v3-day-widget .ticket-list{gap:7px}
/* Only cards shown on the dashboard use the compact layout; the full ticket page keeps all buttons. */
:root[data-theme] .ticket.v3-compact-ticket{grid-template-columns:69px minmax(0,1fr) auto;min-width:0;align-items:center;padding:10px 11px;gap:12px;min-height:75px;overflow:visible;border-radius:10px}
:root[data-theme] .ticket.v3-compact-ticket>div{min-width:0}
:root[data-theme] .ticket.v3-compact-ticket .ticket-code{font-size:10px;padding:8px 4px;border-radius:8px}
:root[data-theme] .ticket.v3-compact-ticket .ticket-name{font-size:12px;line-height:1.25;margin:0 0 4px;overflow-wrap:normal}
:root[data-theme] .ticket.v3-compact-ticket .ticket-desc{font-size:10px;line-height:1.25;gap:4px;display:flex;align-items:center;flex-wrap:wrap}
:root[data-theme] .ticket.v3-compact-ticket .ticket-desc>span{gap:3px}
:root[data-theme] .ticket.v3-compact-ticket .ticket-actions{display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:5px;min-width:86px}
:root[data-theme] .ticket.v3-compact-ticket .ticket-actions .btn{min-width:0;min-height:29px;max-width:128px;font-size:9px;padding:6px 8px;white-space:normal;line-height:1.2}
:root[data-theme] .ticket.v3-compact-ticket .pill{font-size:9px;padding:5px 8px;text-align:center}
:root[data-theme] .ticket.v3-compact-ticket .v25-participants,
:root[data-theme] .ticket.v3-compact-ticket .ticket-actors{font-size:10px;line-height:1.25;color:var(--v3-muted)}
:root[data-theme] .ticket.v3-compact-ticket .contact-info-btn{font-size:10px;padding:3px 6px;min-height:22px;border-radius:6px}
:root[data-theme] .v3-day-widget .ticket.urgent{border-left-color:#f3345a!important}
:root[data-theme] .v3-day-widget .ticket.v27-ticket-claimed{border-left-color:#f1a232!important}
:root[data-theme] .v3-quick-buttons{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
:root[data-theme] .v3-quick{min-height:87px;font-size:10px;border-radius:11px;font-weight:720;line-height:1.18;padding:9px 5px;background:linear-gradient(150deg,var(--v3-soft),var(--v3-panel));box-shadow:inset 0 1px #ffffff21}
:root[data-theme] .v3-quick b{font-size:28px;line-height:1.1}
:root[data-theme="neo"] .v3-quick{border:1px solid #3c75db;box-shadow:0 0 7px #195ac166,inset 0 1px #ffffff36}
:root[data-theme="neo"] .v3-quick:nth-child(2n){background:linear-gradient(140deg,#4325a1,#17266a);border-color:#9442ff}
:root[data-theme="neo"] .v3-quick:nth-child(3n){background:linear-gradient(140deg,#0878b5,#123775);border-color:#02c3ff}
:root[data-theme="foret"] .v3-quick:first-child{background:linear-gradient(145deg,#b3e28a,#8bcc5b);color:#102719}
:root[data-theme="noel"] .v3-quick:first-child{background:linear-gradient(145deg,#a41e31,#6c172b);border-color:#f16a80;box-shadow:0 0 15px #f64b533b}
:root[data-theme] .v3-public-widget .v3-tabs{gap:5px;margin:4px 0 14px}
:root[data-theme] .v3-public-widget .v3-tabs span{flex:1;text-align:center;padding:10px 7px;border-radius:9px;font-size:10px;color:var(--v3-text)}
:root[data-theme] .v3-request-list{gap:8px}
:root[data-theme] .v3-request-item{padding:10px 11px;min-height:59px;background:linear-gradient(90deg,var(--v3-soft),var(--v3-panel));border-radius:10px;box-shadow:inset 0 1px #ffffff12}
:root[data-theme] .v3-request-symbol{font-size:19px}
:root[data-theme] .v3-request-name{font-size:11px}
:root[data-theme] .v3-request-name small{font-size:10px}
:root[data-theme] .v3-all-requests{margin-top:11px;min-height:37px}
:root[data-theme] .v3-stock-summary{min-height:85px}
:root[data-theme] .v3-stock-circle{width:83px;height:83px;flex:0 0 83px!important;border-width:7px}
:root[data-theme] .v3-stock-circle b{font-size:24px}
:root[data-theme] .v3-stock-summary strong{font-size:22px}
:root[data-theme] .v3-forecast-widget .preview-graph{height:auto;max-height:214px}
:root[data-theme] .v3-forecast-widget .graph-caption{margin-top:0}
:root[data-theme] .v3-vehicle-widget .fleet-banner{min-height:75px}
:root[data-theme] .v3-day-widget .card-title,:root[data-theme] .v3-public-widget .card-title{font-size:18px}
/* Theme-specific decoration directly on real dashboard cards. */
:root[data-theme="noel"] .v3-dashboard .card:not(.metric)::before{content:"";display:block;position:absolute;top:-1px;left:0;right:0;height:20px;background:url('./assets/v302-noel-snow.svg') center top/100% 40px no-repeat;z-index:1;pointer-events:none;opacity:.88}
:root[data-theme="noel"] .v3-dashboard .card:not(.metric)::after{content:"❄";position:absolute;right:14px;bottom:11px;font-size:18px;color:#f5e7df82;pointer-events:none}
:root[data-theme="noel"] .v3-public-widget{background:linear-gradient(145deg,#382027,#1c1729 64%,#321827);}
:root[data-theme="noel"] .v3-public-widget:after{content:""!important;background:url('./assets/deco-noel-chalet.png') right bottom/95px auto no-repeat;right:7px;bottom:5px;width:118px;height:90px;opacity:.75}
:root[data-theme="noel"] .v3-tabs span.active{background:linear-gradient(115deg,#b81b36,#ed4a4b);color:#fff;border-color:#ed6671;box-shadow:0 0 13px #c6304875}
:root[data-theme="noel"] .v3-quick-widget{background:linear-gradient(140deg,#36212c,#161824)}
:root[data-theme="foret"] .v3-quick-widget:after{content:"";pointer-events:none;position:absolute;right:4px;top:0;width:115px;height:58px;background:url('./assets/v302-foret-canopy.svg') center center/auto 100% no-repeat;opacity:.55}
:root[data-theme="foret"] .v3-dashboard .card:not(.metric){background:linear-gradient(128deg,#0e3222,#082318 75%);box-shadow:inset 0 1px #9aca6945,0 7px 22px #0004}
:root[data-theme="foret"] .v3-tabs span.active{background:linear-gradient(95deg,#a9d87f,#5c9c4e);border-color:#c9e6aa;color:#102715;box-shadow:0 0 12px #8dc86738}
:root[data-theme="neo"] .v3-day-widget{box-shadow:0 0 21px #07b8ff57,inset 0 1px #fff2;border-color:#21bffc}
:root[data-theme="neo"] .v3-public-widget{box-shadow:0 0 24px #962ff95c,inset 0 1px #fff2;border-color:#7d4bff;background:linear-gradient(130deg,#0c2d67,#0a1c46 54%,#221050)}
:root[data-theme="neo"] .v3-quick-widget{box-shadow:0 0 17px #0fbfff55;border-color:#269cfa}
:root[data-theme="neo"] .v3-forecast-widget{box-shadow:0 0 15px #136fff40;border-color:#3e7fee}
:root[data-theme="neo"] .v3-tabs span.active{background:linear-gradient(100deg,#08bdfa,#803aed);color:#fff;border-color:#52c8ff;box-shadow:0 0 16px #119aff83}
:root[data-theme="neo"] .v3-dashboard .card-head .btn{box-shadow:0 0 9px #1f88f859}
:root[data-theme] .v3-dashboard .card-head .btn:hover,:root[data-theme] .v3-all-requests:hover{filter:brightness(1.1)}
:root[data-theme="noel"] .app:after{content:"";position:fixed;pointer-events:none;display:block;z-index:9;left:0;right:0;bottom:0;width:100%;height:41px;background:url('./assets/v302-noel-snow.svg') center bottom/100% 100% no-repeat;opacity:1}
:root[data-theme="neo"] .app:after{content:"";position:fixed;pointer-events:none;display:block;z-index:9;left:0;right:0;bottom:0;width:100%;height:53px;background:url('./assets/v302-neo-wave.svg') center bottom/100% 100% no-repeat;opacity:.9}
:root[data-theme="foret"] .app:after{content:"";position:fixed;pointer-events:none;display:block;z-index:9;left:0;right:0;bottom:0;width:100%;height:34px;background:linear-gradient(transparent,#0b301c);opacity:.65}
@media(max-width:1380px){
 :root[data-theme] .v3-municipality{flex-basis:238px}
 :root[data-theme] .v3-mast-brand{flex-basis:270px}
 :root[data-theme] .v3-mast-brand strong{font-size:27px}
 :root[data-theme] .v3-mast-user{display:none}
 .v3-dashboard-grid{grid-template-columns:minmax(0,1.12fr) minmax(0,.95fr)}
 :root[data-theme] .ticket.v3-compact-ticket{grid-template-columns:60px minmax(0,1fr);gap:8px}
 :root[data-theme] .ticket.v3-compact-ticket .ticket-actions{grid-column:1/-1;flex-direction:row;justify-content:flex-end;min-width:0}
}
@media(max-width:960px){
 :root[data-theme] .v3-mast-photo{display:block;flex:1;min-width:80px}
 :root[data-theme] .v3-mast-brand{flex:0 0 220px}
 :root[data-theme] .v3-municipality{flex:0 0 175px}
 :root[data-theme] .v3-municipality img{width:45px}
 :root[data-theme] .v3-municipality strong{font-size:12px}
 .v3-board-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
 :root[data-theme] .v3-dashboard-grid{grid-template-columns:minmax(0,1fr);grid-template-areas:'day' 'requests' 'quick' 'stock' 'vehicles' 'forecast'}
 :root[data-theme="noel"] .v3-dashboard-grid,:root[data-theme="neo"] .v3-dashboard-grid{grid-template-areas:'day' 'requests' 'quick' 'stock' 'vehicles' 'forecast'}
 :root[data-theme] .v3-public-widget{min-height:0}
}
@media(max-width:760px){
 :root[data-theme] .app{display:block;min-height:100dvh}
 :root[data-theme] .v3-masthead{height:87px;min-height:87px;padding:10px 13px;gap:9px;overflow:hidden}
 :root[data-theme] .v3-masthead::after{height:26px}
 :root[data-theme] .v3-masthead::before{background-size:auto 80px}
 :root[data-theme] .v3-municipality{flex:0 0 36%;max-width:36%;padding-right:6px;gap:5px;min-height:0}
 :root[data-theme] .v3-municipality img{width:33px;height:38px}
 :root[data-theme] .v3-municipality strong{font-size:9px;letter-spacing:-.2px}
 :root[data-theme] .v3-municipality span{font-size:5px;letter-spacing:1px}
 :root[data-theme] .v3-mast-brand{flex:1 1 auto;gap:5px;min-width:0}
 :root[data-theme] .v3-mast-brand img{width:26px;height:27px}
 :root[data-theme] .v3-mast-brand strong{font-size:16px}
 :root[data-theme] .v3-mast-brand em{font-size:9px;padding:3px 5px}
 :root[data-theme] .v3-mast-brand small,.v3-mast-photo,.v3-mast-user{display:none!important}
 :root[data-theme] .main{padding:16px 12px calc(108px + env(safe-area-inset-bottom));min-height:100dvh}
 :root[data-theme] .topbar{align-items:flex-start;flex-wrap:wrap}
 :root[data-theme] .heading{font-size:27px}
 :root[data-theme] .top-actions{gap:7px;flex-wrap:wrap}
 :root[data-theme] .v302-current-date{font-size:10px;padding:7px 10px}
 :root[data-theme] .notice.demo{margin-bottom:10px!important}
 .v3-board-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
 :root[data-theme] .metric{min-height:90px;padding:10px;gap:9px}
 :root[data-theme] .metric-icon{width:39px;height:43px;font-size:22px}
 :root[data-theme] .metric-label{font-size:9px}
 :root[data-theme] .metric-value{font-size:25px}
 :root[data-theme] .v3-dashboard-grid{display:flex;flex-direction:column;gap:12px}
 :root[data-theme] .v3-day-widget,:root[data-theme] .v3-public-widget,:root[data-theme] .v3-quick-widget,:root[data-theme] .v3-stock-widget,:root[data-theme] .v3-vehicle-widget,:root[data-theme] .v3-forecast-widget{width:100%;min-height:0}
 :root[data-theme] .v3-dashboard-grid .card.pad{padding:13px 12px}
 :root[data-theme] .ticket.v3-compact-ticket{display:grid;grid-template-columns:63px minmax(0,1fr);gap:7px;padding:10px 9px;min-height:0}
 :root[data-theme] .ticket.v3-compact-ticket .ticket-actions{grid-column:1/-1;display:flex;flex-direction:row;justify-content:flex-end;gap:6px}
 :root[data-theme] .ticket.v3-compact-ticket .ticket-actions .btn{min-height:34px;max-width:none;flex:1;font-size:10px;padding:7px}
 :root[data-theme] .ticket.v3-compact-ticket .ticket-desc{font-size:10px}
 :root[data-theme] .v3-quick-buttons{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
 :root[data-theme] .v3-quick{font-size:10px;min-height:82px}
 :root[data-theme] .v3-public-widget .v3-tabs{overflow-x:auto;gap:5px}
 :root[data-theme] .v3-public-widget .v3-tabs span{flex:0 0 auto;min-width:88px;padding:8px}
 :root[data-theme] .sidebar::after{display:none!important}
 :root[data-theme] .app:after{display:none!important}
 :root[data-theme] .mobile-bottom-nav{box-shadow:0 -6px 22px #0008}
 :root[data-theme="neo"] .mobile-bottom-nav{border-top:2px solid #38afff}
 :root[data-theme="foret"] .mobile-bottom-nav{border-top:2px solid #a6d480}
 :root[data-theme="noel"] .mobile-bottom-nav{border-top:2px solid #ffbb9d}
}
@media(prefers-reduced-motion:reduce){:root[data-theme] *{animation:none!important;transition:none!important}}

/* Final touch-ups from the actual browser previews. */
:root[data-theme] .app{position:relative}
:root[data-theme="foret"] .v3-mast-brand img{filter:hue-rotate(265deg) saturate(.75) brightness(1.12)}
:root[data-theme="noel"] .app:after,
:root[data-theme="neo"] .app:after,
:root[data-theme="foret"] .app:after{position:absolute;bottom:0}
:root[data-theme="noel"] .v3-mast-photo{background-size:auto,auto 196px;background-position:center,center 46%;}
:root[data-theme="foret"] .v3-mast-photo{background-size:auto,auto 196px;background-position:center,center 46%;}
:root[data-theme="neo"] .v3-mast-photo{background-size:auto,auto 196px;background-position:center,center 46%;}
/* Feather the unaltered town-hall photograph into the header; avoid hard image edges. */
:root[data-theme="noel"] .v3-mast-photo,
:root[data-theme="foret"] .v3-mast-photo,
:root[data-theme="neo"] .v3-mast-photo{
 background:linear-gradient(90deg,var(--v3-mast),transparent 18%,transparent 80%,var(--v3-mast)),url('./assets/mairie-facade-originale.jpg') center 53%/cover no-repeat;
 mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent);
}
