/* Kreiz 1.0.19 — console harmonisée, hors pages d’authentification */
:root{--bg:#eff3f9;--panel:#fff;--text:#17253d;--muted:#62738e;--line:#dbe4f0;--primary:#2364be;--primary-dark:#174c97;--sidebar:#0b1830;--sidebarText:#c8d7ed}
html{scrollbar-gutter:stable}body:not(:has(.auth-shell)){background:var(--bg);color:var(--text)}
body:not(:has(.auth-shell)) .topbar{height:78px;background:#0e203c;border:0;border-bottom:1px solid #2c4770;color:#fff;box-shadow:0 6px 26px rgba(10,24,49,.14);gap:16px;z-index:20}
body:not(:has(.auth-shell)) .brand{min-width:0;gap:14px}body:not(:has(.auth-shell)) .brand strong{font-size:18px;letter-spacing:.01em;color:#f7fbff}body:not(:has(.auth-shell)) .brand small{color:#a9c1e0;font-size:12px}body:not(:has(.auth-shell)) .brand-k{display:block;width:48px;height:48px;object-fit:cover;border-radius:13px;box-shadow:0 0 0 1px #466288,0 7px 20px #061327;flex:none}
body:not(:has(.auth-shell)) .userbox{min-width:0;gap:14px;color:#f8fbff}body:not(:has(.auth-shell)) .userbox span{font-weight:650;overflow-wrap:anywhere}body:not(:has(.auth-shell)) .userbox small{color:#b2c6e1}body:not(:has(.auth-shell)) .link-button{background:#1b3659;border:1px solid #3d5e86;border-radius:9px;padding:9px 14px;color:#e6f4ff;font-weight:650}body:not(:has(.auth-shell)) .link-button:hover{background:#275078;color:#fff}
body:not(:has(.auth-shell)) .shell{grid-template-columns:238px minmax(0,1fr);min-height:calc(100dvh - 124px)}body:not(:has(.auth-shell)) .sidebar{background:linear-gradient(180deg,#0f2342,#091529);border-right:1px solid #18385f;padding:24px 13px;display:flex;flex-direction:column;gap:4px}body:not(:has(.auth-shell)) .nav-link{position:relative;display:flex;align-items:center;min-height:43px;margin:0;padding:11px 14px;color:#c7d6ec;border:1px solid transparent;border-radius:11px;font-size:14px;font-weight:550;transition:background .16s,color .16s}body:not(:has(.auth-shell)) .nav-link:hover{background:#203b5e;color:#fff}body:not(:has(.auth-shell)) .nav-link.active{background:linear-gradient(110deg,#245b91,#19426e);border-color:#427aae;color:#fff;box-shadow:inset 3px 0 #34cbee}
body:not(:has(.auth-shell)) .main{min-width:0;max-width:1800px;width:100%;padding:32px clamp(18px,3vw,48px) 46px;margin:0 auto}body:not(:has(.auth-shell)) .page-head{gap:18px;align-items:center;margin-bottom:24px;flex-wrap:wrap}body:not(:has(.auth-shell)) .page-head h1{font-size:clamp(23px,2vw,31px);letter-spacing:-.025em;line-height:1.2;color:#12253f}body:not(:has(.auth-shell)) .page-head p{line-height:1.55;max-width:90ch}
body:not(:has(.auth-shell)) .card,body:not(:has(.auth-shell)) .stat{background:#fff;border:1px solid #dce5f1;border-radius:17px;box-shadow:0 5px 20px rgba(16,38,74,.045)}body:not(:has(.auth-shell)) .card{padding:clamp(17px,2.1vw,28px);min-width:0;overflow-wrap:anywhere}body:not(:has(.auth-shell)) .stat{padding:19px;min-width:0;border-top:3px solid #3f8abf}body:not(:has(.auth-shell)) .stat strong{color:#15365b;letter-spacing:-.03em;font-size:clamp(24px,2.4vw,32px)}body:not(:has(.auth-shell)) .stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}body:not(:has(.auth-shell)) .card h2{color:#17375d}body:not(:has(.auth-shell)) .card-head{gap:12px;flex-wrap:wrap}
body:not(:has(.auth-shell)) .btn{border-radius:10px;min-height:41px;max-width:100%;border-color:#cbd8e8;transition:background .16s,box-shadow .16s}body:not(:has(.auth-shell)) .btn.primary{background:#246db1;border-color:#246db1;color:#fff}body:not(:has(.auth-shell)) .btn.primary:hover{background:#14578e;box-shadow:0 5px 15px #1a579534}body:not(:has(.auth-shell)) .btn:focus-visible,body:not(:has(.auth-shell)) a:focus-visible,body:not(:has(.auth-shell)) input:focus-visible,body:not(:has(.auth-shell)) select:focus-visible,body:not(:has(.auth-shell)) button:focus-visible{outline:3px solid #17bdec;outline-offset:2px}
body:not(:has(.auth-shell)) .form-stack,body:not(:has(.auth-shell)) .form-grid{min-width:0}body:not(:has(.auth-shell)) .form-stack input,body:not(:has(.auth-shell)) .form-grid input,body:not(:has(.auth-shell)) .form-grid select,body:not(:has(.auth-shell)) .form-grid textarea,body:not(:has(.auth-shell)) .filters input,body:not(:has(.auth-shell)) .filters select,body:not(:has(.auth-shell)) .danger-zone input{min-width:0;max-width:100%;width:100%;border:1px solid #cbd7e7;border-radius:10px;min-height:43px;color:#17304f}body:not(:has(.auth-shell)) .filters{display:flex;flex-wrap:wrap;align-items:center}body:not(:has(.auth-shell)) .filters input{flex:1 1 210px}body:not(:has(.auth-shell)) .filters select{width:auto;flex:0 1 auto}body:not(:has(.auth-shell)) .details{min-width:0}body:not(:has(.auth-shell)) .details dd{min-width:0;overflow-wrap:anywhere}
body:not(:has(.auth-shell)) .table-wrap{width:100%;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;border:1px solid #e1e8f2;border-radius:13px}body:not(:has(.auth-shell)) .table-wrap table{min-width:620px;width:100%;border-collapse:collapse}body:not(:has(.auth-shell)) .table-wrap th{background:#edf3fa;color:#38506c;letter-spacing:.045em;font-size:11px;padding:13px 14px;white-space:nowrap}body:not(:has(.auth-shell)) .table-wrap td{padding:14px;border-bottom:1px solid #ebf0f7;overflow-wrap:anywhere}body:not(:has(.auth-shell)) .table-wrap tbody tr:nth-child(even){background:#fafcfe}body:not(:has(.auth-shell)) .table-wrap tbody tr:hover{background:#f0f7ff}body:not(:has(.auth-shell)) .table-wrap tr:last-child td{border-bottom:0}
body:not(:has(.auth-shell)) .flash{border-radius:12px;padding:14px 16px;border:1px solid transparent}body:not(:has(.auth-shell)) .flash.success{border-color:#a7dfc3}body:not(:has(.auth-shell)) .flash.error{border-color:#f4b6b3}body:not(:has(.auth-shell)) .flash.info{border-color:#c2d7fa}body:not(:has(.auth-shell)) .badge{border-radius:999px;font-size:12px;padding:5px 10px}body:not(:has(.auth-shell)) .pagination{flex-wrap:wrap}body:not(:has(.auth-shell)) pre,body:not(:has(.auth-shell)) code{overflow-wrap:anywhere}body:not(:has(.auth-shell)) .footer{background:#eaf0f7;color:#70819b;border-top:1px solid #dce5f1;padding:13px}
@media(max-width:1100px){body:not(:has(.auth-shell)) .stats{grid-template-columns:repeat(2,minmax(0,1fr))}body:not(:has(.auth-shell)) .detail-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:760px){html{scrollbar-gutter:auto}body:not(:has(.auth-shell)) .topbar{height:auto;min-height:72px;position:relative;flex-wrap:wrap;padding:12px 16px}body:not(:has(.auth-shell)) .brand-k{width:40px;height:40px}body:not(:has(.auth-shell)) .brand strong{font-size:16px}body:not(:has(.auth-shell)) .userbox{width:100%;justify-content:space-between;flex-wrap:wrap}body:not(:has(.auth-shell)) .userbox form{margin-left:auto}body:not(:has(.auth-shell)) .shell{display:block}body:not(:has(.auth-shell)) .sidebar{display:flex;flex-direction:row;overflow-x:auto;gap:7px;padding:10px 14px;scrollbar-width:thin}body:not(:has(.auth-shell)) .nav-link{white-space:nowrap;flex:none;min-height:39px;padding:9px 12px}body:not(:has(.auth-shell)) .nav-link.active{box-shadow:inset 0 -3px #34cbee}body:not(:has(.auth-shell)) .main{padding:22px 15px 34px}body:not(:has(.auth-shell)) .stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}body:not(:has(.auth-shell)) .stat{padding:14px}body:not(:has(.auth-shell)) .page-head{align-items:stretch}body:not(:has(.auth-shell)) .filters{flex-direction:column;align-items:stretch}body:not(:has(.auth-shell)) .filters select{width:100%}body:not(:has(.auth-shell)) .form-grid{grid-template-columns:minmax(0,1fr)}body:not(:has(.auth-shell)) .form-grid .full{grid-column:auto}}
@media(max-width:420px){body:not(:has(.auth-shell)) .stats{grid-template-columns:minmax(0,1fr)}body:not(:has(.auth-shell)) .card{padding:16px}body:not(:has(.auth-shell)) .actions,body:not(:has(.auth-shell)) .form-actions{align-items:stretch}body:not(:has(.auth-shell)) .btn{white-space:normal;text-align:center}}
@media(prefers-reduced-motion:reduce){body:not(:has(.auth-shell)) .btn,body:not(:has(.auth-shell)) .nav-link{transition:none}}

/* 1.0.20 — gestion sécurisée TOTP */
body:not(:has(.auth-shell)) .security-section{margin-top:22px}
body:not(:has(.auth-shell)) .security-section .card-head{margin-bottom:18px}
body:not(:has(.auth-shell)) .security-section .card-head p{color:var(--muted);line-height:1.55}
body:not(:has(.auth-shell)) .security-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
body:not(:has(.auth-shell)) .security-panel{min-width:0;border:1px solid #dce6f3;border-radius:13px;padding:18px;background:#f8fbff}
body:not(:has(.auth-shell)) .security-panel-danger{background:#fffbfb;border-color:#ead8d8}
body:not(:has(.auth-shell)) .security-panel h3{margin:0 0 8px;color:#17375d}
body:not(:has(.auth-shell)) .security-panel p{color:#61718b;line-height:1.55;min-height:5em}
body:not(:has(.auth-shell)) .security-section .security-code{width:100%;max-width:100%;letter-spacing:.1em;text-align:center;box-sizing:border-box}
body:not(:has(.auth-shell)) .security-section .secret-box{margin:18px 0}
body:not(:has(.auth-shell)) .security-section details{margin-bottom:18px}
@media(max-width:950px){body:not(:has(.auth-shell)) .security-grid{grid-template-columns:minmax(0,1fr)}body:not(:has(.auth-shell)) .security-panel p{min-height:0}}

/* Verified capacity remains a display state, not a provisioning authorization. */
.infra-state.infra-ok{color:#106b4e;font-weight:700}

/* Kreiz 1.0.32 — Demandes d’hébergement : présentation homogène et responsive */
body:not(:has(.auth-shell)) .request-page-head{align-items:center}
body:not(:has(.auth-shell)) .request-header-actions{display:flex;gap:9px;flex-wrap:wrap;align-items:center}
body:not(:has(.auth-shell)) .request-eyebrow{font-size:12px;font-weight:750;color:#57708f;letter-spacing:.07em;text-transform:uppercase;margin-bottom:4px}
body:not(:has(.auth-shell)) .request-intro{background:#eef6ff;border-color:#cbdff7;padding:16px 20px;margin-bottom:18px}
body:not(:has(.auth-shell)) .request-intro strong{color:#173c64}
body:not(:has(.auth-shell)) .request-intro p{margin:4px 0 0;color:#415b78;line-height:1.55}
body:not(:has(.auth-shell)) .request-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 18px}
body:not(:has(.auth-shell)) .request-stat{background:#fff;border:1px solid #dce5f1;border-radius:13px;padding:13px 17px;display:flex;justify-content:space-between;align-items:center;min-width:0;gap:8px}
body:not(:has(.auth-shell)) .request-stat span{font-size:12px;color:#60738e;line-height:1.3}
body:not(:has(.auth-shell)) .request-stat strong{color:#183959;font-size:23px;font-variant-numeric:tabular-nums}
body:not(:has(.auth-shell)) .request-panel{margin-bottom:18px}
body:not(:has(.auth-shell)) .request-panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:17px}
body:not(:has(.auth-shell)) .request-panel-head h2{margin:0}
body:not(:has(.auth-shell)) .request-helper,body:not(:has(.auth-shell)) .request-muted{color:#60738e;font-size:13px;line-height:1.45}
body:not(:has(.auth-shell)) .request-break{overflow-wrap:anywhere;word-break:break-word}
body:not(:has(.auth-shell)) .request-primary{color:#203953;font-weight:700;line-height:1.35}
body:not(:has(.auth-shell)) .request-table-wrap{border-color:#e1e8f2}
body:not(:has(.auth-shell)) .request-table-wrap .request-table{min-width:820px;table-layout:auto}
body:not(:has(.auth-shell)) .request-table th:last-child,body:not(:has(.auth-shell)) .request-table td:last-child{min-width:155px}
body:not(:has(.auth-shell)) .request-table td{vertical-align:middle;line-height:1.45}
body:not(:has(.auth-shell)) .request-numeric{white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:600}
body:not(:has(.auth-shell)) .request-status{display:inline-flex;align-items:center;gap:6px;border:1px solid transparent;border-radius:999px;padding:5px 10px;font-size:12px;line-height:1.25;font-weight:750;white-space:nowrap}
body:not(:has(.auth-shell)) .request-status--pending{background:#fff6dc;color:#8a5700;border-color:#f3dca4}
body:not(:has(.auth-shell)) .request-status--approved{background:#eaf9ef;color:#14713d;border-color:#bae7c9}
body:not(:has(.auth-shell)) .request-status--prepared{background:#e8f4ff;color:#205d91;border-color:#b8d9f6}
body:not(:has(.auth-shell)) .request-status--rejected{background:#fff0ef;color:#a43b32;border-color:#f0c5c0}
body:not(:has(.auth-shell)) .request-status--unknown{background:#eff2f7;color:#53627a;border-color:#d5dce8}
body:not(:has(.auth-shell)) .request-row-actions,body:not(:has(.auth-shell)) .request-action-group{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
body:not(:has(.auth-shell)) .request-row-actions .btn{min-height:35px;padding:7px 11px;font-size:12px;white-space:nowrap}
body:not(:has(.auth-shell)) .request-delete-link{color:#9e3b35;border-color:#efc6c3;background:#fff}
body:not(:has(.auth-shell)) .request-delete-link:hover{color:#842c29;background:#fff2f0;border-color:#ddada6}
body:not(:has(.auth-shell)) .request-empty{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;text-align:center;padding:23px 10px;color:#61728c}
body:not(:has(.auth-shell)) .request-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
body:not(:has(.auth-shell)) .request-summary>div{display:flex;flex-direction:column;gap:4px;background:#f6f9fd;border:1px solid #e5ecf5;border-radius:11px;padding:13px;min-width:0}
body:not(:has(.auth-shell)) .request-summary span{color:#61738c;font-size:12px}
body:not(:has(.auth-shell)) .request-summary strong{font-size:14px;color:#213951}
body:not(:has(.auth-shell)) .request-notice{padding:13px 16px;border:1px solid #c9deef;background:#f0f7fe;color:#385574;border-radius:11px;line-height:1.55;margin-top:15px}
body:not(:has(.auth-shell)) .request-action-group{margin-top:14px}
body:not(:has(.auth-shell)) .request-action-group form{margin:0}
body:not(:has(.auth-shell)) .request-fields{gap:17px}
body:not(:has(.auth-shell)) .request-form{margin-top:16px;max-width:100%}
body:not(:has(.auth-shell)) .request-form label{min-width:0}
body:not(:has(.auth-shell)) .request-form input,body:not(:has(.auth-shell)) .request-form select{min-width:0;max-width:100%;width:100%;min-height:44px}
body:not(:has(.auth-shell)) .request-form-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap;margin-top:22px}
body:not(:has(.auth-shell)) .request-plan-list{display:grid;gap:8px}
body:not(:has(.auth-shell)) .request-plan{display:flex;align-items:center;gap:12px;justify-content:space-between;flex-wrap:wrap;background:#f8fafd;border:1px solid #e2eaf5;border-radius:10px;padding:12px 14px}
body:not(:has(.auth-shell)) .request-confirm{max-width:800px}
body:not(:has(.auth-shell)) .request-danger-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
body:not(:has(.auth-shell)) .request-danger-heading h2{color:#a33b35;margin:0}
body:not(:has(.auth-shell)) .request-confirm .request-form>label{display:block;max-width:560px;margin-top:16px}
@media(max-width:950px){body:not(:has(.auth-shell)) .request-overview{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){body:not(:has(.auth-shell)) .request-summary{grid-template-columns:minmax(0,1fr)}body:not(:has(.auth-shell)) .request-form-actions{justify-content:stretch}body:not(:has(.auth-shell)) .request-form-actions .btn{flex:1 1 auto;text-align:center}body:not(:has(.auth-shell)) .request-overview{gap:8px}body:not(:has(.auth-shell)) .request-stat{padding:10px 12px}body:not(:has(.auth-shell)) .request-stat strong{font-size:20px}}

/* 1.0.32 — concise, responsive hosting-mode and dedicated-offer selection. */
body:not(:has(.auth-shell)) .request-mode-tabs{display:flex;flex-wrap:wrap;gap:9px;margin-top:14px}
body:not(:has(.auth-shell)) .request-mode-tabs .btn{flex:1 1 155px;text-align:center;display:inline-flex;align-items:center;justify-content:center}
body:not(:has(.auth-shell)) .request-mode-tabs .btn[aria-current="page"]{box-shadow:0 0 0 2px rgba(36,109,177,.12)}
body:not(:has(.auth-shell)) .request-selection{margin-top:18px;border:1px solid #dce6f1;border-radius:12px;padding:16px;background:#f8fbff}
body:not(:has(.auth-shell)) .request-selection h3{margin:0 0 7px;font-size:16px;color:#17375d}
body:not(:has(.auth-shell)) .request-selection p{margin:0 0 13px;line-height:1.5}
body:not(:has(.auth-shell)) .request-selection>label{display:block;max-width:670px}
body:not(:has(.auth-shell)) .request-selection label>span{display:block;margin-bottom:7px;font-weight:600}
body:not(:has(.auth-shell)) .request-selection input,body:not(:has(.auth-shell)) .request-selection select{min-height:43px;max-width:100%;width:100%;border:1px solid #cbd7e7;border-radius:10px;padding:9px 11px;background:#fff;color:#17304f}
body:not(:has(.auth-shell)) .request-selection .request-notice{margin:12px 0}
body:not(:has(.auth-shell)) .request-form button:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:650px){body:not(:has(.auth-shell)) .request-mode-tabs{flex-direction:column}body:not(:has(.auth-shell)) .request-mode-tabs .btn{flex:auto}}

/* 1.0.125 — Navigation sans cadres, typographie identique pour tous les niveaux. */
body:not(:has(.auth-shell)) .sidebar>nav{display:flex;flex-direction:column;gap:4px;width:100%;min-width:0}
body:not(:has(.auth-shell)) .nav-group,body:not(:has(.auth-shell)) .nav-group[open]{border:0;border-radius:0;background:transparent;overflow:visible;margin:0;padding:0;box-shadow:none}
body:not(:has(.auth-shell)) .nav-group-heading{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:11px 14px;color:#c7d6ec;font-size:14px;font-weight:550;line-height:1.4;border-radius:9px}
body:not(:has(.auth-shell)) .nav-group-heading::-webkit-details-marker{display:none}
body:not(:has(.auth-shell)) .nav-group-heading::after{content:'+';font-size:16px;font-weight:550;color:#9bb6d7;line-height:1}
body:not(:has(.auth-shell)) .nav-group[open]>.nav-group-heading::after{content:'−'}
body:not(:has(.auth-shell)) .nav-group-heading:hover{background:#203b5e;color:#fff}
body:not(:has(.auth-shell)) .nav-group-heading:focus-visible{outline:2px solid #33c7ed;outline-offset:2px}
body:not(:has(.auth-shell)) .nav-group-links{padding:0 0 4px 13px;display:flex;flex-direction:column;gap:2px}
body:not(:has(.auth-shell)) .nav-group-links .nav-link{min-height:40px;padding:10px 14px;font-size:14px;font-weight:550;margin:0;border-radius:9px}
@media(max-width:760px){body:not(:has(.auth-shell)) .sidebar{display:block;overflow:visible}body:not(:has(.auth-shell)) .sidebar>nav{display:flex;flex-direction:column;gap:4px}body:not(:has(.auth-shell)) .nav-group-links .nav-link{white-space:normal}}
