:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,'Segoe UI',Arial,sans-serif;color:#243653;background:#f6f8fc;font-synthesis:none}*{box-sizing:border-box}body{margin:0}a{color:#486fa7;text-decoration:none}button,input{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #8cacdb;outline-offset:3px}.auth-shell{display:grid;grid-template-columns:1fr 1fr;min-height:100vh}.intro{background:linear-gradient(147deg,#172b49,#294b75 60%,#486fa7);color:white;padding:44px;position:relative;overflow:hidden}.intro:before,.intro:after{content:'';position:absolute;border:1px solid #ffffff20;border-radius:100%;width:580px;height:580px;right:-280px;top:-230px}.intro:after{width:400px;height:400px;top:auto;bottom:-260px;right:30%}.intro-inner{position:relative;z-index:2;min-height:calc(100vh - 88px);display:flex;flex-direction:column;justify-content:space-between}.brand{display:flex;align-items:center;gap:14px}.brand img{width:72px;height:60px;object-fit:contain;background:#fff;border-radius:12px;padding:6px}.brand strong{font-size:18px;letter-spacing:.12em;display:block}.brand small{font-size:12px;opacity:.72;letter-spacing:.04em}.intro-copy{max-width:560px;animation:rise .8s ease both}.eyebrow{font-size:12px;font-weight:700;letter-spacing:.16em;color:#7396c4}.intro-copy .eyebrow{color:#b7d0ef}.intro-copy h1{font-size:clamp(36px,4.3vw,65px);line-height:1.13;letter-spacing:-.04em;margin:24px 0}.intro-copy p{font-size:17px;line-height:1.7;color:#d5e3f4}.intro-bottom{font-size:11px;letter-spacing:.18em;color:#c2d3e9}.auth-side{display:grid;place-items:center;padding:36px}.auth-card{width:min(100%,430px);animation:rise .7s ease .08s both}.auth-card h2{font-size:31px;letter-spacing:-.035em;margin:15px 0 8px}.subtext{color:#728199;font-size:14px;line-height:1.6;margin-bottom:32px}.auth-card form{display:flex;flex-direction:column;gap:12px}.auth-card label,.panel label{font-size:13px;font-weight:650;color:#364a6a}.auth-card input,.panel input{border:1px solid #d6e1ed;border-radius:10px;background:#fff;width:100%;height:48px;padding:0 15px;color:#253a5a;margin-bottom:8px}.primary{background:#486fa7;color:#fff;border:0;border-radius:10px;min-height:50px;padding:12px 19px;font-weight:650;display:flex;align-items:center;justify-content:space-between;gap:16px;transition:background .18s,transform .18s}.primary:hover{background:#335b92;transform:translateY(-1px)}.primary.narrow{width:max-content}.secure{color:#93a0b2;font-size:12px;text-align:center;margin-top:30px}.error{background:#fff0f0;color:#9f2637;padding:12px;border-radius:9px;font-size:13px}.success{background:#edf7f2;color:#2d7456;padding:12px;border-radius:9px}.app-shell{display:flex;min-height:100vh}.sidebar{background:#1c3151;color:white;width:270px;flex-shrink:0;display:flex;flex-direction:column;padding:24px 18px}.sidebar .brand{padding:8px 6px 32px}.sidebar .brand img{width:56px;height:52px}.sidebar .brand strong{font-size:16px}.sidebar nav{display:grid;gap:6px}.sidebar nav a{color:#ccd9ee;border-radius:9px;padding:15px 13px;font-size:14px}.sidebar nav a:hover,.sidebar nav a.active{background:#ffffff17;color:#fff}.sidebar-bottom{font-size:12px;color:#8caccb;margin-top:auto;padding:18px 12px}.workspace{flex:1;min-width:0}.workspace header{height:75px;background:white;border-bottom:1px solid #e4eaf3;padding:0 36px;display:flex;align-items:center;justify-content:space-between}.workspace .logout{border:1px solid #d8e2ee;color:#486fa7;background:white;border-radius:8px;padding:9px 14px}.workspace-main{max-width:1200px;margin:0 auto;padding:38px}.hello h1{font-size:32px;letter-spacing:-.035em;margin:12px 0}.hello p{color:#728199}.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:28px 0}.tiles article,.panel{background:white;border:1px solid #e6ebf3;border-radius:14px;padding:25px;box-shadow:0 5px 25px #173c6c08}.tiles span{color:#7c8ca5;font-size:13px}.tiles strong{display:block;font-size:23px;margin-top:13px;color:#2b466f}.tiles p,.panel p{color:#77879c;font-size:14px;line-height:1.6}.panel{margin:20px 0;max-width:780px}.panel h3{margin-top:0}.panel form{display:flex;flex-direction:column;gap:10px;max-width:420px}.qr{display:block;max-width:230px;width:100%;margin:18px 0}.codes{padding:22px;border-radius:10px;background:#edf2fa;line-height:2;letter-spacing:.08em;font-weight:600}.link{display:inline-block;font-weight:650;margin-top:10px}.panel code{word-break:break-all}@keyframes rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media(max-width:850px){.auth-shell{display:block}.intro{min-height:225px;padding:24px}.intro-inner{min-height:initial}.intro-copy{display:none}.intro-bottom{display:none}.auth-side{padding:42px 22px}.app-shell{display:block}.sidebar{width:auto;min-height:auto;gap:8px}.sidebar-bottom{display:none}.sidebar .brand{padding:0 0 6px}.sidebar nav{display:flex;flex-wrap:wrap}.workspace-main{padding:23px}.workspace header{padding:0 20px}.tiles{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

