@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Manrope:wght@500;600;700&display=swap');
:root{--ink:#0a1118;--ink2:#111b24;--steel:#243240;--paper:#f4f3ef;--paper2:#e9e8e2;--white:#fff;--muted:#7e898f;--line:rgba(10,17,24,.13);--line-dark:rgba(255,255,255,.12);--accent:#c7b27b;--accent2:#e1d5b6;--green:#78a78d;--radius:2px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',Arial,sans-serif}button,input,textarea,select{font:inherit}button,a{transition:.2s ease}a{color:inherit;text-decoration:none}.hidden{display:none!important}.eyebrow{margin:0 0 18px;font-size:11px;font-weight:600;letter-spacing:.19em;color:rgba(255,255,255,.58)}.eyebrow.dark{color:#67737a}.brand-mark{width:36px;height:36px;display:grid;place-items:center;border:1px solid currentColor;font:600 12px 'Manrope';letter-spacing:.08em}.public-header{height:82px;padding:0 5.5vw;display:flex;align-items:center;justify-content:space-between;background:var(--ink);color:white;border-bottom:1px solid var(--line-dark);position:relative;z-index:10}.brand{display:flex;align-items:center;gap:14px}.brand-word{font:600 14px 'Manrope';letter-spacing:.13em}.public-header nav{display:flex;align-items:center;gap:38px;font-size:13px;color:#cbd1d4}.public-header nav a:hover{color:#fff}.profile-btn{width:40px;height:40px;border:1px solid var(--line-dark);background:transparent;color:#fff;cursor:pointer}.profile-btn:hover{border-color:#fff}.profile-icon{font-size:22px;line-height:1}.hero{min-height:760px;background:var(--ink);color:#fff;position:relative;display:grid;grid-template-columns:1.15fr .85fr;align-items:center;padding:80px 7vw 110px;overflow:hidden}.hero-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:64px 64px;mask-image:linear-gradient(90deg,rgba(0,0,0,.9),transparent 85%)}.hero:after{content:"";position:absolute;width:560px;height:560px;border:1px solid rgba(199,178,123,.22);border-radius:50%;right:-180px;top:65px}.hero-copy,.hero-panel,.hero-meta{position:relative;z-index:2}.hero h1{font:500 clamp(58px,7.2vw,108px)/.94 'Manrope';letter-spacing:-.055em;margin:0 0 32px}.hero h1 span{color:#aeb7ba}.hero-lead{max-width:610px;font-size:18px;line-height:1.65;color:#b7c0c5;margin:0 0 38px}.hero-actions{display:flex;gap:28px;align-items:center}.primary{border:1px solid var(--ink);background:var(--ink);color:white;padding:15px 22px;min-height:48px;cursor:pointer;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.primary:hover{background:#1b2834}.hero .primary{background:var(--accent2);color:var(--ink);border-color:var(--accent2)}.hero .primary:hover{background:#fff;border-color:#fff}.text-link{font-size:13px;color:#c8ced1}.text-link span{margin-left:8px}.hero-panel{display:flex;justify-content:flex-end}.technical-card{width:min(430px,90%);min-height:480px;border:1px solid var(--line-dark);padding:28px;background:rgba(255,255,255,.018);backdrop-filter:blur(3px);position:relative}.technical-top{display:flex;justify-content:space-between;color:#8f9aa0;font-size:10px;letter-spacing:.16em}.technical-line{height:1px;background:rgba(255,255,255,.16);margin:35px 0 9px}.technical-line.short{width:58%;margin-top:0}.technical-figure{display:grid;grid-template-columns:50px 1fr;align-items:center;padding:26px 0;border-bottom:1px solid var(--line-dark)}.technical-figure span{font-size:11px;color:#6f7c84}.technical-figure b{font:500 20px 'Manrope';letter-spacing:.04em}.technical-seal{position:absolute;right:28px;bottom:28px;width:98px;height:98px;border:1px solid var(--accent);color:var(--accent2);display:grid;place-items:center;font:600 18px 'Manrope';letter-spacing:.12em}.technical-seal span{position:absolute;right:10px;bottom:8px;font-size:14px}.hero-meta{position:absolute;left:7vw;right:7vw;bottom:32px;display:flex;justify-content:space-between;font-size:10px;letter-spacing:.16em;color:#66747d}.simple-section{padding:120px 7vw;background:var(--paper)}.section-heading{display:grid;grid-template-columns:1.3fr .7fr;gap:10vw;align-items:end;padding-bottom:65px;border-bottom:1px solid var(--line)}.section-heading h2{font:500 clamp(38px,4.5vw,66px)/1.05 'Manrope';letter-spacing:-.045em;margin:0}.section-heading>p{font-size:15px;line-height:1.7;color:#667177;margin:0 0 6px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);border-left:1px solid var(--line)}.service-grid article{padding:42px 36px 28px;border-right:1px solid var(--line);min-height:300px;position:relative}.service-no{font-size:11px;color:#8c969a}.service-grid h3{font:600 24px 'Manrope';margin:42px 0 16px}.service-grid p{color:#657177;line-height:1.7;font-size:14px;max-width:340px}.service-line{position:absolute;left:36px;right:36px;bottom:28px;height:1px;background:var(--ink)}.request{display:grid;grid-template-columns:.85fr 1.15fr;background:#131d26;color:white}.request-intro{padding:100px 7vw}.request-intro h2{font:500 clamp(42px,4vw,62px)/1.05 'Manrope';letter-spacing:-.04em;margin:0 0 28px}.request-intro>p:not(.eyebrow){color:#aeb8bd;max-width:500px;line-height:1.75}.request-contact{margin-top:74px;padding-top:25px;border-top:1px solid var(--line-dark);display:grid;grid-template-columns:1fr 1fr;gap:20px;color:#d3d8da;font-size:13px;line-height:1.5}.request-form{padding:100px 7vw;background:#1a2631;display:grid;gap:20px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.request-form label,.login label{display:grid;gap:9px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#97a2a8}.request-form input,.request-form textarea,.login input,.login textarea,.login select{width:100%;border:0;border-bottom:1px solid rgba(255,255,255,.22);background:transparent;color:white;padding:12px 0;outline:none;border-radius:0}.request-form input:focus,.request-form textarea:focus{border-bottom-color:#fff}.request-form textarea{min-height:90px;resize:vertical}.request-form input::placeholder,.request-form textarea::placeholder{color:#697780}.file{border:1px dashed rgba(255,255,255,.2)!important;padding:17px!important;grid-template-columns:1fr auto!important;cursor:pointer}.file small{color:#708089;font-size:10px}.file input{display:none}.primary.light{background:var(--accent2);color:var(--ink);border-color:var(--accent2);justify-self:start}.form-status{color:#c8d5cd;font-size:13px}.contact{background:#0c141b;color:#fff;padding:56px 7vw;display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:30px;align-items:start;border-top:1px solid var(--line-dark)}.footer-brand{display:flex;align-items:center;gap:12px;font-family:'Manrope';letter-spacing:.1em}.contact small{display:block;color:#65717a;font-size:9px;letter-spacing:.16em;margin-bottom:10px}.contact b{font-size:13px;font-weight:500;line-height:1.6}.footer-note{font-size:11px;color:#65717a;text-align:right;letter-spacing:.08em}dialog{border:0;padding:0;background:transparent}dialog::backdrop{background:rgba(5,10,14,.78);backdrop-filter:blur(8px)}.login{width:min(490px,calc(100vw - 30px));background:#f7f6f2;color:var(--ink);padding:44px;box-shadow:0 30px 100px rgba(0,0,0,.35);position:relative}.login-brand{display:flex;align-items:center;gap:12px;font:600 12px 'Manrope';letter-spacing:.12em;margin-bottom:46px}.login h2{font:500 42px 'Manrope';letter-spacing:-.04em;margin:0}.login-sub{color:#6e797f;line-height:1.55;margin:10px 0 36px}.login label{color:#5d696f;margin:18px 0 0}.login input,.login textarea,.login select{color:var(--ink);border-bottom-color:#c4c7c4;padding:12px 0}.login input::placeholder,.login textarea::placeholder{color:#a1a7aa}.login .primary{margin-top:28px}.full{width:100%}.x{position:absolute;right:20px;top:18px;border:0;background:none;font-size:25px;color:#798187;cursor:pointer}.hint{font-size:11px;color:#8a9296;text-align:center;margin:18px 0 0}.login-error{min-height:18px;margin:12px 0 0;color:#a64141;font-size:12px;line-height:1.4}.login .primary:disabled{opacity:.6;cursor:wait}.app{min-height:100vh;background:#eef0ef;display:grid;grid-template-columns:250px 1fr}.app aside{background:#0c141b;color:#a8b0b5;border-right:1px solid #26313a;padding:28px 18px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.app-brand{display:flex;align-items:center;gap:12px;color:#fff;padding:0 8px 34px;border-bottom:1px solid var(--line-dark)}.app-brand>span:last-child{display:grid;gap:3px}.app-brand b{font:600 12px 'Manrope';letter-spacing:.12em}.app-brand small{font-size:8px;letter-spacing:.18em;color:#5c6972}.app aside nav{display:grid;gap:3px;margin-top:28px}.app aside nav button,.logout{border:0;background:transparent;color:#86929a;text-align:left;padding:12px 11px;cursor:pointer;display:flex;gap:12px;align-items:center;font-size:13px}.app aside nav button:hover,.logout:hover{color:#fff;background:#121f29}.app aside nav button.active{color:#fff;background:#16232d;border-left:2px solid var(--accent)}.nav-icon{width:20px;text-align:center;font-size:14px}.logout{margin-top:auto}.workspace{min-width:0}.app-top{height:102px;background:#fff;border-bottom:1px solid #dfe2e0;display:flex;align-items:center;justify-content:space-between;padding:0 38px}.app-top .eyebrow{margin:0 0 4px}.app-top h2{font:600 24px 'Manrope';margin:0;letter-spacing:-.02em}.top-actions{display:flex;gap:11px;align-items:center}.bell{width:38px;height:38px;border:1px solid #d9dddb;background:#fff;position:relative;cursor:pointer}.bell i{position:absolute;right:-4px;top:-5px;background:var(--ink);color:#fff;min-width:17px;height:17px;border-radius:9px;font-style:normal;font-size:9px;display:grid;place-items:center}.mini-avatar{width:38px;height:38px;background:#18242d;color:#fff;display:grid;place-items:center;font:600 11px 'Manrope';letter-spacing:.06em}.page{padding:38px;max-width:1500px;margin:auto}.page-kicker{display:flex;justify-content:space-between;border-bottom:1px solid #d9dcda;padding-bottom:11px;margin-bottom:20px;font-size:9px;letter-spacing:.16em;color:#7c8589}.clock-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:18px}.clock-card,.summary-card,.note-card,.admin-grid article,.placeholder{background:#fff;border:1px solid #dfe2e0}.clock-card,.summary-card{padding:30px}.card-head{display:flex;justify-content:space-between;align-items:center;font-size:9px;letter-spacing:.15em;color:#7e888c}.live-dot{color:#5c8a72}.clock-card h3{font:500 18px 'Manrope';margin:34px 0 5px;text-transform:capitalize}.clock{font:500 clamp(65px,8vw,118px)/.95 'Manrope';letter-spacing:-.07em;margin:10px 0 16px}.status{font-size:13px;color:#738087;margin-bottom:30px}.punch{width:100%;padding:17px;background:var(--ink);color:white;border:1px solid var(--ink);font-size:11px;letter-spacing:.12em;font-weight:600;cursor:pointer}.punch:hover{background:#1c2832}.linkbtn{display:block;margin:14px auto 0;border:0;background:none;color:#637078;text-decoration:underline;text-underline-offset:4px;font-size:12px;cursor:pointer}.hours{font:500 68px 'Manrope';letter-spacing:-.06em;margin:28px 0 0}.hours span{font-size:30px;margin:0 5px}.summary-card>p{color:#7d878c;margin-top:0}.bar{height:4px;background:#e8eae8;margin:26px 0}.bar span{display:block;width:77%;height:100%;background:var(--ink)}.summary-row{display:flex;justify-content:space-between;border-bottom:1px solid #eceeec;padding:0 0 18px;font-size:12px}.history-title{font-size:10px;letter-spacing:.12em;color:#778187;margin:20px 0 8px}.history p{display:grid;grid-template-columns:70px 1fr auto;gap:10px;padding:13px 0;border-bottom:1px solid #eceeec;margin:0;font-size:12px}.history span{color:#7a858a}.history em{font-style:normal;color:#7a858a}.note-card{margin-top:18px;padding:22px;display:grid;grid-template-columns:220px 1fr auto;gap:20px;align-items:center}.note-card b{font:600 14px 'Manrope'}.note-card p{margin:5px 0 0;color:#899195;font-size:11px}.note-card textarea{border:1px solid #d9dcda;background:#f8f9f8;padding:12px;min-height:48px;resize:vertical}.secondary{background:#fff;border:1px solid #cfd4d1;color:var(--ink);padding:12px 17px;cursor:pointer;font-size:11px;font-weight:600}.secondary:hover{border-color:#8b969b}.toolbar{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:25px}.toolbar h3{font:600 28px 'Manrope';letter-spacing:-.03em;margin:0}.toolbar .eyebrow{margin-bottom:5px}.toolbar-actions{display:flex;gap:10px;align-items:center}.search{width:330px;border:1px solid #d7dcda;background:white;padding:13px 14px;outline:none}.week{display:grid;grid-template-columns:repeat(5,1fr);background:#fff;border:1px solid #dfe2e0}.week article{min-height:490px;padding:20px;border-right:1px solid #e3e5e3}.week article:last-child{border-right:0}.week article>small{font-size:10px;letter-spacing:.11em;color:#7d878b}.event{display:grid;grid-template-columns:48px 1fr;gap:10px;margin-top:24px;padding:15px 0;border-top:1px solid #e4e6e4}.event b{font-size:12px}.event span{font-size:13px;line-height:1.5}.event em{font-style:normal;color:#7a8488;font-size:11px}.muted-event{opacity:.45}.kanban{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.column{background:#e9ecea;border:1px solid #dce0de;padding:13px;min-height:570px}.column>header{display:flex;justify-content:space-between;align-items:center;padding:8px 5px 17px}.column>header>div{display:flex;align-items:center;gap:8px}.column>header div span{font-size:9px;color:#8a9498}.column>header b{font:600 12px 'Manrope'}.column>header>span{font-size:10px;background:#d9dddb;padding:4px 7px}.job{padding:18px;background:#fff;border:1px solid #d9dddb;margin-bottom:10px}.job small{font-size:9px;letter-spacing:.1em;color:#818b90}.job>b{display:block;margin:10px 0 7px;font:600 15px 'Manrope'}.job p{color:#7b858a;font-size:11px;margin:0 0 13px}.job button{width:100%;border:1px solid #d4d8d6;background:#f8f9f8;color:#1a252e;padding:9px;font-size:10px;cursor:pointer}.job button+button{margin-top:6px}.job button.back{background:#fff;color:#6d777c}.job.done{opacity:.72}.client-list{display:grid;background:#fff;border:1px solid #dfe2e0}.client-list article{display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:16px;padding:20px 22px;border-bottom:1px solid #e8eae8}.client-list article:last-child{border-bottom:0}.client-list b{font:600 15px 'Manrope'}.client-list p{margin:5px 0 0;color:#7b8589;font-size:12px}.initial{width:42px;height:42px;border:1px solid #cfd4d1;display:grid;place-items:center;font:600 10px 'Manrope'}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.admin-grid article{padding:28px}.admin-grid small{font-size:9px;letter-spacing:.13em;color:#7b8589}.admin-grid h3{font:600 24px 'Manrope';letter-spacing:-.03em}.admin-grid p{color:#737f85;line-height:1.6}.placeholder{padding:38px}.placeholder h3{font:600 30px 'Manrope';margin:0 0 12px}.placeholder p:last-child{color:#778287}.form-status{min-height:16px}
@media(max-width:980px){.public-header nav{display:none}.hero{grid-template-columns:1fr;min-height:700px}.hero-panel{display:none}.section-heading{grid-template-columns:1fr;gap:30px}.service-grid{grid-template-columns:1fr;border-top:1px solid var(--line)}.service-grid article{border-bottom:1px solid var(--line);min-height:220px}.request{grid-template-columns:1fr}.app{grid-template-columns:76px 1fr}.app-brand>span:last-child,.app aside nav button>span:last-child,.logout>span:last-child{display:none}.app-brand{justify-content:center;padding-left:0;padding-right:0}.app aside nav button,.logout{justify-content:center}.clock-grid,.admin-grid{grid-template-columns:1fr}.kanban{grid-template-columns:1fr}.week{display:flex;overflow-x:auto}.week article{min-width:230px}.note-card{grid-template-columns:1fr}.toolbar{align-items:stretch;flex-direction:column}.toolbar-actions{flex-wrap:wrap}.search{width:100%}.contact{grid-template-columns:1fr 1fr}.footer-note{text-align:left}}
@media(max-width:600px){.public-header{height:68px;padding:0 20px}.brand-word{font-size:12px}.hero{padding:70px 22px 95px;min-height:640px}.hero h1{font-size:56px}.hero-lead{font-size:15px}.hero-actions{align-items:flex-start;flex-direction:column}.hero-meta{left:22px;right:22px}.simple-section{padding:75px 22px}.section-heading{padding-bottom:38px}.service-grid{border-left:0}.service-grid article{border-left:1px solid var(--line)}.request-intro,.request-form{padding:70px 22px}.field-row{grid-template-columns:1fr}.contact{padding:48px 22px;grid-template-columns:1fr}.app{grid-template-columns:1fr;padding-bottom:68px}.app aside{position:fixed;z-index:30;bottom:0;top:auto;height:68px;width:100%;padding:7px 10px;border-right:0;border-top:1px solid #26313a}.app-brand,.logout{display:none}.app aside nav{grid-template-columns:repeat(5,1fr);margin:0}.app aside nav button{padding:8px 2px}.app aside nav button:nth-child(n+6){display:none}.app aside nav button>span:last-child{display:block;font-size:8px}.nav-icon{font-size:15px}.app-top{height:84px;padding:0 18px}.page{padding:22px 16px}.clock-card,.summary-card{padding:22px}.clock{font-size:70px}.history p{grid-template-columns:58px 1fr}.history em{display:none}.note-card{padding:18px}.toolbar h3{font-size:24px}.toolbar-actions{display:grid;grid-template-columns:1fr}.week article{min-height:410px}.login{padding:34px 24px}.login-brand{margin-bottom:34px}}

.admin-tabs{display:flex;gap:0;border-bottom:1px solid #d9dcda;margin:-5px 0 28px}.admin-tabs button{border:0;background:transparent;padding:13px 20px 13px 0;margin-right:28px;color:#7b858a;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;border-bottom:2px solid transparent}.admin-tabs button.active{color:var(--ink);border-bottom-color:var(--ink)}.section-note{color:#788388;font-size:12px;max-width:650px;margin:8px 0 0}.personnel-toolbar{align-items:center}.personnel-list{background:#fff;border:1px solid #dfe2e0}.personnel-row{display:grid;grid-template-columns:46px 1fr auto auto;gap:16px;align-items:center;padding:18px 20px;border-bottom:1px solid #e8eae8}.personnel-row:last-child{border-bottom:0}.person-avatar{width:42px;height:42px;background:#18242d;color:#fff;display:grid;place-items:center;font:600 10px 'Manrope';letter-spacing:.08em}.personnel-row b{font:600 14px 'Manrope'}.personnel-row p{margin:4px 0 0;color:#7b8589;font-size:11px}.status-pill{font-size:8px;letter-spacing:.12em;padding:6px 9px;border:1px solid #b9c9bf;color:#557061}.personnel-form{width:min(680px,calc(100vw - 30px))}.permission-box{margin-top:25px;padding:18px;border:1px solid #d9dcda}.permission-box>small{font-size:9px;letter-spacing:.13em;color:#778287}.permission-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:15px}.permission-grid label{display:flex;grid-template-columns:none;align-items:center;gap:9px;margin:0;text-transform:none;letter-spacing:0;color:#354149;font-size:12px}.permission-grid input{width:auto;margin:0;accent-color:#111b24}.personnel-form .field-row{margin-top:4px}.personnel-form .field-row label{margin-top:18px}@media(max-width:600px){.personnel-row{grid-template-columns:42px 1fr auto}.personnel-row .personnel-edit{grid-column:2/4}.status-pill{font-size:7px}.permission-grid{grid-template-columns:1fr}.personnel-toolbar{align-items:stretch}}

.danger{margin-top:10px;border-color:#b42318!important;color:#b42318!important}.danger:hover{background:#fff1f0!important}

/* Pointage v5.5 */
.punch:disabled{opacity:.6;cursor:wait}.punch-privacy{margin:10px 0 0;color:#8a9498;font-size:10px;line-height:1.45;text-align:center}.mini-hours{font-size:62px}.admin-punch-panel{margin-top:28px}.admin-punch-toolbar{margin-bottom:14px}.admin-punch-grid{display:grid;grid-template-columns:1.35fr .85fr;gap:18px}.admin-punch-card{background:#fff;border:1px solid #dfe2e0;padding:22px}.admin-punch-list{margin-top:14px}.admin-punch-row{display:grid;grid-template-columns:minmax(150px,.7fr) minmax(240px,1.4fr) auto;gap:16px;align-items:center;padding:15px 0;border-bottom:1px solid #eceeec}.admin-punch-row:last-child{border-bottom:0}.admin-punch-row>div{display:grid;gap:4px}.admin-punch-row b{font:600 12px 'Manrope'}.admin-punch-row span{font-size:10px;color:#7b858a;line-height:1.4}.admin-location b{font-size:11px;line-height:1.4}.map-link{font-size:10px;font-weight:600;color:var(--ink);white-space:nowrap;text-decoration:underline;text-underline-offset:3px}.empty-admin{font-size:12px;color:#7b858a}.admin-request-row{display:grid;gap:12px;padding:15px 0;border-bottom:1px solid #eceeec}.admin-request-row>div:first-child{display:grid;gap:4px}.admin-request-row b{font:600 12px 'Manrope'}.admin-request-row span,.admin-request-row small{font-size:10px;color:#7b858a;line-height:1.4}.request-actions{display:flex;gap:7px}.request-actions button{flex:1;padding:9px}.request-actions .primary{border:1px solid var(--ink);background:var(--ink);color:#fff;cursor:pointer;font-size:10px;font-weight:600}.hidden{display:none!important}@media(max-width:900px){.admin-punch-grid{grid-template-columns:1fr}.admin-punch-row{grid-template-columns:1fr}.map-link{justify-self:start}}


/* v5.6 · feuille de temps administrateur */
.attendance-manager{margin-top:28px;border-top:1px solid rgba(10,17,24,.12);padding-top:26px}
.attendance-manager-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-end;margin-bottom:18px}
.attendance-manager-head h3{margin:.2rem 0 .35rem;font-size:1.35rem}.attendance-manager-head p{margin:0;color:#68727b;font-size:.9rem}
.attendance-filters{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.attendance-filters label{display:grid;gap:6px;font-size:.72rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#68727b}.attendance-filters select,.attendance-filters input{min-height:42px;border:1px solid #d7dde2;background:white;padding:0 12px;font:inherit;color:#111820;border-radius:2px;min-width:170px}
.attendance-table-wrap{overflow-x:auto;border:1px solid #dfe4e8;background:#fff}.attendance-table{width:100%;border-collapse:collapse;min-width:980px;font-size:.86rem}.attendance-table th{background:#f5f6f7;text-align:left;padding:11px 10px;border-bottom:1px solid #dfe4e8;font-size:.69rem;letter-spacing:.06em;text-transform:uppercase;color:#66717a;white-space:nowrap}.attendance-table td{padding:8px 10px;border-bottom:1px solid #edf0f2;vertical-align:middle}.attendance-table tr:last-child td{border-bottom:0}.attendance-table .day-cell b{display:block}.attendance-table .day-cell span{color:#7b858d;font-size:.75rem}.attendance-table input[type=time],.attendance-table select{width:100%;min-width:105px;min-height:38px;border:1px solid #d7dde2;background:#fff;padding:0 8px;font:inherit;color:#111820;border-radius:2px}.attendance-table .status-select{min-width:125px}.attendance-table .total-cell{font-weight:800;white-space:nowrap}.attendance-table .save-day{min-height:38px;padding:0 12px}.attendance-table tr.absent-row{background:#faf8f5}.attendance-table tr.absent-row input[type=time]{opacity:.45}.attendance-foot{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-top:12px;min-height:42px}.attendance-foot span{font-size:.86rem;color:#66717a}.attendance-foot .primary{white-space:nowrap}
@media(max-width:760px){.attendance-manager-head{display:block}.attendance-filters{margin-top:14px}.attendance-filters label{flex:1;min-width:145px}.attendance-filters select,.attendance-filters input{min-width:0;width:100%}.attendance-foot{align-items:flex-start;flex-direction:column}.attendance-foot .primary{width:100%}}

/* v5.7 · absences partielles multiples */
.week-nav-btn{white-space:nowrap}
.attendance-table{min-width:1180px}
.attendance-table .total-cell b{display:block}.attendance-table .total-cell small{display:block;margin-top:4px;color:#8a5d2d;font-weight:700;white-space:nowrap}
.absence-cell{min-width:360px}.absence-list{display:grid;gap:8px;margin-bottom:8px}.absence-block{border:1px solid #e1e5e8;background:#fafafa;padding:8px}.absence-line{display:grid;grid-template-columns:minmax(105px,1.2fr) 92px 18px 92px 34px;gap:6px;align-items:center}.absence-line select,.absence-line input[type=time]{min-width:0!important}.absence-arrow{text-align:center;color:#7b858d}.absence-remove{width:34px;height:38px;border:1px solid #d7dde2;background:#fff;font-size:20px;line-height:1;cursor:pointer}.absence-note{width:100%;min-height:34px;margin-top:6px;border:1px solid #d7dde2;background:#fff;padding:0 8px;font:inherit;color:#111820;border-radius:2px}.add-absence{min-height:36px;padding:0 10px}
@media(max-width:760px){.attendance-filters .week-nav-btn{flex:1}.absence-cell{min-width:320px}.absence-line{grid-template-columns:minmax(100px,1fr) 82px 14px 82px 34px}}


/* v5.8 · pointages multiples modifiables */
.attendance-table{min-width:1120px}
.punches-cell{min-width:360px}.punch-edit-list{display:grid;gap:7px;margin-bottom:8px}.no-punches{display:block;color:#8a949c;font-size:.8rem;padding:8px 0}.punch-edit-row{display:grid;grid-template-columns:112px 96px minmax(52px,auto) 34px;gap:7px;align-items:center}.punch-edit-row select,.punch-edit-row input[type=time]{min-width:0!important}.punch-edit-remove{width:34px;height:38px;border:1px solid #d7dde2;background:#fff;font-size:20px;line-height:1;cursor:pointer}.punch-source{display:inline-flex;align-items:center;justify-content:center;min-height:26px;padding:0 7px;border:1px solid #d9dee2;font-size:.62rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap}.punch-source.gps{background:#f2f7f4}.punch-source.manual{background:#f7f5ef}.punch-source.admin{background:#f3f4f6}.add-punch{min-height:36px;padding:0 10px}.warning-total{color:#9a5a22!important}
@media(max-width:760px){.punches-cell{min-width:320px}.punch-edit-row{grid-template-columns:100px 84px minmax(48px,auto) 34px}}
/* v5.9 · horaires contractuels individuels */
.work-schedule-box{border:1px solid #d9dfe4;padding:16px;margin:14px 0;background:#f8f9fa}.work-schedule-box>small{font-weight:800;letter-spacing:.08em}.schedule-help{font-size:.82rem;color:#68727b;margin:6px 0 14px}.schedule-days{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;margin-top:10px}.schedule-days label{display:grid;gap:5px;font-size:.68rem;font-weight:800;text-transform:uppercase;color:#68727b}.schedule-days input{width:100%;min-width:0}.schedule-summary{display:flex;justify-content:space-between;gap:12px;margin-top:12px;padding-top:10px;border-top:1px solid #dfe4e8;font-size:.82rem}.schedule-summary span{color:#68727b}.balance-positive{color:#27714d}.balance-negative{color:#a13e35}.balance-zero{color:#68727b}.attendance-table .expected-cell b,.attendance-table .balance-cell b{display:block;white-space:nowrap}.attendance-table .expected-cell small,.attendance-table .balance-cell small{display:block;color:#7b858d;margin-top:3px;white-space:nowrap}
@media(max-width:760px){.schedule-days{grid-template-columns:repeat(4,1fr)}}

/* v5.10 — vue mensuelle pointage */
.monthly-manager{margin-top:28px;padding-top:26px;border-top:1px solid var(--line,#d9dee3)}
.monthly-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-end;margin-bottom:18px}
.monthly-head h3{margin:3px 0 6px}.monthly-head p{margin:0;color:#66717c;max-width:680px}
.monthly-filters{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap;justify-content:flex-end}.monthly-filters label{font-size:11px;font-weight:700;letter-spacing:.08em;color:#66717c}.monthly-filters input{display:block;margin-top:5px;min-height:42px;padding:8px 10px;border:1px solid #cfd6dc;background:#fff}
.monthly-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:16px 0}.monthly-summary article{padding:16px;border:1px solid #dce1e5;background:#fff}.monthly-summary small{display:block;font-size:10px;letter-spacing:.12em;color:#6a747e;margin-bottom:7px}.monthly-summary b{font-size:22px}.monthly-summary .negative{color:#9b3030}.monthly-summary .positive{color:#276845}
.monthly-table td,.monthly-table th{white-space:nowrap}.monthly-table .month-date b{display:block}.monthly-table .month-date span{font-size:11px;color:#6d7780}.monthly-open-day{min-width:110px}.monthly-weekend{background:#fafbfc}.monthly-zero{color:#8a949d}.monthly-balance-positive{color:#276845}.monthly-balance-negative{color:#9b3030}
@media(max-width:900px){.monthly-head{align-items:stretch;flex-direction:column}.monthly-filters{justify-content:flex-start}.monthly-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* v6.0 Planning */
.planning-grid{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:12px;align-items:start}.plan-day{border:1px solid var(--line,#dfe3e8);background:#fff;min-height:210px;padding:14px}.plan-day header{display:flex;justify-content:space-between;gap:8px;margin-bottom:12px}.plan-event{display:block;width:100%;text-align:left;border:1px solid #dfe3e8;background:#f7f8fa;padding:10px;margin:0 0 8px;cursor:pointer}.plan-event b,.plan-event span,.plan-event small{display:block}.plan-event small{opacity:.65;margin-top:4px}.plan-empty{opacity:.5;font-size:13px}.planning-month{grid-template-columns:repeat(7,minmax(105px,1fr))}.planning-dayview{grid-template-columns:minmax(260px,700px)}#appointmentAssignees{min-height:110px}#appointmentNotes{width:100%;resize:vertical}
@media(max-width:900px){.planning-grid,.planning-month{display:flex;overflow-x:auto}.plan-day{min-width:240px}.toolbar-actions{flex-wrap:wrap}}
/* v6.1 · Clients */
.client-status{margin:4px 0 0;color:#6b7680;font-size:.82rem}.client-card small{display:block;margin-top:5px;color:#75808a}.client-list .empty-admin{padding:24px}.client-list article{cursor:default}
/* v6.2 Clients */
.client-toolbar{margin-bottom:18px}.client-picker-panel{background:#fff;border:1px solid #dfe2e0;padding:24px;margin-bottom:18px}.client-picker-panel label{display:block;font-size:9px;letter-spacing:.15em;color:#7b8589;margin-bottom:10px}.client-picker-search,.client-picker{width:100%;border:1px solid #d7dcda;background:#fff;padding:14px;outline:none}.client-picker-search{margin-bottom:10px}.client-picker{font-weight:600}.client-detail{background:#fff;border:1px solid #dfe2e0;min-height:250px}.client-empty{padding:55px;text-align:center;color:#7b8589}.client-empty b{display:block;color:#1a252e;font:600 20px 'Manrope';margin-bottom:8px}.client-profile{padding:30px}.client-profile>header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-bottom:26px;border-bottom:1px solid #e5e7e5}.client-profile-title{display:flex;align-items:center;gap:16px}.client-profile-title .initial{width:52px;height:52px}.client-profile-title small,.client-info-grid small,.client-finance small{font-size:9px;letter-spacing:.14em;color:#7b8589}.client-profile-title h3{font:600 27px 'Manrope';margin:3px 0}.client-profile-title p{margin:0;color:#7b8589;font-size:11px}.client-info-grid{display:grid;grid-template-columns:2fr 1fr 1.5fr 1fr;gap:1px;background:#e5e7e5;margin-top:25px;border:1px solid #e5e7e5}.client-info-grid>div{background:#fafbf9;padding:20px}.client-info-grid b{display:block;margin-top:8px;font-size:13px}.client-finance{margin-top:28px;padding-top:25px;border-top:1px solid #e5e7e5}.client-section-head h4{font:600 20px 'Manrope';margin:5px 0 16px}.finance-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.finance-cards article{border:1px solid #dfe2e0;padding:20px;background:#fafbf9}.finance-cards b{display:block;font:600 25px 'Manrope';margin-top:8px}.invoice-details{margin-top:14px;border-top:1px solid #e5e7e5}.invoice-details summary{padding:16px 0;cursor:pointer;font-size:12px;font-weight:600}.invoice-details>div{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-top:1px solid #eceeec}.invoice-details span{display:grid;gap:3px}.invoice-details small{letter-spacing:0}.client-muted{color:#7b8589;font-size:12px}.client-finance .primary{margin-top:8px}@media(max-width:850px){.client-info-grid{grid-template-columns:1fr 1fr}.finance-cards{grid-template-columns:1fr}.client-profile{padding:20px}.client-profile>header{align-items:flex-start}.client-toolbar{align-items:flex-start}.client-toolbar .toolbar-actions{flex-wrap:wrap}}

/* v6.3 · Chantiers classés ville > client > travaux */
.job-folders{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:start}.job-binder{background:#fff;border:1px solid #dfe2e0;min-height:240px}.job-binder>header{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border-bottom:1px solid #e5e7e5}.job-binder>header span{font-size:10px;letter-spacing:.14em;color:#7b8589}.job-binder>header b{font:600 15px 'Manrope'}.job-binder>header strong{min-width:28px;height:28px;display:grid;place-items:center;background:#111b24;color:#fff;font-size:10px}.job-tree{padding:12px}.job-city{border:1px solid #e3e6e4;margin-bottom:9px;background:#fafbf9}.job-city>summary,.job-client>summary{cursor:pointer;list-style:none}.job-city>summary::-webkit-details-marker,.job-client>summary::-webkit-details-marker{display:none}.job-city>summary{padding:13px 14px;font-weight:700;font-size:12px;display:flex;justify-content:space-between}.job-city>summary:after,.job-client>summary:after{content:'+';color:#7b8589}.job-city[open]>summary:after,.job-client[open]>summary:after{content:'−'}.job-client{border-top:1px solid #e6e9e7;background:#fff}.job-client>summary{padding:12px 16px;font-size:11px;font-weight:700;display:flex;justify-content:space-between}.job-work{margin:0 12px 10px;padding:12px;border:1px solid #e1e5e3;background:#f7f8f6}.job-work b{display:block;font-size:12px;margin-bottom:5px}.job-work small{display:block;color:#7b8589;font-size:10px;line-height:1.4}.job-work-actions{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}.job-work-actions button{padding:8px 9px;border:1px solid #cfd5d2;background:#fff;cursor:pointer;font-size:9px;font-weight:700}.job-work-actions .advance{background:#111b24;color:#fff;border-color:#111b24}.job-empty{padding:34px 20px;text-align:center;color:#8a9498;font-size:11px}.job-search-empty{grid-column:1/-1;padding:45px;background:#fff;border:1px solid #dfe2e0;text-align:center;color:#7b8589}@media(max-width:1050px){.job-folders{grid-template-columns:repeat(3,minmax(240px,1fr));overflow-x:auto;padding-bottom:6px}.job-binder{min-width:240px}}@media(max-width:600px){.job-work-actions button{flex:1}.job-folders{grid-template-columns:repeat(3,minmax(250px,1fr));gap:10px;overflow-x:auto}.job-binder{min-width:250px}}


/* Chantiers v6.3.1 — sobre et premium */
#jobDialog::backdrop{background:rgba(8,14,19,.72);backdrop-filter:blur(10px)}
#jobDialog .personnel-form{width:min(640px,calc(100vw - 28px));background:#fbfbf8;padding:40px 42px 36px;border:1px solid rgba(17,27,36,.08);box-shadow:0 28px 90px rgba(7,14,20,.28)}
#jobDialog .eyebrow{margin-bottom:8px;color:#8a9290}
#jobDialog h2{font-size:36px;line-height:1.08;margin-bottom:0}
#jobDialog .job-sub{margin:9px 0 26px;max-width:520px;font-size:13px;color:#7d8688}
#jobDialog label{font-size:9px;letter-spacing:.14em;color:#6d7779}
#jobDialog input,#jobDialog textarea,#jobDialog select{background:#fff;border:1px solid #dfe3e0;padding:13px 14px;margin-top:2px;color:#111b24;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}
#jobDialog input:focus,#jobDialog textarea:focus,#jobDialog select:focus{border-color:#9ca7a2;box-shadow:0 0 0 3px rgba(17,27,36,.04);background:#fff}
#jobDialog textarea{min-height:88px;resize:vertical}
#jobDialog .field-row{gap:14px}
#jobDialog .job-client-label{margin-top:4px}
#jobDialog .job-client-select{font-weight:600;appearance:auto}
#jobDialog .primary.full{margin-top:24px;min-height:50px;border:0;background:#101a22;letter-spacing:.12em}
#jobDialog .primary.full:hover{background:#1d2a34}
#jobDialog .x{right:18px;top:15px;width:34px;height:34px;display:grid;place-items:center;font-size:22px;color:#7e8789}

.job-folders{gap:18px}.job-binder{border:1px solid #e0e3e0;background:#fdfdfb;box-shadow:0 8px 26px rgba(13,22,29,.035)}
.job-binder>header{padding:20px 22px;background:#fff}.job-binder>header span{font-size:9px;color:#8b9394}.job-binder>header b{font-size:14px}.job-binder>header strong{background:#18232b;font-weight:600}
.job-tree{padding:14px}.job-city{border:1px solid #e5e8e5;background:#fafaf8;margin-bottom:10px}.job-city>summary{padding:14px 15px;font-size:11px;letter-spacing:.01em}.job-client>summary{padding:12px 16px;font-size:11px;font-weight:600;color:#26323a}.job-work{background:#fff;border:1px solid #e5e8e5;margin:0 12px 11px;padding:13px 14px}.job-work b{font:600 12px 'Manrope';color:#18232b}.job-work small{color:#81898c}.job-work-actions button{border-color:#d8ddda;background:#fbfbfa}.job-work-actions .advance{background:#17232c;border-color:#17232c}
@media(max-width:600px){#jobDialog .personnel-form{padding:34px 22px 26px}#jobDialog .field-row{grid-template-columns:1fr}.job-sub{margin-bottom:20px!important}}

/* v6.3.3: chantier board always shows the 3 binders */
.job-folders{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;align-items:stretch!important}.job-binder{display:flex;flex-direction:column;min-height:300px}.job-tree{flex:1}.job-load-error{grid-column:1/-1;margin-top:10px;padding:12px 14px;border:1px solid #e2d5d5;background:#fffafa;color:#7a3e3e;font-size:11px}
@media(max-width:1050px){.job-folders{grid-template-columns:repeat(3,minmax(260px,1fr))!important;overflow-x:auto!important}.job-binder{min-width:260px}}
/* v6.4 · Frais & factures */
.expense-shell,.invoice-hub{max-width:1100px;margin:0 auto}.expense-tabs{display:flex;gap:8px;margin-bottom:18px}.expense-tabs button{border:1px solid #d9dee6;background:#fff;border-radius:999px;padding:9px 15px;font-weight:700;color:#445064}.expense-tabs button.active{background:#0d1b2d;color:#fff;border-color:#0d1b2d}.expense-list{display:grid;gap:10px}.expense-row{background:#fff;border:1px solid #e2e6ec;border-radius:16px;padding:15px 17px;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:16px;align-items:center}.expense-row h4,.expense-row p{margin:0}.expense-row p,.expense-row small{color:#758092}.expense-row strong{font-size:17px}.expense-status{font-size:11px;font-weight:800;letter-spacing:.08em;padding:6px 9px;border-radius:999px;background:#eef2f5}.expense-status.approved{background:#e9f5ee;color:#23754b}.expense-status.rejected{background:#faecec;color:#9a3838}.expense-actions{display:flex;gap:7px;flex-wrap:wrap}.receipt-drop{border:1.5px dashed #b9c2cf;border-radius:18px;min-height:135px;display:flex!important;align-items:center;justify-content:center;flex-direction:column;gap:4px;background:#f8fafc;cursor:pointer}.receipt-drop input{display:none}.receipt-camera{font-size:28px}.receipt-drop small{color:#7b8491}.receipt-preview{margin-top:10px;border-radius:14px;overflow:hidden;background:#f5f7f9;position:relative}.receipt-preview img{width:100%;max-height:240px;object-fit:contain;display:block}.receipt-preview span{position:absolute;left:10px;bottom:10px;background:rgba(13,27,45,.9);color:#fff;padding:6px 9px;border-radius:999px;font-size:11px}.expense-auto-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.expense-categories>small{display:block;margin-bottom:8px;font-weight:800;color:#596577}.expense-chips{display:flex;gap:7px;flex-wrap:wrap}.expense-chips button{border:1px solid #d8dee6;background:#fff;border-radius:999px;padding:8px 12px}.expense-chips button.active{background:#0d1b2d;color:#fff;border-color:#0d1b2d}.expense-note summary{cursor:pointer;color:#586477;font-weight:700}.invoice-row{display:grid!important;grid-template-columns:minmax(0,1fr) auto auto!important;gap:10px;align-items:center}.invoice-row .invoice-actions{display:flex;gap:6px}.job-invoice{margin-top:8px;padding:8px 10px;border-radius:10px;background:#f2f5f8;display:flex;justify-content:space-between;align-items:center;gap:8px}.job-invoice small{color:#617083}.job-invoice button{white-space:nowrap}@media(max-width:700px){.expense-row{grid-template-columns:1fr auto}.expense-actions{grid-column:1/-1}.expense-auto-grid{grid-template-columns:1fr}.invoice-row{grid-template-columns:1fr auto!important}.invoice-row .invoice-actions{grid-column:1/-1}}


/* v6.5 · Tableau de bord CERRETO-E */
.dashboard-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:24px;padding:26px 28px;border:1px solid rgba(10,27,46,.08);border-radius:22px;background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(246,248,250,.94));box-shadow:0 18px 45px rgba(10,27,46,.06)}
.dashboard-hero h3{margin:3px 0 4px;font-size:30px;letter-spacing:-.035em}.dashboard-hero .section-note{margin:0;color:#6f7780}
.dashboard-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.dashboard-kpi{appearance:none;text-align:left;border:1px solid rgba(10,27,46,.09);background:#fff;border-radius:18px;padding:19px 20px;min-height:132px;cursor:pointer;transition:.18s ease;box-shadow:0 8px 26px rgba(10,27,46,.045)}.dashboard-kpi:hover{transform:translateY(-2px);border-color:rgba(10,27,46,.18);box-shadow:0 14px 34px rgba(10,27,46,.075)}.dashboard-kpi small{display:block;font-size:10px;letter-spacing:.12em;font-weight:800;color:#7c838b}.dashboard-kpi strong{display:block;margin:9px 0 5px;font-size:34px;line-height:1;color:#102236;font-weight:650}.dashboard-kpi span{display:block;color:#747c84;font-size:12px;line-height:1.35}
.dashboard-grid{display:grid;grid-template-columns:1.18fr .82fr;gap:18px}.dashboard-panel{border:1px solid rgba(10,27,46,.09);background:#fff;border-radius:20px;padding:21px;box-shadow:0 10px 30px rgba(10,27,46,.045)}.dashboard-panel-head{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-bottom:14px;border-bottom:1px solid rgba(10,27,46,.07)}.dashboard-panel-head small{font-size:10px;font-weight:800;letter-spacing:.14em;color:#7c838b}.dashboard-panel-head h4{font-size:20px;margin:3px 0 0}.dashboard-panel-head .linkbtn{margin:0}
.dashboard-list{padding-top:4px}.dashboard-list-row{width:100%;border:0;border-bottom:1px solid rgba(10,27,46,.065);background:transparent;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;text-align:left;padding:14px 2px;cursor:pointer}.dashboard-list-row:last-child{border-bottom:0}.dashboard-list-row:hover b{opacity:.7}.dashboard-list-row time{font-variant-numeric:tabular-nums;font-weight:750;font-size:13px;color:#102236}.dashboard-list-row div{min-width:0}.dashboard-list-row b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px}.dashboard-list-row small{display:block;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#7b8289;font-size:11px}.dashboard-list-row>span:last-child{font-size:20px;color:#9aa0a6}.dashboard-empty{padding:28px 4px;color:#858b91;font-size:13px}.dashboard-status-dot{width:9px;height:9px;border-radius:50%;background:#aeb4ba}.dashboard-status-dot.todo{background:#9b7c4e}.dashboard-status-dot.booked{background:#526b83}
.dashboard-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:18px}.dashboard-action{border:1px solid rgba(10,27,46,.09);border-radius:17px;background:#f8f9fa;display:flex;align-items:center;gap:13px;text-align:left;padding:16px 18px;cursor:pointer;transition:.18s ease}.dashboard-action:hover{background:#fff;box-shadow:0 10px 24px rgba(10,27,46,.055)}.dashboard-action>span{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:#102236;color:#fff;font-size:18px;flex:0 0 auto}.dashboard-action b{display:block;font-size:13px}.dashboard-action small{display:block;margin-top:2px;color:#7d848b;font-size:10px}
@media(max-width:1050px){.dashboard-kpis{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.dashboard-actions{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:680px){.dashboard-hero{padding:20px;align-items:flex-start}.dashboard-hero h3{font-size:25px}.dashboard-kpis{grid-template-columns:1fr 1fr;gap:10px}.dashboard-kpi{padding:16px;min-height:118px}.dashboard-kpi strong{font-size:29px}.dashboard-actions{grid-template-columns:1fr}.dashboard-panel{padding:17px}.dashboard-panel-head{align-items:flex-start}.dashboard-panel-head .linkbtn{font-size:11px}.dashboard-list-row{gap:10px}}

/* v6.5.1 · Contrôle des pointages compact */
.admin-punch-panel{margin-top:20px}.admin-punch-toolbar{margin-bottom:10px}.admin-punch-toolbar h3{margin:2px 0;font-size:18px}.admin-punch-grid{grid-template-columns:1.2fr .8fr;gap:12px}.admin-punch-card{padding:15px 16px}.admin-punch-card-head{align-items:center;gap:12px}.admin-punch-filter{display:flex;align-items:center;gap:7px;margin:0;font-size:9px;letter-spacing:.08em;color:#788187;white-space:nowrap}.admin-punch-filter select{width:180px;max-width:34vw;margin:0;padding:7px 28px 7px 9px;border:1px solid #dfe3e1;background:#fafbf9;color:#17212a;font-size:10px;border-radius:7px}.admin-punch-list-compact{max-height:285px;overflow:auto;margin-top:8px;padding-right:3px}.admin-punch-row{grid-template-columns:minmax(125px,.65fr) minmax(190px,1.35fr) auto;gap:10px;padding:9px 0}.admin-punch-row b{font-size:11px}.admin-punch-row span{font-size:9px}.admin-location b{font-size:10px}.map-link{font-size:9px}.admin-request-row{padding:10px 0;gap:8px}.request-actions button{padding:7px 8px}.attendance-manager{margin-top:18px}
@media(max-width:900px){.admin-punch-grid{grid-template-columns:1fr}.admin-punch-filter select{max-width:50vw}.admin-punch-list-compact{max-height:260px}.admin-punch-row{grid-template-columns:1fr auto}.admin-location{grid-column:1/-1}}


/* v6.6 · Recherche globale */
.app-top{position:relative}.global-search-wrap{width:min(520px,46vw);position:relative;margin-left:auto;margin-right:18px}.global-search-box{height:44px;border:1px solid #d9dedb;background:#fff;display:flex;align-items:center;gap:10px;padding:0 12px}.global-search-box>span{font-size:18px;color:#778187}.global-search-box input{border:0;outline:0;background:transparent;width:100%;font-size:12px;color:#17222a}.global-search-box input::placeholder{color:#929a9d}.global-search-box kbd{font:600 9px 'DM Sans';color:#8a9396;border:1px solid #dfe3e0;background:#f8f8f6;padding:4px 6px;white-space:nowrap}.global-search-results{position:absolute;top:51px;left:0;right:0;z-index:80;background:#fff;border:1px solid #dce1de;box-shadow:0 22px 55px rgba(10,17,24,.16);max-height:min(68vh,620px);overflow:auto}.global-search-results section{padding:12px 12px 6px;border-bottom:1px solid #eceeec}.global-search-results section>small{display:block;padding:3px 8px 8px;font-size:8px;font-weight:700;letter-spacing:.16em;color:#8a9396}.global-search-results button{width:100%;border:0;border-top:1px solid #eff1ef;background:#fff;padding:12px 8px;display:flex;align-items:center;justify-content:space-between;gap:16px;text-align:left;cursor:pointer}.global-search-results button:hover{background:#f7f8f6}.global-search-results button span{min-width:0}.global-search-results button b,.global-search-results button em{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.global-search-results button b{font:600 12px 'Manrope';color:#18232b}.global-search-results button em{font-style:normal;font-size:10px;color:#7d878b;margin-top:4px}.global-search-results button i{font-style:normal;font-size:9px;font-weight:700;color:#667278;white-space:nowrap}.gs-loading,.gs-empty{padding:28px;text-align:center;color:#7d878b;font-size:11px}.gs-empty b,.gs-empty span{display:block}.gs-empty b{color:#1b2730;margin-bottom:5px}
@media(max-width:900px){.global-search-wrap{width:auto;flex:1;margin:0 10px}.global-search-box kbd{display:none}.app-top>div:first-child{display:none}.global-search-results{position:fixed;left:12px;right:12px;top:72px;max-height:70vh}}

/* v7.0 · production */
.setting-switch{display:flex;align-items:center;gap:10px;margin-top:18px;font-size:12px;color:#26333b;cursor:pointer}.setting-switch input{width:17px;height:17px;accent-color:#17232c}.setting-save{display:block;min-height:15px;margin-top:10px;color:#718078}.gps-setting-card h3{margin-bottom:8px}

/* v7.0.2 · Dossiers de frais par collaborateur */
.expense-finance-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:16px}.expense-finance-summary>div{background:#fff;border:1px solid #e2e6ec;border-radius:16px;padding:14px 16px;display:grid;gap:2px}.expense-finance-summary small{font-size:10px;letter-spacing:.12em;font-weight:800;color:#7a8594}.expense-finance-summary strong{font-size:22px;color:#0d1b2d}.expense-finance-summary span{font-size:12px;color:#7a8594}.expense-employee-folder{background:#fff;border:1px solid #dfe5ec;border-radius:18px;overflow:hidden}.expense-employee-folder+ .expense-employee-folder{margin-top:10px}.expense-employee-folder>summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:15px 17px}.expense-employee-folder>summary::-webkit-details-marker{display:none}.expense-folder-avatar{width:40px;height:40px;border-radius:12px;background:#0d1b2d;color:#fff;display:grid;place-items:center;font-size:12px;font-weight:800;letter-spacing:.08em}.expense-folder-name{display:grid;gap:3px}.expense-folder-name b{font-size:15px}.expense-folder-name span{font-size:12px;color:#748091}.expense-folder-chevron{font-size:18px;color:#748091;transition:transform .2s}.expense-employee-folder[open] .expense-folder-chevron{transform:rotate(180deg)}.expense-folder-content{border-top:1px solid #edf0f4;background:#f7f9fb;padding:10px;display:grid;gap:8px}.expense-folder-content .expense-row{box-shadow:none}.hidden{display:none!important}@media(max-width:700px){.expense-finance-summary{grid-template-columns:1fr}.expense-employee-folder>summary{grid-template-columns:auto minmax(0,1fr) auto}.expense-folder-chevron{display:none}.expense-employee-folder>summary>strong{grid-column:3}.expense-folder-content{padding:7px}.expense-folder-content .expense-row{border-radius:13px}}

/* v7.1 · Demandes du site */
.incoming-requests{margin:0 0 22px;border:1px solid #dfe5ec;border-radius:18px;background:#f7f9fb;overflow:hidden}.incoming-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid #e4e9ee;background:#fff}.incoming-head h4{margin:3px 0 0;font-size:18px}.request-count{min-width:30px;height:30px;padding:0 9px;border-radius:999px;background:#0d1b2d;color:#fff;display:grid;place-items:center;font-size:12px;font-weight:800}.incoming-request{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;padding:16px 18px;border-bottom:1px solid #e4e9ee;background:#fff}.incoming-request:last-child{border-bottom:0}.incoming-request-main>div:first-child{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.incoming-request-main b{font-size:14px}.incoming-request-main small{font-size:11px;color:#7a8594}.incoming-request-main>strong{display:block;margin:8px 0 3px;font-size:12px}.incoming-request-main p{margin:4px 0 8px;color:#66717a;font-size:12px;line-height:1.45}.request-status{font-size:9px;font-weight:800;letter-spacing:.08em;padding:4px 7px;border-radius:999px;background:#eef2f6}.request-status.new{background:#e7f3ec;color:#246447}.request-status.processed{background:#edf0f5;color:#536274}.incoming-contact{display:flex;gap:12px;flex-wrap:wrap}.incoming-contact a{font-size:11px;color:#0d1b2d}.incoming-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.incoming-actions button{white-space:nowrap}@media(max-width:760px){.incoming-request{grid-template-columns:1fr}.incoming-actions{justify-content:flex-start}}

/* v7.2 · validation client depuis une demande internet */
.request-client-badge{display:inline-flex;align-items:center;width:max-content;margin:0 8px 7px 0;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:800;letter-spacing:.08em}
.request-client-badge.pending{background:rgba(197,141,33,.12);border:1px solid rgba(197,141,33,.28);color:#946514}
.request-client-badge.linked{background:rgba(31,117,83,.10);border:1px solid rgba(31,117,83,.22);color:#22664d}

.job-work-actions .danger{margin-top:0;border-color:#b42318!important;color:#b42318!important}
/* v7.6 chantier terrain */
.job-work{cursor:pointer}.job-detail-dialog{width:min(920px,96vw);max-width:none}.job-detail-shell{padding:28px;position:relative;min-height:300px}.job-detail-shell>.x{position:absolute;right:18px;top:16px}.job-detail-actions{margin:18px 0}.unit-list{display:grid;gap:10px}.unit-card{border:1px solid #dde2df;padding:16px;background:#fff;cursor:pointer}.unit-card h4{margin:0 0 5px}.unit-card small{display:block;color:#758087;margin-top:3px}.unit-card-actions{display:flex;gap:7px;margin-top:12px}.unit-card-actions button{padding:8px 10px;border:1px solid #d5dad7;background:#fff}.terrain-actions{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:18px 0}.terrain-actions button{min-height:58px;border:1px solid #d9dedb;background:#fff;font-weight:700}.unit-content{display:grid;gap:14px}.terrain-section{border-top:1px solid #e3e6e4;padding-top:14px}.terrain-section h3{font-size:14px}.room-card,.measure-card,.entry-card{border:1px solid #e0e4e1;background:#fafbf9;padding:13px;margin-top:8px}.room-card-head{display:flex;justify-content:space-between;align-items:center}.room-actions{display:flex;gap:6px;margin-top:9px;flex-wrap:wrap}.room-actions button{padding:8px 10px}.measure-card b{font-size:12px}.measure-values{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px;font-size:10px;color:#667177}.entry-card img,.entry-card video{width:100%;max-height:300px;object-fit:contain;background:#111}.measure-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.measurement-form{width:min(680px,94vw)}
@media(max-width:650px){.job-detail-shell{padding:22px 14px}.terrain-actions{grid-template-columns:repeat(2,1fr)}.terrain-actions button:last-child{grid-column:1/-1}.measure-grid{grid-template-columns:repeat(2,1fr)}.field-row{grid-template-columns:1fr!important}input,select,textarea,button{font-size:16px!important}.unit-card-actions button{font-size:12px!important}}

/* v7.6.2 — tableau de mesures continu */
.measure-help{margin:2px 0 10px;color:#6d7774;font-size:12px}.measure-table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid #dfe3e1;background:#fff;touch-action:pan-x pan-y}.measure-table{border-collapse:separate;border-spacing:0;min-width:1460px;width:100%;font-size:12px}.measure-table th{position:sticky;top:0;background:#f3f5f4;padding:9px 7px;border-bottom:1px solid #dfe3e1;border-right:1px solid #e7eae8;text-align:left;white-space:nowrap;font-size:10px}.measure-table td{padding:0;border-bottom:1px solid #e7eae8;border-right:1px solid #edf0ee;background:#fff}.measure-table input{width:100%;min-width:76px;border:0!important;border-radius:0!important;background:transparent!important;padding:12px 8px!important;font-size:16px!important;outline:none;box-shadow:none!important}.measure-table td:nth-child(2) input{min-width:190px}.measure-table td:nth-child(13) input{min-width:180px}.measure-table input:focus{background:#f6f8f7!important;box-shadow:inset 0 0 0 2px #263c45!important}.measure-table input.saving{opacity:.55}.measure-table input.save-error{box-shadow:inset 0 0 0 2px #9a3434!important}.measure-add-row{margin-top:9px;min-height:46px;padding:10px 16px;border:1px solid #cfd6d2;background:#fff;font-weight:800}.measure-delete{border:0;background:transparent;font-size:20px;min-width:42px;min-height:42px}.measure-empty td{padding:16px;color:#7b8581}.terrain-section>h3{margin-bottom:5px}@media(max-width:700px){.job-detail-shell{padding:20px 12px}.terrain-actions{grid-template-columns:repeat(2,1fr)}.measure-table-wrap{margin-left:0;margin-right:0}.measure-table th{font-size:9px}.measure-table input{font-size:16px!important;padding:11px 7px!important}}

/* v7.6.3 terrain navigation fix */
.terrain-back{display:inline-flex;align-items:center;gap:7px;margin:0 0 14px;padding:10px 14px;border:1px solid rgba(15,23,42,.16);border-radius:12px;background:#fff;color:#0f172a;font-weight:750;cursor:pointer;touch-action:manipulation}
.job-detail-shell{overflow-x:hidden}
.measure-table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y}
.measure-add-row,#addMeasurement{touch-action:manipulation;position:relative;z-index:3}
@media(max-width:700px){.terrain-back{position:sticky;top:0;z-index:12;background:#fff;width:max-content}.job-detail-dialog .job-detail-shell{padding-top:12px}}

/* v7.6.5 - accès mesures robuste */
.measure-jump{display:flex;align-items:center;gap:14px;position:sticky;top:0;z-index:20;background:#fff;padding:10px 0;border-bottom:1px solid #e1e5e3;margin-bottom:10px}.measure-jump.hidden{display:none!important}.measure-jump button{min-height:44px;padding:8px 12px;border:1px solid #d4dad7;background:#fff;font-weight:800}.terrain-actions.measure-mode-hidden{display:none!important}.unit-content.measure-mode .terrain-section:first-child{border-top:0;padding-top:0}.unit-content.measure-mode .terrain-section:not(:first-child){display:none}.job-detail-dialog{max-height:92vh;overflow-y:auto;-webkit-overflow-scrolling:touch}

.measure-screen-dialog{width:min(1500px,96vw);max-width:1500px;height:min(900px,94vh);max-height:94vh;overflow:auto}.measure-screen-dialog .job-detail-shell{min-width:0}.measure-screen-dialog .measure-table-wrap{max-height:none}.measure-screen-dialog .terrain-back{position:sticky;top:0;z-index:30}

/* v7.6.7 — colonnes chantiers compactes */
.job-binder{height:min(68vh,720px)!important;min-height:430px!important;overflow:hidden!important}
.job-binder>header{flex:0 0 auto}
.job-column-search{flex:0 0 auto;padding:10px 12px;border-bottom:1px solid #e5e8e5;background:#fafbf9}
.job-column-search input{width:100%;height:42px;border:1px solid #d9dedb;background:#fff;padding:0 12px;font:600 12px 'Manrope';outline:none}
.job-column-search input:focus{border-color:#738087;box-shadow:0 0 0 2px rgba(24,35,43,.06)}
.job-tree{min-height:0!important;overflow-y:auto!important;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable}
.job-work[hidden]{display:none!important}
@media(max-width:700px){.job-binder{height:68vh!important;min-height:400px!important}.job-column-search input{font-size:16px!important}}

/* v7.7 · Accueil express + site public dynamique */
.service-grid-four{grid-template-columns:repeat(4,1fr)}.service-grid-four article{overflow:hidden}.service-knx{background:linear-gradient(155deg,rgba(199,178,123,.08),transparent 62%)}.knx-pulse{position:absolute;width:130px;height:130px;border:1px solid rgba(199,178,123,.45);border-radius:50%;right:-55px;top:28px;animation:knxPulse 3.2s ease-in-out infinite}.knx-pulse:after{content:"";position:absolute;inset:22px;border:1px solid rgba(10,17,24,.12);border-radius:50%}@keyframes knxPulse{0%,100%{transform:scale(.86);opacity:.35}50%{transform:scale(1.08);opacity:1}}.expertise-flow{display:flex;align-items:center;gap:20px;padding:28px 0 0;font-size:9px;font-weight:800;letter-spacing:.18em;color:#69757b}.expertise-flow i{height:1px;flex:1;background:linear-gradient(90deg,var(--ink),rgba(10,17,24,.08));position:relative;overflow:hidden}.expertise-flow i:after{content:"";position:absolute;top:0;left:-30%;width:30%;height:1px;background:var(--accent);animation:flowLine 3s linear infinite}@keyframes flowLine{to{left:110%}}.technical-card{animation:technicalFloat 7s ease-in-out infinite}@keyframes technicalFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.quick-home{max-width:920px;margin:20px auto}.quick-home-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:22px}.quick-home-head h3{font:600 34px 'Manrope';letter-spacing:-.04em;margin:2px 0 4px}.quick-home-actions{display:grid;grid-template-columns:1fr 1fr;gap:16px}.quick-main{min-height:210px;border:1px solid rgba(10,27,46,.1);border-radius:24px;background:#fff;padding:28px;text-align:left;display:flex;align-items:flex-end;gap:20px;cursor:pointer;box-shadow:0 16px 44px rgba(10,27,46,.055);transition:.2s ease}.quick-main:hover{transform:translateY(-2px);box-shadow:0 22px 54px rgba(10,27,46,.09)}.quick-main.punch-home{background:#0d1b2d;color:#fff}.quick-icon{width:54px;height:54px;border-radius:16px;background:#0d1b2d;color:#fff;display:grid;place-items:center;font-size:24px;flex:0 0 auto}.punch-home .quick-icon{background:#fff;color:#0d1b2d}.quick-main small{display:block;font-size:9px;letter-spacing:.16em;font-weight:800;opacity:.58;margin-bottom:8px}.quick-main b{display:block;font:600 22px 'Manrope';letter-spacing:-.025em}.quick-main em{display:block;font-style:normal;font-size:11px;opacity:.58;margin-top:6px}.quick-next{margin-top:16px;background:#fff;border:1px solid rgba(10,27,46,.09);border-radius:18px;padding:17px 20px;display:flex;align-items:center;justify-content:space-between;gap:20px}.quick-next small{font-size:9px;letter-spacing:.14em;color:#7c858d}.quick-next b{display:block;margin-top:4px;font-size:14px}.expense-fast{width:min(560px,calc(100vw - 24px))}.expense-fast .receipt-drop{min-height:190px;background:#fff}.expense-scan-result{margin:12px 0;padding:13px 14px;border:1px solid #dce6df;background:#f5faf7;border-radius:12px;display:grid;gap:3px}.expense-scan-result span{font-size:10px;font-weight:800;letter-spacing:.08em;color:#4d765f}.expense-scan-result b{font-size:13px}.expense-check{margin-top:8px}.expense-check>summary{cursor:pointer;font-size:11px;color:#69757f;text-decoration:underline;text-underline-offset:3px}
@media(max-width:980px){.service-grid-four{grid-template-columns:1fr 1fr}.expertise-flow{flex-wrap:wrap}.expertise-flow i{min-width:30px}.quick-home{margin-top:0}}@media(max-width:680px){.service-grid-four{grid-template-columns:1fr}.quick-home-actions{grid-template-columns:1fr}.quick-main{min-height:175px;padding:22px}.quick-home-head h3{font-size:28px}.quick-next{align-items:flex-start;flex-direction:column}.expertise-flow{display:none}}

/* v7.8 — direction visuelle : institutionnel, technique, sans cartes enfantines */
.signal-section{min-height:760px;background:#081119;color:#fff;position:relative;overflow:hidden;padding:120px 7vw;display:grid;grid-template-columns:.9fr 1.1fr;gap:9vw;align-items:center;border-top:1px solid rgba(255,255,255,.08)}
.signal-section:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 49.9%,rgba(255,255,255,.055) 50%,transparent 50.1%),linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px);background-size:100% 100%,100% 64px;pointer-events:none}.signal-light{position:absolute;width:680px;height:680px;right:-170px;top:40px;background:radial-gradient(circle,rgba(223,211,170,.16),rgba(83,124,145,.07) 38%,transparent 68%);filter:blur(10px);animation:signalLight 8s ease-in-out infinite alternate}.signal-copy,.signal-modules{position:relative;z-index:2}.signal-copy h2{font:500 clamp(44px,5vw,76px)/1 'Manrope';letter-spacing:-.05em;margin:0 0 30px}.signal-copy h2 span{color:#85949d}.signal-copy>p:last-child{max-width:560px;color:#9ca8ae;line-height:1.75;font-size:15px}.signal-modules{border-top:1px solid rgba(255,255,255,.15)}.signal-module{display:grid;grid-template-columns:110px 1fr;grid-template-rows:auto auto;column-gap:28px;padding:32px 0;border-bottom:1px solid rgba(255,255,255,.15);position:relative}.signal-module small{grid-column:1/-1;font-size:9px;letter-spacing:.18em;color:#6f7d86;margin-bottom:22px}.signal-module h3{font:500 25px 'Manrope';margin:4px 0 8px}.signal-module p{color:#87949b;line-height:1.6;font-size:13px;margin:0}.meter-visual{grid-row:2/4;width:90px;height:90px;border:1px solid rgba(255,255,255,.18);position:relative;display:flex;align-items:center;justify-content:center}.meter-visual b{font:500 21px 'Manrope'}.meter-visual em{font-style:normal;font-size:9px;color:#7d8a91;margin-left:3px}.meter-visual i{position:absolute;width:32px;height:1px;background:#d9c894;transform-origin:left;left:45px;top:45px;transform:rotate(-35deg);animation:meterNeedle 4.5s ease-in-out infinite alternate}.meter-arc{position:absolute;inset:10px;border-top:1px solid #d9c894;border-radius:50%}.knx-visual{grid-row:2/4;width:90px;height:90px;position:relative;border:1px solid rgba(255,255,255,.18)}.knx-visual i{position:absolute;width:8px;height:8px;border:1px solid #d9c894;background:#081119}.knx-visual i:nth-child(1){left:14px;top:14px}.knx-visual i:nth-child(2){right:14px;top:14px}.knx-visual i:nth-child(3){left:14px;bottom:14px}.knx-visual i:nth-child(4){right:14px;bottom:14px}.knx-visual:before,.knx-visual:after{content:"";position:absolute;background:rgba(217,200,148,.45)}.knx-visual:before{height:1px;left:18px;right:18px;top:44px}.knx-visual:after{width:1px;top:18px;bottom:18px;left:44px}.knx-visual span{position:absolute;width:7px;height:7px;background:#d9c894;left:41px;top:41px;box-shadow:0 0 20px rgba(217,200,148,.8);animation:knxPulse 2.2s ease-in-out infinite}.signal-rail{position:absolute;left:50%;top:0;bottom:0;width:1px;background:rgba(255,255,255,.05)}.reveal-on-scroll{opacity:0;transform:translateY(30px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}.reveal-on-scroll.is-visible{opacity:1;transform:none}.signal-module:nth-child(2){transition-delay:.12s}@keyframes signalLight{to{transform:translate(-90px,70px) scale(1.12)}}@keyframes meterNeedle{to{transform:rotate(28deg)}}@keyframes knxPulse{50%{opacity:.35;box-shadow:0 0 4px rgba(217,200,148,.3)}}
/* espace interne plus dense, carré et professionnel */
.app{background:#f2f3f1}.page{padding:30px 34px}.quick-home{max-width:1080px;margin:4px auto}.quick-home-head{margin-bottom:16px}.quick-home-actions{gap:1px;background:#d9ddda;border:1px solid #d9ddda}.quick-main{min-height:154px;border:0;border-radius:0;box-shadow:none;padding:24px 26px;background:#fff}.quick-main:hover{transform:none;box-shadow:none;background:#f8f9f7}.quick-main.punch-home{background:#0c151d}.quick-icon{width:42px;height:42px;border-radius:0;font-size:18px}.quick-main b{font-size:19px}.quick-next{margin-top:1px;border:1px solid #d9ddda;border-radius:0;box-shadow:none;padding:14px 18px}.clock-card,.summary-card,.note-card,.client-picker-panel,.client-detail,.expense-row,.expense-finance-summary>div,.expense-employee-folder,.invoice-hub,.admin-punch-card{border-radius:0!important;box-shadow:none!important}.expense-tabs{gap:0;border-bottom:1px solid #d9ddda}.expense-tabs button{border:0;border-radius:0;background:transparent;padding:11px 16px;border-bottom:2px solid transparent}.expense-tabs button.active{background:transparent;color:#0c151d;border-bottom-color:#0c151d}.expense-row{border-left:2px solid transparent}.expense-row.needs-completion{border-left-color:#a87535}.scan-warning{color:#9a6728;font-weight:700}.receipt-drop{border-radius:0;background:#fafbf9}.receipt-preview,.expense-scan-result{border-radius:0}.expense-scan-result{background:#f5f7f4;border-color:#dce1dd}.app-top{height:88px}.app aside nav button.active{background:#111d26}
@media(max-width:850px){.signal-section{grid-template-columns:1fr;gap:55px;min-height:auto;padding:90px 7vw}.signal-rail{display:none}.signal-module{grid-template-columns:90px 1fr}}
@media(max-width:600px){.signal-section{padding:75px 22px}.signal-copy h2{font-size:43px}.signal-module{grid-template-columns:76px 1fr;column-gap:18px}.meter-visual,.knx-visual{width:68px;height:68px}.page{padding:18px 14px}.quick-main{min-height:132px;padding:20px}.quick-home-actions{grid-template-columns:1fr}.quick-icon{width:38px;height:38px}.quick-main b{font-size:18px}}

/* CERRETO-E v7.9 — direction plus vivante, premium et accueillante */
.public-header{position:sticky;top:0;background:rgba(8,17,25,.88);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.hero{min-height:calc(100svh - 82px);isolation:isolate}.hero:after{content:"";position:absolute;inset:auto 0 0;height:34%;background:linear-gradient(transparent,rgba(5,12,18,.62));pointer-events:none;z-index:0}.hero-copy,.hero-panel,.hero-meta{z-index:3}.hero-ambient{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}.beam{position:absolute;height:1px;background:linear-gradient(90deg,transparent,rgba(222,207,159,.9),transparent);filter:drop-shadow(0 0 9px rgba(222,207,159,.7));transform-origin:left center;animation:beamTravel 8s ease-in-out infinite}.beam-a{width:58vw;left:46%;top:28%;transform:rotate(34deg)}.beam-b{width:44vw;left:56%;top:63%;transform:rotate(-22deg);animation-delay:-3s}.beam-c{width:32vw;left:68%;top:46%;transform:rotate(90deg);animation-delay:-5s}.ambient-node{position:absolute;width:7px;height:7px;border:1px solid #ddcc96;box-shadow:0 0 22px rgba(221,204,150,.8);animation:nodeBreathe 2.8s ease-in-out infinite}.n1{left:58%;top:29%}.n2{left:76%;top:47%;animation-delay:-.7s}.n3{left:88%;top:64%;animation-delay:-1.4s}.n4{left:69%;top:73%;animation-delay:-2.1s}.scroll-cue{position:absolute;z-index:4;right:5.5vw;bottom:32px;display:flex;align-items:center;gap:10px;color:rgba(255,255,255,.48)}.scroll-cue span{display:block;width:46px;height:1px;background:rgba(255,255,255,.35);position:relative;overflow:hidden}.scroll-cue span:after{content:"";position:absolute;inset:0;background:#d8c78e;transform:translateX(-100%);animation:scrollCue 2s ease-in-out infinite}.scroll-cue small{font-size:8px;letter-spacing:.22em}
@keyframes beamTravel{0%,100%{opacity:.12;filter:drop-shadow(0 0 4px rgba(222,207,159,.25))}45%{opacity:.75;filter:drop-shadow(0 0 14px rgba(222,207,159,.8))}55%{opacity:.25}}@keyframes nodeBreathe{50%{transform:scale(1.8);background:#ddcc96;opacity:.45}}@keyframes scrollCue{55%,100%{transform:translateX(100%)}}
.service-grid article{transition:background .35s ease,color .35s ease,transform .35s ease}.service-grid article:hover{background:#0c151d;color:#fff;transform:translateY(-5px)}.service-grid article:hover p{color:#9da9af}.service-grid article:hover .service-line{background:#d9c894}.service-grid article:hover .service-no{color:#d9c894}
.living-building{background:#0a1219;color:#fff;padding:0 7vw 120px;overflow:hidden}.building-stage{min-height:760px;border-top:1px solid rgba(255,255,255,.1);display:grid;grid-template-columns:.78fr 1.22fr;align-items:center;gap:7vw;position:relative}.building-copy h2{font:500 clamp(42px,4.8vw,72px)/1.03 'Manrope';letter-spacing:-.05em;margin:0 0 28px}.building-copy h2 span{color:#829099}.building-copy>p:last-child{max-width:520px;color:#91a0a7;line-height:1.75}.building-map{height:500px;position:relative;border-left:1px solid rgba(255,255,255,.12);border-bottom:1px solid rgba(255,255,255,.12);background:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:48px 48px}.floor{position:absolute;left:12%;right:8%;height:112px;border:1px solid rgba(255,255,255,.18);display:grid;grid-template-columns:1fr repeat(3,42px);align-items:center;padding:0 24px;color:#6f7f87}.floor b{font-size:9px;letter-spacing:.18em}.floor i{width:8px;height:8px;border:1px solid #d9c894;justify-self:center;animation:roomPulse 3.2s ease-in-out infinite}.floor i:nth-child(3){animation-delay:-1s}.floor i:nth-child(4){animation-delay:-2s}.f3{top:48px}.f2{top:194px}.f1{top:340px}.bus-line{position:absolute;right:15%;top:70px;bottom:42px;width:1px;background:linear-gradient(#d9c894,rgba(217,200,148,.15));box-shadow:0 0 12px rgba(217,200,148,.25)}.power-line{position:absolute;left:24%;right:15%;bottom:75px;height:1px;background:linear-gradient(90deg,#7b98a7,#d9c894)}.scan-line{position:absolute;left:0;right:0;height:1px;top:0;background:linear-gradient(90deg,transparent,#d9c894,transparent);box-shadow:0 0 20px rgba(217,200,148,.6);animation:buildingScan 5s linear infinite}.map-label{position:absolute;font-style:normal;font-size:8px;letter-spacing:.17em;color:#8c999f}.label-knx{right:4%;top:28px}.label-oibt{left:24%;bottom:48px}@keyframes buildingScan{0%{top:2%;opacity:0}10%{opacity:1}90%{opacity:1}100%{top:96%;opacity:0}}@keyframes roomPulse{50%{background:#d9c894;box-shadow:0 0 18px rgba(217,200,148,.75)}}
/* espace interne : moins clinique, plus calme et premium */
.app{background:linear-gradient(135deg,#f0eee8 0%,#f7f6f2 46%,#eceeea 100%);min-height:100vh}.app main{position:relative}.app main:before{content:"";position:fixed;pointer-events:none;right:-12vw;top:70px;width:46vw;height:46vw;border-radius:50%;background:radial-gradient(circle,rgba(198,181,132,.10),transparent 66%)}.app-top{background:rgba(248,247,243,.82)!important;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-bottom:1px solid rgba(10,27,46,.08)}.page{position:relative}.quick-home{max-width:980px}.quick-home-head{padding:18px 0 12px;border-bottom:1px solid rgba(10,27,46,.12)}.quick-home-head h3{font-size:29px;font-weight:500}.quick-home-actions{gap:12px;background:transparent;border:0}.quick-main{min-height:126px;border:1px solid rgba(10,27,46,.10);background:rgba(255,255,255,.74);backdrop-filter:blur(10px);padding:20px 22px}.quick-main.punch-home{background:#101b24;border-color:#101b24}.quick-main:hover{background:#fff;transform:translateY(-2px);box-shadow:0 12px 34px rgba(10,27,46,.07)}.quick-icon{width:36px;height:36px;background:transparent!important;color:inherit!important;border:1px solid currentColor;opacity:.72}.quick-main b{font-size:17px;font-weight:600}.quick-next{border:1px solid rgba(10,27,46,.10);background:rgba(255,255,255,.6);padding:12px 16px}.page .toolbar{border-bottom:1px solid rgba(10,27,46,.1);padding-bottom:15px;margin-bottom:18px}.toolbar h3{font-weight:500;letter-spacing:-.03em}.clock-card,.summary-card,.note-card,.client-picker-panel,.client-detail,.expense-row,.expense-finance-summary>div,.expense-employee-folder,.invoice-hub,.admin-punch-card{background:rgba(255,255,255,.72)!important;border-color:rgba(10,27,46,.10)!important}.primary{box-shadow:none}.app aside{background:#0d171f}.app aside nav button{border-radius:0}.app aside nav button.active{background:#17242d;border-left:2px solid #d2c18b}
@media(max-width:850px){.building-stage{grid-template-columns:1fr;min-height:auto;padding:90px 0;gap:55px}.building-map{height:430px}.scroll-cue{display:none}}@media(max-width:600px){.living-building{padding:0 22px 75px}.building-map{height:360px}.floor{left:5%;right:4%;height:86px;padding:0 12px;grid-template-columns:1fr repeat(3,30px)}.f3{top:30px}.f2{top:136px}.f1{top:242px}.bus-line{right:10%}.building-copy h2{font-size:42px}.quick-home-head{padding-top:4px}.quick-home-actions{gap:8px}.quick-main{min-height:108px}.quick-icon{width:32px;height:32px}}

/* CERRETO-E v8.0 — identité immersive */
.brand-mark-v2{position:relative;overflow:hidden;border:0!important;width:42px;height:42px;text-indent:-999px;background:linear-gradient(145deg,#e4d8b4,#a78d4e);clip-path:polygon(0 0,100% 0,100% 28%,38% 28%,38% 72%,100% 72%,100% 100%,0 100%)}
.brand-mark-v2:before{content:"";position:absolute;inset:5px;background:#0a1118;clip-path:polygon(0 0,100% 0,100% 28%,35% 28%,35% 72%,100% 72%,100% 100%,0 100%)}
.brand-mark-v2:after{content:"";position:absolute;width:6px;height:6px;border-radius:50%;background:#f2e5bd;right:4px;top:18px;box-shadow:0 0 16px #ead8a0}
.footer-brand .brand-mark-v2,.login-brand .brand-mark-v2{background:linear-gradient(145deg,#e4d8b4,#a78d4e)}

.cinematic-scroll{height:360vh;background:#050b10;color:#fff;position:relative}.cinematic-sticky{height:100svh;position:sticky;top:0;overflow:hidden;display:grid;place-items:center;background:radial-gradient(circle at 50% 48%,#17242d 0,#091119 38%,#050b10 72%)}
.cinematic-sticky:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:72px 72px;transform:perspective(700px) rotateX(64deg) scale(1.5) translateY(calc((var(--cine,0) - .5)*90px));transform-origin:center 70%;opacity:.7}
.smart-object{position:absolute;width:min(46vw,610px);aspect-ratio:1;transform-style:preserve-3d;transform:perspective(1100px) rotateX(calc(58deg - var(--cine,0)*46deg)) rotateZ(calc(-35deg + var(--cine,0)*82deg)) scale(calc(.72 + var(--cine,0)*.42));transition:transform .08s linear;filter:drop-shadow(0 40px 60px rgba(0,0,0,.45))}
.smart-core{position:absolute;inset:20%;border:1px solid rgba(229,211,158,.55);background:linear-gradient(145deg,rgba(229,211,158,.10),rgba(255,255,255,.015));box-shadow:inset 0 0 60px rgba(211,190,126,.05),0 0 80px rgba(211,190,126,.08);backdrop-filter:blur(4px)}.smart-core:before,.smart-core:after{content:"";position:absolute;background:rgba(229,211,158,.22)}.smart-core:before{width:1px;top:0;bottom:0;left:50%}.smart-core:after{height:1px;left:0;right:0;top:50%}.smart-core>b{position:absolute;inset:0;display:grid;place-items:center;font:500 clamp(38px,6vw,84px) Manrope;letter-spacing:-.08em;color:rgba(236,222,178,.9);transform:rotateZ(calc(35deg - var(--cine,0)*82deg))}.core-line{position:absolute;background:linear-gradient(90deg,transparent,#e4cf8d,transparent);height:1px;width:80%;left:10%;animation:energy 3s linear infinite}.l1{top:24%}.l2{top:50%;animation-delay:-1s}.l3{top:76%;animation-delay:-2s}.core-node{position:absolute;width:8px;height:8px;border-radius:50%;background:#e5d29b;box-shadow:0 0 24px #e5d29b;animation:nodeBreathe 2s ease-in-out infinite}.c1{left:10%;top:20%}.c2{right:12%;top:45%}.c3{left:32%;bottom:12%}.c4{right:28%;bottom:25%}.smart-halo{position:absolute;inset:4%;border:1px solid rgba(219,200,143,.13);border-radius:50%;box-shadow:0 0 100px rgba(215,194,133,.07)}.orbit{position:absolute;inset:7%;border:1px solid rgba(255,255,255,.12);border-radius:50%;animation:orbitSpin 12s linear infinite}.orbit-b{inset:13%;animation-duration:8s;animation-direction:reverse}.orbit i{position:absolute;width:9px;height:9px;border-radius:50%;background:#e4cf8d;left:50%;top:-5px;box-shadow:0 0 18px #e4cf8d}.data-tag{position:absolute;min-width:190px;padding:14px 16px;border-left:1px solid #d9c48a;background:rgba(7,14,20,.72);backdrop-filter:blur(14px);transform:rotateZ(calc(35deg - var(--cine,0)*82deg));opacity:calc(.15 + var(--cine,0)*1.3)}.data-tag small{display:block;color:#d9c48a;letter-spacing:.18em;font-size:8px}.data-tag b{display:block;font:500 13px Manrope;margin:5px 0}.data-tag span{font-size:8px;letter-spacing:.1em;color:#73828a}.tag-oibt{left:-13%;top:26%}.tag-knx{right:-17%;bottom:25%}
.cinematic-copy{position:absolute;z-index:5;width:min(620px,82vw);transition:opacity .1s linear,transform .1s linear;pointer-events:none}.cinematic-copy small{font-size:9px;letter-spacing:.24em;color:#cdbb82}.cinematic-copy h2{font:500 clamp(50px,6vw,92px)/.94 Manrope;letter-spacing:-.06em;margin:20px 0}.cinematic-copy p{max-width:480px;color:#8e9ba2;line-height:1.7}.cine-copy-a{left:7vw;top:16vh;opacity:calc(1 - var(--cine,0)*3);transform:translateY(calc(var(--cine,0)*-80px))}.cine-copy-b{right:7vw;bottom:12vh;opacity:clamp(0,calc((var(--cine,0) - .55)*4),1);transform:translateY(calc((1 - var(--cine,0))*60px));text-align:right}.cine-copy-b p{margin-left:auto}.cine-progress{position:absolute;right:2.5vw;top:25%;height:50%;width:1px;background:rgba(255,255,255,.1)}.cine-progress span{display:block;width:1px;height:calc(var(--cine,0)*100%);background:#d9c48a;box-shadow:0 0 10px #d9c48a}@keyframes orbitSpin{to{transform:rotate(360deg)}}@keyframes energy{0%{transform:translateX(-70%);opacity:0}30%{opacity:1}100%{transform:translateX(70%);opacity:0}}

/* intranet v8 — lounge professionnel */
.app{background:#eae8e1!important;color:#17212a}.app aside{width:244px!important;background:linear-gradient(180deg,#111a21,#0b1218)!important;border-right:1px solid rgba(255,255,255,.06);padding:24px 14px!important}.app-brand{padding:5px 10px 26px!important;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:18px}.app-brand b{font-size:13px;letter-spacing:.14em}.app-brand small{font-size:7px!important;letter-spacing:.17em!important;color:#7e8b91!important}.app aside nav{gap:3px!important}.app aside nav button{min-height:46px!important;border:0!important;padding:0 13px!important;color:#aab3b7!important;font-size:12px!important}.app aside nav button:hover{background:rgba(255,255,255,.045)!important;color:#fff!important}.app aside nav button.active{background:linear-gradient(90deg,rgba(218,198,137,.14),rgba(218,198,137,.02))!important;color:#f0e5c3!important;border-left:1px solid #d9c48a!important}.nav-icon{opacity:.7}.logout{margin:14px 8px 4px!important;border-top:1px solid rgba(255,255,255,.07)!important;color:#758188!important}.workspace{background:radial-gradient(circle at 90% 0,rgba(214,196,143,.14),transparent 28%),linear-gradient(135deg,#f5f3ed,#ebe9e2)!important}.app-top{height:76px!important;background:rgba(246,244,238,.72)!important;border-bottom:1px solid rgba(20,31,39,.07)!important;padding:0 34px!important}.app-top .eyebrow{margin-bottom:3px!important;font-size:8px!important}.app-top h2{font:500 19px Manrope!important}.page{padding:38px 42px!important}.quick-home{max-width:1180px!important;margin:0!important}.quick-home-head{border:0!important;padding:10px 0 30px!important}.quick-home-head:before{content:"TABLEAU DE BORD";display:block;font-size:8px;letter-spacing:.22em;color:#a18e58;margin-bottom:12px}.quick-home-head h3{font:500 clamp(30px,3vw,44px) Manrope!important;letter-spacing:-.045em!important;color:#17212a}.section-note{color:#7d8788!important}.quick-home-actions{display:grid!important;grid-template-columns:1.25fr .75fr!important;gap:16px!important}.quick-main{border:1px solid rgba(20,31,39,.07)!important;background:rgba(255,255,255,.56)!important;min-height:158px!important;padding:28px!important;box-shadow:0 18px 55px rgba(27,34,38,.045)!important;backdrop-filter:blur(20px)!important;text-align:left!important;position:relative;overflow:hidden}.quick-main:after{content:"↗";position:absolute;right:24px;top:22px;font-size:16px;color:#9a947f}.quick-main.punch-home{background:linear-gradient(135deg,#18242d,#101820)!important;color:#fff!important}.quick-main.punch-home:before{content:"";position:absolute;width:240px;height:240px;border:1px solid rgba(217,196,138,.15);border-radius:50%;right:-90px;bottom:-150px}.quick-icon{border:0!important;width:auto!important;height:auto!important;font-size:18px!important;color:#b49d5f!important}.quick-main small{letter-spacing:.18em!important;font-size:8px!important}.quick-main b{font:500 22px Manrope!important;letter-spacing:-.02em!important;margin-top:10px!important}.quick-main em{font-style:normal!important;color:#899294!important;font-size:11px!important}.quick-next{margin-top:16px!important;background:rgba(255,255,255,.45)!important;border:0!important;border-top:1px solid rgba(20,31,39,.09)!important}.toolbar{background:transparent!important}.toolbar h3{font-size:28px!important}.clock-card,.summary-card,.note-card,.client-picker-panel,.client-detail,.expense-row,.expense-finance-summary>div,.expense-employee-folder,.invoice-hub,.admin-punch-card,.job-binder,.job-city,.job-work,.plan-day{border:1px solid rgba(20,31,39,.075)!important;background:rgba(255,255,255,.58)!important;box-shadow:0 12px 40px rgba(30,38,42,.035)!important}.primary{background:#17232c!important;border-color:#17232c!important}.secondary{background:rgba(255,255,255,.65)!important;border-color:rgba(20,31,39,.13)!important}.global-search-box{background:rgba(255,255,255,.55)!important;border-color:rgba(20,31,39,.08)!important}
@media(max-width:800px){.cinematic-scroll{height:300vh}.smart-object{width:86vw}.data-tag{min-width:145px}.tag-oibt{left:0}.tag-knx{right:0}.cine-copy-a{left:22px}.cine-copy-b{right:22px}.cine-progress{right:10px}.app aside{width:auto!important}.page{padding:22px 16px!important}.quick-home-actions{grid-template-columns:1fr!important}.quick-main{min-height:132px!important}.app-top{padding:0 16px!important}}
@media(prefers-reduced-motion:reduce){.cinematic-scroll{height:auto}.cinematic-sticky{height:100svh}.smart-object{transform:none}.orbit,.core-line{animation:none}}
/* v8.1 — CERRETO-E WOW / spatial scroll */
.wow-scroll{height:520vh;background:#05090c;position:relative;color:#f7f5ef;overflow:clip;--wow:0}
.wow-sticky{height:100vh;position:sticky;top:0;overflow:hidden;perspective:1400px;background:radial-gradient(circle at 50% 48%,#16242b 0,#091015 32%,#05090c 70%)}
.wow-stars{position:absolute;inset:-20%;opacity:.42;background-image:radial-gradient(circle,#d9c9a2 0 1px,transparent 1.5px);background-size:72px 72px;transform:translate3d(0,calc(var(--wow)*-160px),0) rotate(calc(var(--wow)*4deg));mask-image:radial-gradient(circle,#000,transparent 72%)}
.wow-title{position:absolute;z-index:8;left:7vw;top:50%;transform:translateY(-50%);max-width:780px;pointer-events:none}.wow-title small{letter-spacing:.26em;font-size:10px;color:#c9b991}.wow-title h2{font-size:clamp(56px,8vw,132px);line-height:.88;letter-spacing:-.055em;margin:18px 0;font-weight:450}.wow-title-a{opacity:calc(1 - min(1,var(--wow)*4));transform:translateY(calc(-50% - var(--wow)*90px))}.wow-title-b{left:auto;right:7vw;text-align:right;opacity:max(0,calc((var(--wow) - .72)*4));transform:translateY(calc(-50% + (1 - var(--wow))*80px));max-width:900px}.wow-title-b em{font-style:normal;color:#c9b991}.wow-title-b p{margin-left:auto;max-width:520px;color:#aeb8bb;font-size:16px;line-height:1.7}
.wow-building{position:absolute;left:50%;top:50%;width:min(58vw,760px);aspect-ratio:1;transform-style:preserve-3d;transform:translate(-50%,-50%) translateZ(calc(-700px + var(--wow)*760px)) rotateX(calc(64deg - var(--wow)*56deg)) rotateY(calc(-48deg + var(--wow)*390deg)) scale(calc(.52 + var(--wow)*.62));filter:drop-shadow(0 40px 80px #000)}
.wb-shell{position:absolute;inset:16%;border:1px solid rgba(220,204,161,.48);background:linear-gradient(135deg,rgba(255,255,255,.055),rgba(255,255,255,.008));box-shadow:inset 0 0 70px rgba(189,171,126,.04),0 0 90px rgba(88,153,170,.08);transform-style:preserve-3d;backdrop-filter:blur(3px)}
.wb-shell:before,.wb-shell:after{content:"";position:absolute;background:rgba(212,198,159,.16)}.wb-shell:before{left:33%;top:0;bottom:0;width:1px}.wb-shell:after{left:66%;top:0;bottom:0;width:1px}
.wb-floor{height:33.333%;border-bottom:1px solid rgba(255,255,255,.1);position:relative;display:flex;align-items:center;justify-content:space-around}.wb-floor b{position:absolute;left:4%;top:10%;font-size:8px;letter-spacing:.2em;color:#aab4b7;font-weight:500}.wb-floor i{width:9px;height:9px;border-radius:50%;border:1px solid #cdbd94;box-shadow:0 0 calc(4px + var(--wow)*22px) rgba(226,205,151,.7);background:rgba(226,205,151,calc(.12 + var(--wow)*.7))}.wf2 i:nth-of-type(2),.wf3 i:nth-of-type(1){animation:wbblink 1.8s infinite alternate}@keyframes wbblink{to{box-shadow:0 0 35px #d9c28a;background:#f3deb0}}
.wb-bus,.wb-power{position:absolute;display:block;left:9%;right:9%;height:1px;overflow:visible}.wb-bus{top:42%;background:linear-gradient(90deg,transparent,#5ec5dc,#5ec5dc,transparent)}.wb-power{top:72%;background:linear-gradient(90deg,transparent,#d7bd7c,#d7bd7c,transparent)}.wb-bus:after,.wb-power:after{content:"";position:absolute;width:8px;height:8px;border-radius:50%;top:-3.5px;left:0;background:#fff;box-shadow:0 0 18px currentColor;animation:packet 2.2s linear infinite}.wb-bus:after{color:#5ec5dc}.wb-power:after{color:#d7bd7c;animation-delay:-1s}@keyframes packet{to{left:100%}}
.wb-scan{position:absolute;left:-8%;right:-8%;top:calc(8% + var(--wow)*82%);height:2px;background:#d9c58f;box-shadow:0 0 18px #d9c58f,0 0 60px rgba(217,197,143,.4);opacity:calc(.2 + var(--wow)*.8)}
.wb-ring{position:absolute;border:1px solid rgba(197,180,137,.22);border-radius:50%;inset:3%;transform:rotateX(72deg) rotateZ(calc(var(--wow)*-280deg))}.wb-ring.r2{inset:-8%;border-color:rgba(83,174,194,.14);transform:rotateY(76deg) rotateZ(calc(var(--wow)*220deg))}
.wb-callout{position:absolute;min-width:190px;padding:13px 15px;border-left:1px solid #cdbb8e;background:rgba(5,9,12,.7);backdrop-filter:blur(10px);opacity:max(0,calc((var(--wow) - .28)*2.5));transform:translateZ(90px)}.wb-callout small{display:block;color:#b7a77f;font-size:8px}.wb-callout b{display:block;font-size:15px;letter-spacing:.12em;margin:3px 0}.wb-callout span{font-size:8px;letter-spacing:.14em;color:#829094}.co1{left:-18%;top:20%}.co2{right:-22%;top:50%}.co3{left:-12%;bottom:12%}
.wow-counter{position:absolute;bottom:4vh;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:14px;font-size:9px;letter-spacing:.16em;color:#738086}.wow-counter i{display:block;width:180px;height:1px;background:#27343a;position:relative}.wow-counter i:after{content:"";position:absolute;left:0;top:0;height:1px;width:calc(var(--wow)*100%);background:#d4bd83;box-shadow:0 0 10px #d4bd83}
/* intranet v8.1 — editorial luxury, less boxy */
body.app-open #privateApp{background:linear-gradient(120deg,#f4f1e9 0,#fbfaf6 42%,#f1eee5 100%)}
body.app-open .app-sidebar{background:linear-gradient(180deg,#10171b,#172126);box-shadow:18px 0 55px rgba(17,26,30,.08)}
body.app-open .app-main{background:transparent}body.app-open .app-card,body.app-open .dash-card,body.app-open .panel{border-radius:8px!important;border-color:rgba(31,44,49,.09)!important;box-shadow:0 14px 45px rgba(25,34,37,.045)!important;background:rgba(255,255,252,.72)!important;backdrop-filter:blur(18px)}
body.app-open h1,body.app-open h2{letter-spacing:-.035em}body.app-open .app-page{max-width:1500px;margin-inline:auto}body.app-open button{border-radius:6px}body.app-open input,body.app-open select,body.app-open textarea{border-radius:5px!important;background:rgba(255,255,255,.72)!important}
@media(max-width:760px){.wow-scroll{height:430vh}.wow-building{width:92vw}.wow-title{left:7vw;right:7vw;top:22%;transform:none}.wow-title h2{font-size:14vw}.wow-title-b{top:auto;bottom:9%;text-align:left;transform:none}.wow-title-b p{margin-left:0}.wb-callout{min-width:130px;padding:9px}.co1{left:-3%}.co2{right:-4%}.co3{left:0}.wow-counter{display:none}}
@media(prefers-reduced-motion:reduce){.wow-building{transform:translate(-50%,-50%)}.wb-bus:after,.wb-power:after,.wb-floor i{animation:none}}
/* v8.2 · bâtiment spatial, circuit vivant & relances */
.circuit-building{height:620vh;background:#071018;color:#fff;position:relative;overflow:clip}.cb-sticky{height:100vh;position:sticky;top:0;overflow:hidden;perspective:1500px;background:radial-gradient(circle at 50% 55%,#132d3b 0,#09141d 36%,#050b10 72%)}.cb-sticky:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px);background-size:72px 72px;mask-image:linear-gradient(to bottom,transparent,#000 20%,#000 80%,transparent);transform:translateY(calc(var(--circuit,0)*-72px))}.cb-world{position:absolute;left:50%;top:51%;width:min(62vw,820px);height:min(70vh,720px);transform-style:preserve-3d;transform:translate(-50%,-50%) scale(calc(.62 + var(--circuit,0)*.48)) rotateX(calc(10deg - var(--circuit,0)*8deg)) rotateY(calc(-32deg + var(--circuit,0)*390deg));transition:filter .1s linear;filter:drop-shadow(0 45px 70px rgba(0,0,0,.42))}.cb-building{position:absolute;inset:7% 14% 4%;border:1px solid rgba(192,222,231,.36);background:linear-gradient(90deg,rgba(24,47,59,.84),rgba(10,24,33,.6));transform-style:preserve-3d;box-shadow:inset 0 0 80px rgba(88,190,211,.04),0 0 0 1px rgba(255,255,255,.03)}.cb-building:before,.cb-building:after{content:"";position:absolute;inset:0;pointer-events:none}.cb-building:before{background:linear-gradient(90deg,transparent 49.8%,rgba(159,206,218,.16) 50%,transparent 50.2%)}.cb-building:after{background:linear-gradient(180deg,rgba(124,204,221,.08),transparent 20%);opacity:calc(.2 + var(--circuit,0)*.5)}.cb-side{position:absolute;top:0;bottom:0;right:-92px;width:92px;transform-origin:left;transform:rotateY(90deg);background:#0b1a23;border:1px solid rgba(192,222,231,.22)}.cb-roof{position:absolute;left:0;right:0;top:-92px;height:92px;transform-origin:bottom;transform:rotateX(90deg);background:#11242e;border:1px solid rgba(192,222,231,.22)}.cb-floor{height:25%;border-bottom:1px solid rgba(182,218,226,.2);display:grid;grid-template-columns:1fr 1fr;position:relative}.cb-floor:last-child{border-bottom:0}.cb-room{position:relative;border-right:1px solid rgba(182,218,226,.14);background:linear-gradient(145deg,rgba(255,255,255,.025),transparent)}.cb-room:after{content:"";position:absolute;width:32%;height:42%;right:14%;top:18%;border:1px solid rgba(157,208,220,.18);background:#0b1820}.cb-panel{position:absolute;left:7%;bottom:20%;width:62px;height:82px;border:1px solid #8ea5aa;background:#15232a;z-index:4;padding:8px;display:grid;gap:4px;box-shadow:0 0 28px rgba(95,214,230,.08)}.cb-panel i{display:block;border:1px solid #65767b;background:#0c151a}.cb-panel b{font-size:6px;letter-spacing:.12em;color:#a9bcc0}.cb-wire{position:absolute;inset:0;width:100%;height:100%;z-index:5;overflow:visible}.cb-wire path{fill:none;stroke-linecap:round;stroke-linejoin:round}.wire-base{stroke:rgba(130,168,177,.17);stroke-width:3}.wire-live{stroke:#70e6df;stroke-width:4;stroke-dasharray:1;stroke-dashoffset:calc(1 - min(1,var(--wire,0)));filter:drop-shadow(0 0 7px #6be7df) drop-shadow(0 0 18px rgba(107,231,223,.55))}.cb-lamp{position:absolute;right:12%;bottom:15%;width:16px;height:7px;border-radius:50%;background:#6f7b78;z-index:8}.cb-glow{position:absolute;right:-10%;bottom:-12%;width:52%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,#fff8ce 0,rgba(255,224,135,.46) 18%,rgba(255,213,102,.12) 42%,transparent 70%);opacity:var(--light,0);transform:scale(calc(.4 + var(--light,0)*1.2));filter:blur(4px);z-index:6}.cb-final-room{background:linear-gradient(145deg,rgba(255,231,160,calc(var(--light,0)*.22)),transparent)}.cb-meter,.cb-knx{position:absolute;z-index:9;padding:13px 15px;border-left:1px solid #79ded8;background:rgba(5,14,20,.72);backdrop-filter:blur(14px);opacity:calc(var(--circuit,0)*1.8);font-size:9px;letter-spacing:.12em}.cb-meter{left:-2%;top:18%;transform:translateZ(90px)}.cb-meter b{display:block;font:500 25px Manrope;margin:5px 0;color:#d9f7f3}.cb-meter em{font-size:10px}.cb-meter span,.cb-knx b{display:block;color:#728b91;font-size:7px}.cb-knx{right:-1%;bottom:18%;border-color:#d7bf79}.cb-knx i{display:inline-block;width:6px;height:6px;border-radius:50%;background:#d7bf79;box-shadow:0 0 12px #d7bf79;margin-right:7px}.cb-knx span{color:#e9dbad}.cb-copy{position:absolute;z-index:12;left:6vw;top:50%;transform:translateY(-50%);max-width:440px;pointer-events:none}.cb-copy small{font-size:9px;letter-spacing:.24em;color:#75ddd8}.cb-copy h2{font:400 clamp(50px,7vw,112px)/.88 Manrope;margin:15px 0;letter-spacing:-.065em}.cb-copy p{max-width:340px;color:#94a8af;line-height:1.7}.cb-copy-1{opacity:calc(1 - var(--circuit,0)*3.5);transform:translateY(calc(-50% - var(--circuit,0)*90px))}.cb-copy-2{left:auto;right:6vw;text-align:right;opacity:max(0,calc((var(--circuit,0) - .68)*3.2));transform:translateY(-50%)}.cb-copy-2 em{font-style:normal;color:#ffe49a;text-shadow:0 0 28px rgba(255,221,128,.28)}.cb-progress{position:absolute;right:28px;top:18%;bottom:18%;width:1px;background:rgba(255,255,255,.12)}.cb-progress i{display:block;width:1px;height:calc(var(--circuit,0)*100%);background:#70e6df;box-shadow:0 0 8px #70e6df}.reminder-form{width:min(650px,calc(100vw - 28px));padding:30px}.reminder-client{color:#697478;margin:-5px 0 20px}.reminder-selected{border-top:1px solid #d9ddd9;border-bottom:1px solid #d9ddd9;margin:0 0 18px}.reminder-selected-row{display:grid;grid-template-columns:1fr auto;gap:12px;padding:11px 0;border-bottom:1px solid #eceeeb}.reminder-selected-row:last-child{border:0}.reminder-selected-row small{display:block;color:#7c8586;margin-top:3px}.reminder-note{font-size:12px;color:#707a7c;line-height:1.5}.invoice-select{width:18px;height:18px;accent-color:#17232c}.invoice-reminder-tools{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:14px 0 6px;padding-top:12px;border-top:1px solid rgba(20,31,39,.09)}.invoice-reminder-tools span{font-size:11px;color:#737d80}.invoice-row.reminder-ready{grid-template-columns:26px minmax(0,1fr) auto auto!important}@media(max-width:800px){.cb-world{width:92vw;height:62vh}.cb-copy{left:7vw;top:17%;transform:none}.cb-copy h2{font-size:48px}.cb-copy-2{top:auto;bottom:8%;right:7vw;left:7vw}.cb-copy-2 h2{font-size:44px}.cb-meter{left:4%;top:8%}.cb-knx{right:3%;bottom:8%}.circuit-building{height:520vh}.invoice-row.reminder-ready{grid-template-columns:24px 1fr auto!important}.invoice-row.reminder-ready .invoice-actions{grid-column:2/-1}}
/* v8.3 — Les vrais Silos, scène scroll */
.silo-scroll{height:260vh;position:relative;background:#05090c;color:#fff;--silo:0}
.silo-sticky{height:100svh;position:sticky;top:0;overflow:hidden;background:#05090c}
.silo-photo{position:absolute;inset:-5%;background-image:linear-gradient(90deg,rgba(4,9,13,.58),rgba(4,9,13,.08) 48%,rgba(4,9,13,.38)),url('https://sareg.ch/wp-content/uploads/2023/05/Silo_2500px-2400x1406.jpg');background-size:cover;background-position:center;transform:scale(calc(1.03 + var(--silo)*.42)) translateY(calc(var(--silo)*-2.5%));filter:saturate(calc(.72 + var(--silo)*.18)) brightness(calc(.64 - var(--silo)*.22));transition:filter .08s linear;will-change:transform,filter}
.silo-vignette{position:absolute;inset:0;background:radial-gradient(circle at 61% 42%,transparent 0 26%,rgba(2,7,10,.08) 43%,rgba(2,7,10,.8) 100%),linear-gradient(180deg,rgba(2,6,9,.08),rgba(2,6,9,.48));opacity:calc(.45 + var(--silo)*.4)}
.silo-intro{position:absolute;left:6vw;top:50%;transform:translateY(-50%) translateY(calc(var(--silo)*-70px));width:min(620px,50vw);opacity:clamp(0,calc(1 - var(--silo)*3.4),1);z-index:4}.silo-intro h2,.silo-finale h2{font-family:Georgia,serif;font-weight:400;letter-spacing:-.045em;font-size:clamp(50px,6.2vw,108px);line-height:.92;margin:14px 0 22px}.silo-intro h2 span{color:#d9c7a0}.silo-intro>p:last-child{max-width:470px;color:#d5d7d8;font-size:18px;line-height:1.55}
.silo-tech{position:absolute;inset:0;z-index:3;opacity:clamp(0,calc((var(--silo) - .13)*4.2),1);transform:scale(calc(.94 + var(--silo)*.12));transform-origin:61% 48%}.silo-tech:before{content:"";position:absolute;left:53%;top:13%;width:28vw;height:74vh;border:1px solid rgba(164,214,240,.17);border-radius:46% 46% 10% 10%;box-shadow:inset 0 0 70px rgba(38,145,205,.06);opacity:clamp(0,calc((var(--silo) - .2)*4),.8)}.silo-tech svg{position:absolute;left:39%;top:7%;width:55vw;height:86vh;overflow:visible}.wire-base{fill:none;stroke:rgba(194,218,230,.2);stroke-width:4}.wire-live{fill:none;stroke:#6bd5ff;stroke-width:7;stroke-linecap:round;stroke-linejoin:round;filter:url(#glow);stroke-dasharray:1;stroke-dashoffset:calc(1 - clamp(0,calc((var(--silo) - .24)*1.9),1))}.power-node{fill:#dff7ff;filter:url(#glow);opacity:clamp(0,calc((var(--silo) - .34)*4),1)}.panel-box rect,.panel-box line{fill:rgba(4,11,15,.72);stroke:#e2c88e;stroke-width:3}.panel-box line{fill:none}.lamp line,.lamp path{stroke:#f1d59a;stroke-width:5;fill:rgba(232,190,105,.15)}.lamp circle{fill:#ffe0a0;filter:url(#glow);opacity:clamp(0,calc((var(--silo) - .72)*5),.9);transform-origin:690px 150px;transform:scale(calc(.15 + clamp(0,calc((var(--silo) - .72)*5),1)*1.25))}
.tech-label{position:absolute;padding:12px 15px;border-left:1px solid rgba(233,210,162,.6);background:linear-gradient(90deg,rgba(4,10,14,.72),transparent);min-width:160px;backdrop-filter:blur(5px);opacity:clamp(0,calc((var(--silo) - .34)*4),1)}.tech-label small{color:#c9a968;margin-right:9px}.tech-label b{font-size:12px;letter-spacing:.14em}.tech-label span{display:block;color:#aab5bb;font-size:11px;margin-top:4px}.label-panel{left:18%;bottom:15%}.label-measure{right:8%;top:34%}.label-bus{right:9%;top:53%}
.silo-finale{position:absolute;z-index:5;left:6vw;bottom:8vh;width:min(720px,60vw);opacity:clamp(0,calc((var(--silo) - .74)*4.5),1);transform:translateY(calc((1 - var(--silo))*80px));text-shadow:0 8px 30px #000}.silo-finale small{letter-spacing:.18em;color:#d5b978}.silo-finale h2{font-size:clamp(44px,5.6vw,94px)}.silo-finale p{color:#d9dddf;font-size:17px}.silo-progress{position:absolute;right:28px;top:18%;height:64%;width:1px;background:rgba(255,255,255,.15);z-index:6}.silo-progress i{display:block;width:1px;height:calc(var(--silo)*100%);background:#e1c487;box-shadow:0 0 14px #e1c487}
@media(max-width:760px){.silo-scroll{height:230vh}.silo-photo{inset:0;background-position:58% center}.silo-intro{left:22px;top:58%;width:82vw}.silo-intro h2,.silo-finale h2{font-size:13vw}.silo-tech svg{left:7%;top:13%;width:92vw;height:70vh}.silo-tech:before{left:34%;width:54vw}.tech-label{display:none}.silo-finale{left:22px;bottom:10vh;width:84vw}.silo-progress{right:10px}}
@media(prefers-reduced-motion:reduce){.silo-scroll{height:auto}.silo-sticky{height:100svh}.silo-photo{transform:none}.wire-live{stroke-dashoffset:0}.lamp circle{opacity:.8;transform:none}}
/* v8.4 · expérience Silos plus immersive + archives de relances */
.silo-tech{transform:scale(calc(1.02 + var(--silo)*.34));transform-origin:61% 48%}
.silo-tech:before{left:46%;top:5%;width:40vw;height:88vh;border-radius:42% 42% 8% 8%;border-color:rgba(164,214,240,.24);box-shadow:inset 0 0 110px rgba(38,145,205,.10),0 0 90px rgba(25,115,165,.08)}
.silo-tech svg{left:24%;top:-4%;width:76vw;height:104vh}.wire-base{stroke-width:5}.wire-live{stroke-width:9}.panel-box rect,.panel-box line{stroke-width:4}.lamp circle{r:70px}
.silo-intro>p:last-child{font-size:20px;max-width:420px}.silo-finale{width:min(820px,68vw)}
.client-reminders{margin-top:30px;padding-top:24px;border-top:1px solid rgba(20,31,39,.10)}.client-reminder-history{display:grid;gap:0;border-top:1px solid rgba(20,31,39,.09)}.reminder-history-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:20px;padding:16px 0;border-bottom:1px solid rgba(20,31,39,.09)}.reminder-history-row b{display:block;font-size:13px}.reminder-history-row small{display:block;color:#758084;margin-top:5px;font-size:10px}.reminder-history-row>strong{font-size:13px}.reminder-history-actions{display:flex;gap:7px}.reminder-history-actions a{text-decoration:none;display:inline-flex;align-items:center}.reminder-form{width:min(760px,calc(100vw - 28px));padding:42px}.reminder-form h2{font-size:32px;letter-spacing:-.04em}.reminder-selected-row{padding:14px 0}
@media(max-width:760px){.silo-tech{transform:scale(calc(.98 + var(--silo)*.24))}.silo-tech svg{left:-8%;top:4%;width:116vw;height:82vh}.silo-tech:before{left:20%;width:74vw;height:76vh}.reminder-history-row{grid-template-columns:1fr auto}.reminder-history-actions{grid-column:1/-1}.reminder-form{padding:26px}}
/* v8.6 · direction technique + continuité narrative */
.director-section{position:relative;min-height:72vh;padding:12vh 7vw;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);align-items:end;gap:8vw;background:linear-gradient(145deg,#f3f0e8,#e9e4d8);color:#0b151b;overflow:hidden}
.director-section:before{content:"";position:absolute;width:52vw;height:52vw;border-radius:50%;right:-20vw;top:-28vw;border:1px solid rgba(11,21,27,.12);box-shadow:0 0 0 7vw rgba(11,21,27,.018),0 0 0 14vw rgba(11,21,27,.014)}
.director-line{position:absolute;left:0;top:0;width:100%;height:1px;background:linear-gradient(90deg,transparent,#b99c61 35%,#b99c61 65%,transparent);box-shadow:0 0 18px rgba(185,156,97,.28)}
.director-copy{position:relative;z-index:1;max-width:780px}.director-copy h2{font-family:Georgia,serif;font-size:clamp(42px,5.2vw,82px);font-weight:400;line-height:.98;letter-spacing:-.045em;margin:14px 0 30px}.director-copy>p:last-child{font-size:clamp(17px,1.4vw,21px);line-height:1.7;max-width:700px;color:#39444a}.director-copy strong{color:#0b151b;font-weight:600}
.director-signature{position:relative;z-index:1;border-left:1px solid rgba(11,21,27,.22);padding:12px 0 12px 30px;align-self:end}.director-signature span{display:block;font-family:Georgia,serif;font-size:clamp(32px,3.2vw,52px);letter-spacing:-.03em}.director-signature small{display:block;margin-top:12px;letter-spacing:.15em;color:#76633f;font-size:11px}
@media(max-width:760px){.director-section{min-height:auto;padding:90px 24px;grid-template-columns:1fr;gap:48px}.director-copy h2{font-size:12vw}.director-signature{padding-left:20px}}

/* v8.7 · homepage = un film électrique continu, sans chapitres visuels */
.electric-film{--f:0;position:relative;height:100svh;min-height:680px;overflow:hidden;background:#050a0e;color:#fff;isolation:isolate}
.public-header{background:linear-gradient(180deg,rgba(4,9,13,.88),rgba(4,9,13,.18) 72%,transparent)!important;border-bottom:0!important;backdrop-filter:none!important}
.film-photo{position:absolute;z-index:-5;inset:-7%;background-image:linear-gradient(90deg,rgba(3,8,12,.64),rgba(3,8,12,.10) 48%,rgba(3,8,12,.46)),url('https://sareg.ch/wp-content/uploads/2023/05/Silo_2500px-2400x1406.jpg');background-size:cover;background-position:center;transform:scale(calc(1.03 + var(--f)*.34)) translate3d(calc(var(--f)*-2.5%),calc(var(--f)*-1.5%),0);filter:saturate(calc(.76 - var(--f)*.28)) brightness(calc(.66 - var(--f)*.30));will-change:transform,filter}
.film-depth{position:absolute;z-index:-4;inset:0;background:radial-gradient(circle at 63% 49%,transparent 0 16%,rgba(4,10,14,.08) 30%,rgba(4,9,13,.82) 76%),linear-gradient(180deg,transparent 45%,#050a0e 100%);opacity:calc(.12 + var(--f)*.78)}
.film-grid{position:absolute;z-index:-2;inset:-20%;background-image:linear-gradient(rgba(113,227,219,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(113,227,219,.055) 1px,transparent 1px);background-size:68px 68px;transform:perspective(900px) rotateX(62deg) translateY(calc(30% - var(--f)*22%)) scale(1.5);transform-origin:center 72%;opacity:clamp(0,calc((var(--f) - .18)*2.8),.7);mask-image:radial-gradient(circle,#000 0 48%,transparent 78%)}
.film-building{position:absolute;z-index:1;inset:7vh 2vw 2vh 24vw;transform:scale(calc(.86 + var(--f)*.22)) translate3d(calc((.35 - var(--f))*3vw),0,0);transform-origin:62% 55%;will-change:transform}
.film-cutaway{position:absolute;inset:5% 3%;border:1px solid rgba(135,220,221,.08);background:linear-gradient(90deg,rgba(7,22,29,.02),rgba(8,29,37,.16));clip-path:polygon(12% 94%,18% 26%,38% 8%,68% 8%,86% 30%,92% 94%);opacity:clamp(0,calc((var(--f) - .20)*3),.65);box-shadow:inset 0 0 100px rgba(81,218,211,.04)}
.film-network{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.film-ghost{fill:none;stroke:rgba(126,196,201,.11);stroke-width:1;opacity:clamp(0,calc((var(--f) - .18)*3),.8)}
.film-panel{fill:rgba(10,23,29,.88);stroke:rgba(185,219,217,.58);stroke-width:1.5;opacity:clamp(0,calc((var(--f) - .18)*6),1)}.film-panel path{fill:none;stroke:#728a8c;stroke-width:2}.film-panel circle{fill:#72e7df;filter:url(#filmGlow)}
.film-wire-base,.film-wire-live,.film-branch{fill:none;stroke-linecap:round;stroke-linejoin:round}.film-wire-base{stroke:rgba(118,181,184,.16);stroke-width:4;opacity:clamp(0,calc((var(--f) - .2)*5),1)}.film-wire-live{stroke:#71eee5;stroke-width:5;stroke-dasharray:1;stroke-dashoffset:calc(1 - clamp(0,calc((var(--f) - .26)/.27),1));filter:url(#filmGlow)}
.film-branch{stroke:#d9c77f;stroke-width:3;stroke-dasharray:1;stroke-dashoffset:calc(1 - clamp(0,calc((var(--f) - .52)/.16),1));filter:url(#filmGlow);opacity:clamp(0,calc((var(--f) - .5)*5),1)}
.film-pulses{fill:#dffdfa;filter:url(#filmGlowBig);opacity:clamp(0,calc((var(--f) - .31)*7),calc(1 - (var(--f) - .76)*5))}.film-sensors{fill:#71eee5;filter:url(#filmGlow);opacity:clamp(0,calc((var(--f) - .42)*6),1)}
.film-lamp{fill:none;stroke:#d8d9cc;stroke-width:2;opacity:clamp(0,calc((var(--f) - .55)*6),1)}.film-lamp circle{fill:#ffe7a2;stroke:none;opacity:clamp(0,calc((var(--f) - .66)*8),.78);filter:url(#filmGlowBig);transform-origin:934px 183px;transform:scale(calc(.35 + clamp(0,calc((var(--f) - .66)*3),1)*1.2))}
.film-measure,.film-knx{position:absolute;z-index:4;padding:12px 15px;border-left:1px solid #70e6df;background:rgba(5,13,18,.62);backdrop-filter:blur(14px);opacity:clamp(0,calc((var(--f) - .42)*8),calc(1 - (var(--f) - .68)*7));transform:translateY(calc((.5 - var(--f))*25px))}.film-measure small,.film-knx span{font-size:8px;letter-spacing:.18em;color:#77ddd8}.film-measure b{display:block;font:500 22px Manrope;margin:4px 0}.film-measure span,.film-knx b{font-size:7px;letter-spacing:.12em;color:#839498}.m1{left:41%;top:24%}.m2{right:9%;top:42%}.film-knx{right:7%;bottom:17%;border-color:#dbc981;opacity:clamp(0,calc((var(--f) - .60)*8),calc(1 - (var(--f) - .82)*8))}.film-knx i{display:inline-block;width:6px;height:6px;border-radius:50%;background:#dbc981;box-shadow:0 0 18px #dbc981;margin-right:7px}.film-knx b{display:block;margin-top:6px;color:#e9ddb4}
.film-copy{position:absolute;z-index:8;left:6.5vw;top:50%;width:min(620px,84vw);transform:translateY(-50%);pointer-events:none}.film-copy small,.film-copy .eyebrow{font-size:9px;letter-spacing:.25em;color:#d4c285}.film-copy h1,.film-copy h2{font:500 clamp(54px,7vw,112px)/.89 Manrope;letter-spacing:-.065em;margin:16px 0}.film-copy p{max-width:470px;color:#a0adb1;line-height:1.7}.film-copy em{font-style:normal;color:#f0dfa7}.film-copy strong{color:#f4f0e6;font-weight:500}
.film-copy-0{opacity:clamp(0,calc(1 - var(--f)*7),1);transform:translateY(calc(-50% - var(--f)*70px))}.film-copy-1{opacity:clamp(0,calc((var(--f) - .15)*14),calc(1 - (var(--f) - .29)*14));}.film-copy-2{opacity:clamp(0,calc((var(--f) - .34)*14),calc(1 - (var(--f) - .48)*14));}.film-copy-3{opacity:clamp(0,calc((var(--f) - .55)*14),calc(1 - (var(--f) - .68)*14));}.film-copy-4{opacity:clamp(0,calc((var(--f) - .72)*14),calc(1 - (var(--f) - .83)*16));}.film-copy-5{opacity:clamp(0,calc((var(--f) - .86)*12),1)}
.film-copy-1,.film-copy-2,.film-copy-3,.film-copy-4{transform:translateY(calc(-50% + (var(--f) - .5)*22px))}.film-copy-3,.film-copy-5{left:auto;right:6.5vw;text-align:right}.film-copy-3 p,.film-copy-5 p{margin-left:auto}.film-copy-4{left:8vw;top:54%}.film-copy-4 h2{font-size:clamp(46px,6vw,88px)}.film-copy-5 h2{font-size:clamp(48px,6vw,94px)}
.film-cta{pointer-events:auto;display:inline-flex;gap:18px;align-items:center;margin-top:20px;color:#f2e6c1;text-decoration:none;border-bottom:1px solid rgba(232,211,151,.5);padding:0 0 10px;font-size:11px;letter-spacing:.08em}.film-cta span{animation:filmDown 1.4s ease-in-out infinite}@keyframes filmDown{50%{transform:translateY(5px)}}
.film-timeline{position:absolute;z-index:10;left:6.5vw;right:6.5vw;bottom:28px;height:1px;background:rgba(255,255,255,.12)}.film-timeline i{display:block;height:1px;width:calc(var(--f)*100%);background:linear-gradient(90deg,#71eee5,#e2cf8b);box-shadow:0 0 10px rgba(113,238,229,.65)}.film-timeline span{position:absolute;right:0;top:-18px;font-size:7px;letter-spacing:.22em;color:#75868b}.film-replay{position:absolute;z-index:12;right:6.5vw;bottom:42px;border:0;background:transparent;color:#98a5a8;font:500 9px Manrope;letter-spacing:.12em;cursor:pointer;opacity:clamp(0,calc((var(--f) - .91)*15),1)}
@media(max-width:760px){.electric-film{min-height:620px}.film-building{inset:18vh -22vw 7vh 2vw;transform:scale(calc(.94 + var(--f)*.18))}.film-copy{left:22px;top:34%;width:86vw}.film-copy h1,.film-copy h2{font-size:13vw}.film-copy-3,.film-copy-5{left:22px;right:auto;text-align:left;top:72%}.film-copy-4{left:22px;top:35%}.film-copy-5 h2{font-size:11vw}.film-measure{display:none}.film-knx{right:8%;bottom:10%}.film-timeline{left:22px;right:22px}.film-replay{right:22px}.public-header nav{display:none}}
@media(prefers-reduced-motion:reduce){.film-photo,.film-building{transform:none}.film-pulses{display:none}.film-replay{display:none}}

/* v8.8 — continuous cinematic brand film */
.electric-film{--f:0;height:100svh;min-height:720px;background:#050a0e}
.film-photo{transform:scale(calc(1.01 + var(--f)*.52)) translate3d(calc(var(--f)*-4%),calc(var(--f)*-2%),0);filter:saturate(calc(.82 - var(--f)*.30)) brightness(calc(.72 - var(--f)*.36));transition:none}
.film-building{inset:3vh -1vw -2vh 18vw;transform:perspective(1500px) rotateY(calc((var(--f) - .28)*-8deg)) scale(calc(.80 + var(--f)*.36)) translate3d(calc((.34 - var(--f))*5vw),0,0)}
.film-cutaway{opacity:clamp(0,calc((var(--f) - .17)*5),.82);background:linear-gradient(90deg,rgba(7,18,24,.18),rgba(6,27,34,.54));box-shadow:inset 0 0 160px rgba(75,224,214,.08),0 0 100px rgba(0,0,0,.35)}
.film-cutaway:before{content:"";position:absolute;inset:8% 12% 7% 15%;background:repeating-linear-gradient(to bottom,transparent 0 10.7%,rgba(180,224,220,.16) 10.9% 11.1%),repeating-linear-gradient(to right,transparent 0 15.8%,rgba(180,224,220,.08) 16% 16.2%);border-left:1px solid rgba(126,238,229,.18);border-bottom:1px solid rgba(126,238,229,.18);filter:drop-shadow(0 0 18px rgba(92,229,218,.08))}
.film-cutaway:after{content:"COUPE TECHNIQUE · INSTALLATION";position:absolute;right:12%;top:10%;font:500 7px Manrope;letter-spacing:.24em;color:rgba(163,226,220,.62)}
.film-network{filter:drop-shadow(0 0 18px rgba(85,229,218,.05))}
.film-copy{width:min(690px,86vw)}
.film-copy h1,.film-copy h2{font-weight:450}
.film-copy p{max-width:560px;font-size:clamp(14px,1.18vw,18px);line-height:1.72;color:#b4bec0}
.film-copy-0{opacity:clamp(0,calc(1 - var(--f)*10),1)}
.film-copy-1{opacity:clamp(0,calc((var(--f) - .105)*18),calc(1 - (var(--f) - .245)*18))}
.film-copy-2{opacity:clamp(0,calc((var(--f) - .275)*18),calc(1 - (var(--f) - .43)*18))}
.film-copy-3{opacity:clamp(0,calc((var(--f) - .465)*18),calc(1 - (var(--f) - .61)*18))}
.film-copy-4{opacity:clamp(0,calc((var(--f) - .65)*18),calc(1 - (var(--f) - .79)*18))}
.film-copy-5{opacity:clamp(0,calc((var(--f) - .83)*16),1)}
.film-copy-1,.film-copy-2,.film-copy-3,.film-copy-4{transform:translateY(-50%)}
.film-replay{display:none!important}
.film-timeline span:after{content:" · EN MOUVEMENT";color:#d2c17f}

/* the energy leaves the film and continues through the public site */
#publicSite main{position:relative;background:#071016;overflow:hidden}
#publicSite main:after{content:"";position:absolute;z-index:0;pointer-events:none;left:7.2vw;top:100svh;bottom:70px;width:1px;background:linear-gradient(to bottom,rgba(113,238,229,.88),rgba(113,238,229,.12) 22%,rgba(219,201,129,.42) 55%,rgba(113,238,229,.12) 88%,transparent);box-shadow:0 0 16px rgba(113,238,229,.22);animation:energyBreath 4.6s ease-in-out infinite}
#publicSite main>section:not(.electric-film){position:relative;z-index:1;background:transparent!important}
#publicSite main>section:not(.electric-film):before{content:"";position:absolute;z-index:-2;inset:0;pointer-events:none;background:radial-gradient(circle at 76% 26%,rgba(48,122,126,.09),transparent 33%),radial-gradient(circle at 17% 72%,rgba(181,156,83,.045),transparent 30%),linear-gradient(115deg,rgba(255,255,255,.018),transparent 38%);animation:ambientDrift 16s ease-in-out infinite alternate}
.simple-section,.signal-section,.living-building,.silo-scroll,.request-section,.contact-section{color:#edf2ef}
.simple-section .eyebrow.dark{color:#cdbb7e}.simple-section .section-heading>p,.simple-section article p{color:#a8b5b6}.simple-section article{background:rgba(9,22,28,.42);border-color:rgba(137,194,193,.12);backdrop-filter:blur(10px)}
@keyframes energyBreath{50%{opacity:.5;box-shadow:0 0 28px rgba(113,238,229,.35)}}
@keyframes ambientDrift{to{transform:translate3d(-1.4%,1%,0) scale(1.025)}}
@media(max-width:760px){#publicSite main:after{left:18px}.film-building{inset:16vh -28vw 4vh -1vw}.film-copy p{font-size:13px;line-height:1.6}}

/* v8.9 — REAL SILOS: preserve the real photograph, technical x-ray only as overlay */
.film-photo{filter:saturate(calc(.92 - var(--f)*.16)) brightness(calc(.76 - var(--f)*.18)) contrast(1.04)!important;transform:scale(calc(1.01 + var(--f)*.30)) translate3d(calc(var(--f)*-2.2%),calc(var(--f)*-.8%),0)!important}
.film-building{inset:0!important;transform:none!important;pointer-events:none}
.film-cutaway{display:none!important}
.film-network{left:38%;top:8%;width:57%;height:83%;opacity:clamp(0,calc((var(--f) - .22)*4.5),1);filter:drop-shadow(0 0 12px rgba(113,238,229,.22));transform:perspective(1200px) rotateY(-3deg) scale(calc(.92 + var(--f)*.08));transform-origin:center}
.film-ghost{opacity:.16!important}.film-panel{opacity:clamp(0,calc((var(--f) - .27)*7),1)!important}
.film-wire-base{opacity:clamp(0,calc((var(--f) - .25)*6),.72)!important}.film-wire-live{stroke-width:4.5!important}.film-branch{stroke-width:2.5!important}
.film-depth{background:radial-gradient(circle at 66% 48%,rgba(7,16,21,.02) 0 24%,rgba(4,9,13,.18) 48%,rgba(4,9,13,.70) 88%),linear-gradient(180deg,transparent 52%,#050a0e 100%)!important;opacity:calc(.08 + var(--f)*.38)!important}
.film-grid{opacity:clamp(0,calc((var(--f) - .42)*1.2),.18)!important}
/* x-ray window: transparent technical reading laid over the real facade, never replacing it */
.electric-film:after{content:"";position:absolute;z-index:0;left:48%;top:14%;width:35%;height:67%;border:1px solid rgba(132,230,223,.20);border-radius:38% 38% 5% 5%;background:repeating-linear-gradient(to bottom,rgba(5,17,22,.02) 0 8.2%,rgba(134,224,218,.10) 8.35% 8.55%),linear-gradient(90deg,rgba(5,17,22,.04),rgba(6,27,34,.16));box-shadow:inset 0 0 90px rgba(71,219,209,.05),0 0 50px rgba(0,0,0,.10);opacity:clamp(0,calc((var(--f) - .26)*3.2),.55);mix-blend-mode:screen;pointer-events:none;mask-image:linear-gradient(90deg,transparent,#000 12% 88%,transparent)}
.film-copy h1,.film-copy h2{max-width:760px}.film-copy p{font-size:16px;max-width:540px;line-height:1.78}
.film-copy-0{opacity:clamp(0,calc(1 - var(--f)*5.2),1)}
.film-copy-1{opacity:clamp(0,calc((var(--f) - .14)*9),calc(1 - (var(--f) - .34)*9))}
.film-copy-2{opacity:clamp(0,calc((var(--f) - .34)*9),calc(1 - (var(--f) - .55)*9))}
.film-copy-3{opacity:clamp(0,calc((var(--f) - .55)*9),calc(1 - (var(--f) - .74)*9))}
.film-copy-4{opacity:clamp(0,calc((var(--f) - .73)*9),calc(1 - (var(--f) - .89)*10))}
.film-copy-5{opacity:clamp(0,calc((var(--f) - .88)*9),1)}
@media(max-width:760px){.film-network{left:8%;top:24%;width:110%;height:65%}.electric-film:after{left:39%;top:25%;width:49%;height:54%}.film-copy p{font-size:14px}}

/* v9.3 · annulation rapide des rendez-vous */
.plan-event-wrap{position:relative;min-width:0}.plan-event-wrap .plan-event{width:100%;padding-right:2.55rem}.plan-event-cancel{position:absolute;top:.42rem;right:.42rem;width:1.75rem;height:1.75rem;border-radius:999px;border:1px solid rgba(120,30,30,.25);background:rgba(255,255,255,.92);color:#8c2424;font-size:1.15rem;line-height:1;display:grid;place-items:center;cursor:pointer;z-index:2;box-shadow:0 2px 10px rgba(0,0,0,.08)}.plan-event-cancel:hover{background:#8c2424;color:#fff;border-color:#8c2424}.appointment-actions #appointmentDelete{margin-right:auto}
/* v9.4 · dossiers classés */
.archive-summary{display:grid;grid-template-columns:minmax(220px,320px);margin:0 0 18px}.archive-summary>div{padding:18px 20px;border:1px solid rgba(20,31,39,.075);background:rgba(255,255,255,.58)}.archive-summary small{display:block;font-size:8px;letter-spacing:.17em;color:#8a9293}.archive-summary strong{display:block;font:500 30px Manrope;margin:7px 0 2px}.archive-summary span{font-size:10px;color:#7d8788}.archive-list{display:grid;gap:9px}.archive-row{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:15px;align-items:center;padding:17px 18px;border:1px solid rgba(20,31,39,.075);background:rgba(255,255,255,.62);box-shadow:0 10px 34px rgba(30,38,42,.03)}.archive-mark{width:30px;height:30px;border:1px solid #c9c2aa;display:grid;place-items:center;color:#8d7a45;font-size:11px}.archive-main{display:grid;gap:4px}.archive-main small{font-size:7px;letter-spacing:.16em;color:#9a8d68}.archive-main b{font:600 13px Manrope;color:#17212a}.archive-main span{font-size:10px;color:#7d8788}.archive-actions{display:flex;gap:7px}.archive-actions button{white-space:nowrap}@media(max-width:720px){.archive-row{grid-template-columns:30px 1fr}.archive-actions{grid-column:1/-1}.archive-actions button{flex:1}}
/* v9.5 · Décomptes horaires */
.payroll-self-card,.payroll-manager{margin-top:24px;border:1px solid rgba(20,35,50,.12);border-radius:18px;background:rgba(255,255,255,.78);padding:22px;box-shadow:0 12px 35px rgba(20,35,50,.06)}
.payroll-self-summary{display:flex;gap:36px;margin:18px 0}.payroll-self-summary div{display:grid;gap:4px}.payroll-self-summary small{font-size:11px;letter-spacing:.12em;color:#6f7880}.payroll-self-summary b{font-size:20px}
.payroll-list{display:grid;gap:10px;margin-top:16px}.payroll-row{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid rgba(20,35,50,.1);border-radius:13px;background:#fff}.payroll-row>div{flex:1}.payroll-row p{margin:5px 0 0;color:#66717a;font-size:13px}.payroll-status{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:7px 10px;border-radius:999px}.payroll-status.transit{background:#fff2cf;color:#775400}.payroll-status.paid{background:#e5f5eb;color:#23613b}.payroll-admin-info,.payroll-preview{margin-top:14px;padding:14px 16px;border-radius:12px;background:rgba(20,35,50,.05)}.payroll-preview strong{font-size:22px}.compensation-box{margin-bottom:14px}
@media(max-width:700px){.payroll-row{align-items:flex-start;flex-wrap:wrap}.payroll-self-summary{gap:18px;flex-direction:column}.payroll-row .primary{width:100%}}
