
:root{color-scheme:dark;--bg:#080c10;--panel:#111820;--line:#28323a;--muted:#8997a2;--white:#f1f2ee;--gold:#caa96e;--aqua:#8eb9bf;--radius:15px;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--white)}a{color:inherit;text-decoration:none}button,input{font:inherit}button{cursor:pointer}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid #d9b77d;outline-offset:3px}a[hidden],[hidden]{display:none!important}
/* The background stays readable at the center, while the borders fade into black. */
.login-page{background:#06090c;min-height:100svh;overflow-x:hidden}.gateway{position:relative;isolation:isolate;min-height:100svh;display:flex;justify-content:flex-start;align-items:center;padding:100px clamp(24px,7.8vw,150px)}.gateway:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(3,7,10,.28) 0%,rgba(3,7,10,.07) 30%,rgba(3,7,10,0) 58%)}.hero-art{position:absolute;z-index:-2;inset:0;display:flex;align-items:center;justify-content:center;overflow:hidden}.hero-art img{display:block;width:auto;height:auto;max-width:100vw;max-height:100svh;object-fit:contain;filter:brightness(1.02) contrast(1.02);user-select:none;-webkit-user-drag:none}.hero-vignette{pointer-events:none;position:absolute;inset:0;background:radial-gradient(ellipse 83% 84% at 50% 46%,rgba(0,0,0,0) 31%,rgba(3,6,10,.05) 46%,rgba(3,6,10,.20) 60%,rgba(3,6,10,.44) 73%,rgba(3,6,10,.74) 86%,rgba(3,6,10,.92) 100%),linear-gradient(90deg,rgba(2,5,9,.92) 0%,rgba(2,5,9,.60) 7%,rgba(2,5,9,.22) 14%,rgba(2,5,9,.05) 21%,rgba(2,5,9,0) 29%,rgba(2,5,9,0) 71%,rgba(2,5,9,.06) 79%,rgba(2,5,9,.24) 86%,rgba(2,5,9,.62) 93%,rgba(2,5,9,.94) 100%),linear-gradient(180deg,rgba(2,5,9,.88) 0%,rgba(2,5,9,.50) 8%,rgba(2,5,9,.16) 16%,rgba(2,5,9,0) 24%,rgba(2,5,9,0) 76%,rgba(2,5,9,.15) 84%,rgba(2,5,9,.50) 92%,rgba(2,5,9,.90) 100%)}#fxCanvas{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none}.gateway-top,.gateway-bottom{position:absolute;left:clamp(25px,5vw,90px);right:clamp(25px,5vw,90px);display:flex;align-items:center;gap:16px}.gateway-top{top:37px;gap:5px;align-items:baseline;text-shadow:0 2px 10px rgba(0,0,0,.7)}.gateway-bottom{bottom:32px;justify-content:space-between;font-size:10px;letter-spacing:.2em;color:#b9b19c82}.mark,.brand-icon{font-size:34px;font-weight:750;letter-spacing:-.09em}.mark-dot,.gold-period{color:var(--gold)}.gateway-domain{font-size:19px;font-weight:650;letter-spacing:.13em;color:#eef5f5}.access-panel{position:relative;width:min(100%,410px);padding:32px 34px 32px;border:1px solid #bba67840;border-radius:19px;background:linear-gradient(145deg,rgba(17,26,33,.84),rgba(7,12,17,.90));box-shadow:0 28px 76px #0009,0 0 0 5px #0c11152a;backdrop-filter:blur(22px)}.access-panel:before{content:"";position:absolute;left:32px;right:32px;top:0;height:1px;background:linear-gradient(90deg,transparent,#dec18d77,transparent)}.access-eyebrow{display:flex;align-items:center;gap:10px;color:#d1b581;text-transform:uppercase;letter-spacing:.23em;font-size:10px;font-weight:650;margin:0 0 22px}.access-line{height:1px;width:18px;background:var(--gold)}.access-panel h1{font-size:clamp(30px,3.4vw,40px);letter-spacing:-.055em;font-weight:550;margin:19px 0 8px}.access-intro{font-size:13px;line-height:1.65;color:#a3b1b9;margin:0 0 29px;max-width:295px}.secret-entry{height:62px;border:1px solid #ffffff21;background:rgba(255,255,255,.025);display:flex;align-items:center;gap:15px;padding:0 18px;margin:0 0 12px;border-radius:8px;transition:border-color .2s,background .2s}.secret-entry:focus-within{border-color:#c5a46c9e;background:#ffffff0c}.entry-index{color:#a98c5b;font-size:11px;letter-spacing:.16em;font-family:ui-monospace,monospace}.secret-entry input{min-width:0;flex:1;background:transparent;border:0;outline:none;color:#f6f6f3;font-size:17px;letter-spacing:.18em;height:100%}.secret-entry input:focus-visible{outline:none}.entry-rule{width:1px;height:16px;background:#ffffff20}.login-button{display:flex;align-items:center;justify-content:space-between;width:100%;height:52px;padding:0 19px;background:#cfb381;color:#1c1c1b;border:1px solid #dfc99e;border-radius:8px;font-size:13px;font-weight:700;margin-top:19px;transition:transform .15s,background .15s}.login-button:hover{background:#e2c796;transform:translateY(-1px)}.login-button span:last-child{font-size:20px}.access-footer{border-top:1px solid #ffffff14;padding-top:20px;margin:25px 0 0;color:#83929c;font-size:11px;text-align:center}.form-message{background:#4d292633;border:1px solid #c8837780;border-radius:7px;padding:12px 13px;font-size:12px;line-height:1.5;color:#f2b3a7;margin:0 0 18px}
/* Private workspace */
.dashboard-page{background:#0a1015;color:#edf0ee}.dashboard-shell{display:flex;min-height:100svh}.sidebar{width:255px;flex:none;position:sticky;top:0;height:100svh;padding:28px 17px 24px;display:flex;flex-direction:column;border-right:1px solid #ffffff10;background:#0c1218}.brand{display:flex;align-items:center;gap:16px;padding:0 14px 54px}.brand-icon{display:grid;place-items:center;border:1px solid #ae956d5c;background:linear-gradient(155deg,#232b2f,#0b1115);border-radius:12px;width:45px;height:45px;font-size:24px}.brand-text{display:flex;flex-direction:column;gap:4px}.brand-text strong{font-size:19px;letter-spacing:-.04em}.brand-text small{font-size:9px;letter-spacing:.19em;color:#9eacb2;font-weight:650}.sidebar-label{padding:0 17px 14px;color:#71808a;font-size:10px;font-weight:750;letter-spacing:.19em}.side-nav{display:grid;gap:6px}.nav-link{display:flex;align-items:center;gap:13px;padding:13px 13px;border-radius:9px;color:#a1afb8;font-size:12.5px;transition:background .15s,color .15s}.nav-link:hover{background:#ffffff0b;color:#fff}.nav-link.active{background:#c5aa7b1c;color:#dec49b;border:1px solid #c5aa7b2b}.nav-icon{font-family:ui-monospace,monospace;display:grid;place-items:center;width:22px;font-size:18px}.side-bottom{margin-top:auto;border-top:1px solid #ffffff15;padding:22px 14px 16px;font-size:11px;color:#95a6ac;display:flex;align-items:center;gap:10px}.side-bottom-dot,.online-dot,.dot{width:7px;height:7px;border-radius:50%;background:#8ebc9b;display:inline-block;box-shadow:0 0 0 3px #8ebc9b1a}.logout-form{padding:0 5px}.logout-button{width:100%;text-align:left;display:flex;justify-content:space-between;align-items:center;border:1px solid #ffffff16;color:#bcc6c9;background:#161f26;border-radius:9px;padding:12px 15px;font-size:12px}.logout-button:hover{background:#263038;color:#fff}.dashboard-main{min-width:0;flex:1}.topbar{height:76px;border-bottom:1px solid #ffffff13;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(24px,4vw,70px)}.breadcrumb{color:#a3b0ba;font-size:10px;letter-spacing:.17em;font-weight:750}.crumb-divider{color:#d0b482;margin:0 11px}.topbar-right{display:flex;align-items:center;gap:11px;color:#a4b5b3;font-size:11px}.content-body{max-width:1350px;padding:49px clamp(24px,4vw,70px) 30px;margin:auto}.page-intro{display:flex;justify-content:space-between;gap:25px}.section-kicker{font-size:10px;font-weight:700;color:var(--gold);letter-spacing:.21em;margin:0 0 12px}.page-intro h1{font-size:clamp(30px,3.2vw,48px);font-weight:590;letter-spacing:-.065em;line-height:1.17;margin:0 0 16px}.page-intro h1 em{font-family:Georgia,serif;font-weight:400;color:#dbbb89}.intro-text{font-size:13px;line-height:1.7;color:#95a5ad;margin:0;max-width:570px}.intro-art{width:170px;min-height:115px;border:1px solid #b49c6835;border-radius:14px;background:radial-gradient(circle at 72% 50%,#b7954c25,transparent 62%),linear-gradient(125deg,#162127,#101820);position:relative;overflow:hidden;display:flex;align-items:flex-end;padding:16px;color:#8d7e63;font-size:11px;letter-spacing:.2em}.intro-star{position:absolute;right:25px;top:4px;font-size:77px;color:#d3ae6880}.overview-row{margin:36px 0 41px;border:1px solid #ffffff13;background:#111b22;border-radius:12px;display:flex;align-items:center;gap:26px;padding:20px 27px;flex-wrap:wrap}.overview-stat{display:flex;gap:12px;align-items:baseline;white-space:nowrap}.overview-stat strong{font-size:26px;line-height:1;color:#f4f0e7;font-weight:550}.overview-stat span{font-size:11px;color:#a5b1b8}.overview-divider{width:1px;height:32px;background:#ffffff19}.overview-note{font-size:11px;line-height:1.6;color:#8e9fa6;margin-left:auto;display:flex;gap:10px;align-items:center}.tools-row{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:34px}.search-control{height:47px;max-width:475px;width:100%;display:flex;align-items:center;gap:13px;background:#111a21;border:1px solid #2e3943;border-radius:9px;padding:0 16px;color:#b5c0c4}.search-control span{font-size:25px}.search-control input{background:transparent;min-width:0;width:100%;border:0;outline:0;color:#edf0ee;font-size:12px}.search-control:focus-within{border-color:#af986f}.search-control input::placeholder{color:#85949e}.search-hint{color:#7d8d96;font-size:11px}.service-section{margin-bottom:34px;scroll-margin-top:25px}.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.section-heading>div{display:flex;align-items:center;gap:12px}.section-mark{width:4px;height:17px;background:#c8aa76;border-radius:2px}.section-heading h2{font-size:15px;font-weight:600;letter-spacing:-.015em;margin:0}.section-count{font-size:11px;color:#7c8b95}.service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.service-card{position:relative;display:flex;align-items:flex-start;gap:15px;min-width:0;min-height:143px;padding:22px 21px;border:1px solid #27343d;background:linear-gradient(135deg,#15212a,#111b22);border-radius:12px;transition:transform .16s,border-color .16s,background .16s,box-shadow .16s}.service-card:hover{transform:translateY(-2px);background:linear-gradient(135deg,#1c2c35,#162129);border-color:#bba06e87;box-shadow:0 10px 25px #0003}.service-icon{width:43px;height:43px;flex:none;display:grid;place-items:center;border-radius:10px;background:#c6a77215;border:1px solid #c6a77235;font-family:Georgia,serif;color:#d8ba86;font-size:22px}.service-main{display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-width:0;padding-right:8px}.service-main strong{font-size:15px;font-weight:600;color:#e8eceb}.service-description{font-size:11.5px;color:#9cabb4;line-height:1.45}.service-url{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:#c5a878;font-size:10.5px;margin-top:11px;overflow-wrap:anywhere}.card-action{position:absolute;top:20px;right:19px;color:#b2a17f;font-size:19px}.no-results{text-align:center;border:1px dashed #53616a;border-radius:12px;padding:25px;color:#9caab4;font-size:13px}.dashboard-footer{display:flex;justify-content:space-between;gap:15px;border-top:1px solid #ffffff10;padding-top:26px;margin-top:28px;font-size:11px;color:#758692}.error-page{min-height:100svh;display:grid;place-items:center;padding:20px}.error-page main{max-width:420px;background:#131d24;border:1px solid #ffffff17;padding:40px;border-radius:15px}.error-page h1{font-size:25px}.error-page p{color:#a4adb6;font-size:14px}
@media(max-width:1050px){.sidebar{width:210px}.content-body{padding-left:30px;padding-right:30px}.topbar{padding-left:30px;padding-right:30px}.overview-note{margin-left:0;flex:1 1 100%}}@media(max-width:780px){.gateway{justify-content:flex-start;padding:105px 20px 80px}.hero-art img{opacity:.9}.gateway-top{left:20px;right:20px}.access-panel{margin-top:30px}.sidebar{width:73px;padding:23px 9px}.brand{justify-content:center;padding:0 0 45px}.brand-text,.sidebar-label,.nav-link:not(.active) .nav-icon+span,.side-bottom,.logout-button,.nav-link{font-size:0}.nav-link{justify-content:center;padding:13px 8px}.nav-icon{font-size:18px}.side-nav{gap:8px}.logout-form{margin-top:auto}.logout-button{font-size:0;justify-content:center;padding:13px}.logout-button span{font-size:16px}.service-grid{grid-template-columns:1fr}.intro-art{display:none}}@media(max-width:540px){.gateway-top{top:22px;left:20px;right:20px;gap:4px}.gateway-domain{font-size:15px;letter-spacing:.1em}.gateway-top .mark{font-size:29px}.gateway-bottom{bottom:18px;font-size:8px}.access-panel{padding:29px 25px 24px}.dashboard-shell{display:block}.sidebar{position:relative;width:100%;height:auto;display:flex;flex-direction:row;align-items:center;justify-content:space-between;padding:12px 17px;border-right:0;border-bottom:1px solid #ffffff16}.brand{padding:0}.brand-icon{width:36px;height:36px}.side-nav,.sidebar-label,.side-bottom{display:none}.logout-form{margin:0;padding:0}.logout-button{padding:10px}.topbar{height:56px;padding:0 20px}.topbar-right{font-size:0}.content-body{padding:34px 19px 20px}.page-intro h1{font-size:33px}.overview-row{gap:17px;padding:18px}.overview-stat{flex-direction:column;gap:6px}.overview-note{flex:1 1 100%}.search-hint{display:none}.service-card{min-height:125px;padding:18px 15px}.dashboard-footer{font-size:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* Initial setup only: shares the existing Sekred private-entrance aesthetic. */
.install-page{overflow:auto;min-height:100svh}
.install-page .gateway{min-height:100svh;height:auto;padding-top:85px;padding-bottom:85px}
.install-page .hero-art{position:fixed;pointer-events:none;opacity:.45}
.install-panel{max-width:490px;width:min(100%,490px);position:relative;z-index:2;margin-left:auto;margin-right:auto;background:rgba(13,19,25,.93);backdrop-filter:blur(16px)}
.install-step{color:#d9bd89;font-size:12px;font-weight:700;letter-spacing:.04em;margin:18px 0 12px}
.install-help{color:#b6c2c9;font-size:12px;line-height:1.7;margin:10px 0}
.install-help code{color:#f3d9a9;overflow-wrap:anywhere}
.install-form{display:flex;flex-direction:column;gap:10px;margin:20px 0}
.install-form label{color:#d3dce0;font-size:12px;font-weight:550}
.install-input{width:100%;min-width:0;border:1px solid #42515a;background:#101b22;border-radius:9px;color:#f3f2eb;padding:14px 13px;font-family:inherit;font-size:13px}
.install-input:focus{outline:2px solid #c7a875;outline-offset:1px}
.install-secondary{align-self:flex-start;background:none;border:1px solid #6c604d;color:#dbc399;border-radius:7px;padding:9px 12px;font-size:12px;cursor:pointer}
.install-secondary:hover{background:#ffffff0c}
.install-form .login-button{margin-top:12px}
.totp-enrollment{background:#0b161c;border:1px solid #c9a87466;border-radius:10px;padding:18px;display:flex;flex-direction:column;gap:11px;color:#b7c4cb;font-size:12px}
.totp-enrollment strong{font-size:16px;letter-spacing:.08em;overflow-wrap:anywhere;color:#f2d3a1;font-family:ui-monospace,Consolas,monospace}
@media(max-width:570px){.install-page .gateway{padding:85px 12px 60px}.install-panel{padding:27px 20px}}

/* L’installateur reste centré : seuls les contenus de connexion sont alignés à gauche. */
.brand-icon{font-size:30px}
.install-page .gateway{justify-content:center}
.install-page .gateway:before{background:radial-gradient(ellipse at 47% 45%,#14222a66,transparent 55%),linear-gradient(90deg,#030406 0%,#05090c00 47%,#030406bd 100%)}
.install-page .hero-art img{filter:brightness(.74) contrast(1.08)}
.install-page .hero-vignette{background:radial-gradient(ellipse at center,transparent 34%,#030406 95%)}
.install-page .gateway-top{top:37px;left:clamp(25px,5vw,90px);right:clamp(25px,5vw,90px);gap:16px;align-items:center;text-shadow:none}
.install-page .gateway-top .mark{font-size:30px}
.install-page .gateway-domain{font-size:11px;letter-spacing:.27em;color:#cfbea6}
@media(max-width:780px){.install-page .hero-art img{opacity:.52}}
@media(max-width:540px){.install-page .gateway-top{top:22px}}

/* Sur écran étroit, l'illustration remplit le fond de l'accès sans déformer ses proportions. */
@media(max-width:780px){.login-page:not(.install-page) .hero-art img{width:100%;height:100%;max-width:none;max-height:none;object-fit:cover;opacity:.88}}

/* 1.0.7 : cadrage non zoomé restauré, assombrissement renforcé sur le contour, repères minimalistes conservés ; préservation explicite du rendu de l'installateur. */
.install-page .access-panel{padding:39px 38px 31px;background:rgba(13,19,25,.93);box-shadow:0 45px 100px #000b,0 0 0 6px #0c11153d;backdrop-filter:blur(16px)}
