*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:#eef3f7;color:#18324a;font-size:14px}
button,input,select,textarea{font:inherit}button{cursor:pointer}.sidebar{position:fixed;left:0;top:0;bottom:0;width:245px;background:linear-gradient(#123b60,#0d2943);color:#fff;padding:12px;overflow:auto}.logo{display:flex;gap:10px;align-items:center;padding:10px 5px 15px;border-bottom:1px solid #ffffff2b}.logoMark{font-size:32px;background:#fff;border-radius:7px;padding:4px}.logo b{font-size:19px}.logo small{display:block;color:#cfe3f5;margin-top:4px}.sidebar nav{padding-top:10px}.sidebar nav button{display:flex;gap:12px;align-items:center;width:100%;padding:11px 12px;margin:2px 0;border:0;border-radius:7px;background:transparent;color:#eaf5ff;text-align:left}.sidebar nav button:hover,.sidebar nav button.active{background:#1970b9}.sideFoot{position:sticky;bottom:0;background:#0b2740;padding:12px;border:1px solid #3b83b7;margin-top:12px;text-align:center}.sideFoot small{color:#c5d9e8}
main{margin-left:245px;min-height:100vh}.topbar{height:66px;background:#fff;border-bottom:1px solid #ccd8e2;display:flex;align-items:center;justify-content:space-between;padding:0 18px;position:sticky;top:0;z-index:4}.crumb{font-size:21px;font-weight:700;color:#174d7a}.topActions{display:flex;align-items:center;gap:13px;color:#29475f}.topActions button{border:0;background:transparent;font-size:20px}.user{border-left:1px solid #d6dfe6;padding-left:14px}.topActions span:first-child{font-weight:700}
#view{padding:15px 18px 60px}.cards{display:grid;grid-template-columns:repeat(8,minmax(120px,1fr));gap:8px}.metric{border-radius:7px;padding:12px;color:white;min-height:88px;box-shadow:0 2px 5px #0002}.metric small{opacity:.9}.metric b{display:block;font-size:22px;margin-top:7px}.m1{background:#16a05d}.m2{background:#1677c9}.m3{background:#f28b20}.m4{background:#7b52c7}.m5{background:#169db1}.m6{background:#d69b00}.m7{background:#df3445}.m8{background:#35475d}
.grid{display:grid;gap:10px}.g4{grid-template-columns:repeat(4,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g2{grid-template-columns:repeat(2,1fr)}.panel{background:#fff;border:1px solid #bfd0dd;border-radius:7px;box-shadow:0 1px 4px #0001;margin-top:10px;overflow:hidden}.panel h2,.panelHead{margin:0;padding:10px 12px;background:linear-gradient(#1878bd,#1263a0);color:#fff;font-size:16px}.panelBody{padding:11px}.tableWrap{overflow:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:7px 8px;border-bottom:1px solid #dbe3ea;white-space:nowrap}.table th{background:#edf4f8;color:#16466d;text-align:left}.table tr:hover td{background:#f6fafc}.right{text-align:right}.center{text-align:center}.muted{color:#667b8d}.dangerText{color:#c22;font-weight:700}.okText{color:#14864a;font-weight:700}.netBox{background:#ffe2e2;border:2px solid #e74b4b;color:#b40000;border-radius:8px;padding:14px;font-size:27px;font-weight:800}.alert{padding:9px;border-radius:7px;margin:5px 0}.alert.warn{background:#fff2d3;color:#8a5700}.alert.bad{background:#ffe1e3;color:#a91c2b}.alert.ok{background:#ddf7e8;color:#137342}.alert.info{background:#dff2ff;color:#145b84}
.form{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;padding:12px}.field label{display:block;font-size:12px;font-weight:700;color:#40586c}.field input,.field select,.field textarea{width:100%;margin-top:4px;border:1px solid #b9c8d3;border-radius:5px;padding:8px;background:#fff}.field textarea{min-height:70px}.span2{grid-column:span 2}.span4{grid-column:1/-1}.actions{padding:0 12px 12px;display:flex;gap:7px;flex-wrap:wrap}.btn{border:0;border-radius:5px;padding:9px 13px;background:#176da9;color:#fff;font-weight:700}.btn.green{background:#16884d}.btn.orange{background:#dc7a13}.btn.red{background:#b62835}.btn.gray{background:#647786}.btn.light{background:#e8f0f5;color:#214660}.btn:disabled{opacity:.5;cursor:not-allowed}
.tabs{display:flex;gap:4px;padding:10px 12px 0}.tabs button{border:1px solid #c5d4df;border-bottom:0;background:#edf3f7;padding:8px 12px;border-radius:5px 5px 0 0}.tabs button.active{background:#fff;font-weight:700}
.chart{height:210px;padding:10px;display:flex;align-items:end;gap:8px}.bar{flex:1;background:#2580bf;border-radius:4px 4px 0 0;min-height:4px;position:relative}.bar span{position:absolute;bottom:-18px;left:50%;transform:translateX(-50%);font-size:10px}.bar i{position:absolute;top:-18px;left:50%;transform:translateX(-50%);font-style:normal;font-size:10px}
.modal{position:fixed;inset:0;background:#0008;z-index:20;display:flex;align-items:center;justify-content:center}.modal.hidden{display:none}.modalBox{background:#fff;width:min(900px,94vw);max-height:90vh;overflow:auto;border-radius:9px}.modalHead{padding:12px;background:#174d7a;color:#fff;font-weight:700}.modalBody{padding:14px}
footer{position:fixed;left:245px;right:0;bottom:0;background:#fff;border-top:1px solid #ccd8e2;padding:6px 12px;display:flex;justify-content:space-between;font-size:11px;color:#557080;z-index:3}
@media(max-width:1100px){.cards{grid-template-columns:repeat(4,1fr)}.g4,.g3{grid-template-columns:repeat(2,1fr)}.form{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.sidebar{position:static;width:100%;height:auto}.sidebar nav button{display:inline-flex;width:auto}.logo{justify-content:center}.sideFoot{display:none}main{margin-left:0}.topbar{position:static}.cards{grid-template-columns:repeat(2,1fr)}.g2,.g3,.g4,.form{grid-template-columns:1fr}.span2,.span4{grid-column:auto}footer{left:0;position:static;flex-wrap:wrap;gap:5px}}
@media print{.sidebar,.topbar,footer,.actions,.noPrint{display:none!important}main{margin:0}#view{padding:0}.panel{box-shadow:none}}

.hiddenApp{display:none!important}.loginScreen{position:fixed;inset:0;z-index:100;background:linear-gradient(135deg,#123b60,#0d2943);display:flex;align-items:center;justify-content:center;padding:20px}.loginScreen.hidden{display:none}.loginCard{width:min(430px,94vw);background:#fff;border-radius:14px;padding:30px;box-shadow:0 18px 50px #0006;text-align:center}.loginLogo{margin-bottom:20px}.bakeryLogo{width:76px;height:76px;margin:0 auto 10px;border-radius:16px;background:#fff3d8;border:2px solid #e2b75d;display:flex;align-items:center;justify-content:center;font-size:44px}.loginLogo b{display:block;font-size:25px;color:#174d7a}.loginLogo small{color:#65798a}.loginCard h1{margin:8px 0 4px;color:#173f60}.loginCard>label{display:block;text-align:left;font-weight:700;font-size:13px;color:#40586c;margin:12px 0}.loginCard>label input{display:block;width:100%;margin-top:5px;padding:11px;border:1px solid #b9c8d3;border-radius:6px}.loginBtn{width:100%;font-size:16px;margin-top:6px}.loginError{min-height:20px;color:#b62835;font-weight:700;font-size:13px}.loginHint{display:block;margin-top:16px;color:#708391;font-size:11px}.dashboardFilter{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.dashboardFilter select{padding:7px;border:1px solid #b9c8d3;border-radius:5px}
/* DABOU-SERVICE dashboard v2 — inspired by the selected second design */
body{background:#f4f8fb;color:#12324d}
.sidebar{width:205px;background:linear-gradient(180deg,#062d52 0%,#073b68 55%,#042744 100%);padding:8px 10px}
.logo{padding:8px 5px 14px;border-bottom:1px solid rgba(255,255,255,.16)}
.logoMark{width:52px;height:52px;padding:5px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.logoMark img{width:100%;height:100%;object-fit:contain}
.logo b{font-size:18px;color:#fff;letter-spacing:.2px}.logo small{font-size:11px;color:#d6e9f8}
.sidebar nav{padding-top:9px}.sidebar nav button{min-height:39px;border-radius:8px;font-size:14px;padding:8px 10px}.sidebar nav button:hover,.sidebar nav button.active{background:linear-gradient(90deg,#087bea,#1673c3);box-shadow:0 4px 12px rgba(0,0,0,.15)}
.sideFoot{margin-top:18px;background:transparent;border:0;color:#eaf6ff;font-size:13px}.sideFoot small{color:#bdd6e9}
main{margin-left:205px;background:#f5f9fc}.topbar{height:72px;background:#fff;padding:0 22px;box-shadow:0 1px 10px rgba(16,55,85,.07)}.crumb{font-size:22px;color:#0b4d83}.topActions{font-size:14px}
#view{padding:14px 16px 76px;max-width:1700px;margin:auto}
.dashboardFilter{border:0;background:transparent;padding:0;margin:0 0 10px}.dashboardFilter select{padding:8px 12px}
.dashHeader{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:12px}.dashSearch{flex:1;max-width:760px;height:48px;border-radius:28px;background:#fff;border:1px solid #d6e4ef;box-shadow:0 5px 18px rgba(32,91,130,.08);display:flex;align-items:center;padding:0 18px}.dashSearch span{font-size:29px;line-height:1;color:#1680df;margin-right:10px}.dashSearch input{border:0;outline:0;width:100%;font-size:15px;color:#23445f;background:transparent}.dashDate{display:flex;align-items:center;gap:10px;color:#0d3e67}.dashDate>span{font-size:29px}.dashDate small{display:block;color:#657d91}.dashDate b{font-size:17px}
.dashHero{display:flex;justify-content:space-between;align-items:center;gap:18px;min-height:112px;padding:18px 24px;border-radius:16px;background:linear-gradient(90deg,rgba(67,25,4,.96),rgba(104,45,8,.58)),url("assets/dashboard-bread-banner.jpg") center/cover;color:#fff;box-shadow:0 8px 22px rgba(55,47,30,.16);overflow:hidden;position:relative;animation:dashFadeUp .45s ease both}.dashHero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(38,17,3,.25),transparent 60%);pointer-events:none}.dashHero>div:first-child{position:relative;z-index:1}.dashHero h1{margin:0 0 4px;font-size:30px;text-shadow:0 2px 5px rgba(0,0,0,.35)}.dashHero p{margin:0;font-size:18px;font-weight:600;text-shadow:0 2px 4px rgba(0,0,0,.3)}.healthBadge{position:relative;z-index:1;display:grid;grid-template-columns:50px 1fr;column-gap:10px;align-items:center;background:#10a84d;border:5px solid #fff;border-radius:18px;padding:9px 18px;min-width:350px;box-shadow:0 5px 14px rgba(0,0,0,.12)}.healthBadge>span{grid-row:1/3;width:44px;height:44px;border-radius:50%;background:#fff;color:#12a34b;display:flex;align-items:center;justify-content:center;font-size:29px;font-weight:900}.healthBadge b{font-size:20px}.healthBadge small{font-size:12px}.warnHealth{background:#d98512}
.dashFilterRow{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:10px 4px;color:#60778a;font-size:13px}.dashFilterRow label{display:flex;align-items:center;gap:8px;font-weight:700}.dashFilterRow select{padding:8px 12px;border:1px solid #c9d9e5;border-radius:8px;background:#fff}
.dashCards{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:11px}.dashMetric{min-height:104px;border-radius:12px;padding:13px 14px;display:flex;align-items:center;gap:12px;color:#fff;box-shadow:0 5px 14px rgba(22,70,105,.11);position:relative;overflow:hidden}.dashMetric:after{content:"";position:absolute;right:-10px;bottom:-18px;width:90px;height:90px;border-radius:50%;background:rgba(255,255,255,.08)}.dashMetricIcon{width:48px;height:48px;border-radius:50%;background:rgba(255,255,255,.93);display:flex;align-items:center;justify-content:center;font-size:24px;flex:0 0 auto}.dashMetric small{display:block;font-weight:700;font-size:13px;opacity:.96}.dashMetric strong{display:block;font-size:23px;line-height:1.15;margin:4px 0}.dashMetric em{font-style:normal;font-size:11px;opacity:.86}.dashBlue{background:linear-gradient(135deg,#1d7be2,#1266bf)}.dashGreen{background:linear-gradient(135deg,#19aa63,#07904d)}.dashPurple{background:linear-gradient(135deg,#7d45e6,#6531c6)}.dashOrange{background:linear-gradient(135deg,#f39a24,#ed7111)}.dashGold{background:linear-gradient(135deg,#f0b61a,#e69200)}.dashCyan{background:linear-gradient(135deg,#168ed6,#1670c1)}.dashTeal{background:linear-gradient(135deg,#16b878,#079a65)}.dashRed{background:linear-gradient(135deg,#ef3e61,#dc244b)}.dashViolet{background:linear-gradient(135deg,#7251d9,#4c3aa8)}.dashCream{background:linear-gradient(135deg,#fff1d1,#f6e0b0);color:#5e451d}.dashCream .dashMetricIcon,.dashLight .dashMetricIcon,.dashPink .dashMetricIcon{background:#fff}.dashLight{background:linear-gradient(135deg,#e6f5ff,#bfe5ff);color:#0d4d82}.dashPink{background:linear-gradient(135deg,#ffe9ee,#ffd5de);color:#b31d3c}
.dashGridTop{display:grid;grid-template-columns:1.5fr 1fr .85fr;gap:12px;margin-top:12px}.dashGridBottom{display:grid;grid-template-columns:1.2fr .9fr;gap:12px;margin-top:12px}.dashPanel{background:#fff;border:1px solid #d9e6ef;border-radius:12px;overflow:hidden;box-shadow:0 4px 14px rgba(28,78,110,.07);min-width:0}.dashPanelHead{display:flex;justify-content:space-between;align-items:center;padding:11px 14px;color:#0b4d83;border-bottom:1px solid #e0eaf1;font-size:14px}.dashPanelHead small{font-weight:700;color:#13a05a}.dashLink{border:0;background:transparent;color:#0875c7;font-weight:700;cursor:pointer}.bars{height:170px;padding:16px 20px 25px;display:flex;align-items:flex-end;gap:7px}.dashBar{flex:1;min-width:12px;max-width:44px;background:linear-gradient(#2b91ea,#1570cb);border-radius:7px 7px 0 0;position:relative;box-shadow:0 2px 7px rgba(21,112,203,.2)}.dashBar b{position:absolute;top:-17px;left:50%;transform:translateX(-50%);font-size:10px;color:#15528b;white-space:nowrap}.dashBar span{position:absolute;bottom:-18px;left:50%;transform:translateX(-50%);font-size:10px;color:#61798d;white-space:nowrap}.emptyDash{margin:auto;color:#728899}
.donutWrap{display:flex;align-items:center;gap:20px;padding:17px}.donut{width:125px;height:125px;border-radius:50%;background:conic-gradient(#1680df 0 35%,#17ae63 35% 57%,#f1a600 57% 75%,#7145c8 75% 86%,#7890a5 86% 100%);position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column;flex:0 0 auto}.donut:after{content:"";position:absolute;width:79px;height:79px;background:#fff;border-radius:50%}.donut strong,.donut span{position:relative;z-index:1;color:#0a4d82}.donut strong{font-size:15px}.donut span{font-size:11px;font-weight:700}.legend{flex:1}.legendRow{display:grid;grid-template-columns:12px 1fr auto;gap:7px;align-items:center;padding:5px 0;font-size:12px;color:#3f5f77}.dot{width:10px;height:10px;border-radius:50%;display:block;background:#1680df}.d1{background:#17ae63}.d2{background:#f1a600}.d3{background:#7145c8}.d4{background:#7890a5}
.deadlineList{padding:8px 14px 14px}.deadlineList>div{display:flex;justify-content:space-between;gap:12px;padding:10px 4px;border-bottom:1px solid #edf1f4;font-size:12px}.deadlineList>div:last-child{border-bottom:0}.deadlineList b{color:#e2383e}
.dashPanel .table th,.dashPanel .table td{font-size:11px;padding:7px 9px}.dashPanel .table th{background:#eef6fb}.dashBottomStrip{margin-top:12px;padding:11px 14px;background:#fff;border:1px solid #d8e6ef;border-radius:10px;display:flex;align-items:center;justify-content:flex-end;gap:22px;color:#526b7e;font-size:13px}.dashBottomStrip b{color:#0d4d82}.dashBottomStrip .btn{margin-left:auto}
@media(max-width:1250px){.dashCards{grid-template-columns:repeat(3,1fr)}.dashGridTop{grid-template-columns:1fr 1fr}.dashGridTop>.dashPanel:last-child{grid-column:1/-1}.dashGridBottom{grid-template-columns:1fr}}

.statusPill{display:inline-block;padding:4px 7px;border-radius:999px;font-size:11px;font-weight:800;white-space:nowrap}.statusPill.present{background:#d9ffe9;color:#08763d}.statusPill.absent{background:#ffe0e0;color:#a51e2b}.statusPill.pending{background:#edf2f6;color:#617789}.staffSummary{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:10px 12px}.staffSummary>div{padding:10px;border-radius:9px;background:#eef6fb;text-align:center}.staffSummary b{display:block;font-size:22px;color:#0d4d82}.staffSummary span{font-size:11px;color:#526b7e}.staffSummary .present b{color:#16884d}.staffSummary .absent b{color:#b62835}.panelHead{display:flex;justify-content:space-between;align-items:center;padding:12px;gap:12px}.panelHead h2{margin:0}.panelHead label{font-size:12px;font-weight:700;color:#40586c}.panelHead input{margin-left:6px;padding:7px;border:1px solid #b9c8d3;border-radius:5px}.mockAgentBtn{width:100%;border:1px solid #0b7ac8;color:#fff;cursor:pointer;text-align:center;font:inherit}.mockAgentBtn:hover{transform:translateY(-3px);filter:brightness(1.08)}.mockStaffMini{display:flex;justify-content:center;gap:6px;align-items:baseline;margin:7px 0 2px}.mockStaffMini strong{color:#20f18b;font-size:15px}.mockStaffMini strong.abs{color:#ff7b7b}.mockStaffMini small{font-size:7px;color:#b8d8ec}.mockAgentBtn>em{display:block;font-style:normal;font-size:8px;color:#9ec8e1;margin-top:5px}.mockAgentBtn>i{display:block;font-style:normal;color:#65d8ff;font-size:8px;margin-top:6px}.tableWrap{overflow:auto}
@media(max-width:850px){.staffSummary{grid-template-columns:repeat(2,1fr)}.panelHead{align-items:stretch;flex-direction:column}.panelHead label{display:block}.panelHead input{margin:5px 0 0;width:100%}.sidebar{width:190px}.logo b{font-size:17px}main{margin-left:190px}.dashHeader{flex-direction:column;align-items:stretch}.dashSearch{max-width:none}.dashDate{justify-content:flex-end}.dashHero{flex-direction:column;align-items:stretch}.healthBadge{min-width:0}.dashCards{grid-template-columns:repeat(2,1fr)}.dashGridTop{grid-template-columns:1fr}.dashGridTop>.dashPanel:last-child{grid-column:auto}.dashBottomStrip{flex-wrap:wrap}.dashBottomStrip .btn{margin-left:0}}
@media(max-width:650px){.sidebar{position:static;width:100%;height:auto}.logo{justify-content:center}.sidebar nav button{display:inline-flex;width:auto}.sideFoot{display:none}main{margin-left:0}.topbar{position:static}.dashCards{grid-template-columns:1fr}.dashFilterRow{align-items:flex-start;flex-direction:column}.dashHero h1{font-size:24px}.dashHero p{font-size:15px}.donutWrap{flex-direction:column}.dashBottomStrip{justify-content:flex-start}}
/* Correction V3 : lisibilité du récapitulatif général */
.recapCards .metric{color:#fff!important}
.recapCards .metric.blue{background:linear-gradient(135deg,#1d7be2,#1266bf)}
.recapCards .metric.orange{background:linear-gradient(135deg,#f39a24,#ed7111)}
.recapCards .metric.gold{background:linear-gradient(135deg,#f0b61a,#e69200)}
.recapCards .metric.violet{background:linear-gradient(135deg,#7251d9,#4c3aa8)}
.recapCards .metric.red{background:linear-gradient(135deg,#ef3e61,#dc244b)}
.recapCards .metric.cyan{background:linear-gradient(135deg,#168ed6,#1670c1)}
.recapCards .metric.teal{background:linear-gradient(135deg,#16b878,#079a65)}
.recapCards .metric small,.recapCards .metric b{color:#fff!important}
.recapHead label{color:#173f60;font-weight:700}
.recapHead input{color:#173f60;background:#fff;border:1px solid #b9c8d3;border-radius:5px;padding:7px}
.recapHead h2,.panel .table td,.panel .table tbody td{color:#18324a}
.panel .table th{color:#16466d!important}
.panel .table td{font-weight:500}
.recapHead .muted,.panelBody.muted{color:#667b8d!important}
.chartControls{display:flex;gap:5px}.chartBtn{border:1px solid #cbdde9;background:#f4f8fb;color:#2b5878;border-radius:6px;padding:4px 8px;font-size:11px;font-weight:700;cursor:pointer}.chartBtn.active{background:#1570cb;color:#fff;border-color:#1570cb}.dashBar{border:0;padding:0;cursor:pointer;appearance:none}.dashBar:hover{filter:brightness(1.08);transform:translateY(-2px)}.chartDetail{border-top:1px solid #e3edf3;padding:8px 14px;color:#61798d;font-size:12px;background:#f8fbfd}.chartDetail b{color:#0b4d83}

/* Dashboard mémorisé — style moderne, animé et lisible */
.dashHeader{animation:dashFadeUp .35s ease both}.dashFilterRow{animation:dashFadeUp .45s ease both}.dashMetric{animation:dashFadeUp .45s ease both;transition:transform .2s ease,box-shadow .2s ease,filter .2s ease}.dashMetric:nth-child(2){animation-delay:.03s}.dashMetric:nth-child(3){animation-delay:.06s}.dashMetric:nth-child(4){animation-delay:.09s}.dashMetric:nth-child(5){animation-delay:.12s}.dashMetric:nth-child(6){animation-delay:.15s}.dashMetric:nth-child(7){animation-delay:.18s}.dashMetric:nth-child(8){animation-delay:.21s}.dashMetric:nth-child(9){animation-delay:.24s}.dashMetric:nth-child(10){animation-delay:.27s}.dashMetric:nth-child(11){animation-delay:.30s}.dashMetric:nth-child(12){animation-delay:.33s}.dashMetric:hover{transform:translateY(-4px);box-shadow:0 10px 24px rgba(22,70,105,.18);filter:saturate(1.05)}.dashMetricIcon{transition:transform .25s ease}.dashMetric:hover .dashMetricIcon{transform:scale(1.08) rotate(-3deg)}.dashPanel{animation:dashFadeUp .5s ease both;transition:transform .2s ease,box-shadow .2s ease}.dashPanel:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(28,78,110,.11)}.dashBar{animation:dashBarGrow .65s cubic-bezier(.2,.8,.2,1) both;transform-origin:bottom}.dashBar:nth-child(2){animation-delay:.05s}.dashBar:nth-child(3){animation-delay:.10s}.dashBar:nth-child(4){animation-delay:.15s}.dashBar:nth-child(5){animation-delay:.20s}.dashBar:nth-child(6){animation-delay:.25s}.dashBar:nth-child(7){animation-delay:.30s}.healthBadge{animation:healthPulse 2.8s ease-in-out infinite}.dashSearch:focus-within{border-color:#1680df;box-shadow:0 6px 22px rgba(22,128,223,.16)}@keyframes dashFadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes dashBarGrow{from{transform:scaleY(0);opacity:.2}to{transform:scaleY(1);opacity:1}}@keyframes healthPulse{0%,100%{box-shadow:0 5px 14px rgba(0,0,0,.12)}50%{box-shadow:0 7px 22px rgba(16,168,77,.25)}}

/* Animation inspirée de la vidéo de référence : splash noir/blanc avec vague organique */
.startupSplash{position:fixed;inset:0;z-index:1000;background:#fff;overflow:hidden;display:block;pointer-events:none;animation:splashExit .45s ease 1.55s forwards}.splashBlack{position:absolute;inset:0;background:#050505;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:2;clip-path:ellipse(110% 78% at 50% 0%);animation:splashReveal 1.25s cubic-bezier(.65,0,.2,1) .18s forwards}.splashBrand{font-size:28px;letter-spacing:.28em;font-weight:800;opacity:0;animation:splashText .65s ease .35s forwards}.splashSub{margin-top:9px;font-size:12px;letter-spacing:.08em;color:#d8d8d8;opacity:0;animation:splashText .65s ease .48s forwards}.splashWave{position:absolute;left:-10%;top:42%;width:120%;height:70%;background:#fff;border-radius:50% 50% 0 0/28% 28% 0 0;transform:translateY(80%);animation:splashWaveUp 1.05s cubic-bezier(.7,0,.25,1) .55s forwards;z-index:3}@keyframes splashText{from{opacity:0;transform:translateY(10px);letter-spacing:.5em}to{opacity:1;transform:none;letter-spacing:.28em}}@keyframes splashReveal{from{clip-path:ellipse(110% 78% at 50% 0%)}to{clip-path:ellipse(72% 45% at 50% 0%)}}@keyframes splashWaveUp{from{transform:translateY(80%)}to{transform:translateY(0)}}@keyframes splashExit{to{opacity:0;visibility:hidden}}
.loginScreen{background:#050505!important}.loginCard{position:relative;overflow:hidden;border-radius:22px;box-shadow:0 22px 70px rgba(0,0,0,.45)}.loginCard:before{content:"";position:absolute;left:-15%;top:-38%;width:130%;height:58%;background:#050505;border-radius:0 0 50% 50%;z-index:0}.loginCard>*{position:relative;z-index:1}.loginLogo{padding-top:28px}.loginLogo b{letter-spacing:.12em}.loginBtn{border-radius:24px;min-height:44px;transition:transform .2s,box-shadow .2s}.loginBtn:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(22,136,77,.25)}
.pageEnter{animation:pageEnter .3s ease both}@keyframes pageEnter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* DABOU-SERVICE — Dashboard style inspiré du dashboard vidéo fourni */
.videoDash{position:relative;margin:-16px -18px -76px;padding:24px 26px 90px;min-height:calc(100vh - 72px);background:radial-gradient(circle at 8% 15%,rgba(62,196,166,.28),transparent 27%),radial-gradient(circle at 95% 5%,rgba(32,157,187,.22),transparent 25%),linear-gradient(135deg,#087f79 0%,#087f73 48%,#0a5f69 100%);overflow:hidden;color:#123b45}
.videoDash:before,.videoDash:after{content:"";position:absolute;border-radius:50%;pointer-events:none;opacity:.18}.videoDash:before{width:360px;height:360px;left:-190px;top:120px;background:#7ce2ca}.videoDash:after{width:430px;height:430px;right:-250px;bottom:-160px;background:#55c4df}
.videoDash>*{position:relative;z-index:1}.videoDashTop{display:flex;justify-content:space-between;align-items:center;gap:20px;color:#fff;margin-bottom:16px}.videoTitle h1{margin:0;font-size:34px;line-height:1;font-style:italic;letter-spacing:.04em;text-shadow:0 4px 0 rgba(0,0,0,.08)}.videoTitle p{margin:7px 0 0;font-size:13px;opacity:.9}.videoEyebrow{display:block;font-size:10px;letter-spacing:.25em;font-weight:900;opacity:.75;margin-bottom:5px}.videoTopRight{display:flex;align-items:center;gap:12px}.videoDate{display:flex;align-items:center;gap:9px;background:rgba(255,255,255,.12);padding:8px 12px;border:1px solid rgba(255,255,255,.22);border-radius:14px;backdrop-filter:blur(7px)}.videoDate>span{font-size:25px}.videoDate small{display:block;font-size:10px;opacity:.75}.videoDate b{font-size:15px}.videoPeriod{display:flex;align-items:center;gap:6px;font-size:10px;font-weight:800}.videoPeriod select{border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.15);color:#fff;border-radius:10px;padding:8px 10px;outline:0}.videoPeriod option{color:#173d48;background:#fff}
.videoHero{min-height:108px;border-radius:25px;background:linear-gradient(90deg,rgba(7,78,75,.82),rgba(22,153,130,.42)),url("assets/dashboard-bread-banner.jpg") center/cover;box-shadow:0 14px 32px rgba(0,45,45,.18);padding:20px 24px;display:flex;justify-content:space-between;align-items:center;gap:20px;color:#fff;overflow:hidden;animation:videoReveal .6s cubic-bezier(.2,.8,.2,1) both}.heroKicker{font-size:10px;letter-spacing:.2em;font-weight:900;opacity:.78}.videoHero h2{margin:4px 0;font-size:29px}.videoHero p{margin:0;font-size:14px;font-weight:600;opacity:.92}.videoHealth{min-width:300px;background:rgba(30,196,133,.92);border:3px solid rgba(255,255,255,.9);box-shadow:0 10px 28px rgba(0,0,0,.16);border-radius:20px}.videoHealth>span{width:42px;height:42px;font-size:26px}
.videoMetrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:14px 0}.videoMetric{min-height:104px;border-radius:18px;color:#fff;padding:13px 16px;display:flex;align-items:center;gap:12px;position:relative;overflow:hidden;box-shadow:0 12px 28px rgba(0,0,0,.13);animation:metricIn .55s cubic-bezier(.2,.8,.2,1) both;transition:transform .22s ease,box-shadow .22s ease}.videoMetric:nth-child(2){animation-delay:.06s}.videoMetric:nth-child(3){animation-delay:.12s}.videoMetric:nth-child(4){animation-delay:.18s}.videoMetric:hover{transform:translateY(-5px);box-shadow:0 17px 32px rgba(0,0,0,.18)}.videoMetric:before{content:"";position:absolute;width:125px;height:125px;border-radius:50%;right:-55px;bottom:-60px;background:rgba(255,255,255,.12)}.videoMetricIcon{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.88);font-size:24px;flex:0 0 auto;box-shadow:0 5px 12px rgba(0,0,0,.08)}.videoMetric small{display:block;font-size:11px;font-weight:800;opacity:.9}.videoMetric strong{display:block;font-size:23px;margin:4px 0 2px}.videoMetric em{font-style:normal;font-size:10px;opacity:.78}.vmTeal{background:linear-gradient(135deg,#23b9a1,#10947e)}.vmGreen{background:linear-gradient(135deg,#39c98a,#0d9b67)}.vmPurple{background:linear-gradient(135deg,#7a6ae2,#5148bd)}.vmBlue{background:linear-gradient(135deg,#37a9e6,#197abf)}.metricGlow{position:absolute;inset:auto auto -65px 35%;width:160px;height:160px;border-radius:50%;background:rgba(255,255,255,.08)}
.videoGridMain{display:grid;grid-template-columns:1.7fr 1fr;gap:12px}.videoGridLower{display:grid;grid-template-columns:1.1fr .9fr;gap:12px;margin-top:12px}.videoPanel{background:rgba(255,255,255,.98);border-radius:19px;box-shadow:0 10px 25px rgba(0,42,50,.13);overflow:hidden;min-width:0;animation:panelIn .65s ease both}.videoGridLower .videoPanel:nth-child(2){animation-delay:.06s}.videoGridLower .videoPanel:nth-child(3){animation-delay:.12s}.videoGridLower .videoPanel:nth-child(4){animation-delay:.18s}.videoPanelHead{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 15px;border-bottom:1px solid #e7eeee;color:#174e59}.videoPanelHead b{display:block;font-size:14px}.videoPanelHead small{display:block;margin-top:3px;font-size:10px;color:#789099;font-weight:600}.videoPanelHead>strong{font-size:14px;color:#0d9a78}.videoToggle{display:flex;gap:4px}.videoToggle .chartBtn{border:1px solid #d3e4e7;background:#f5fbfb;color:#39707a;border-radius:9px;padding:5px 8px;font-size:10px}.videoToggle .chartBtn.active{background:#1eab93;color:#fff;border-color:#1eab93}
.videoChartArea{height:215px;display:flex;padding:16px 15px 8px}.videoYAxis{width:62px;display:flex;flex-direction:column;justify-content:space-between;padding:2px 8px 19px 0;text-align:right;font-size:9px;color:#8ba1a8}.videoBars{position:relative;flex:1;display:flex;align-items:flex-end;gap:7px;padding:0 7px 20px;border-bottom:1px solid #dce9eb;background:repeating-linear-gradient(to top,transparent 0,transparent 51px,#edf4f5 52px)}.videoBar{border:0;appearance:none;min-width:15px;max-width:42px;flex:1;background:linear-gradient(#33c5aa,#16a28d);border-radius:6px 6px 0 0;position:relative;cursor:pointer;transform-origin:bottom;animation:barRise .75s cubic-bezier(.2,.8,.2,1) both;box-shadow:0 4px 8px rgba(17,145,123,.12)}.videoBar:hover{filter:brightness(1.06);transform:translateY(-3px)}.videoBar b{position:absolute;top:-17px;left:50%;transform:translateX(-50%);font-size:8px;color:#43727a;white-space:nowrap}.videoBar span{position:absolute;bottom:-19px;left:50%;transform:translateX(-50%);font-size:8px;color:#7e9399;white-space:nowrap}.videoProdOverlay{position:absolute;left:0;right:0;bottom:20px;height:88px;display:flex;align-items:flex-end;gap:7px;padding:0 7px;pointer-events:none;opacity:.38}.miniProdBar{flex:1;min-width:15px;background:linear-gradient(#5b91d9,#3971bd);border-radius:5px 5px 0 0;animation:barRise .9s ease both;transform-origin:bottom}.videoChartDetail{padding:8px 14px;font-size:10px;color:#748c94;border-top:1px solid #edf2f3}.videoChartDetail b{color:#177b70}
.videoDonutWrap{display:flex;align-items:center;gap:18px;padding:19px}.videoDonut{width:145px;height:145px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex:0 0 auto;animation:donutIn .8s ease both}.videoDonut>div{width:92px;height:92px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;flex-direction:column;box-shadow:inset 0 0 0 1px #edf3f4}.videoDonut b{font-size:14px;color:#145662}.videoDonut span{font-size:9px;color:#83979d;font-weight:800;margin-top:3px}.videoLegend{flex:1}.videoLegend .legendRow{font-size:10px;padding:7px 0}.videoLegend .dot{width:9px;height:9px}.videoLegend .d0{background:#20b99a}.videoLegend .d1{background:#1c9fd4}.videoLegend .d2{background:#f2a62b}.videoLegend .d3{background:#ef5b68}.videoLegend .d4{background:#7358d8}
.funnel{padding:16px;display:grid;gap:8px}.funnelStep{display:flex;align-items:center;gap:10px;padding:9px 13px;border-radius:12px;color:#fff;animation:funnelIn .55s ease both}.funnelStep:nth-child(2){margin:0 8%;animation-delay:.08s}.funnelStep:nth-child(3){margin:0 16%;animation-delay:.16s}.funnelStep:nth-child(4){margin:0 24%;animation-delay:.24s}.funnelStep>span{font-size:18px}.funnelStep div{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%}.funnelStep b{font-size:10px}.funnelStep strong{font-size:13px}.f0{background:linear-gradient(90deg,#2aaed1,#198bb4)}.f1{background:linear-gradient(90deg,#20b997,#159b80)}.f2{background:linear-gradient(90deg,#f2ad36,#e08a18)}.f3{background:linear-gradient(90deg,#7467d9,#574db7)}
.videoList{padding:6px 14px 13px}.videoList>div{display:flex;justify-content:space-between;align-items:center;padding:11px 2px;border-bottom:1px solid #edf2f3;font-size:11px}.videoList>div:last-child{border-bottom:0}.videoList b{color:#e05d52}.scoreBadge{background:#e4f8ef;color:#0a976f;padding:5px 8px;border-radius:9px;font-size:9px;font-weight:900}.videoDebt .table th,.videoDebt .table td,.videoGridLower .table th,.videoGridLower .table td{font-size:10px;padding:7px 8px}.videoGridLower .table th{background:#f0f7f8;color:#35616a}.videoBottom{display:flex;align-items:center;gap:18px;margin-top:12px;padding:12px 15px;border-radius:15px;background:rgba(255,255,255,.96);box-shadow:0 8px 22px rgba(0,42,50,.12);font-size:11px;color:#688088}.videoBottom>div{display:flex;align-items:center;gap:7px}.videoBottom b{color:#176f68;font-size:14px}.videoClose{margin-left:auto;border:0;border-radius:10px;background:#153f52;color:#fff;padding:9px 13px;font-weight:800;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.videoClose:hover{transform:translateY(-2px);box-shadow:0 7px 15px rgba(0,0,0,.15)}
@keyframes videoReveal{from{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:none}}@keyframes metricIn{from{opacity:0;transform:translateY(18px) scale(.97)}to{opacity:1;transform:none}}@keyframes panelIn{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:none}}@keyframes barRise{from{transform:scaleY(0);opacity:.2}to{transform:scaleY(1);opacity:1}}@keyframes donutIn{from{opacity:0;transform:scale(.65) rotate(-90deg)}to{opacity:1;transform:none}}@keyframes funnelIn{from{opacity:0;transform:translateX(-18px)}to{opacity:1;transform:none}}
@media(max-width:1100px){.videoMetrics{grid-template-columns:repeat(2,1fr)}.videoGridMain,.videoGridLower{grid-template-columns:1fr}.videoDonutWrap{justify-content:center}.videoBottom{flex-wrap:wrap}.videoClose{margin-left:0}}
@media(max-width:700px){.videoDash{margin:-16px -18px -76px;padding:16px 12px 80px}.videoDashTop{flex-direction:column;align-items:flex-start}.videoTitle h1{font-size:27px}.videoTopRight{width:100%;justify-content:space-between}.videoHero{flex-direction:column;align-items:stretch}.videoHealth{min-width:0}.videoMetrics{grid-template-columns:1fr}.videoChartArea{height:190px}.videoDonutWrap{flex-direction:column}.funnelStep:nth-child(2),.funnelStep:nth-child(3),.funnelStep:nth-child(4){margin:0}.videoBottom{align-items:flex-start;flex-direction:column}.videoClose{width:100%}}

/* DABOU-SERVICE — maquette finale PC + Android portrait */
.mockDash{min-height:calc(100vh - 64px);margin:-16px -18px -58px;padding:10px 10px 42px;background:linear-gradient(135deg,#031a3b,#062b59 48%,#041a3d);color:#fff;font-family:Inter,Segoe UI,Arial,sans-serif;overflow:hidden}.mockDash *{box-sizing:border-box}.mockHeader{display:grid;grid-template-columns:330px 1fr 180px;gap:10px;align-items:center;padding:8px 10px;background:linear-gradient(90deg,#06234b,#07396c);border:1px solid #1265a6;border-radius:12px;box-shadow:0 8px 22px rgba(0,0,0,.25);position:sticky;top:0;z-index:10}.mockMenu{display:none}.mockBrand{display:flex;align-items:center;gap:9px;min-width:0}.mockBrand>img{width:66px;height:52px;object-fit:cover;border-radius:6px;border:1px solid #1ca9ff;background:#fff}.mockBrand b{display:block;font-size:22px;letter-spacing:.02em;white-space:nowrap}.mockBrand strong{display:block;color:#ffd447;font-size:14px}.mockBrand small{display:block;color:#d7eaff;font-size:11px}.mockFilters{display:grid;grid-template-columns:repeat(5,minmax(90px,1fr));gap:6px}.mockFilters label{display:grid;grid-template-columns:18px 1fr;grid-template-rows:auto auto;gap:1px 4px;padding:5px 7px;border:1px solid #1476bf;border-radius:8px;background:rgba(7,58,109,.75);font-size:11px;color:#bde6ff}.mockFilters label>span{font-weight:700}.mockFilters select{grid-column:1/-1;width:100%;background:#072d57;color:#fff;border:0;outline:0;font-size:11px;padding:2px 0}.mockUser{display:flex;align-items:center;gap:7px;justify-content:flex-end}.mockUser>span{width:38px;height:38px;border-radius:50%;background:#e7f8ff;color:#0875b9;display:grid;place-items:center;font-size:22px}.mockUser b,.mockUser small,.mockUser em{display:block}.mockUser b{font-size:12px}.mockUser small{color:#65d8ff;font-size:9px}.mockUser em{font-style:normal;font-size:9px;color:#d7eaff}.mockHero{height:112px;margin:8px 0;position:relative;border:1px solid #1382c9;border-radius:12px;overflow:hidden;box-shadow:0 10px 25px rgba(0,0,0,.28)}.mockHero>img{width:100%;height:100%;object-fit:cover;filter:saturate(1.15) contrast(1.03)}.mockHero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(2,25,58,.15),transparent 48%,rgba(2,25,58,.12))}.mockHeroLogo{position:absolute;right:18px;top:8px;z-index:2;width:250px;height:95px;background:rgba(255,255,255,.08);border-radius:8px;overflow:hidden}.mockHeroLogo img{width:100%;height:100%;object-fit:cover}.mockMetrics{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));gap:7px}.mockMetric{min-height:102px;border-radius:11px;padding:10px 8px;display:flex;align-items:center;gap:7px;border:1px solid rgba(255,255,255,.3);box-shadow:0 7px 17px rgba(0,0,0,.25);animation:mockIn .45s ease both;transition:transform .2s ease,filter .2s ease}.mockMetric:hover{transform:translateY(-3px);filter:brightness(1.08)}.mockMetricIcon{width:42px;height:42px;flex:0 0 42px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.2);font-size:22px}.mockMetric small{display:block;font-size:10px;font-weight:800;white-space:nowrap}.mockMetric strong{display:block;font-size:19px;margin:4px 0 2px;white-space:nowrap}.mockMetric em{display:block;font-style:normal;font-size:8px;color:#d8f4ff}.mmGreen{background:linear-gradient(135deg,#06ad66,#087d51)}.mmBlue{background:linear-gradient(135deg,#087ce6,#0752b5)}.mmPurple{background:linear-gradient(135deg,#8b25e9,#5d17b7)}.mmCyan{background:linear-gradient(135deg,#00c4d8,#058ba6)}.mmOrange{background:linear-gradient(135deg,#ff9811,#ed5b00)}.mmPink{background:linear-gradient(135deg,#f018a9,#a10b87)}.mmTeal{background:linear-gradient(135deg,#12bda7,#058b87)}.mockGrid3{display:grid;grid-template-columns:1.45fr 1fr 1.1fr;gap:7px;margin-top:7px}.mockPanel{min-width:0;min-height:185px;background:linear-gradient(145deg,rgba(4,42,82,.98),rgba(4,29,61,.98));border:1px solid #0b7ac8;border-radius:9px;box-shadow:0 8px 18px rgba(0,0,0,.23);overflow:hidden;animation:mockIn .5s ease both}.mockPanel h3{margin:0;padding:8px 10px;border-bottom:1px solid #115b91;color:#fff;font-size:12px;letter-spacing:.01em}.mockChartLegend{display:flex;gap:12px;padding:5px 10px;color:#7fe7ff;font-size:8px}.mockChartArea{height:128px;padding:5px 10px}.mockBars{height:100%;display:flex;align-items:flex-end;gap:4px;border-bottom:1px solid #2a668f;background:repeating-linear-gradient(to top,transparent 0,transparent 30px,rgba(80,153,199,.14) 31px);position:relative;padding:0 3px 17px}.mockBar{appearance:none;border:0;min-width:9px;flex:1;background:linear-gradient(#39e278,#0ca96d);border-radius:3px 3px 0 0;position:relative;cursor:pointer;transform-origin:bottom;animation:mockGrow .65s ease both}.mockBar:hover{filter:brightness(1.15);transform:translateY(-2px)}.mockBar b{position:absolute;top:-13px;left:50%;transform:translateX(-50%);font-size:6px;color:#b8eaff;white-space:nowrap}.mockBar span{position:absolute;bottom:-15px;left:50%;transform:translateX(-50%);font-size:6px;color:#9fc7df;white-space:nowrap}.mockProdOverlay{position:absolute;left:3px;right:3px;bottom:17px;height:65px;display:flex;align-items:flex-end;gap:4px;pointer-events:none;opacity:.28}.mockMiniBar{flex:1;background:#3aabff;border-radius:3px 3px 0 0}.mockDetail{padding:5px 10px;font-size:8px;color:#9bc4df}.mockDetail b{color:#fff}.mockDonutRow{height:145px;display:flex;align-items:center;justify-content:center;gap:12px;padding:8px}.mockDonut,.mockBigDonut{width:112px;height:112px;border-radius:50%;display:grid;place-items:center;flex:0 0 112px;animation:mockDonut .7s ease both}.mockDonut>div,.mockBigDonut>div{width:67px;height:67px;border-radius:50%;background:#062650;display:grid;place-items:center;text-align:center}.mockDonut b,.mockBigDonut b{font-size:11px}.mockDonut span,.mockBigDonut span{font-size:6px;color:#9cc9e8}.mockLegend{display:grid;grid-template-columns:9px 1fr auto;gap:5px;align-items:center;font-size:8px;margin:6px 0;color:#e1f2ff}.mockLegend b{color:#74f1a8}.mockDot{width:9px;height:9px;border-radius:50%;display:block}.mockLegend .d0{background:#25d76f}.mockLegend .d1{background:#18b7ff}.mockLegend .d2{background:#ffb51b}.mockLegend .d3{background:#f24b75}.mockLegend .d4{background:#8c4cff}.mockHBarList{padding:8px 10px}.mockHBarList>div{display:grid;grid-template-columns:95px 1fr 50px;gap:5px;align-items:center;font-size:7px;margin:6px 0}.mockHBarList span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mockHBarList i{height:8px;background:linear-gradient(90deg,#19a8ff,#4f7fff);border-radius:2px;display:block}.mockHBarList b{font-size:7px;text-align:right}.mockList{padding:5px 10px}.mockListRow{display:flex;justify-content:space-between;border-bottom:1px solid #17476e;padding:7px 0;font-size:8px}.mockListRow b{color:#ffcf44}.mockTableWrap{overflow:auto;padding:4px 7px}.mockTableWrap table{width:100%;border-collapse:collapse;font-size:7px}.mockTableWrap th,.mockTableWrap td{padding:5px 4px;border-bottom:1px solid #16466c;text-align:left;white-space:nowrap}.mockTableWrap th{color:#73d9ff;background:#06325f}.mockGridBottom{display:grid;grid-template-columns:.8fr 1.15fr 1.2fr 1.4fr;gap:7px;margin-top:7px}.mockGridBottom .mockPanel{min-height:120px}.mockAgent{text-align:center;padding:10px}.mockAgent h3,.mockSummary h3,.mockEfficiency h3{border:0}.mockAgent>b{display:block;font-size:31px;margin-top:4px}.mockAgent>span,.mockAgent>small{display:block;font-size:9px;color:#b8d8ec}.mockAgent>strong{display:block;color:#20f18b;font-size:20px;margin-top:8px}.mockSummary{padding:8px 10px;text-align:center}.mockSummary>b{display:block;font-size:27px;margin-top:10px}.mockSummary p{font-size:7px;color:#b4d8eb;line-height:1.5}.mockSummary strong{color:#4ef49c;font-size:10px}.mockEfficiency{padding:8px 10px}.mockLine{height:70px;margin:5px 12px;position:relative;border-left:1px solid #28638b;border-bottom:1px solid #28638b}.mockLine:after{content:"";position:absolute;left:8%;right:3%;bottom:30%;height:2px;background:#32bfff;transform:rotate(-2deg);box-shadow:0 0 7px #32bfff}.mockLine i{position:absolute;left:50%;bottom:0;width:3px;height:70%;background:#28d8ff}.mockLine b{position:absolute;left:50%;top:-2px;color:#fff;font-size:8px}.mockStats{padding:5px 10px}.mockStats div{display:flex;justify-content:space-between;border-bottom:1px solid #17476e;padding:6px 0;font-size:8px}.mockStats b{color:#5ff49e}.mockFooter{display:flex;justify-content:space-between;gap:10px;padding:7px 8px;margin-top:7px;border-top:1px solid #14649d;color:#9ec8e1;font-size:7px}.mockMobileNav{display:none}@keyframes mockIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes mockGrow{from{transform:scaleY(0);opacity:.2}to{transform:scaleY(1);opacity:1}}@keyframes mockDonut{from{transform:scale(.65) rotate(-90deg);opacity:.2}to{transform:none;opacity:1}}
@media(max-width:1200px){.mockHeader{grid-template-columns:270px 1fr 150px}.mockBrand b{font-size:18px}.mockMetrics{grid-template-columns:repeat(4,1fr)}.mockGrid3,.mockGridBottom{grid-template-columns:1fr 1fr}.mockHero{height:100px}}
@media(max-width:700px){body.androidShell{background:#031a3b}.androidShell .sidebar{display:none;position:fixed;left:0;top:0;bottom:0;width:265px;z-index:100;background:#041c3d}.androidShell .sidebar.mobileOpen{display:block;box-shadow:10px 0 30px rgba(0,0,0,.45)}.androidShell main{margin-left:0}.androidShell .topbar,.androidShell footer{display:none}.mockDash{margin:0;padding:7px 7px 76px;min-height:100vh;border-radius:0}.mockHeader{position:relative;top:auto;display:grid;grid-template-columns:32px 1fr 42px;gap:5px;padding:5px;border-radius:9px}.mockMenu{display:grid;place-items:center;width:30px;height:30px;border:0;border-radius:7px;background:#0a4e88;color:#fff;font-size:20px}.mockBrand{gap:5px}.mockBrand>img{width:58px;height:44px}.mockBrand b{font-size:14px}.mockBrand strong{font-size:9px}.mockBrand small{font-size:7px}.mockFilters{grid-column:1/-1;grid-row:2;grid-template-columns:repeat(5,1fr);gap:3px}.mockFilters label{padding:4px 3px;font-size:7px;display:block}.mockFilters label>span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mockFilters select{font-size:7px}.mockUser{justify-content:center}.mockUser>span{width:32px;height:32px;font-size:18px}.mockUser div{display:none}.mockHero{height:104px;margin:5px 0}.mockHeroLogo{width:145px;height:60px;right:6px;top:6px}.mockMetrics{grid-template-columns:repeat(2,1fr);gap:5px}.mockMetric{min-height:84px;padding:7px 6px;gap:6px}.mockMetricIcon{width:34px;height:34px;flex-basis:34px;font-size:17px}.mockMetric small{font-size:8px}.mockMetric strong{font-size:16px}.mockMetric em{font-size:6px}.mockMetric:nth-child(7){grid-column:1/-1}.mockGrid3,.mockGridBottom{grid-template-columns:1fr;gap:5px;margin-top:5px}.mockPanel{min-height:0}.mockChartArea{height:145px}.mockDonutRow{height:150px}.mockTableWrap{font-size:7px}.mockGridBottom .mockPanel{min-height:105px}.mockFooter{display:none}.mockMobileNav{position:fixed;display:grid;grid-template-columns:repeat(6,1fr);left:0;right:0;bottom:0;height:61px;z-index:90;background:rgba(3,25,57,.98);border-top:1px solid #0b79c3;box-shadow:0 -8px 25px rgba(0,0,0,.35)}.mockMobileNav button{border:0;border-right:1px solid #15466e;background:transparent;color:#c4dcef;font-size:18px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.mockMobileNav button span{font-size:8px}.mockMobileNav button.active{color:#20d7ff;background:linear-gradient(180deg,rgba(11,115,193,.4),rgba(7,49,92,.2))}.mockHBarList>div{grid-template-columns:80px 1fr 45px}.mockDonut{width:105px;height:105px;flex-basis:105px}.mockBigDonut{margin:auto}.mockLegend{font-size:8px}}
/* Dashboard compact + KPI cards are functional buttons */
.mockMetricBtn{border:0;width:100%;text-align:left;font:inherit;cursor:pointer;transition:transform .18s ease,filter .18s ease,box-shadow .18s ease;position:relative}
.mockMetricBtn:hover{transform:translateY(-3px);filter:brightness(1.05);box-shadow:0 10px 22px rgba(0,0,0,.22)}
.mockMetricBtn:active{transform:translateY(0) scale(.99)}
.mockMetricArrow{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:27px;font-weight:800;opacity:.7}
/* Paramètres complets + lecture intégrée des rapports */
.settingsHero{margin:0 0 10px;padding:16px 18px;border-radius:12px;color:#fff;background:linear-gradient(135deg,#063b6d,#0b79c3 55%,#06a9c8);box-shadow:0 8px 20px #0002}.settingsHero h2{margin:0 0 5px;font-size:22px}.settingsHero p{margin:0;color:#dff5ff}.settingsTabs{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 8px}.settingsTabs .btn{border-radius:20px}.reportViewerTop{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 12px;margin-bottom:10px;background:linear-gradient(135deg,#06365f,#0b67a4);color:#fff;border-radius:9px}.reportViewerTop>b,.reportViewerTop div:first-child>b{display:block;font-size:17px}.reportViewerTop span{display:block;font-size:11px;color:#cfeeff;margin-top:3px}.reportViewerTop .actions{padding:0}.reportSheet{background:#fff;border:1px solid #c5d5df;border-radius:8px;padding:14px;box-shadow:0 2px 8px #0001}.reportSheetHead{display:flex;justify-content:space-between;align-items:center;gap:10px;border-bottom:2px solid #176da9;padding-bottom:9px;margin-bottom:10px}.reportSheetHead b{display:block;font-size:18px;color:#123e62}.reportSheetHead span:not(.reportStatus){display:block;color:#62798b;margin-top:3px}.reportStatus{padding:5px 9px;border-radius:15px;background:#dff7e9;color:#137342;font-size:11px;font-weight:800}.reportSummaryGrid{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin:10px 0}.reportSummaryGrid>div{padding:9px;border-radius:7px;background:#edf6fb;border:1px solid #cce0ec}.reportSummaryGrid small{display:block;color:#587185}.reportSummaryGrid b{display:block;margin-top:4px;color:#12466f;font-size:16px}.reportSheet h4{margin:14px 0 6px;color:#174d7a;border-left:4px solid #12a9d0;padding-left:7px}.reportNote{margin-top:12px;padding:10px;background:#f5f9fb;border:1px solid #d8e4eb;border-radius:6px;color:#40586c}.reportViewerTop + .reportSheet .tableWrap{max-height:330px}.reportSheet .table th{position:sticky;top:0;z-index:1}.reportSheet .table td,.reportSheet .table th{font-size:12px}
@media(max-width:800px){.reportSummaryGrid{grid-template-columns:repeat(2,1fr)}.reportSheet{padding:9px}.reportSheetHead{align-items:flex-start}.settingsHero h2{font-size:18px}.reportViewerTop .actions{width:100%}}

/* LOGIN — utilisation directe de la maquette officielle DABOU-SERVICE */
.srOnly{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.loginScreen{background:#000 url("assets/login-maquette.png") center center/cover no-repeat!important;padding:0!important;overflow:hidden}
.loginCard{position:relative!important;width:100%!important;height:100%!important;max-width:none!important;padding:0!important;background:transparent!important;border-radius:0!important;box-shadow:none!important;text-align:left!important;overflow:hidden!important}
.loginCard .loginLogo,.loginCard h1,.loginCard>p,.loginCard .loginHint{display:none!important}
.loginField{position:absolute!important;display:block!important;margin:0!important;padding:0!important;font-size:0!important;font-weight:normal!important;color:transparent!important;left:33%!important;width:34%!important;height:6%!important}
.loginUserField{top:43.8%!important}.loginPassField{top:51.7%!important}
.loginField input{display:block!important;width:100%!important;height:100%!important;margin:0!important;padding:0 52px 0 68px!important;border:0!important;outline:none!important;background:transparent!important;color:#eaf3ff!important;font-size:16px!important;font-weight:500!important;box-shadow:none!important;border-radius:30px!important}
.loginField input::placeholder{color:transparent!important}
.loginTogglePass{position:absolute!important;right:32.8%!important;top:52%!important;width:4%!important;height:5.5%!important;border:0!important;background:transparent!important;color:transparent!important;font-size:0!important;cursor:pointer!important}
.loginRemember{position:absolute!important;left:33.1%!important;top:59.6%!important;width:3%!important;height:4%!important;margin:0!important;padding:0!important;cursor:pointer!important;font-size:0!important;color:transparent!important}
.loginRemember input{width:100%!important;height:100%!important;margin:0!important;opacity:0!important;cursor:pointer!important}
.loginError{position:absolute!important;left:33%!important;top:61.5%!important;width:34%!important;min-height:0!important;text-align:center!important;color:#ffb5b5!important;font-size:12px!important;font-weight:700!important;z-index:3}
.loginBtn{position:absolute!important;left:33%!important;top:64.2%!important;width:34%!important;height:6.3%!important;margin:0!important;padding:0!important;border:0!important;border-radius:30px!important;background:transparent!important;color:transparent!important;cursor:pointer!important;box-shadow:none!important}
.loginBtn:hover{transform:translateY(-1px)!important;background:rgba(255,255,255,.03)!important}
@media(max-width:700px){
  .loginScreen{background-position:center center!important}
  .loginField{left:30%!important;width:40%!important;height:6.2%!important}
  .loginUserField{top:43.8%!important}.loginPassField{top:51.7%!important}
  .loginField input{font-size:14px!important;padding-left:48px!important;padding-right:45px!important}
  .loginTogglePass{right:28.5%!important;top:52%!important;width:6%!important;height:5.8%!important}
  .loginRemember{left:30.5%!important;top:59.5%!important;width:5%!important;height:4.5%!important}
  .loginError{left:29%!important;width:42%!important;top:61.7%!important;font-size:10px!important}
  .loginBtn{left:30%!important;width:40%!important;top:64.1%!important;height:6.4%!important}
}

/* Filtres dashboard fonctionnels */
.mockFilters{grid-template-columns:repeat(4,minmax(110px,1fr))}
.mockFilters label{min-width:0}
.mockFilterBtn{border:1px solid #1594df;border-radius:8px;background:linear-gradient(135deg,#0a4f8d,#073565);color:#fff;padding:7px 8px;font:700 10px Inter,Segoe UI,Arial,sans-serif;cursor:pointer;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:.18s ease;box-shadow:0 4px 10px #0003}
.mockFilterBtn:hover{transform:translateY(-1px);filter:brightness(1.12);border-color:#49c6ff}
.mockFilterBtn b{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;margin-left:3px;border-radius:10px;background:#18d987;color:#062c20;font-size:9px}
.presentFilterBtn{background:linear-gradient(135deg,#075b75,#087f72)}
.mockFilterSummary{display:flex;justify-content:space-between;gap:10px;align-items:center;margin:6px 0;padding:5px 9px;border:1px solid #145d91;border-radius:7px;background:rgba(3,34,68,.72);color:#a9d8f3;font-size:9px}
.mockFilterSummary b{color:#fff}.presentSummary{padding:9px 10px;margin-bottom:8px;border-radius:7px;background:#07365f;color:#cfeeff}.presentSummary b{font-size:22px;color:#36ef9a;margin-right:5px}
@media(max-width:1200px){.mockFilters{grid-template-columns:repeat(4,minmax(90px,1fr))}}
@media(max-width:700px){.mockFilters{grid-column:1/-1;grid-row:2;grid-template-columns:repeat(2,1fr);gap:3px}.mockFilterBtn{font-size:8px;padding:5px 4px}.mockFilterSummary{font-size:7px;flex-direction:column;align-items:flex-start;gap:2px}.mockHeader{grid-template-columns:32px 1fr 42px}}

/* Correctif tactile Firebase : champs éditables et boutons réactifs sur Android WebView */
.modal { pointer-events:auto; touch-action:pan-y; -webkit-tap-highlight-color:rgba(20,110,180,.18); }
.modalBox,.modalBody,.modalBody * { pointer-events:auto; }
.modalBody { overflow-x:hidden; overflow-y:auto; -webkit-overflow-scrolling:touch; }
.modalBody input,.modalBody select,.modalBody textarea { position:relative; z-index:1; pointer-events:auto; touch-action:manipulation; -webkit-user-select:text; user-select:text; font-size:16px; min-height:42px; }
.modalBody button,.modalHead button { position:relative; z-index:2; pointer-events:auto; touch-action:manipulation; min-height:40px; }

/* Amélioration lisibilité DABOU-SERVICE : dashboard, filtres et recherche */
.dashCards .metricValue,.metricValue,.kpiValue{font-size:clamp(25px,2.2vw,34px)!important;line-height:1.2!important;font-weight:800!important}
.dashCards .metricLabel,.metricLabel{font-size:15px!important;font-weight:700!important}
.dashHeader h1,.dashHeader h2,#view h1{font-size:clamp(25px,2.2vw,32px)!important}
#view h2{font-size:21px!important;line-height:1.35}
#view table{font-size:14px!important}
#view th{font-size:14px!important;font-weight:800!important}
#view td{padding:10px 9px!important}
.searchControls{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin:14px 0}
.searchControls label{display:flex;flex-direction:column;gap:6px;min-width:145px;flex:1;font-weight:700;font-size:14px}
.searchControls input,.searchControls select{padding:11px 12px;border:1px solid #c7d6e2;border-radius:9px;background:#fff;color:#183b57;font-size:15px;min-height:42px}
.searchPanel{overflow-x:auto}
@media(max-width:700px){#view{padding:12px 10px 70px}.dashCards .metricValue,.metricValue,.kpiValue{font-size:25px!important}#view h2{font-size:19px!important}.searchControls label{min-width:100%;}.searchControls .btn{min-height:44px;font-size:15px}}

/* DABOU-SERVICE Glass Dashboard V3 — animations fluides PC + Android */
.mockDash{isolation:isolate;background-image:radial-gradient(circle at 12% 8%,rgba(42,222,198,.18),transparent 28%),radial-gradient(circle at 88% 18%,rgba(61,157,255,.18),transparent 30%),linear-gradient(135deg,#03152e 0%,#07365a 52%,#062443 100%);}
.mockHeader{background:linear-gradient(125deg,rgba(9,45,79,.88),rgba(7,34,64,.72));border:1px solid rgba(133,216,255,.32);box-shadow:0 12px 34px rgba(0,0,0,.24),inset 0 1px rgba(255,255,255,.10);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);animation:glassSlideIn .55s cubic-bezier(.2,.8,.2,1) both;}
.mockHero{animation:heroReveal .75s cubic-bezier(.2,.8,.2,1) .08s both;border-color:rgba(105,224,255,.52);}
.mockHero:after{background:linear-gradient(110deg,rgba(3,24,52,.40),transparent 48%,rgba(18,198,188,.18));}
.mockHeroLogo{border:1px solid rgba(255,255,255,.28);box-shadow:0 8px 24px rgba(0,0,0,.18);backdrop-filter:blur(8px);}
.mockMetric{border:1px solid rgba(255,255,255,.25);box-shadow:0 9px 24px rgba(0,0,0,.22),inset 0 1px rgba(255,255,255,.14);will-change:transform;}
.mockMetric:focus-within,.mockMetric:focus{outline:2px solid #7cecff;outline-offset:2px;}
.mockMetric:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 20%,rgba(255,255,255,.15) 45%,transparent 68%);transform:translateX(-130%);animation:glassShimmer 7s ease-in-out infinite;}
.mockMetric:nth-child(2):after{animation-delay:.7s}.mockMetric:nth-child(3):after{animation-delay:1.4s}.mockMetric:nth-child(4):after{animation-delay:2.1s}
.mockPanel{background:linear-gradient(145deg,rgba(5,39,73,.94),rgba(4,27,55,.96));border:1px solid rgba(69,174,231,.42);box-shadow:0 10px 28px rgba(0,0,0,.22),inset 0 1px rgba(255,255,255,.06);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease;}
.mockPanel h3{background:linear-gradient(90deg,rgba(11,89,143,.38),transparent);}
.mockPanel:hover{transform:translateY(-3px);border-color:rgba(74,222,255,.72);box-shadow:0 15px 32px rgba(0,0,0,.28),0 0 0 1px rgba(56,189,248,.08);}
.mockFilterBtn,.mockMenu,.mockMobileNav button,.sidebar nav button{transition:transform .18s ease,background .18s ease,box-shadow .18s ease,color .18s ease;}
.mockFilterBtn:hover,.mockMenu:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(0,0,0,.22);}
.mockMobileNav button:active,.mockFilterBtn:active{transform:scale(.96);}
.mockDonut,.mockBigDonut{filter:drop-shadow(0 4px 10px rgba(0,0,0,.18));}
.mockChart .mockBar{transition:filter .2s ease,opacity .2s ease;}
.mockChart .mockBar:hover{filter:brightness(1.28) drop-shadow(0 0 5px rgba(61,220,255,.45));}
@keyframes glassSlideIn{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}
@keyframes heroReveal{0%{opacity:0;transform:translateY(14px) scale(.985);filter:saturate(.65)}100%{opacity:1;transform:none;filter:saturate(1)}}
@keyframes glassShimmer{0%,72%,100%{transform:translateX(-130%)}85%{transform:translateX(130%)}}
@media(prefers-reduced-motion:reduce){.mockDash *, .mockDash *:before, .mockDash *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}


/* V6 — refonte Glassy Dashboard inspirée de la vidéo de référence */
.mockDash{
  position:relative;isolation:isolate;
  background:radial-gradient(ellipse at 8% 0%,rgba(114,211,255,.22),transparent 35%),radial-gradient(ellipse at 95% 20%,rgba(69,229,199,.14),transparent 32%),linear-gradient(135deg,#07192b 0%,#0a2b43 48%,#081d32 100%);
  padding:12px 12px 82px;color:#f4faff
}
.mockDash:before{content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;background:linear-gradient(120deg,transparent 0%,rgba(255,255,255,.035) 40%,transparent 68%);background-size:220% 100%;animation:glassAmbient 16s ease-in-out infinite}
.mockHeader{grid-template-columns:minmax(210px, .9fr) minmax(280px,1.5fr) minmax(125px,.55fr);gap:12px;padding:12px 14px;border-radius:20px;background:linear-gradient(135deg,rgba(255,255,255,.13),rgba(255,255,255,.045));border:1px solid rgba(210,240,255,.28);box-shadow:0 16px 42px rgba(0,0,0,.22),inset 0 1px rgba(255,255,255,.18);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
.mockBrand>img{width:58px;height:58px;object-fit:contain;border-radius:14px;border:1px solid rgba(255,255,255,.4);box-shadow:0 7px 20px rgba(0,0,0,.18)}
.mockBrand b{font-size:clamp(15px,1.45vw,22px);letter-spacing:.04em}.mockBrand strong{font-size:12px;color:#9cebdc}.mockBrand small{font-size:10px;color:#c8dce9}
.mockFilters{gap:8px}.mockFilters label{padding:8px 10px;border-radius:12px;background:rgba(255,255,255,.075);border:1px solid rgba(220,242,255,.22);color:#d8edf9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.mockFilters select{background:transparent;color:#fff;font-size:12px;padding:4px 0}.mockFilters select option{color:#10263a;background:#fff}
.mockFilterBtn{padding:10px 12px;border-radius:12px;border:1px solid rgba(164,225,255,.36);background:linear-gradient(135deg,rgba(61,159,230,.35),rgba(36,93,145,.22));box-shadow:inset 0 1px rgba(255,255,255,.12),0 8px 20px rgba(0,0,0,.12);font-size:11px;white-space:normal}
.presentFilterBtn{background:linear-gradient(135deg,rgba(14,197,157,.36),rgba(9,126,120,.2))}
.mockUser>span{width:42px;height:42px;background:rgba(224,246,255,.94);box-shadow:0 5px 18px rgba(0,0,0,.16)}
.mockFilterSummary{padding:9px 13px;margin:9px 0;border-radius:13px;background:rgba(255,255,255,.07);border:1px solid rgba(205,236,255,.18);color:#c2d9e8;font-size:11px;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.mockFilterSummary b{color:#fff}
.mockHero{height:clamp(100px,12vw,155px);margin:12px 0;border-radius:20px;border:1px solid rgba(223,244,255,.28);box-shadow:0 14px 30px rgba(0,0,0,.22);animation:glassRise .7s cubic-bezier(.2,.8,.2,1) both}
.mockHero>img{filter:saturate(1.04) contrast(1.02)}.mockHero:after{background:linear-gradient(90deg,rgba(3,20,35,.12),rgba(6,30,50,.04) 55%,rgba(6,30,50,.2))}
.mockHeroLogo{display:none!important}
.mockMetrics{grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:10px}
.mockMetric{min-height:112px;padding:14px 12px;border-radius:19px;border:1px solid rgba(255,255,255,.3);box-shadow:0 14px 30px rgba(0,0,0,.16),inset 0 1px rgba(255,255,255,.22);backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);overflow:hidden;animation:glassRise .55s cubic-bezier(.2,.8,.2,1) both}
.mockMetric:nth-child(2){animation-delay:.04s}.mockMetric:nth-child(3){animation-delay:.08s}.mockMetric:nth-child(4){animation-delay:.12s}.mockMetric:nth-child(5){animation-delay:.16s}.mockMetric:nth-child(6){animation-delay:.2s}.mockMetric:nth-child(7){animation-delay:.24s}
.mockMetric:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(130deg,rgba(255,255,255,.2),transparent 48%);opacity:.7}
.mockMetricIcon{width:46px;height:46px;flex-basis:46px;background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.2);box-shadow:inset 0 1px rgba(255,255,255,.2)}
.mockMetric small{font-size:11px;white-space:normal;line-height:1.25}.mockMetric strong{font-size:clamp(17px,1.7vw,23px);margin:6px 0 4px}.mockMetric em{font-size:9px;line-height:1.3;color:rgba(255,255,255,.88)}.mockMetricArrow{font-size:24px;opacity:.55}
.mmGreen{background:linear-gradient(135deg,rgba(14,194,124,.92),rgba(8,117,91,.78))}.mmBlue{background:linear-gradient(135deg,rgba(45,142,238,.94),rgba(29,76,164,.82))}.mmPurple{background:linear-gradient(135deg,rgba(157,90,245,.94),rgba(94,50,177,.84))}.mmCyan{background:linear-gradient(135deg,rgba(20,195,211,.94),rgba(8,123,158,.84))}.mmOrange{background:linear-gradient(135deg,rgba(255,165,49,.96),rgba(221,91,27,.84))}.mmPink{background:linear-gradient(135deg,rgba(238,70,176,.94),rgba(155,34,129,.84))}.mmTeal{background:linear-gradient(135deg,rgba(27,194,173,.94),rgba(8,119,126,.84))}
.mockGrid3{grid-template-columns:minmax(0,1.45fr) minmax(0,1fr) minmax(0,1fr);gap:10px;margin-top:10px}.mockGridBottom{gap:10px;margin-top:10px}
.mockPanel{min-height:205px;border-radius:18px;background:linear-gradient(145deg,rgba(255,255,255,.105),rgba(255,255,255,.045));border:1px solid rgba(209,238,255,.2);box-shadow:0 14px 32px rgba(0,0,0,.16),inset 0 1px rgba(255,255,255,.1);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);animation:glassRise .65s ease both}
.mockPanel h3{padding:13px 15px;border-bottom:1px solid rgba(207,236,255,.16);background:linear-gradient(90deg,rgba(103,191,238,.12),transparent);font-size:12px;letter-spacing:.035em;color:#f4fbff}
.mockChartLegend{font-size:10px;color:#b9e7f6;padding:9px 14px}.mockChartArea{height:155px;padding:8px 14px}.mockBars{border-color:rgba(190,226,245,.22);background:repeating-linear-gradient(to top,transparent 0,transparent 35px,rgba(191,226,245,.08) 36px)}
.mockBar{background:linear-gradient(180deg,#6ef0c7,#22a9ee);border-radius:6px 6px 2px 2px;box-shadow:0 0 12px rgba(62,210,221,.12)}.mockBar b{font-size:8px;color:#e8f8ff}.mockBar span{font-size:8px;color:#c5dce8}.mockDetail{font-size:10px;color:#c1d9e8;padding:9px 14px}.mockDetail b{color:#fff}
.mockDonutRow{min-height:160px}.mockDonut>div,.mockBigDonut>div{background:#102b42;border:1px solid rgba(255,255,255,.12)}.mockDonut b,.mockBigDonut b{font-size:12px;color:#fff}.mockDonut span,.mockBigDonut span{font-size:8px;color:#bad5e5}.mockLegend{font-size:10px;color:#e0eff7}.mockHBarList>div{font-size:9px;grid-template-columns:minmax(70px,95px) 1fr 55px;gap:8px}.mockHBarList b{font-size:9px}.mockHBarList i{height:9px;border-radius:8px}.mockListRow{font-size:10px;border-bottom-color:rgba(209,238,255,.12)}.mockTableWrap table{font-size:9px}.mockTableWrap th,.mockTableWrap td{border-bottom-color:rgba(209,238,255,.12);padding:7px 6px}.mockTableWrap th{color:#bdefff;background:rgba(81,172,224,.12)}.mockStats div{font-size:10px;border-bottom-color:rgba(209,238,255,.12)}.mockSummary p{font-size:9px;color:#c1d9e8}.mockFooter{font-size:9px;border-color:rgba(209,238,255,.16);color:#b6d1e1}
.mockMobileNav{background:rgba(5,22,39,.94);border-top:1px solid rgba(190,232,255,.24);box-shadow:0 -12px 35px rgba(0,0,0,.25);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}.mockMobileNav button{border-right:1px solid rgba(190,232,255,.1);font-size:20px}.mockMobileNav button span{font-size:10px}.mockMobileNav button.active{color:#7ce8ff;background:linear-gradient(180deg,rgba(51,158,222,.24),rgba(255,255,255,.035));box-shadow:inset 0 2px #6fe3f7}
@keyframes glassRise{from{opacity:0;transform:translateY(16px) scale(.985);filter:blur(4px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}
@keyframes glassAmbient{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
@media(max-width:1100px){.mockHeader{grid-template-columns:minmax(190px,.8fr) minmax(260px,1.5fr)}.mockUser{grid-column:1/-1;justify-content:flex-start}.mockGrid3{grid-template-columns:repeat(2,minmax(0,1fr))}.mockGrid3>.mockChart{grid-column:1/-1}.mockMetrics{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){
 .androidShell .mockDash{margin:-12px -10px -70px;padding:9px 9px 80px;background-image:radial-gradient(ellipse at 10% 0%,rgba(114,211,255,.19),transparent 34%),linear-gradient(145deg,#07192b 0%,#0a2b43 52%,#081d32 100%)}
 .androidShell .mockHeader{grid-template-columns:36px minmax(0,1fr) 38px;gap:7px;padding:10px;border-radius:18px;position:relative;top:auto}
 .androidShell .mockMenu{display:grid;place-items:center;width:36px;height:40px;border:1px solid rgba(219,241,255,.24);border-radius:12px;background:rgba(255,255,255,.09);color:#fff;font-size:19px}
 .androidShell .mockBrand{gap:7px}.androidShell .mockBrand>img{width:42px;height:42px;border-radius:11px}.androidShell .mockBrand b{font-size:clamp(13px,3.6vw,17px);white-space:normal;line-height:1.1}.androidShell .mockBrand strong{font-size:10px}.androidShell .mockBrand small{font-size:9px}
 .androidShell .mockFilters{grid-column:1/-1;grid-row:2;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.androidShell .mockFilters label{font-size:10px;padding:7px 8px;border-radius:11px}.androidShell .mockFilters select{font-size:11px}.androidShell .mockFilterBtn{font-size:10px;min-height:40px;padding:8px 5px;border-radius:11px;line-height:1.25}
 .androidShell .mockUser{display:none}.androidShell .mockFilterSummary{font-size:10px;padding:9px 10px;gap:4px;align-items:flex-start}.androidShell .mockFilterSummary span{line-height:1.35}
 .androidShell .mockHero{height:95px;margin:9px 0;border-radius:16px}.androidShell .mockHeroLogo{display:none!important}
 .androidShell .mockMetrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:8px}.androidShell .mockMetric{min-height:100px;padding:10px 8px;gap:7px;border-radius:16px;align-items:center}.androidShell .mockMetricIcon{width:35px;height:35px;flex-basis:35px;font-size:18px}.androidShell .mockMetric small{font-size:10px;line-height:1.2}.androidShell .mockMetric strong{font-size:clamp(16px,4.5vw,20px);white-space:normal;overflow-wrap:anywhere}.androidShell .mockMetric em{font-size:8px;line-height:1.25}.androidShell .mockMetricArrow{right:6px;font-size:20px}.androidShell .mockMetric:nth-child(7){grid-column:1/-1;min-height:86px}
 .androidShell .mockGrid3,.androidShell .mockGridBottom{grid-template-columns:minmax(0,1fr);gap:8px;margin-top:8px}.androidShell .mockGrid3>.mockChart{grid-column:auto}.androidShell .mockPanel{min-height:0;border-radius:16px}.androidShell .mockPanel h3{font-size:11px;padding:12px}.androidShell .mockChartLegend{font-size:9px;gap:10px;flex-wrap:wrap}.androidShell .mockChartArea{height:155px}.androidShell .mockBar b,.androidShell .mockBar span{font-size:8px}.androidShell .mockDonutRow{height:auto;min-height:140px;flex-wrap:wrap}.androidShell .mockLegend{font-size:10px}.androidShell .mockHBarList>div{grid-template-columns:minmax(65px,85px) 1fr 50px;font-size:9px}.androidShell .mockHBarList b{font-size:9px}.androidShell .mockTableWrap{font-size:9px}.androidShell .mockTableWrap table{font-size:9px}.androidShell .mockFooter{display:none}
 .androidShell .mockMobileNav{height:66px;grid-template-columns:repeat(6,minmax(0,1fr));padding-bottom:env(safe-area-inset-bottom);height:calc(62px + env(safe-area-inset-bottom))}.androidShell .mockMobileNav button{font-size:19px;gap:3px}.androidShell .mockMobileNav button span{font-size:9px}
}
@media(prefers-reduced-motion:reduce){.mockDash:before,.mockDash .mockMetric,.mockDash .mockPanel,.mockDash .mockHero{animation:none!important;transition:none!important}}


/* V7 — refonte visuelle alignée sur la vidéo « Dashboard with AI V2 » : interface claire, minimaliste, financière */
.mockDash{background:#f5f6fa!important;color:#222633!important;padding:20px 22px 82px!important;isolation:isolate;}
.mockDash:before{display:none!important}
.mockHeader{grid-template-columns:minmax(210px,.9fr) minmax(270px,1.5fr) minmax(120px,.5fr)!important;gap:14px!important;padding:12px 16px!important;border-radius:16px!important;background:#fff!important;border:1px solid #e8e9ef!important;box-shadow:0 4px 18px rgba(31,41,55,.055)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
.mockBrand>img{width:48px!important;height:48px!important;border-radius:12px!important;border:1px solid #f0e6df!important;box-shadow:none!important}
.mockBrand b{color:#1f2430!important;font-size:clamp(15px,1.4vw,20px)!important;letter-spacing:0!important}.mockBrand strong{color:#d66b31!important;font-size:12px!important}.mockBrand small{color:#858b98!important;font-size:10px!important}
.mockMenu{background:#f3f4f7!important;color:#333b49!important;border:1px solid #e7e8ed!important;border-radius:10px!important}
.mockFilters{gap:7px!important}.mockFilters label{background:#f8f9fb!important;border:1px solid #eceef3!important;border-radius:9px!important;color:#777f8d!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;padding:7px 9px!important}.mockFilters select{color:#252b37!important;font-size:11px!important}.mockFilters select option{color:#222;background:#fff}
.mockFilterBtn{background:#fff!important;color:#323947!important;border:1px solid #e6e8ee!important;border-radius:9px!important;box-shadow:none!important;padding:8px 10px!important;font-size:11px!important}.mockFilterBtn:hover{background:#f5f6f9!important;box-shadow:0 4px 10px #1f29370d!important}.presentFilterBtn{background:#fff7f1!important;border-color:#f5dfd0!important;color:#a74b1f!important}
.mockUser>span{background:#fff0e6!important;color:#d96b31!important;box-shadow:none!important}.mockUser b{color:#242a35!important}.mockUser small,.mockUser em{color:#828896!important}
.videoOverviewHead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:22px 2px 13px}.videoOverviewHead h1{margin:0;color:#202530;font-size:clamp(21px,2vw,29px);font-weight:750;letter-spacing:-.035em}.videoOverviewHead p{margin:6px 0 0;color:#8a909c;font-size:12px}.videoPeriodTag{white-space:nowrap;border:1px solid #e8eaf0;background:#fff;border-radius:18px;padding:8px 12px;font-size:10px;color:#717987}
.videoTabs{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:0 0 14px;padding:5px;background:#fff;border:1px solid #e9eaf0;border-radius:12px;width:max-content;max-width:100%;box-shadow:0 2px 8px rgba(31,41,55,.025)}.videoTabs button{border:0;border-radius:8px;background:transparent;color:#828895;padding:9px 15px;font-size:11px;font-weight:650;transition:background .2s ease,color .2s ease,transform .2s ease}.videoTabs button.active{background:#252a35;color:#fff;box-shadow:0 3px 8px #252a351f}.videoTabs button:hover{color:#d66b31;transform:translateY(-1px)}
.mockFilterSummary{display:flex;justify-content:space-between;gap:10px;padding:10px 13px;margin:0 0 14px;border-radius:10px;background:#fff;border:1px solid #e9eaf0;color:#858b97;font-size:10px;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}.mockFilterSummary b{color:#303642}
.mockHero{display:none!important}
.mockMetrics{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))!important;gap:12px!important;margin:0 0 14px!important}
.mockMetric{position:relative;min-height:116px!important;padding:16px!important;gap:12px!important;align-items:center!important;border-radius:15px!important;background:#fff!important;color:#252a35!important;border:1px solid #e9eaf0!important;box-shadow:0 4px 16px rgba(31,41,55,.045)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;overflow:hidden;animation:videoCardIn .55s cubic-bezier(.2,.8,.2,1) both!important;text-align:left!important}
.mockMetric:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#d86b35;opacity:1!important}.mockMetric:nth-child(2):before{background:#5389e8}.mockMetric:nth-child(3):before{background:#20a47c}.mockMetric:nth-child(4):before{background:#a07be5}.mockMetric:nth-child(5):before{background:#edaa45}.mockMetric:nth-child(6):before{background:#e875a7}.mockMetric:nth-child(7):before{background:#4aa7b8}
.mockMetric:nth-child(2){animation-delay:.04s!important}.mockMetric:nth-child(3){animation-delay:.08s!important}.mockMetric:nth-child(4){animation-delay:.12s!important}.mockMetric:nth-child(5){animation-delay:.16s!important}.mockMetric:nth-child(6){animation-delay:.2s!important}.mockMetric:nth-child(7){animation-delay:.24s!important}
.mockMetricIcon{width:42px!important;height:42px!important;flex-basis:42px!important;background:#fff1e8!important;border:0!important;box-shadow:none!important;color:#d66b31!important;border-radius:13px!important}.mmBlue .mockMetricIcon{background:#edf4ff!important;color:#427ddd!important}.mmPurple .mockMetricIcon{background:#f3edff!important;color:#8c5bce!important}.mmCyan .mockMetricIcon{background:#e9fbfa!important;color:#149d9b!important}.mmOrange .mockMetricIcon{background:#fff4df!important;color:#d58b1c!important}.mmPink .mockMetricIcon{background:#fff0f6!important;color:#d85b91!important}.mmTeal .mockMetricIcon{background:#e9f8fa!important;color:#2794a3!important}
.mockMetric small{color:#858b98!important;font-size:11px!important;font-weight:550;line-height:1.35}.mockMetric strong{color:#252a35!important;font-size:clamp(19px,1.8vw,25px)!important;letter-spacing:-.025em;margin:7px 0 5px!important}.mockMetric em{color:#969ba6!important;font-size:9px!important;line-height:1.35}.mockMetricArrow{color:#9ca2ae!important;opacity:.7!important}.mmGreen,.mmBlue,.mmPurple,.mmCyan,.mmOrange,.mmPink,.mmTeal{background:#fff!important}
.mockGrid3{grid-template-columns:minmax(0,1.45fr) minmax(0,1fr) minmax(0,1fr)!important;gap:12px!important;margin-top:12px!important}.mockGridBottom{gap:12px!important;margin-top:12px!important}
.mockPanel{min-width:0;min-height:205px!important;border-radius:15px!important;background:#fff!important;border:1px solid #e8eaf0!important;box-shadow:0 4px 16px rgba(31,41,55,.04)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;animation:videoCardIn .55s ease both!important;color:#303541!important}.mockPanel h3{padding:14px 16px!important;border-bottom:1px solid #eff0f4!important;background:#fff!important;color:#343945!important;font-size:11px!important;letter-spacing:.025em!important;font-weight:750!important}.mockChartLegend{color:#858c99!important;font-size:10px!important;padding:10px 15px!important}.mockChartArea{height:165px!important;padding:8px 15px!important}.mockBars{border-color:#e9ebf1!important;background:repeating-linear-gradient(to top,transparent 0,transparent 38px,#f1f2f6 39px)!important}.mockBar{background:linear-gradient(180deg,#f4a16c,#dd6637)!important;border-radius:5px 5px 1px 1px!important;box-shadow:none!important}.mockBar b{color:#9a9eaa!important}.mockBar span{color:#9298a4!important}.mockProdOverlay{opacity:.4!important}.mockMiniBar{background:#8bb4f5!important}.mockDetail{color:#858b97!important;font-size:10px!important;padding:10px 15px!important}.mockDetail b{color:#313743!important}
.mockDonutRow{min-height:160px!important}.mockDonut>div,.mockBigDonut>div{background:#fff!important;border:1px solid #f0f1f5!important}.mockDonut b,.mockBigDonut b{color:#303541!important}.mockDonut span,.mockBigDonut span{color:#8b919d!important}.mockLegend{color:#777f8d!important;font-size:10px!important}.mockLegend b{color:#d76a35!important}.mockHBarList>div{color:#626977!important;font-size:10px!important}.mockHBarList i{background:linear-gradient(90deg,#efad7c,#dc6b3a)!important;border-radius:5px!important}.mockHBarList b{color:#303541!important;font-size:10px!important}.mockListRow{color:#656c79!important;border-bottom-color:#eff0f4!important;font-size:10px!important}.mockListRow b{color:#d56b36!important}.mockTableWrap table{font-size:10px!important}.mockTableWrap th,.mockTableWrap td{border-bottom-color:#eff0f4!important;padding:8px 7px!important;color:#606775!important}.mockTableWrap th{color:#858b97!important;background:#f8f9fb!important}.mockStats div{font-size:10px!important;border-bottom-color:#eff0f4!important;color:#717784!important}.mockStats b{color:#303541!important}.mockSummary p{color:#858b97!important;font-size:9px!important}.mockSummary strong{color:#1d9b77!important}.mockFooter{border-color:#e7e9ef!important;color:#9a9fab!important;font-size:9px!important}.mockMobileNav{background:rgba(255,255,255,.97)!important;border-top:1px solid #e4e7ee!important;box-shadow:0 -5px 20px rgba(31,41,55,.08)!important;backdrop-filter:blur(18px)!important;-webkit-backdrop-filter:blur(18px)!important}.mockMobileNav button{color:#747b89!important;border-right:1px solid #f0f1f5!important}.mockMobileNav button.active{color:#d66b31!important;background:#fff3eb!important;box-shadow:inset 0 2px #df713b!important}
@keyframes videoCardIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1100px){.mockHeader{grid-template-columns:minmax(180px,.8fr) minmax(230px,1.3fr)!important}.mockUser{grid-column:1/-1;justify-content:flex-start}.mockGrid3{grid-template-columns:repeat(2,minmax(0,1fr))!important}.mockGrid3>.mockChart{grid-column:1/-1}.mockMetrics{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media(max-width:700px){
 body.androidShell{background:#f5f6fa!important;color:#262b35!important}
 .androidShell .mockDash{margin:-12px -10px -70px!important;padding:10px 10px 84px!important;background:#f5f6fa!important;color:#262b35!important}
 .androidShell .mockHeader{grid-template-columns:36px minmax(0,1fr) 38px!important;gap:8px!important;padding:10px!important;border-radius:15px!important;background:#fff!important;border:1px solid #e9eaf0!important;box-shadow:0 3px 12px rgba(31,41,55,.04)!important}
 .androidShell .mockMenu{width:36px!important;height:38px!important;background:#fff3eb!important;color:#d66b31!important;border:1px solid #f4dfd2!important;border-radius:10px!important}
 .androidShell .mockBrand{gap:7px!important}.androidShell .mockBrand>img{width:42px!important;height:42px!important;border-radius:10px!important;border:1px solid #f0e6df!important}.androidShell .mockBrand b{font-size:clamp(13px,3.8vw,17px)!important;color:#222733!important}.androidShell .mockBrand strong{font-size:10px!important;color:#d66b31!important}.androidShell .mockBrand small{font-size:9px!important;color:#8a909c!important}
 .androidShell .mockFilters{grid-column:1/-1!important;grid-row:2!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px!important}.androidShell .mockFilters label{font-size:10px!important;padding:7px 8px!important;background:#f8f9fb!important;border:1px solid #eceef3!important;color:#727987!important;border-radius:9px!important}.androidShell .mockFilters select{font-size:11px!important;color:#272d38!important}.androidShell .mockFilterBtn{font-size:10px!important;min-height:38px!important;padding:8px 5px!important;background:#fff!important;color:#343a46!important;border:1px solid #e8eaf0!important;border-radius:9px!important;box-shadow:none!important}.androidShell .presentFilterBtn{background:#fff4ec!important;color:#b95729!important;border-color:#f4dfd1!important}
 .androidShell .mockUser{display:none!important}.androidShell .videoOverviewHead{margin:17px 2px 11px!important;align-items:flex-start!important}.androidShell .videoOverviewHead h1{font-size:22px!important}.androidShell .videoOverviewHead p{font-size:11px!important;max-width:240px;line-height:1.45}.androidShell .videoPeriodTag{font-size:8px!important;padding:6px 8px!important}
 .androidShell .videoTabs{width:100%!important;display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:3px!important;padding:4px!important;margin-bottom:10px!important;border-radius:10px!important}.androidShell .videoTabs button{font-size:9px!important;padding:9px 3px!important;white-space:nowrap!important}.androidShell .mockFilterSummary{font-size:9px!important;padding:9px 10px!important;flex-direction:column!important;align-items:flex-start!important;gap:3px!important;border-radius:9px!important;margin-bottom:10px!important}.androidShell .mockHero{display:none!important}
 .androidShell .mockMetrics{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;margin-top:0!important;margin-bottom:10px!important}.androidShell .mockMetric{min-height:100px!important;padding:12px 9px!important;gap:7px!important;border-radius:13px!important;align-items:center!important}.androidShell .mockMetricIcon{width:34px!important;height:34px!important;flex-basis:34px!important;font-size:17px!important;border-radius:10px!important}.androidShell .mockMetric small{font-size:9px!important;line-height:1.25!important}.androidShell .mockMetric strong{font-size:clamp(16px,4.5vw,20px)!important;line-height:1.15!important;overflow-wrap:anywhere!important}.androidShell .mockMetric em{font-size:8px!important;line-height:1.3!important}.androidShell .mockMetricArrow{right:5px!important;font-size:18px!important;color:#9ca2ae!important}.androidShell .mockMetric:nth-child(7){grid-column:1/-1!important;min-height:80px!important}
 .androidShell .mockGrid3,.androidShell .mockGridBottom{grid-template-columns:minmax(0,1fr)!important;gap:9px!important;margin-top:9px!important}.androidShell .mockGrid3>.mockChart{grid-column:auto!important}.androidShell .mockPanel{min-height:0!important;border-radius:13px!important}.androidShell .mockPanel h3{font-size:10px!important;padding:12px!important}.androidShell .mockChartLegend{font-size:9px!important;gap:10px!important;flex-wrap:wrap!important}.androidShell .mockChartArea{height:150px!important}.androidShell .mockBar b,.androidShell .mockBar span{font-size:8px!important}.androidShell .mockDonutRow{height:auto!important;min-height:140px!important;flex-wrap:wrap!important}.androidShell .mockLegend{font-size:10px!important}.androidShell .mockHBarList>div{grid-template-columns:minmax(65px,85px) 1fr 50px!important;font-size:9px!important}.androidShell .mockHBarList b{font-size:9px!important}.androidShell .mockTableWrap,.androidShell .mockTableWrap table{font-size:9px!important}.androidShell .mockFooter{display:none!important}.androidShell .mockMobileNav{background:rgba(255,255,255,.98)!important;border-top:1px solid #e5e8ef!important;box-shadow:0 -5px 20px rgba(31,41,55,.08)!important}.androidShell .mockMobileNav button{color:#7b8290!important;border-right:1px solid #eef0f4!important}.androidShell .mockMobileNav button span{font-size:9px!important}.androidShell .mockMobileNav button.active{color:#d66b31!important;background:#fff3eb!important;box-shadow:inset 0 2px #d66b31!important}
}
@media(prefers-reduced-motion:reduce){.mockDash *,.mockDash *:before,.mockDash *:after{animation:none!important;transition:none!important}}


/* Reçus et pièces jointes par rapport */
.reportAttachments{margin:14px 0;padding:14px;border:1px solid #cbdbe6;border-radius:10px;background:#f7fbfe}.reportAttachments h4{margin:0 0 8px;color:#0b4d83}.attachmentList{display:grid;gap:8px}.attachmentItem{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px;background:#fff;border:1px solid #d9e4ec;border-radius:8px}.attachmentItem img{width:64px;height:54px;object-fit:cover;border-radius:5px}.attachmentName{flex:1;min-width:120px;overflow-wrap:anywhere}.attachmentIcon{font-size:26px}.receiptPrintArea{max-width:720px;margin:0 auto;padding:26px;border:2px solid #174d7a;border-radius:10px;background:#fff;color:#18324a}.receiptBrand{text-align:center;font-size:23px;font-weight:800;color:#174d7a;letter-spacing:.5px}.receiptTitle{text-align:center;font-size:20px;font-weight:800;margin:15px 0 5px}.receiptNo{text-align:center;color:#526b7d;margin-bottom:20px}.receiptLine{display:flex;justify-content:space-between;gap:15px;padding:10px 0;border-bottom:1px solid #dce5ec}.receiptLine span{color:#526b7d}.receiptLine b{text-align:right;overflow-wrap:anywhere}.receiptAmount{font-size:20px;color:#14884b}.receiptWords{margin-top:18px;padding:12px;background:#f1f7fb;border-radius:6px}.receiptSignatures{display:flex;justify-content:space-between;gap:30px;margin-top:45px}.receiptSignatures span{width:50%;padding-top:8px;border-top:1px solid #8093a1;text-align:center;font-size:12px}.receiptForm{grid-template-columns:repeat(2,minmax(0,1fr))}.receiptForm .span2{grid-column:1/-1}
@media print{body.receipt-printing #app,body.receipt-printing #modal .modalHead,body.receipt-printing #modal .modalBody>*:not(.receiptPrintArea),body.receipt-printing .noPrint{display:none!important}body.receipt-printing #modal{position:static;display:block!important;background:#fff;padding:0}body.receipt-printing #modal .modalBox{display:block!important;width:100%;max-width:none;max-height:none;overflow:visible;border:0;box-shadow:none}body.receipt-printing #modal .modalBody{padding:0}body.receipt-printing .receiptPrintArea{border:1px solid #333;border-radius:0;max-width:none;page-break-inside:avoid}}

/* Dossier personnel : photo, aperçu et contrat */
.staffAvatar{width:38px;height:38px;object-fit:cover;border-radius:50%;vertical-align:middle;margin-right:8px;border:2px solid #e5e7eb}.staffAvatarEmpty{display:inline-flex;align-items:center;justify-content:center;background:#eef2f7;color:#64748b}.staffPhotoPreview{display:block;max-width:120px;max-height:120px;object-fit:cover;border-radius:12px;margin-top:8px;border:1px solid #dbe2ea}.staffProfilePreview{display:flex;align-items:center;gap:18px;padding:12px 0 20px}.staffProfilePhoto{width:112px;height:112px;object-fit:cover;border-radius:18px;border:3px solid #e5e7eb}.staffProfileDetails{background:#f8fafc;border-radius:12px;padding:16px;line-height:1.6}.staffProfileDetails p{margin:8px 0}.field textarea{width:100%;min-height:80px;resize:vertical;border:1px solid #d5dce5;border-radius:8px;padding:10px;font:inherit}

/* Portail web complet : écran de connexion Firebase */
.webCloudGate{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:18px;background:radial-gradient(circle at 15% 10%,#1266a1,#061b35 65%,#020b18);font-family:Arial,sans-serif}.webCloudGate.hidden{display:none}.webCloudCard{width:min(430px,100%);box-sizing:border-box;padding:28px;border:1px solid #2b6893;border-radius:18px;background:#071f3c;color:#fff;box-shadow:0 20px 60px #0008}.webCloudCard img{display:block;width:150px;height:90px;object-fit:contain;margin:0 auto 10px}.webCloudCard h1{text-align:center;margin:0 0 5px}.webCloudCard p{text-align:center;color:#b9d9f1;margin:0 0 22px}.webCloudCard label{display:block;margin:14px 0;color:#d9efff;font-weight:700}.webCloudCard input{display:block;box-sizing:border-box;width:100%;margin-top:7px;padding:13px;border:1px solid #447da5;border-radius:9px;background:#102f50;color:white;font-size:16px}.webCloudCard button{width:100%;padding:14px;border:0;border-radius:9px;background:#087fc2;color:white;font-weight:800;font-size:16px}.webCloudCard small{display:block;margin-top:14px;color:#a8c9df;line-height:1.5}


/* RESPONSIVE V4 — adaptation fluide téléphone, tablette, portrait et paysage */
*,*::before,*::after{box-sizing:border-box}
html{width:100%;min-width:0;overflow-x:hidden;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{width:100%;min-width:0;overflow-x:hidden}
#app,main,#view,.panel,.card,.tableWrap,.table-responsive{min-width:0;max-width:100%}
img,svg,canvas,video{max-width:100%;height:auto}
input,select,textarea,button{max-width:100%;font:inherit}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
.tableWrap,.table-responsive,.tableContainer{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
table{max-width:100%;border-collapse:collapse}
@media(max-width:900px){
  .sidebar{width:100%;height:auto;position:relative;inset:auto;z-index:20;padding:8px 10px}
  .sidebar .logo{justify-content:flex-start;padding:5px 8px}
  .sidebar nav{display:flex;gap:6px;overflow-x:auto;overscroll-behavior-x:contain;white-space:nowrap;padding:8px 2px;scrollbar-width:thin}
  .sidebar nav button{flex:0 0 auto;min-height:42px;width:auto;padding:8px 12px}
  .sideFoot{display:none}
  main{margin-left:0!important;width:100%;max-width:100%}
  .topbar{position:sticky;top:0;z-index:15;gap:8px;padding:10px 12px}
  .topActions{gap:6px;flex-wrap:wrap}
  #view{padding:clamp(10px,2.5vw,20px)!important}
  footer{position:static!important;left:auto!important;flex-wrap:wrap;padding:10px 12px}
}
@media(max-width:600px){
  .webCloudGate{padding:14px;min-height:100svh}
  .webCloudCard{width:min(100%,440px);padding:clamp(18px,5vw,26px);border-radius:16px}
  .webCloudCard img{width:clamp(105px,32vw,145px);height:clamp(66px,20vw,86px)}
  .webCloudCard input,.webCloudCard button{min-height:48px;font-size:16px}
  .sidebar{padding:6px}
  .sidebar nav button{font-size:13px;padding:9px 10px}
  .topbar{align-items:flex-start;flex-direction:column}
  .topActions{width:100%;justify-content:space-between}
  .cards,.dashCards{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px}
  .g2,.g3,.g4,.form,.receiptForm{grid-template-columns:minmax(0,1fr)!important}
  .span2,.span4,.receiptForm .span2{grid-column:1!important}
  .field input,.field select,.field textarea,input,select,textarea{min-width:0;font-size:16px}
  .btn,button{min-height:42px}
  .panel{padding:12px!important}
  .modal{padding:8px!important}
  .modalBox{width:100%!important;max-width:100vw!important;max-height:94svh!important}
  .modalBody{overflow:auto!important}
  .receiptPrintArea{padding:14px}
  .receiptSignatures{gap:12px}
}
@media(max-width:380px){
  .cards,.dashCards{grid-template-columns:minmax(0,1fr)!important}
  .webCloudCard h1{font-size:22px}
  .topActions .user{font-size:12px}
}
@media(orientation:landscape) and (max-height:600px){
  .webCloudGate{padding:8px;align-items:center}
  .webCloudCard{width:min(560px,94vw);padding:14px 22px}
  .webCloudCard img{width:92px;height:48px;margin:0 auto 4px}
  .webCloudCard h1{font-size:21px}
  .webCloudCard p{margin:0 0 8px}
  .webCloudCard label{display:grid;grid-template-columns:130px minmax(0,1fr);align-items:center;gap:8px;margin:7px 0}
  .webCloudCard input{margin-top:0;padding:9px 11px;min-height:40px}
  .webCloudCard button{padding:10px;min-height:42px}
  .webCloudCard small{margin-top:7px}
  .sidebar{width:100%;height:auto;position:relative}
  .sidebar nav{display:flex;overflow-x:auto;white-space:nowrap}
  main{margin-left:0!important}
  .topbar{position:relative;flex-direction:row;align-items:center}
  .cards,.dashCards{grid-template-columns:repeat(3,minmax(0,1fr))}
  .g2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .g3{grid-template-columns:repeat(3,minmax(0,1fr))}
  #view{padding:10px 14px 16px!important}
  .modalBox{max-height:96svh!important}
}
@media(orientation:landscape) and (max-height:430px) and (max-width:950px){
  .sidebar nav button{min-height:36px;padding:6px 9px}
  .topbar{padding:6px 10px}
  .webCloudCard{padding:10px 18px}
  .webCloudCard img{display:none}
  .webCloudCard p{margin-bottom:5px}
}
@media(min-width:901px) and (max-width:1200px){
  .sidebar{width:220px}
  main{margin-left:220px}
  #view{padding:18px}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