/* Max Office V0.2 - interface de gestion. Styles de connexion V0.1 conservés. */
body.dashboard{background:#f8fafd;color:#263b60}
.dashboard .app-shell{min-height:100vh}
.dashboard .sidebar{width:260px;background:#263b60;padding:26px 15px 18px;position:sticky;top:0;height:100vh;overflow-y:auto}
.dashboard .sidebar .brand{padding:3px 10px 24px;gap:10px}
.dashboard .sidebar .brand img{width:51px;height:49px}
.dashboard .sidebar .brand strong{font-size:14px;letter-spacing:.105em}
.dashboard .sidebar .brand small{font-size:11px}
.sidebar-caption{font-size:10px;letter-spacing:.15em;font-weight:700;color:#8faacc;padding:0 13px 15px}
.dashboard .sidebar nav{display:flex;flex-direction:column;gap:3px}
.dashboard .sidebar nav .nav-group{font-size:10px;letter-spacing:.12em;color:#91a8c6;padding:19px 13px 7px;font-weight:750}
.dashboard .sidebar nav a{display:flex;align-items:center;gap:13px;font-size:13px;padding:11px 13px;border-radius:9px;color:#d0dbeb;transition:background .15s,color .15s}
.dashboard .sidebar nav a.active{background:#486fa7;color:#fff;font-weight:650;box-shadow:0 4px 15px #0b1c3b25}
.dashboard .sidebar nav a:hover{background:#ffffff18;color:#fff}
.nav-icon{display:grid;place-items:center;width:21px;height:21px;font-size:18px;font-weight:500;flex-shrink:0}
.dashboard .sidebar-bottom{margin-top:auto;padding:20px 13px 5px;color:#b6c8df;font-size:11px;line-height:1.9}
.dashboard .sidebar-bottom small{display:block;color:#8faacc;font-size:10px;margin-left:15px}
.status-dot{width:7px;height:7px;border-radius:50%;display:inline-block;background:#91c8aa;margin-right:5px}
.dashboard .workspace{min-width:0;width:100%}
.dashboard .topbar{height:72px;padding:0 34px;border-color:#e9edf4;gap:12px}
.topbar-breadcrumb{font-size:13px;color:#8b9bb2}.topbar-breadcrumb b{font-weight:650;color:#263b60}.crumb-separator{color:#b8c4d3;margin:0 8px}
.topbar-actions{display:flex;align-items:center;gap:17px}.topbar-actions form{margin:0}.account-chip{display:flex;align-items:center;gap:9px;font-size:13px;color:#3f5574;font-weight:600}
.account-avatar{background:#eaf1f9;color:#486fa7;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;font-size:13px}
.dashboard .workspace .logout{font-size:12px;font-weight:600;padding:9px 12px}
.mobile-brand{display:none}.dashboard .workspace-main{max-width:1550px;padding:32px 36px 55px}
.page-heading{display:flex;justify-content:space-between;align-items:center;gap:18px;margin:0 0 25px}
.page-heading h1{font-size:clamp(27px,2.5vw,35px);line-height:1.2;letter-spacing:-.035em;margin:9px 0 8px;font-weight:760}
.page-heading p{color:#7b8ca4;font-size:14px;margin:0;line-height:1.5}.page-heading .eyebrow{font-size:10px;letter-spacing:.14em}
.wave{font-size:.75em}.mode-label{border:1px solid #e5ebf4;background:#fff;border-radius:20px;padding:10px 14px;white-space:nowrap;font-size:11px;font-weight:650;color:#66809c}
.info-banner{border:1px solid #dbe7f5;background:#edf4fc;border-radius:12px;padding:17px 19px;display:flex;align-items:flex-start;gap:13px;margin-bottom:22px;color:#2d4b76}
.info-symbol{background:#486fa7;color:white;border-radius:50%;display:grid;place-items:center;width:20px;height:20px;flex-shrink:0;font-weight:750;font-size:12px}
.info-banner strong{font-size:13px}.info-banner p{margin:4px 0 0;color:#667e9e;font-size:12px;line-height:1.5}
.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}
.kpi-card{border:1px solid #e7ecf4;background:#fff;box-shadow:0 3px 15px #273f6410;border-radius:13px;padding:22px;min-width:0;animation:rise .5s ease both}
.kpi-card:nth-child(2){animation-delay:.06s}.kpi-card:nth-child(3){animation-delay:.12s}.kpi-card:nth-child(4){animation-delay:.18s}
.kpi-header{display:flex;justify-content:space-between;align-items:center;gap:8px;color:#71849e;font-size:12px;font-weight:600}
.kpi-icon{width:33px;height:33px;display:grid;place-items:center;background:#eaf1f9;color:#486fa7;font-size:17px;border-radius:9px}
.kpi-card>strong{display:block;color:#263b60;font-size:33px;margin:13px 0 14px;line-height:1.1}
.kpi-card p{margin:0;display:flex;flex-wrap:wrap;gap:8px;align-items:center}.kpi-card small{font-size:10px;color:#8a9aaf}
.tag{border-radius:5px;padding:5px 8px;font-size:10px;font-weight:700;white-space:nowrap}
.tag-pending{background:#edf2f9;color:#637d9e}
.dash-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:19px;margin-bottom:19px;align-items:stretch}
.dashboard .dash-card{margin:0;max-width:none;padding:24px;border-radius:13px;min-height:285px;box-shadow:0 3px 15px #273f6409}
.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:22px}
.panel-heading h2,.module-panel h2{font-size:15px;margin:0 0 7px;letter-spacing:-.01em}
.panel-heading p{font-size:12px;color:#8a99ac;margin:0}.subtle-link{font-size:11px;font-weight:700;white-space:nowrap}
.chart-placeholder{height:210px;position:relative;overflow:hidden;display:grid;place-items:center;border-radius:8px;background:linear-gradient(180deg,#fff,#fcfdff)}
.chart-lines{position:absolute;inset:9px 0;display:flex;flex-direction:column;justify-content:space-between}
.chart-lines span{border-top:1px dashed #e9edf5;width:100%}
.chart-message{position:relative;z-index:1;background:#ffffffed;border:1px solid #e9eef5;border-radius:12px;padding:21px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:7px;max-width:290px;box-shadow:0 8px 30px #324d7410}
.chart-mark{font-size:23px;color:#87a8d0}.chart-message strong{font-size:12px}.chart-message span:last-child{font-size:11px;color:#8b9cb0}
.empty-state{min-height:175px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;gap:10px;padding:12px 28px}
.empty-icon{display:grid;place-items:center;width:48px;height:48px;color:#a2b9d6;background:#f0f5fb;border-radius:50%;font-size:28px}
.empty-state p{font-size:12px;line-height:1.7;color:#8798ac;max-width:300px;margin:0}
.secondary-grid .dash-card{min-height:235px}.secondary-grid .empty-state{min-height:120px}
.bottom-note{font-size:11px;color:#9aa8ba;margin-top:22px;text-align:center}
.module-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:19px}.dashboard .module-panel{margin:0;max-width:none;padding:30px;min-height:280px}
.module-symbol{background:#eaf1f9;color:#486fa7;border-radius:12px;font-size:28px;width:52px;height:52px;display:grid;place-items:center;margin-bottom:20px}
.module-panel p{line-height:1.75}.source-row{padding-top:18px;margin-top:24px;border-top:1px solid #edf0f5;display:flex;justify-content:space-between;gap:10px;color:#8090a5;font-size:12px}.source-row strong{color:#486fa7}
.feature-list{list-style:none;margin:26px 0;padding:0;display:grid;gap:17px;color:#526981;font-size:13px}.feature-list span{display:inline-grid;place-items:center;border-radius:50%;background:#eaf1f9;color:#486fa7;width:21px;height:21px;margin-right:9px}
.module-muted{border-top:1px solid #edf0f5;padding-top:18px;margin-top:23px}.back-link{display:inline-block;margin-top:23px;font-size:13px;font-weight:650}
.dashboard .hello{margin-bottom:24px}.dashboard .hello h1{font-size:30px}
.dashboard .panel{border-color:#e7ecf4}.dashboard .panel form{max-width:420px}
@media(max-width:1150px){.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dash-grid{grid-template-columns:1fr}.dashboard .sidebar{width:225px}.dashboard .workspace-main{padding:28px 25px}}
@media(max-width:850px){.dashboard .app-shell{display:block}.dashboard .sidebar{position:relative;height:auto;width:auto;overflow:visible;padding:12px 16px}.dashboard .sidebar .brand{padding:0 0 9px}.dashboard .sidebar .brand img{height:39px;width:42px}.dashboard .sidebar .brand strong{font-size:13px}.dashboard .sidebar-caption,.dashboard .sidebar-bottom,.dashboard .sidebar nav .nav-group{display:none}.dashboard .sidebar nav{flex-direction:row;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin;padding-bottom:4px}.dashboard .sidebar nav a{flex:0 0 auto;white-space:nowrap;padding:9px 12px;font-size:12px}.dashboard .sidebar nav .nav-icon{font-size:15px;width:15px;height:15px}.dashboard .topbar{height:58px;padding:0 17px}.dashboard .workspace-main{padding:24px 16px}.account-chip>span:last-child,.topbar-breadcrumb{display:none}.mobile-brand{display:block;font-size:12px;font-weight:750;letter-spacing:.11em}.page-heading{align-items:flex-start}.mode-label{display:none}.module-grid{grid-template-columns:1fr}}
@media(max-width:560px){.kpi-grid{grid-template-columns:1fr 1fr;gap:10px}.kpi-card{padding:14px}.kpi-header{font-size:11px}.kpi-icon{display:none}.kpi-card>strong{font-size:26px}.kpi-card small{display:none}.dashboard .dash-card{padding:18px}.panel-heading{flex-wrap:wrap}.page-heading h1{font-size:27px}.info-banner{padding:14px}.dashboard .workspace .logout{padding:7px 9px;font-size:11px}.topbar-actions{gap:7px}.dashboard .module-panel{padding:20px}}
