:root {
  --ink: #081a3f;
  --navy: #07183e;
  --navy-soft: #122653;
  --primary: #38bdf8;
  --primary-strong: #075985;
  --primary-soft: #e0f2fe;
  --canvas: #f2f6fc;
  --accent: #b8ff45;
  --white: #fff;
  --muted: #7182a1;
  --line: #dbe4f1;
  --coral: #ff735c;
  --violet: #8a63ff;
  --shadow: 0 18px 45px rgba(17, 42, 84, .08);
}

/* Centre de contrôle technique */
.support-body { margin: 0; background: #f3f7fc; color: #0a1833; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.support-shell { min-height: 100vh; display: grid; grid-template-columns: 260px minmax(0,1fr); }
.support-sidebar { position: fixed; inset: 0 auto 0 0; width: 260px; box-sizing: border-box; display: flex; flex-direction: column; padding: 24px 18px; background: linear-gradient(180deg,#172347 0%,#202f5e 55%,#151f40 100%); color: white; z-index: 10; }
.support-brand { display: flex; align-items: center; gap: 12px; padding: 8px 10px 28px; color: white; text-decoration: none; }
.support-brand-mark { display: grid; place-items: center; width: 46px; height: 46px; padding: 4px; overflow: hidden; border-radius: 15px; background: #fff; box-shadow: 0 12px 30px #08122c66; }
.support-brand-mark img { width: 100%; height: 100%; object-fit: contain; }
.support-brand strong,.support-brand small { display: block; letter-spacing: .08em; }.support-brand strong{font-size:14px}.support-brand small{margin-top:3px;color:#7f9bc4;font-size:9px}
.support-nav { display: grid; gap: 4px; }.support-nav p{margin:20px 13px 6px;color:#8f9bc0;font-size:10px;font-weight:800;letter-spacing:.14em}.support-nav a{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;color:#c4cbe0;text-decoration:none;font-size:14px;font-weight:650;transition:.2s}.support-nav a span{width:20px;color:#d56cb4;font-size:19px;text-align:center}.support-nav a:hover,.support-nav a.active{color:#fff;background:#ffffff12;box-shadow:inset 3px 0 #a71979}.support-nav a.active span{color:#f08ccd}
.support-side-status{display:flex;align-items:center;gap:10px;margin-top:auto;padding:14px;border:1px solid #ffffff12;border-radius:14px;background:#ffffff08}.support-side-status i,.support-live-dot{width:8px;height:8px;border-radius:50%;background:#5cf0a6;box-shadow:0 0 0 5px #5cf0a61d}.support-side-status strong,.support-side-status small{display:block}.support-side-status strong{font-size:12px}.support-side-status small{margin-top:3px;color:#7893ba;font-size:10px}.support-back{margin-top:12px;padding:10px 14px;color:#8fa7c9;text-decoration:none;font-size:12px}
.support-workspace{grid-column:2;min-width:0}.support-topbar{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 36px;border-bottom:1px solid #dce6f2;background:#ffffffd9;backdrop-filter:blur(14px);position:sticky;top:0;z-index:5}.support-topbar>div:first-child{display:flex;align-items:center;gap:12px;color:#667a99;font-size:13px;font-weight:650}.support-user{display:grid;grid-template-columns:38px auto;column-gap:10px;align-items:center}.support-user>span{grid-row:1/3;display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#e6f8ff;color:#087ba8;font-weight:900}.support-user strong,.support-user small{display:block}.support-user strong{font-size:13px}.support-user small{color:#8191aa;font-size:11px}.support-main{max-width:1500px;margin:auto;padding:34px 38px 60px}.support-messages{display:grid;gap:8px;margin-bottom:18px}.support-message{padding:13px 16px;border:1px solid #bce9d2;border-radius:12px;background:#ebfff4;color:#167247;font-size:13px}.support-message.error{border-color:#ffd2d2;background:#fff2f2;color:#a52b2b}
.support-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:28px}.support-hero.compact{align-items:center}.support-hero h1{margin:5px 0 8px;font-size:clamp(30px,4vw,45px);line-height:1.05;letter-spacing:-.04em}.support-hero p{margin:0;color:#7587a3}.support-eyebrow{color:#a71979!important;font-size:10px!important;font-weight:850!important;letter-spacing:.17em!important}.back-link{display:inline-block;margin-bottom:12px;color:#7387a5;text-decoration:none;font-size:12px}.support-primary-button{display:inline-flex;align-items:center;justify-content:center;padding:13px 18px;border:0;border-radius:12px;background:linear-gradient(135deg,#202f5e,#a71979);box-shadow:0 12px 25px #6414512e;color:white;text-decoration:none;font-weight:750;cursor:pointer}.healthy-pill,.status-pill{display:inline-flex;align-items:center;padding:7px 10px;border-radius:999px;background:#e9fff4;color:#138557;font-size:11px;font-style:normal;font-weight:750}.status-pill.provisioning,.status-pill.pilot{background:#fff7d9;color:#9b6b00}.status-pill.suspended,.status-pill.error,.status-pill.retired{background:#ffeded;color:#b13838}
.support-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px}.support-kpi-grid article{position:relative;min-height:130px;padding:22px;border:1px solid #dce6f1;border-radius:18px;background:#fff;box-shadow:0 10px 35px #153a6710}.support-kpi-grid p{margin:17px 0 4px;color:#778aa5;font-size:12px;font-weight:650}.support-kpi-grid strong{font-size:27px;letter-spacing:-.03em}.support-kpi-grid small{position:absolute;right:20px;bottom:23px;color:#8192aa;font-size:10px}.kpi-icon{display:grid;place-items:center;width:37px;height:37px;border-radius:12px;font-size:19px}.kpi-icon.blue{background:#e8f4ff;color:#1679e8}.kpi-icon.green{background:#e5fff2;color:#12935b}.kpi-icon.violet{background:#f0ebff;color:#7749d8}.kpi-icon.orange{background:#fff0e7;color:#e3682f}
.support-panel{padding:24px;border:1px solid #dce6f1;border-radius:20px;background:#fff;box-shadow:0 12px 35px #153a670d}.system-panel{margin-bottom:18px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}.panel-heading h2{margin:4px 0 0;font-size:20px}.panel-heading a{color:#1676dc;text-decoration:none;font-size:12px;font-weight:750}.panel-heading>small{color:#8a9ab0}.system-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) 1.1fr;gap:14px}.system-metric{padding:18px;border-radius:15px;background:#f7faff}.system-metric>span{color:#8393aa;font-size:9px;font-weight:850;letter-spacing:.14em}.system-metric strong,.system-metric small{display:block}.system-metric strong{margin:10px 0 3px;font-size:21px}.system-metric small{min-height:28px;color:#7d8da5;font-size:10px}.meter{height:6px;overflow:hidden;border-radius:20px;background:#e5edf6}.meter i{display:block;height:100%;max-width:100%;border-radius:inherit;background:linear-gradient(90deg,#176cff,#35d6c6)}.service-health{display:grid;gap:8px}.service-health span{display:flex;align-items:center;justify-content:space-between;padding:11px 13px;border-radius:12px;background:#f8fbfe;color:#6e819d;font-size:11px}.service-health b{color:#168354}.service-health b.down{color:#b33131}
.support-two-columns{display:grid;grid-template-columns:1.25fr .75fr;gap:18px}.support-two-columns.wide-left{grid-template-columns:1.35fr .65fr}.tenant-mini-list,.request-mini-list{display:grid}.tenant-mini-list>a{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:12px;padding:13px 4px;border-top:1px solid #edf2f7;color:inherit;text-decoration:none}.tenant-mini-list>a:first-child{border-top:0}.tenant-monogram{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:#e8f5ff;color:#1478c8;font-size:12px;font-weight:900}.tenant-monogram.large{width:50px;height:50px;border-radius:15px}.tenant-mini-list strong,.tenant-mini-list small{display:block}.tenant-mini-list strong{font-size:13px}.tenant-mini-list small{margin-top:3px;color:#8595ab;font-size:10px}.tenant-usage{text-align:right}.tenant-usage b,.tenant-usage small{display:block}.request-mini-list>div{display:flex;align-items:center;gap:11px;padding:14px 2px;border-top:1px solid #edf2f7}.request-mini-list>div:first-child{border-top:0}.request-mini-list>div>span:nth-child(2){flex:1}.request-mini-list strong,.request-mini-list small{display:block}.request-mini-list strong{font-size:12px}.request-mini-list small{margin-top:3px;color:#8999ae;font-size:10px}.request-mini-list em{color:#7386a0;font-size:10px;font-style:normal}.request-mini-list form button{padding:7px 9px;border:0;border-radius:8px;background:#e8f3ff;color:#126ab8;cursor:pointer}.request-status{flex:0 0 auto;width:8px;height:8px;border-radius:50%;background:#d0d9e5}.request-status.approved{background:#34c982}.request-status.pending{background:#f2b84b}.request-status.rejected,.request-status.revoked{background:#ef6a6a}.support-empty{padding:24px;text-align:center;color:#8797ad}
.support-search{display:flex;gap:10px;margin-bottom:18px}.support-search input{flex:1;padding:13px 16px;border:1px solid #d9e4ef;border-radius:12px;background:#fff;outline:none}.support-search button{padding:0 18px;border:0;border-radius:12px;background:#0d2244;color:#fff}.tenant-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.tenant-card{display:block;padding:22px;border:1px solid #dce6f1;border-radius:19px;background:#fff;color:inherit;text-decoration:none;box-shadow:0 10px 30px #153a670c;transition:.2s}.tenant-card:hover{transform:translateY(-3px);box-shadow:0 18px 40px #153a6718}.tenant-card-head{display:flex;align-items:center;justify-content:space-between}.tenant-card h2{margin:21px 0 5px;font-size:19px}.tenant-card>p{min-height:18px;margin:0 0 22px;color:#8393aa;font-size:11px}.quota-line{display:flex;justify-content:space-between;margin-bottom:8px;color:#7689a4;font-size:10px}.tenant-card footer{display:flex;gap:15px;margin-top:18px;padding-top:15px;border-top:1px solid #edf2f7;color:#7d8da4;font-size:10px}.tenant-card footer strong{margin-left:auto;color:#1373d4}.support-empty-card{grid-column:1/-1;padding:70px;text-align:center;border:1px dashed #c8d7e7;border-radius:20px;color:#7689a4}
.tenant-kpis article{min-height:105px}.quota-panel{display:flex;align-items:center;justify-content:space-between;gap:40px;margin-bottom:18px}.quota-panel h2{margin:4px 0}.quota-panel>div:last-child{flex:0 1 520px}.quota-visual .meter{height:9px;margin-bottom:10px}.quota-visual span{margin-right:20px;color:#7b8da7;font-size:10px}.module-assignment-form>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:20px}.module-assignment-form label{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid #e2eaf2;border-radius:12px;background:#f9fbfd;font-size:12px}.module-assignment-form input{accent-color:#1775e5}.request-mini-list.detailed{max-height:520px;overflow:auto}
.module-catalog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.module-card{padding:21px;border:1px solid #dce6f1;border-radius:18px;background:#fff}.module-card.private{border-color:#d8cffa;background:linear-gradient(160deg,#fff,#faf8ff)}.module-card header,.module-card footer{display:flex;align-items:center;gap:9px}.module-symbol{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:#e9f5ff;color:#1677cf;font-size:18px}.module-card.private .module-symbol{background:#efeaff;color:#714dc8}.module-category{color:#71839e;font-size:9px;font-weight:800;text-transform:uppercase}.module-card header em{margin-left:auto;color:#93a0b3;font-size:9px;font-style:normal}.module-card h2{margin:19px 0 8px;font-size:17px}.module-card>p{min-height:55px;margin:0 0 18px;color:#788aa4;font-size:11px;line-height:1.55}.module-card footer{justify-content:space-between;padding-top:15px;border-top:1px solid #edf2f7;color:#8494aa;font-size:10px}
.support-form{max-width:900px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.form-grid label{display:grid;gap:7px}.form-grid label>span{color:#667a96;font-size:11px;font-weight:750}.form-grid input,.form-grid select,.form-grid textarea{box-sizing:border-box;width:100%;padding:12px 13px;border:1px solid #d5e1ed;border-radius:11px;background:#fbfdff;font:inherit;outline:none}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{border-color:#55a8f1;box-shadow:0 0 0 3px #4ba6f017}.form-grid .full{grid-column:1/-1}.checkbox-field>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.checkbox-field label{display:flex!important;grid-template-columns:none;align-items:center;padding:11px;border:1px solid #e2eaf2;border-radius:10px}.checkbox-field input{width:auto}.form-actions{display:flex;align-items:center;justify-content:flex-end;gap:18px;margin-top:25px;padding-top:20px;border-top:1px solid #e8eef5}.form-actions>a{color:#7487a3;text-decoration:none}.security-callout{margin-bottom:20px;padding:16px 18px;border:1px solid #bfe1ff;border-radius:14px;background:#eff8ff}.security-callout strong{color:#126cb7}.security-callout p{margin:5px 0 0;color:#63809a;font-size:11px;line-height:1.5}
.support-policy-card{display:flex;gap:17px;margin-bottom:18px;padding:20px;border:1px solid #bce3ff;border-radius:16px;background:linear-gradient(135deg,#f0f9ff,#f7fffc)}.support-policy-card>span{font-size:25px}.support-policy-card strong{display:block}.support-policy-card p{margin:5px 0 0;color:#658098}.access-request-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.access-request-card{padding:22px;border:1px solid #dce6f1;border-radius:18px;background:#fff}.access-request-card header{display:flex;align-items:center;justify-content:space-between}.access-request-card header>div{display:flex;align-items:center;gap:8px}.access-request-card header small{padding:5px 8px;border-radius:99px;background:#f1f5f9;color:#7487a2}.access-request-card time{color:#8b9aae;font-size:10px}.access-request-card h2{margin:22px 0 5px}.access-request-card>p{min-height:42px;color:#70839e}.access-request-card dl{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.access-request-card dl>div{padding:11px;border-radius:10px;background:#f7fafd}.access-request-card dt{color:#8999ae;font-size:9px;text-transform:uppercase}.access-request-card dd{margin:4px 0 0;font-size:11px;font-weight:700}.access-request-card footer{display:flex;align-items:center;justify-content:flex-end;gap:9px;margin-top:18px;padding-top:16px;border-top:1px solid #edf2f7}.access-request-card footer form{margin:0}.danger-button{padding:9px 13px;border:1px solid #ffd1d1;border-radius:9px;background:#fff2f2;color:#ad3030;font-weight:700;cursor:pointer}.self-approval-warning{margin-right:auto;color:#aa7311;font-size:11px}.support-session-banner{position:fixed;z-index:100;right:18px;bottom:18px;display:grid;grid-template-columns:auto auto;gap:2px 12px;align-items:center;padding:13px 15px;border:1px solid #6be0c4;border-radius:14px;background:#082739eb;color:white;box-shadow:0 16px 40px #05203352;backdrop-filter:blur(12px)}.support-session-banner>span{color:#6df0c7;font-size:8px;font-weight:850;letter-spacing:.12em}.support-session-banner strong{font-size:12px}.support-session-banner small{grid-column:1/3;color:#9dbbc3;font-size:9px}.support-session-banner form{grid-column:1/3;margin-top:5px}.support-session-banner button{width:100%;padding:7px;border:0;border-radius:8px;background:#ffffff15;color:#fff;font-size:10px;cursor:pointer}
@media(max-width:1050px){.support-kpi-grid{grid-template-columns:repeat(2,1fr)}.system-grid{grid-template-columns:repeat(2,1fr)}.tenant-card-grid,.module-catalog-grid{grid-template-columns:repeat(2,1fr)}.support-two-columns,.support-two-columns.wide-left{grid-template-columns:1fr}}
@media(max-width:760px){.support-shell{display:block}.support-sidebar{position:static;width:auto;min-height:auto}.support-nav{grid-template-columns:1fr 1fr}.support-nav p,.support-side-status{display:none}.support-workspace{display:block}.support-topbar{padding:0 18px}.support-main{padding:24px 16px}.support-hero{align-items:flex-start;flex-direction:column}.support-kpi-grid,.system-grid,.tenant-card-grid,.module-catalog-grid,.access-request-list,.form-grid{grid-template-columns:1fr}.module-assignment-form>div,.checkbox-field>div{grid-template-columns:1fr}.quota-panel{align-items:stretch;flex-direction:column}.support-user strong,.support-user small{display:none}}

.mfa-page{width:min(950px,calc(100% - 32px));margin:85px auto 40px}.mfa-card{padding:34px;border:1px solid #d9e5f1;border-radius:24px;background:#fff;box-shadow:0 25px 70px #09255218;text-align:center}.mfa-card h1{margin:7px 0 8px;font-size:34px;letter-spacing:-.04em}.mfa-card>p:not(.eyebrow){max-width:620px;margin:0 auto 25px;color:#71839f;line-height:1.55}.mfa-shield{display:grid;place-items:center;width:52px;height:52px;margin:0 auto 14px;border-radius:17px;background:linear-gradient(135deg,#ddf5ff,#dfffee);color:#1176a8;font-size:19px;font-weight:900}.mfa-setup-grid{display:grid;grid-template-columns:260px 1fr;gap:25px;align-items:center;padding:22px;border-radius:18px;background:#f6f9fd;text-align:left}.qr-frame{padding:15px;border:1px solid #dde7f1;border-radius:17px;background:#fff}.qr-frame img{display:block;width:100%;height:auto}.mfa-instructions{display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:center}.mfa-instructions>span{display:grid;place-items:center;width:26px;height:26px;border-radius:9px;background:#e3f3ff;color:#1677c6;font-size:11px;font-weight:900}.mfa-instructions p{margin:0;color:#607590;font-size:12px;line-height:1.45}.mfa-instructions code{grid-column:2;padding:9px;border:1px dashed #b8cce0;border-radius:9px;background:#fff;color:#173f68;font-size:11px;word-break:break-all}.mfa-form{display:grid;gap:8px;max-width:430px;margin:24px auto 0;text-align:left}.mfa-form label{color:#5f7390;font-size:11px;font-weight:750}.mfa-form input{padding:15px;border:1px solid #cfdeec;border-radius:12px;background:#fbfdff;text-align:center;font-size:23px;font-weight:800;letter-spacing:.35em}.mfa-form button{margin-top:5px;padding:13px;border-radius:11px}.mfa-form .errorlist{margin:0;padding:0;color:#b73c3c;font-size:11px;list-style:none}.mfa-note{display:block;margin-top:17px;color:#8a9bb0}.mfa-logout{margin-top:15px}.mfa-logout button{border:0;background:transparent;color:#7185a1;cursor:pointer}.verify-card{max-width:560px;margin:auto;padding-block:48px}@media(max-width:650px){.mfa-page{margin-top:55px}.mfa-card{padding:23px}.mfa-setup-grid{grid-template-columns:1fr}.qr-frame{max-width:260px;margin:auto}}
.security-events{margin-top:18px}.support-table{overflow:auto}.support-table-head,.support-table-row{display:grid;grid-template-columns:1.3fr 1.2fr .6fr 1fr 1fr .8fr;align-items:center;min-width:850px}.support-table-head.event,.support-table-row.event{grid-template-columns:1.2fr 1fr 1.4fr 1fr .5fr}.support-table-head{padding:10px 12px;color:#8091a8;font-size:9px;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.support-table-row{padding:13px 12px;border-top:1px solid #edf2f7;color:#647996;font-size:11px}.support-table-row strong{color:#172b49}.support-table-row b.green{color:#19845a}.support-table-row b.orange{color:#b47714}.support-table-row b.red{color:#b63b3b}.support-table-row form{margin:0}.support-table-row button{padding:7px 9px;border:1px solid #b9dcfa;border-radius:8px;background:#eef8ff;color:#176ba9;font-size:10px;cursor:pointer}
.color-editor{display:grid!important;grid-template-columns:48px 1fr 1fr!important;gap:8px!important;align-items:center}.color-editor input[type="color"]{width:48px!important;height:44px!important;padding:3px!important;border:1px solid var(--line)!important;border-radius:11px!important;background:#fff!important;cursor:pointer}.color-editor .hex-color-input,.color-editor .rgb-color-input{width:100%!important;height:44px!important;padding:0 11px!important;border:1px solid var(--line)!important;border-radius:11px!important;background:#fff!important;color:var(--ink)!important;font:700 12px/1 ui-monospace,SFMono-Regular,Consolas,monospace!important}.color-editor .rgb-color-input::placeholder{color:#9ba9bc}.color-grid .errorlist{margin:5px 0 0;padding:0;color:#b63c3c;font-size:10px;list-style:none}@media(max-width:620px){.color-editor{grid-template-columns:48px 1fr!important}.color-editor .rgb-color-input{grid-column:1/-1}}

* { box-sizing: border-box; }
html { min-height: 100%; }
body { margin: 0; color: var(--ink); font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif; -webkit-font-smoothing: antialiased; }
button, input { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
svg { display: block; }

/* Application shell */
.app-body { min-height: 100vh; background: var(--canvas); }
.app-shell { min-height: 100vh; }
.sidebar { position: fixed; inset: 0 auto 0 0; z-index: 30; display: flex; flex-direction: column; width: 276px; padding: 28px 20px 18px; overflow-y: auto; color: #fff; background: var(--navy); }
.sidebar-brand { display: flex; align-items: center; gap: 13px; min-height: 58px; padding: 0 14px; color: #fff; text-decoration: none; }
.sidebar-brand > span:last-child { min-width: 0; }
.sidebar-brand strong { display: block; overflow: hidden; font-size: .91rem; font-weight: 850; letter-spacing: -.02em; text-overflow: ellipsis; white-space: nowrap; }
.sidebar-brand small { display: block; margin-top: 3px; color: #91a0c0; font-size: .64rem; font-weight: 750; letter-spacing: .14em; }
.sidebar-mark { display: grid; flex: 0 0 auto; place-items: center; width: 44px; height: 44px; border-radius: 50%; color: var(--navy); background: var(--accent); font-size: .72rem; font-weight: 900; box-shadow: 0 0 0 6px rgba(184, 255, 69, .06); }
.sidebar-logo { display: block; flex: 0 0 auto; width: 48px; height: 48px; border-radius: 13px; object-fit: contain; }
.side-nav { display: flex; flex: 1; flex-direction: column; gap: 5px; margin-top: 34px; }
.side-nav p { margin: 0 14px 10px; color: #64769b; font-size: .61rem; font-weight: 850; letter-spacing: .15em; }
.side-nav .nav-section { margin-top: 22px; }
.side-nav a { display: flex; align-items: center; gap: 13px; min-height: 46px; padding: 0 14px; border-radius: 13px; color: #aebbd4; text-decoration: none; font-size: .88rem; font-weight: 650; transition: background .18s ease, color .18s ease, transform .18s ease; }
.side-nav a:hover { color: #fff; background: rgba(255, 255, 255, .07); transform: translateX(2px); }
.side-nav a.active { color: #fff; background: rgba(255, 255, 255, .10); box-shadow: inset 3px 0 0 var(--primary); }
.side-nav svg { width: 18px; height: 18px; fill: currentColor; opacity: .92; }
.sidebar-profile { display: grid; grid-template-columns: 39px minmax(0, 1fr) auto auto; align-items: center; gap: 8px; margin-top: 28px; padding: 11px; border: 1px solid rgba(255, 255, 255, .05); border-radius: 17px; background: rgba(255, 255, 255, .07); }
.avatar { display: grid; place-items: center; width: 39px; height: 39px; border-radius: 50%; color: #fff; background: linear-gradient(135deg, var(--primary), #2563ff); font-size: .78rem; font-weight: 850; }
.sidebar-profile strong, .sidebar-profile small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sidebar-profile strong { font-size: .78rem; }
.sidebar-profile small { margin-top: 3px; color: #8f9dbb; font-size: .66rem; }
.sidebar-profile form { margin: 0; }
.sidebar-profile button { padding: 6px; border: 0; color: #8f9dbb; background: none; cursor: pointer; }
.profile-security-link { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 9px; color: #9aabd0; text-decoration: none; }
.profile-security-link:hover { color: #fff; background: rgba(255,255,255,.08); }
.sidebar-overlay { display: none; }
.workspace { min-height: 100vh; margin-left: 276px; }
.workspace-bar { position: sticky; top: 0; z-index: 20; display: flex; align-items: center; gap: 22px; height: 82px; padding: 0 clamp(24px, 3vw, 48px); border-bottom: 1px solid var(--line); background: rgba(255, 255, 255, .92); backdrop-filter: blur(18px); }
.mobile-menu-toggle { display: none; width: 42px; height: 42px; padding: 10px; border: 1px solid var(--line); border-radius: 12px; color: var(--ink); background: #fff; }
.mobile-menu-toggle svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.global-search { display: flex; align-items: center; gap: 12px; width: min(480px, 50vw); height: 44px; padding: 0 16px; border: 1px solid var(--line); border-radius: 15px; background: #f8faff; }
.global-search svg { width: 18px; height: 18px; fill: none; stroke: #8090ac; stroke-width: 1.8; stroke-linecap: round; }
.global-search input { width: 100%; border: 0; outline: 0; color: var(--ink); background: transparent; font-size: .84rem; }
.global-search input::placeholder { color: #94a1b8; }
.workspace-actions { display: flex; align-items: center; gap: 10px; margin-left: auto; }
.view-pill { padding: 11px 15px; border: 1px solid var(--line); border-radius: 14px; color: #64738e; background: #fff; font-size: .78rem; }
.view-pill strong { margin-left: 4px; color: var(--ink); }
.icon-button { position: relative; display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid var(--line); border-radius: 14px; color: var(--ink); background: #fff; cursor: pointer; }
.icon-button svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.icon-button i { position: absolute; top: 9px; right: 9px; width: 6px; height: 6px; border: 2px solid #fff; border-radius: 50%; background: var(--coral); }
.icon-button b { position:absolute;top:-6px;right:-6px;display:grid;place-items:center;min-width:18px;height:18px;padding:0 4px;border:2px solid #fff;border-radius:999px;background:var(--coral);color:#fff;font-size:.58rem;box-sizing:border-box }
.notification-list{display:grid;gap:12px}.notification-card{display:grid;grid-template-columns:10px 1fr auto;align-items:center;gap:16px;padding:20px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:var(--shadow)}.notification-card.unread{border-color:#b8dcff;background:linear-gradient(135deg,#fff,#f5faff)}.notification-dot{width:9px;height:9px;border-radius:50%;background:#83a0c3}.notification-dot.warning{background:#f5ae35}.notification-dot.success{background:#2fc884}.notification-card h2{margin:0 0 6px;font-size:.92rem}.notification-card p{margin:0;color:var(--muted);font-size:.76rem}.notification-card small{display:block;margin-top:8px;color:#9aa6b8;font-size:.62rem}.secondary-button{display:inline-flex;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);text-decoration:none;font-size:.68rem;font-weight:750;cursor:pointer}.support-logout button{width:100%;padding:10px;border:1px solid #ffffff12;border-radius:10px;background:#ffffff08;color:#9fb3d0;cursor:pointer}
.modern-form{max-width:980px}.modern-form>.primary{margin-top:22px}.modern-form .form-grid label{display:grid;gap:7px}.modern-form input,.modern-form select,.modern-form textarea,.assignment-card select{box-sizing:border-box;width:100%;padding:12px 13px;border:1px solid var(--line);border-radius:11px;background:#fbfdff;font:inherit}.checkbox-line{display:flex!important;align-items:center}.checkbox-line input{width:auto}.secondary-action-row{display:flex;gap:10px;margin:-4px 0 17px}.role-layout{display:grid;grid-template-columns:1.3fr .7fr;gap:18px;align-items:start}.role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.role-card{display:grid;grid-template-columns:44px 1fr;gap:13px;padding:19px;border:1px solid var(--line);border-radius:17px;background:#fff;color:inherit;text-decoration:none;box-shadow:var(--shadow)}.role-card>span{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:var(--primary-soft);color:var(--primary-strong);font-weight:900}.role-card h2{margin:1px 0 5px;font-size:.9rem}.role-card p{min-height:35px;margin:0;color:var(--muted);font-size:.68rem}.role-card small{color:#8b99ae;font-size:.6rem}.assignment-card h2{margin-top:0}.assignment-card>p{color:var(--muted);font-size:.72rem}.assignment-card ul{list-style:none;padding:0}.assignment-card li{margin:8px 0}.permission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:15px 0 24px}.permission-grid label{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:12px;border:1px solid var(--line);border-radius:12px}.permission-grid span{font-size:.72rem;font-weight:700}.permission-grid select{width:145px}
.password-change-form{max-width:760px}.password-change-form .form-grid{grid-template-columns:1fr}.password-change-form .helptext,.support-form .helptext{color:var(--muted);font-size:.68rem;line-height:1.5}.password-change-form .helptext ul,.support-form .helptext ul{margin:5px 0 0;padding-left:18px}.password-change-form .errorlist,.support-form .errorlist{margin:4px 0 0;padding:0;color:#b63c3c;font-size:.7rem;list-style:none}
.page-shell { width: min(100%, 1160px); margin: 0 auto; padding: 42px clamp(24px, 3vw, 48px) 80px; }

/* Dashboard */
.dashboard-hero { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; margin-bottom: 30px; }
.eyebrow { margin: 0 0 12px; color: #2563ff; font-size: .68rem; font-weight: 900; letter-spacing: .18em; }
.dashboard-hero h1 { margin: 0 0 10px; max-width: 760px; font-size: clamp(2rem, 3.6vw, 3.35rem); line-height: 1.04; letter-spacing: -.055em; }
.dashboard-hero p:last-child { margin: 0; color: var(--muted); font-size: .96rem; }
.button { text-decoration: none; }
.primary { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 46px; padding: 0 20px; border: 0; border-radius: 14px; color: #fff; background: linear-gradient(135deg, #2176ff, var(--primary-strong)); box-shadow: 0 13px 26px rgba(33, 118, 255, .23); font-weight: 750; cursor: pointer; transition: transform .18s ease, box-shadow .18s ease; }
.primary:hover { transform: translateY(-2px); box-shadow: 0 16px 30px rgba(33, 118, 255, .3); }
.metric-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-bottom: 18px; }
.metric-card { position: relative; display: grid; grid-template-columns: 1fr auto; min-height: 158px; padding: 21px; overflow: hidden; border: 1px solid var(--line); border-radius: 22px; background: #fff; box-shadow: var(--shadow); }
.metric-card::after { position: absolute; right: -34px; bottom: -45px; width: 125px; height: 125px; border-radius: 50%; background: radial-gradient(circle, rgba(56, 189, 248, .12), transparent 68%); content: ""; }
.metric-icon { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 14px; }
.metric-icon svg { width: 21px; height: 21px; fill: currentColor; }
.metric-icon.blue { color: #1769ff; background: #eaf0ff; }
.metric-icon.lime { color: #4e8200; background: #eaffc8; }
.metric-icon.violet { color: var(--violet); background: #f0eaff; }
.metric-icon.coral { color: #f45a41; background: #ffebe7; }
.card-menu { align-self: start; padding: 5px; border: 0; color: #a4b0c5; background: none; letter-spacing: 2px; cursor: pointer; }
.metric-card > span { grid-column: 1; align-self: end; margin-top: 19px; color: var(--muted); font-size: .79rem; font-weight: 650; }
.metric-card > strong { grid-column: 1; margin-top: 3px; font-size: 1.75rem; letter-spacing: -.035em; }
.metric-card > small { grid-column: 2; grid-row: 3; align-self: end; justify-self: end; color: #61728f; font-size: .68rem; font-weight: 700; }
.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(280px, .8fr); gap: 18px; margin-bottom: 18px; }
.card { border: 1px solid var(--line); border-radius: 22px; background: #fff; box-shadow: var(--shadow); }
.agenda-card { min-height: 330px; padding: 25px; }
.section-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.section-title h2 { margin: 0; font-size: 1.05rem; letter-spacing: -.025em; }
.section-title p { margin: 6px 0 0; color: var(--muted); font-size: .79rem; }
.section-title a { color: #2766ff; text-decoration: none; font-size: .76rem; font-weight: 750; }
.action-row { display: grid; grid-template-columns: 50px minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 15px 0; border-top: 1px solid #edf1f7; }
.section-title + .action-row { margin-top: 18px; }
.action-row time { display: grid; place-items: center; min-height: 50px; border-radius: 14px; color: var(--primary-strong); background: var(--primary-soft); }
.action-row time strong { font-size: 1.08rem; line-height: 1; }
.action-row time span { margin-top: 3px; font-size: .58rem; font-weight: 850; }
.action-row div strong, .action-row div span { display: block; }
.action-row div strong { font-size: .82rem; }
.action-row div span { margin-top: 4px; color: var(--muted); font-size: .71rem; }
.status { padding: 6px 9px; border-radius: 999px; color: #357944; background: #e9f8ed; font-size: .64rem; font-weight: 750; }
.empty-state { display: grid; place-items: center; min-height: 220px; color: var(--muted); text-align: center; }
.empty-state span { display: grid; place-items: center; width: 50px; height: 50px; border-radius: 16px; color: #2563ff; background: #edf3ff; font-size: 1.35rem; }
.empty-state strong { margin-top: 12px; color: var(--ink); }
.empty-state p { margin: -14px 0 0; font-size: .78rem; }
.momentum-card { display: flex; flex-direction: column; min-height: 330px; padding: 27px; overflow: hidden; border-radius: 22px; color: #fff; background: radial-gradient(circle at 110% -10%, rgba(56, 189, 248, .28), transparent 37%), var(--navy); box-shadow: 0 22px 50px rgba(7, 24, 62, .18); }
.momentum-card > p { margin: 0; color: #8293b8; font-size: .6rem; font-weight: 850; letter-spacing: .15em; }
.momentum-card h2 { margin: 17px 0 26px; font-size: clamp(1.55rem, 2.4vw, 2.15rem); line-height: 1.08; letter-spacing: -.05em; }
.momentum-stat { display: flex; align-items: flex-end; gap: 11px; margin-top: auto; }
.momentum-stat strong { color: var(--accent); font-size: 2.5rem; line-height: .9; }
.momentum-stat span { color: #aab7d1; font-size: .68rem; line-height: 1.35; }
.momentum-card a { display: flex; justify-content: space-between; margin-top: 24px; padding-top: 17px; border-top: 1px solid rgba(255, 255, 255, .12); color: #fff; text-decoration: none; font-size: .73rem; font-weight: 700; }
.shortcut-card { padding: 25px; }
.shortcut-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-top: 21px; }
.shortcut-grid a { display: grid; grid-template-columns: 38px 1fr; column-gap: 10px; align-items: center; min-height: 74px; padding: 12px; border: 1px solid #edf1f7; border-radius: 16px; color: var(--ink); text-decoration: none; transition: border .18s ease, transform .18s ease, box-shadow .18s ease; }
.shortcut-grid a:hover { border-color: #bed8ff; transform: translateY(-2px); box-shadow: 0 10px 22px rgba(17, 42, 84, .07); }
.shortcut-grid a > span { grid-row: 1 / 3; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 12px; color: #2465ef; background: #eaf1ff; font-size: .65rem; font-weight: 850; }
.shortcut-grid strong { font-size: .76rem; }
.shortcut-grid small { color: var(--muted); font-size: .62rem; }

/* Module pages */
.module-hero { display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; margin-bottom: 27px; }
.module-hero h1 { margin: 0; font-size: clamp(2.25rem, 4vw, 3.65rem); line-height: 1; letter-spacing: -.06em; }
.module-hero > div > p:last-child { max-width: 680px; margin: 10px 0 0; color: var(--muted); font-size: .9rem; }
.module-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 17px; }
.module-stats article { padding: 17px 18px; border: 1px solid var(--line); border-radius: 17px; background: #fff; box-shadow: 0 10px 25px rgba(17, 42, 84, .05); }
.module-stats span, .module-stats strong { display: block; }
.module-stats span { min-height: 30px; color: var(--muted); font-size: .68rem; font-weight: 650; }
.module-stats strong { margin-top: 5px; font-size: 1.45rem; letter-spacing: -.035em; }
.data-panel { overflow: hidden; }
.data-toolbar { display: flex; align-items: center; gap: 18px; padding: 18px 20px; border-bottom: 1px solid #edf1f7; }
.module-search { display: flex; align-items: center; gap: 10px; width: min(440px, 100%); height: 42px; padding: 0 13px; border: 1px solid var(--line); border-radius: 13px; background: #f9fbff; }
.module-search svg { width: 17px; height: 17px; fill: none; stroke: #8594ad; stroke-width: 1.8; stroke-linecap: round; }
.module-search input { width: 100%; border: 0; outline: 0; color: var(--ink); background: transparent; font-size: .78rem; }
.module-search a { color: #8794aa; text-decoration: none; font-size: 1.15rem; }
.result-count { margin-left: auto; color: var(--muted); font-size: .68rem; font-weight: 700; }
.data-table-scroll { overflow-x: auto; }
.data-table { width: 100%; border-collapse: collapse; }
.data-table th { padding: 13px 18px; color: #7e8da7; background: #fafcff; font-size: .61rem; font-weight: 850; letter-spacing: .08em; text-align: left; text-transform: uppercase; white-space: nowrap; }
.data-table td { min-width: 130px; padding: 16px 18px; border-top: 1px solid #eef2f7; color: #3e4d67; font-size: .75rem; }
.data-table tbody tr { transition: background .15s ease; }
.data-table tbody tr:hover { background: #f9fbff; }
.data-table td:first-child { min-width: 200px; }
.data-table td strong, .data-table td small { display: block; }
.data-table td strong { color: var(--ink); font-size: .78rem; }
.data-table td small { margin-top: 4px; color: var(--muted); font-size: .65rem; }
.table-status { display: inline-flex; padding: 6px 9px; border-radius: 999px; font-size: .65rem; font-weight: 750; white-space: nowrap; }
.table-status.success { color: #26713a; background: #e9f8ed; }
.table-status.neutral { color: #596b87; background: #eef2f7; }
.module-empty { display: grid; place-items: center; min-height: 330px; padding: 40px; text-align: center; }
.module-empty > span { display: grid; place-items: center; width: 54px; height: 54px; border-radius: 17px; color: #2563ff; background: #edf3ff; font-size: 1.4rem; }
.module-empty h2 { margin: 17px 0 7px; font-size: 1.05rem; }
.module-empty p { margin: 0; color: var(--muted); font-size: .76rem; }
.technical-note { margin: 13px 4px 0; color: #8a97ac; font-size: .63rem; text-align: right; }

/* Visual identity settings */
.settings-hero { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 28px; }
.settings-hero h1 { margin: 0; font-size: clamp(2.2rem, 4vw, 3.6rem); letter-spacing: -.06em; }
.settings-hero > div > p:last-child { margin: 8px 0 0; color: var(--muted); }
.ghost-button { padding: 11px 15px; border: 1px solid var(--line); border-radius: 13px; color: var(--ink); background: #fff; text-decoration: none; font-size: .75rem; font-weight: 700; }
.success-message { margin: 0 0 18px; padding: 13px 16px; border: 1px solid #bfe9ca; border-radius: 13px; color: #26713a; background: #edfaef; font-size: .78rem; font-weight: 700; }
.settings-layout { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(290px, .65fr); align-items: start; gap: 18px; }
.settings-form { padding: 27px; }
.settings-section { display: grid; grid-template-columns: 38px 1fr; gap: 13px; align-items: start; }
.settings-number { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 12px; color: #2366f5; background: #eaf1ff; font-size: .67rem; font-weight: 850; }
.settings-section h2 { margin: 0; font-size: 1rem; }
.settings-section p { margin: 6px 0 0; color: var(--muted); font-size: .72rem; line-height: 1.45; }
.logo-dropzone { position: relative; display: flex; align-items: center; gap: 13px; margin: 19px 0 30px 51px; padding: 18px; border: 1.5px dashed #b7c8df; border-radius: 16px; background: #f8fbff; cursor: pointer; }
.logo-dropzone:hover { border-color: var(--primary); background: #f4faff; }
.upload-icon { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 13px; color: #2267f2; background: #e9f1ff; font-size: 1.2rem; }
.logo-dropzone strong, .logo-dropzone small { display: block; }
.logo-dropzone strong { font-size: .78rem; }
.logo-dropzone small { margin-top: 4px; color: var(--muted); font-size: .65rem; }
.logo-dropzone input[type="file"] { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.color-heading { padding-top: 25px; border-top: 1px solid #edf1f7; }
.color-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 20px 0 0 51px; }
.color-grid label { padding: 13px; border: 1px solid #e7edf5; border-radius: 14px; }
.color-grid label > span { display: block; margin-bottom: 10px; color: #5d6c86; font-size: .67rem; font-weight: 700; }
.color-grid label > div { display: flex; align-items: center; gap: 9px; }
.color-grid input[type="color"] { width: 36px; height: 36px; padding: 2px; border: 1px solid var(--line); border-radius: 10px; background: #fff; cursor: pointer; }
.color-grid code { color: var(--ink); font-family: inherit; font-size: .72rem; font-weight: 750; }
.field-error { margin: 10px 0 0 51px; color: #a63f31; font-size: .72rem; }
.field-error ul { margin: 0; padding-left: 17px; }
.save-theme { margin: 24px 0 0 51px; }
.theme-preview { position: sticky; top: 104px; padding: 25px; border-radius: 22px; color: #fff; background: var(--navy); box-shadow: 0 24px 55px rgba(7, 24, 62, .2); }
.theme-preview > p { margin: 0 0 18px; color: #8394b8; font-size: .6rem; font-weight: 850; letter-spacing: .16em; }
.theme-preview > small { display: block; margin-top: 15px; color: #98a7c4; font-size: .65rem; line-height: 1.5; }
.preview-window { display: grid; grid-template-columns: 62px 1fr; min-height: 238px; overflow: hidden; border-radius: 15px; background: var(--canvas); }
.preview-sidebar { padding: 14px 10px; background: #0b1d47; }
.preview-brand img, .preview-brand > span { display: grid; place-items: center; width: 34px; height: 34px; margin: 0 auto 25px; border-radius: 10px; object-fit: contain; color: var(--navy); background: var(--accent); font-size: .52rem; font-weight: 900; }
.preview-brand i { display: block; width: 100%; height: 7px; margin: 11px 0; border-radius: 4px; background: rgba(255, 255, 255, .16); }
.preview-brand i:first-of-type { background: var(--primary); }
.preview-content { padding: 22px 16px; color: var(--ink); }
.preview-content > span { display: block; width: 55px; height: 5px; border-radius: 3px; background: var(--primary); }
.preview-content h3 { margin: 9px 0 19px; font-size: 1rem; letter-spacing: -.04em; }
.preview-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.preview-cards i { display: block; height: 54px; border: 1px solid #dfe8f3; border-radius: 10px; background: #fff; }
.preview-content button { width: 100%; margin-top: 11px; padding: 8px; border: 0; border-radius: 9px; color: #fff; background: var(--primary-strong); font-size: .58rem; font-weight: 750; }

/* Authentication */
.auth-body { min-height: 100vh; background: radial-gradient(circle at 15% 5%, rgba(56, 189, 248, .22), transparent 30%), linear-gradient(135deg, #f5f9ff 0%, #edf4ff 52%, #f7fbff 100%); }
.auth-header { position: absolute; z-index: 2; top: 0; left: 0; display: flex; align-items: center; justify-content: space-between; gap: 18px; width: 100%; box-sizing: border-box; padding: 28px clamp(24px, 5vw, 70px); }
.auth-brand { display: flex; align-items: center; gap: 12px; color: var(--ink); text-decoration: none; }
.auth-brand > span { display: grid; place-items: center; width: 43px; height: 43px; border-radius: 14px; color: #fff; background: linear-gradient(135deg, var(--primary), #2573ff); font-size: .72rem; font-weight: 900; }
.auth-brand img { width: 48px; height: 48px; object-fit: contain; }
.auth-brand strong { font-size: .95rem; letter-spacing: -.02em; }
.auth-shell { min-height: 100vh; padding: 100px clamp(24px, 6vw, 90px) 50px; }
.login-panel { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(330px, .55fr); align-items: center; gap: 8vw; width: min(100%, 1220px); min-height: calc(100vh - 150px); margin: auto; }
.login-panel h1 { max-width: 750px; margin: 0 0 24px; font-size: clamp(3rem, 6vw, 5.6rem); line-height: .93; letter-spacing: -.07em; }
.login-panel > div > p:last-child { max-width: 570px; margin: 0; color: var(--muted); font-size: 1.05rem; line-height: 1.6; }
.login-card { display: flex; flex-direction: column; gap: 9px; padding: 31px; box-shadow: 0 30px 70px rgba(28, 64, 120, .15); }
.login-card h2 { margin: 0 0 14px; font-size: 1.35rem; }
.login-card label { color: #52627d; font-size: .72rem; font-weight: 750; }
.login-card input { width: 100%; height: 47px; margin-bottom: 8px; padding: 0 14px; border: 1px solid var(--line); border-radius: 13px; outline: none; color: var(--ink); background: #f9fbff; transition: border .18s ease, box-shadow .18s ease; }
.login-card input:focus { border-color: var(--primary); box-shadow: 0 0 0 4px rgba(56, 189, 248, .13); }
.login-card .primary { margin-top: 8px; }
.alert { margin: 0 0 8px; padding: 10px 12px; border-radius: 10px; color: #973728; background: #fff0ed; font-size: .75rem; }

.clickable-data-row { cursor: pointer; transition: background .16s ease, box-shadow .16s ease; }
.clickable-data-row:hover, .clickable-data-row:focus-visible { background: color-mix(in srgb, var(--primary) 8%, transparent); outline: none; }
.table-row-link { color: inherit; text-decoration: none; }
.table-row-link:hover { color: var(--primary-strong); }
.detail-hero { gap: 20px; }
.detail-actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; flex-wrap: wrap; }
.detail-summary-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-bottom: 16px; }
.detail-card, .detail-wide-card { padding: 24px; }
.detail-card h2, .detail-wide-card h2 { margin: 7px 0 18px; }
.detail-label { color: var(--primary-strong); font-size: .69rem; font-weight: 900; letter-spacing: .14em; }
.detail-card dl { display: grid; grid-template-columns: minmax(95px, .75fr) 1.4fr; gap: 11px 14px; margin: 0; }
.detail-card dt { color: var(--muted); font-size: .76rem; font-weight: 700; }
.detail-card dd { margin: 0; overflow-wrap: anywhere; font-size: .86rem; font-weight: 700; }
.detail-card a:not(.button), .detail-list a { color: var(--primary-strong); }
.detail-card > p, .detail-wide-card > p { color: var(--muted); line-height: 1.65; }
.detail-wide-card { margin-bottom: 16px; }
.detail-two-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.detail-list { display: grid; gap: 8px; }
.detail-list > article, .detail-list > a { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 13px 0; border-top: 1px solid var(--line); color: inherit; text-decoration: none; }
.detail-list > :first-child { border-top: 0; }
.detail-list div { display: grid; gap: 3px; }
.detail-list small { display: block; color: var(--muted); font-size: .73rem; }
.record-actions { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; }
.record-actions form { display: flex; gap: 8px; flex-wrap: wrap; }
.text-link { display: inline-flex; margin-top: 18px; font-size: .79rem; font-weight: 800; text-decoration: none; }

@media (max-width: 980px) {
  .detail-summary-grid, .detail-two-columns { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
  .detail-actions, .record-actions, .record-actions form { align-items: stretch; width: 100%; }
  .detail-actions > *, .record-actions > *, .record-actions form > * { justify-content: center; width: 100%; }
  .detail-card, .detail-wide-card { padding: 18px; }
  .detail-card dl { grid-template-columns: 1fr; gap: 4px; }
  .detail-card dd { margin-bottom: 9px; }
  .detail-list > article, .detail-list > a { align-items: flex-start; flex-direction: column; }
}

.table-row-link{color:var(--ink);text-decoration:none}.table-row-link:hover{color:#2168f3}.action-detail-grid{display:grid;grid-template-columns:1.4fr .6fr;gap:17px;margin-bottom:17px}.action-summary,.detail-section{padding:24px}.action-summary h2,.detail-section h2{margin-top:0}.action-summary h3{margin-top:24px;font-size:.8rem}.action-summary p{color:var(--muted);font-size:.76rem;line-height:1.55}.public-links{display:flex;gap:10px;margin-top:22px}.large-number{display:block;margin:25px 0 5px;font-size:3rem}.detail-section{margin-bottom:17px}.agenda-item{display:grid;grid-template-columns:34px 1fr minmax(150px,.7fr);align-items:center;gap:12px;padding:14px 0;border-top:1px solid #edf1f7}.agenda-item>b{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:var(--primary-soft);color:var(--primary-strong)}.agenda-item span strong,.agenda-item span small{display:block}.agenda-item span small{margin-top:3px;color:var(--muted);font-size:.65rem}.agenda-item p{color:var(--muted);font-size:.7rem}.registration-row{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-top:1px solid #edf1f7}.registration-row strong,.registration-row small{display:block}.registration-row small{margin-top:4px;color:var(--muted);font-size:.65rem}.public-event-shell{display:grid;grid-template-columns:1.2fr .7fr;align-items:center;gap:7vw;width:min(1180px,100%);min-height:calc(100vh - 160px);margin:auto}.public-event-intro h1{margin:0 0 18px;font-size:clamp(3rem,6vw,5.5rem);line-height:.95;letter-spacing:-.065em}.public-event-intro>p{max-width:650px;color:var(--muted);line-height:1.65}.public-event-intro .event-date{color:var(--ink);font-weight:750}.public-registration form{display:grid;gap:8px}.public-registration textarea,.public-registration select{width:100%;padding:12px;border:1px solid var(--line);border-radius:12px;box-sizing:border-box}

@media (max-width: 1050px) {
  .action-detail-grid, .public-event-shell, .role-layout { grid-template-columns: 1fr; }
  .public-event-shell { gap: 35px; padding-top: 70px; }
  .dashboard-grid { grid-template-columns: 1fr; }
  .momentum-card { min-height: 300px; }
  .shortcut-grid { grid-template-columns: repeat(2, 1fr); }
  .settings-layout { grid-template-columns: 1fr; }
  .theme-preview { position: static; }
  .module-stats { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 860px) {
  .sidebar { transform: translateX(-100%); transition: transform .22s ease; }
  .nav-open .sidebar { transform: translateX(0); }
  .sidebar-overlay { position: fixed; inset: 0; z-index: 25; display: block; border: 0; visibility: hidden; opacity: 0; background: rgba(3, 12, 34, .45); transition: opacity .22s ease, visibility .22s ease; }
  .nav-open .sidebar-overlay { visibility: visible; opacity: 1; }
  .workspace { margin-left: 0; }
  .mobile-menu-toggle { display: block; }
  .workspace-bar { height: 72px; }
  .view-pill { display: none; }
  .global-search { width: min(520px, calc(100vw - 155px)); }
  .login-panel { grid-template-columns: 1fr; gap: 45px; padding-top: 60px; }
  .login-card { width: min(100%, 480px); }
}

@media (max-width: 620px) {
  .role-grid, .permission-grid { grid-template-columns: 1fr; }
  .public-event-intro h1 { font-size: 3.2rem; }
  .agenda-item { grid-template-columns: 32px 1fr; }
  .agenda-item > p { grid-column: 2; }
  .workspace-bar { gap: 10px; padding: 0 14px; }
  .global-search { width: auto; flex: 1; }
  .global-search input { font-size: .74rem; }
  .page-shell { padding: 30px 16px 60px; }
  .dashboard-hero { align-items: flex-start; flex-direction: column; margin-bottom: 24px; }
  .dashboard-hero h1 { font-size: 2.45rem; }
  .metric-grid { grid-template-columns: 1fr; }
  .metric-card { min-height: 148px; }
  .agenda-card, .shortcut-card { padding: 19px; }
  .action-row { grid-template-columns: 46px minmax(0, 1fr); }
  .action-row .status { display: none; }
  .shortcut-grid { grid-template-columns: 1fr; }
  .auth-shell { padding: 105px 20px 35px; }
  .login-panel { min-height: auto; padding-top: 50px; }
  .login-panel h1 { font-size: 3.2rem; }
  .login-card { padding: 24px; }
  .settings-hero { align-items: flex-start; flex-direction: column; }
  .settings-form { padding: 20px; }
  .logo-dropzone, .color-grid, .field-error, .save-theme { margin-left: 0; }
  .color-grid { grid-template-columns: 1fr; }
  .module-hero { align-items: flex-start; flex-direction: column; }
  .module-stats { grid-template-columns: 1fr 1fr; }
  .data-toolbar { align-items: stretch; flex-direction: column; }
  .result-count { margin-left: 0; }
}

/* Application installable et ergonomie multi-écrans */
html { min-width: 320px; background: var(--canvas); text-size-adjust: 100%; -webkit-text-size-adjust: 100%; }
body { min-height: 100dvh; overflow-x: hidden; }
.app-shell, .workspace, .auth-body, .auth-shell, .support-shell { min-height: 100dvh; }
button, a, input, select, textarea { touch-action: manipulation; }
.data-table-scroll, .support-table { max-width: 100%; overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch; scrollbar-width: thin; }
.pwa-install-action { position: fixed; z-index: 120; right: max(18px, env(safe-area-inset-right)); bottom: max(18px, env(safe-area-inset-bottom)); min-height: 46px; padding: 0 17px; border: 1px solid rgba(255,255,255,.2); border-radius: 14px; color: #fff; background: rgba(7,24,62,.94); box-shadow: 0 16px 38px rgba(7,24,62,.28); backdrop-filter: blur(16px); font-size: .74rem; font-weight: 750; cursor: pointer; }
.pwa-install-action[hidden] { display: none; }
.pwa-install-action span { margin-right: 7px; color: var(--accent); font-size: 1rem; }
.pwa-install-dialog { width: min(calc(100% - 32px), 430px); padding: 31px; border: 0; border-radius: 24px; color: var(--ink); background: #fff; box-shadow: 0 30px 80px rgba(7,24,62,.28); text-align: center; }
.pwa-install-dialog::backdrop { background: rgba(3,12,34,.58); backdrop-filter: blur(5px); }
.pwa-install-dialog h2 { margin: 15px 0 9px; font-size: 1.45rem; letter-spacing: -.035em; }
.pwa-install-dialog p { margin: 0 0 22px; color: var(--muted); font-size: .82rem; line-height: 1.6; }
.pwa-dialog-icon { display: grid; place-items: center; width: 52px; height: 52px; margin: auto; border-radius: 16px; color: #075985; background: #e0f2fe; font-size: 1.35rem; font-weight: 900; }
.pwa-dialog-close { position: absolute; top: 13px; right: 13px; width: 38px; height: 38px; border: 0; border-radius: 11px; color: #667995; background: #f1f5f9; font-size: 1.35rem; cursor: pointer; }
.pwa-dialog-confirm { width: 100%; min-height: 46px; border: 0; border-radius: 13px; color: #fff; background: var(--primary-strong); font-weight: 750; cursor: pointer; }

@media (hover: hover) and (pointer: fine) {
  .pwa-install-action:hover { transform: translateY(-2px); background: #0c2554; }
}

@media (max-width: 860px) {
  input:not([type="checkbox"]):not([type="radio"]), select, textarea { font-size: 16px !important; }
  .sidebar { width: min(86vw, 320px); padding-top: max(28px, env(safe-area-inset-top)); padding-bottom: max(18px, env(safe-area-inset-bottom)); padding-left: max(20px, env(safe-area-inset-left)); }
  .workspace-bar { height: calc(72px + env(safe-area-inset-top)); padding-top: env(safe-area-inset-top); padding-right: max(14px, env(safe-area-inset-right)); padding-left: max(14px, env(safe-area-inset-left)); }
  .page-shell { padding-bottom: max(72px, calc(52px + env(safe-area-inset-bottom))); }
  .mobile-menu-toggle, .icon-button, .side-nav a, .primary, .secondary-button, .ghost-button { min-height: 44px; }
  .auth-header { top: env(safe-area-inset-top); padding-left: max(24px, env(safe-area-inset-left)); }
  .auth-shell { padding-right: max(20px, env(safe-area-inset-right)); padding-bottom: max(35px, env(safe-area-inset-bottom)); padding-left: max(20px, env(safe-area-inset-left)); }
}

@media (max-width: 760px) {
  .support-sidebar { position: relative; padding: max(14px, env(safe-area-inset-top)) max(14px, env(safe-area-inset-right)) 12px max(14px, env(safe-area-inset-left)); }
  .support-brand { padding: 4px 4px 12px; }
  .support-brand-mark { width: 38px; height: 38px; border-radius: 12px; }
  .support-nav { display: flex; gap: 7px; margin-inline: -2px; padding: 1px 2px 7px; overflow-x: auto; scrollbar-width: none; }
  .support-nav::-webkit-scrollbar { display: none; }
  .support-nav a { flex: 0 0 auto; min-height: 44px; padding: 10px 13px; border: 1px solid rgba(255,255,255,.08); white-space: nowrap; }
  .support-nav a.active { box-shadow: inset 0 -3px #65e3ff; }
  .support-back, .support-logout { display: none; }
  .support-topbar { height: 64px; padding-right: max(14px, env(safe-area-inset-right)); padding-left: max(14px, env(safe-area-inset-left)); }
  .support-main { padding-right: max(16px, env(safe-area-inset-right)); padding-bottom: max(48px, env(safe-area-inset-bottom)); padding-left: max(16px, env(safe-area-inset-left)); }
  .support-primary-button, .support-search button, .form-actions button, .danger-button { min-height: 44px; }
  .support-empty-card { padding: 42px 18px; }
  .access-request-card header { align-items: flex-start; gap: 10px; }
  .access-request-card header > div { flex-wrap: wrap; }
  .access-request-card footer, .form-actions { align-items: stretch; flex-direction: column; }
  .form-actions > * { width: 100%; text-align: center; }
}

@media (max-width: 620px) {
  .module-hero h1, .settings-hero h1 { font-size: clamp(2rem, 11vw, 3rem); }
  .module-stats { grid-template-columns: 1fr; }
  .notification-card { grid-template-columns: 9px 1fr; }
  .notification-card > a { grid-column: 2; justify-self: start; }
  .public-links, .secondary-action-row { align-items: stretch; flex-direction: column; }
  .public-links > *, .secondary-action-row > * { justify-content: center; text-align: center; }
  .registration-row { align-items: flex-start; gap: 12px; }
  .support-session-banner { right: max(10px, env(safe-area-inset-right)); bottom: max(10px, env(safe-area-inset-bottom)); left: max(10px, env(safe-area-inset-left)); }
  .pwa-install-action { right: max(12px, env(safe-area-inset-right)); bottom: max(12px, env(safe-area-inset-bottom)); }
}

@media (max-height: 520px) and (orientation: landscape) {
  .sidebar { padding-top: 16px; }
  .sidebar-brand { margin-bottom: 10px; }
  .side-nav p { margin-top: 10px; }
  .auth-shell { padding-top: 70px; }
  .login-panel { padding-top: 20px; }
}

@media (display-mode: standalone) {
  .workspace-bar, .support-topbar { top: 0; }
  .pwa-install-action { display: none !important; }
  body[data-pwa-scope="/support-technique/"] .support-back { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

/* Finitions du centre ELTICY */
.info-tip { position: absolute; top: 18px; right: 18px; display: grid; place-items: center; width: 27px; height: 27px; padding: 0; border: 1px solid #d8e3ef; border-radius: 9px; color: #7084a1; background: #f8fbfe; font-size: 11px; font-weight: 900; cursor: help; }
.info-tip::after { position: absolute; z-index: 8; right: 0; bottom: calc(100% + 9px); width: 250px; padding: 11px 13px; border-radius: 11px; visibility: hidden; opacity: 0; color: #fff; background: #0b1f3f; box-shadow: 0 13px 32px #07162f33; content: attr(data-tooltip); font-size: 10px; font-weight: 600; line-height: 1.5; text-align: left; transform: translateY(4px); transition: .16s; }
.info-tip:hover::after,.info-tip:focus-visible::after { visibility: visible; opacity: 1; transform: translateY(0); }
.support-search select { min-width: 210px; min-height: 46px; padding: 0 42px 0 15px; border: 1px solid #d7e3ef; border-radius: 13px; outline: 0; color: #314663; background-color: #fff; background-image: linear-gradient(45deg,transparent 50%,#6b7f9e 50%),linear-gradient(135deg,#6b7f9e 50%,transparent 50%); background-position: calc(100% - 18px) 20px,calc(100% - 13px) 20px; background-repeat: no-repeat; background-size: 5px 5px,5px 5px; font-weight: 650; appearance: none; cursor: pointer; }
.support-search select:focus { border-color: #4b9fe9; box-shadow: 0 0 0 4px #278de516; }
.support-hero-actions { display: flex; align-items: center; gap: 10px; }
.support-primary-button.secondary { border: 1px solid #d5e4f2; color: #176cae; background: #fff; box-shadow: none; }
.system-metric.has-gauge { display: grid; grid-template-columns: 1fr 64px; align-items: center; gap: 10px; }
.system-metric.has-gauge > div > span { color: #8393aa; font-size: 9px; font-weight: 850; letter-spacing: .14em; }
.system-metric.has-gauge strong,.system-metric.has-gauge small { display: block; }
.system-metric.has-gauge strong { margin: 10px 0 3px; font-size: 21px; }
.system-metric.has-gauge small { color: #7d8da5; font-size: 10px; line-height: 1.35; }
.metric-gauge { position: relative; display: grid; place-items: center; width: 62px; height: 62px; border-radius: 50%; background: conic-gradient(#a71979 calc(var(--gauge-value) * 1%),#e4edf6 0); }
.metric-gauge::before { position: absolute; inset: 7px; border-radius: 50%; background: #f7faff; content: ""; }
.metric-gauge b { position: relative; color: #285174; font-size: 11px; }

.tenant-onboarding-form { max-width: 1180px; }
.onboarding-section { padding: 4px 0 28px; border-bottom: 1px solid #e9eff6; }
.onboarding-section + .onboarding-section { padding-top: 28px; }
.onboarding-heading { display: flex; align-items: flex-start; gap: 13px; margin-bottom: 19px; }
.onboarding-heading > span,.technical-fields summary > span { display: grid; flex: 0 0 auto; place-items: center; width: 38px; height: 38px; border-radius: 12px; color: #176fc5; background: #e8f5ff; font-size: 10px; font-weight: 900; }
.onboarding-heading h2 { margin: 1px 0 5px; font-size: 18px; }
.onboarding-heading p { margin: 0; color: #7b8da6; font-size: 11px; }
.tenant-onboarding-form .form-grid { max-width: 850px; }
.tenant-onboarding-form .form-grid label { display: grid; gap: 7px; }
.tenant-onboarding-form .form-grid label > span { color: #536b89; font-size: 11px; font-weight: 750; }
.tenant-onboarding-form .form-grid input,.tenant-onboarding-form .form-grid select { width: 100%; min-height: 46px; padding: 0 14px; border: 1px solid #d5e1ed; border-radius: 12px; outline: 0; color: #1b3150; background: #fbfdff; }
.tenant-onboarding-form .form-grid input:focus,.tenant-onboarding-form .form-grid select:focus { border-color: #4b9fe9; box-shadow: 0 0 0 4px #278de516; }
.tenant-onboarding-form .form-grid small { color: #8798ae; font-size: 10px; line-height: 1.45; }
.tenant-onboarding-form .errorlist { margin: 3px 0 0; padding: 0; color: #b13b3b; font-size: 10px; list-style: none; }
.module-picker-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.module-choice-card { position: relative; display: flex; min-height: 190px; aspect-ratio: 1.12; flex-direction: column; padding: 18px; overflow: hidden; border: 1px solid #dce6f1; border-radius: 17px; color: #142946; background: #fff; box-shadow: 0 8px 25px #153a6709; cursor: pointer; transition: .18s; }
.module-choice-card:hover { border-color: #a9cdf0; transform: translateY(-2px); box-shadow: 0 15px 34px #153a6715; }
.module-choice-card:has(input:checked) { border-color: #55a8ed; background: linear-gradient(145deg,#fafdff,#edf7ff); box-shadow: inset 0 0 0 1px #55a8ed,0 13px 30px #176ab013; }
.module-choice-card.core { cursor: default; }
.module-choice-card input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.module-choice-check { position: absolute; top: 14px; right: 14px; display: grid; place-items: center; width: 26px; height: 26px; border: 1px solid #d7e2ed; border-radius: 8px; color: transparent; background: #fff; font-size: 12px; }
.module-choice-card input:checked ~ .module-choice-check { border-color: #1e85dd; color: #fff; background: #1e85dd; }
.module-choice-category { align-self: flex-start; max-width: calc(100% - 34px); padding: 6px 8px; border-radius: 8px; color: #176cae; background: #e8f5ff; font-size: 8px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.module-choice-card.business .module-choice-category { color: #7351b5; background: #f0eaff; }
.module-choice-card.optional .module-choice-category { color: #9a6a0a; background: #fff5d8; }
.module-choice-card.private .module-choice-category { color: #a94771; background: #ffeaf3; }
.module-choice-card strong { margin: 20px 0 7px; font-size: 14px; line-height: 1.25; }
.module-choice-card small { display: -webkit-box; overflow: hidden; color: #7386a0; font-size: 10px; line-height: 1.5; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.module-choice-card em { margin-top: auto; padding-top: 12px; color: #95a2b3; font-size: 8px; font-style: normal; font-weight: 750; text-transform: uppercase; }
.technical-fields { margin-top: 24px; border: 1px solid #dce6f1; border-radius: 16px; background: #f9fbfd; }
.technical-fields summary { display: flex; align-items: center; gap: 13px; min-height: 72px; padding: 14px 18px; cursor: pointer; list-style: none; }
.technical-fields summary::-webkit-details-marker { display: none; }
.technical-fields summary div { flex: 1; }
.technical-fields summary strong,.technical-fields summary small { display: block; }
.technical-fields summary strong { font-size: 13px; }
.technical-fields summary small { margin-top: 4px; color: #8293a9; font-size: 10px; }
.technical-fields summary b { color: #176fc5; font-size: 10px; }
.technical-fields .form-grid { max-width: none; padding: 0 18px 20px 69px; }

.security-device-grid { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); gap: 18px; align-items: start; }
.association-security-grid { margin-top: 20px; }
.device-counter { display: inline-flex; align-items: center; min-height: 34px; padding: 0 11px; border-radius: 10px; color: #176cae; background: #e8f5ff; font-size: 11px; font-weight: 850; }
.panel-intro { margin: -6px 0 17px; color: #7b8da6; font-size: 11px; line-height: 1.5; }
.mfa-device-list,.registered-device-list { display: grid; }
.mfa-device-list > div,.registered-device { display: flex; align-items: center; gap: 12px; padding: 15px 0; border-top: 1px solid #edf2f7; }
.mfa-device-list > div:first-child,.registered-device:first-child { border-top: 0; }
.mfa-device-icon,.device-platform-icon { display: grid; flex: 0 0 auto; place-items: center; width: 39px; height: 39px; border-radius: 12px; color: #1676c8; background: #e8f5ff; font-weight: 900; }
.mfa-device-list strong,.mfa-device-list small,.registered-device strong,.registered-device small { display: block; }
.mfa-device-list strong,.registered-device strong { font-size: 12px; }
.mfa-device-list small,.registered-device small { margin-top: 4px; color: #8393a9; font-size: 9px; line-height: 1.4; }
.registered-device > span:nth-child(2) { min-width: 0; flex: 1; }
.registered-device em { flex: 0 0 auto; color: #6d819e; font-size: 9px; font-style: normal; }
.registered-device.revoked { opacity: .55; }
.mfa-reset-form { display: grid; gap: 13px; margin-top: 18px; padding-top: 18px; border-top: 1px solid #edf2f7; }
.mfa-reset-form label { display: grid; gap: 7px; }
.mfa-reset-form label > span { color: #536b89; font-size: 10px; font-weight: 750; }
.mfa-reset-form input { width: 100%; min-height: 44px; padding: 0 12px; border: 1px solid #d5e1ed; border-radius: 11px; outline: 0; }
.mfa-reset-form small { color: #8393a9; font-size: 9px; line-height: 1.45; }
.mfa-reset-form .errorlist { margin: 0; padding: 0; color: #b13b3b; font-size: 10px; list-style: none; }

@media(max-width:1100px){.module-picker-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.security-device-grid{grid-template-columns:1fr}}
@media(max-width:760px){.support-search{display:grid;grid-template-columns:1fr}.support-search select{width:100%;min-width:0}.support-hero-actions{align-items:stretch;flex-direction:column}.module-picker-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.module-choice-card{min-height:165px;aspect-ratio:auto}.technical-fields .form-grid{padding-left:18px}.registered-device{align-items:flex-start;flex-wrap:wrap}.registered-device form{margin-left:51px}.info-tip::after{right:-8px;width:min(250px,75vw)}}
@media(max-width:480px){.module-picker-grid{grid-template-columns:1fr}.module-choice-card{min-height:155px}.tenant-onboarding-form{padding:18px}.onboarding-heading>span,.technical-fields summary>span{width:34px;height:34px}.security-device-grid .support-panel{padding:18px}}

/* Adhérents, calendrier, sondages et émargement */
.metric-card-link { color: inherit; text-decoration: none; transition: transform .18s, box-shadow .18s, border-color .18s; }
.metric-card-link:hover { border-color: color-mix(in srgb,var(--primary) 42%,#dce5f0); transform: translateY(-3px); box-shadow: 0 20px 42px rgba(24,58,100,.13); }
.hero-actions { display: flex; align-items: center; justify-content: flex-end; gap: 9px; flex-wrap: wrap; }
.hero-actions form { margin: 0; }
.primary.compact { min-height: 40px; padding: 0 15px; border: 0; border-radius: 11px; }
.selectable-data-panel { overflow: hidden; }
.bulk-toolbar { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.bulk-toolbar select { min-height: 42px; padding: 0 40px 0 13px; border: 1px solid var(--line); border-radius: 11px; color: var(--ink); background: #fff; font-weight: 650; }
.select-all-control { display: flex; align-items: center; gap: 7px; color: var(--muted); font-size: .7rem; font-weight: 700; }
.member-selector,.select-all-control input { width: 18px; height: 18px; accent-color: var(--primary-strong); }
.check-column { width: 32px; }
.member-table td:first-child { text-align: center; }
.draft-safety-note { display: grid; gap: 4px; margin-bottom: 23px; padding: 15px 17px; border: 1px solid #bae6d2; border-radius: 14px; color: #17633d; background: #effcf5; }
.draft-safety-note strong { font-size: .76rem; }.draft-safety-note span { font-size: .68rem; line-height: 1.45; }
.communication-layout { display: grid; grid-template-columns: minmax(0,1.4fr) minmax(280px,.6fr); gap: 18px; align-items: start; }
.form-grid.single-column { grid-template-columns: 1fr; }
.recipient-panel { padding: 23px; max-height: 600px; overflow: auto; }
.recipient-panel h2 { margin: 0 0 15px; font-size: 1rem; }
.recipient-panel > div { padding: 12px 0; border-top: 1px solid #edf1f7; }.recipient-panel strong,.recipient-panel small { display: block; }.recipient-panel small { margin-top: 4px; color: var(--muted); font-size: .65rem; }
.calendar-panel { padding: 23px; overflow: hidden; }
.calendar-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; }
.calendar-header > a { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid var(--line); border-radius: 12px; color: var(--primary-strong); text-decoration: none; }
.calendar-header div { text-align: center; }.calendar-header span { color: var(--primary-strong); font-size: .56rem; font-weight: 850; letter-spacing: .16em; }.calendar-header h2 { margin: 4px 0 0; font-size: 1.2rem; }
.calendar-scroll { min-width: 760px; }.calendar-panel { overflow-x: auto; }
.calendar-grid { display: grid; grid-template-columns: repeat(7,1fr); }
.calendar-weekdays b { padding: 8px; color: var(--muted); font-size: .61rem; text-align: center; }
.calendar-day { min-height: 122px; padding: 9px; border-top: 1px solid #e8eef5; border-left: 1px solid #e8eef5; background: #fff; }
.calendar-week .calendar-day:last-child { border-right: 1px solid #e8eef5; }.calendar-week:last-child .calendar-day { border-bottom: 1px solid #e8eef5; }
.calendar-day > span { display: grid; place-items: center; width: 25px; height: 25px; border-radius: 8px; color: #425874; font-size: .67rem; font-weight: 800; }.calendar-day.outside { background: #f8fafc; opacity: .48; }.calendar-day.today > span { color: #fff; background: var(--primary-strong); }
.calendar-event { display: block; margin-top: 5px; padding: 6px 7px; overflow: hidden; border-radius: 7px; color: #135e96; background: var(--primary-soft); font-size: .58rem; line-height: 1.28; text-decoration: none; text-overflow: ellipsis; white-space: nowrap; }.calendar-event.market_duty { color: #684b02; background: #fff1bc; }.calendar-event.meeting { color: #6345a1; background: #efe9ff; }
.upcoming-list { margin-top: 18px; padding: 23px; }.agenda-list-row { display: grid; grid-template-columns: 46px 1fr auto; align-items: center; gap: 13px; padding: 13px 0; border-top: 1px solid #edf1f7; color: inherit; text-decoration: none; }.agenda-list-row time { display: grid; place-items: center; min-height: 44px; border-radius: 12px; background: var(--primary-soft); }.agenda-list-row time strong,.agenda-list-row time span,.agenda-list-row > span strong,.agenda-list-row > span small { display: block; }.agenda-list-row time span,.agenda-list-row > span small { color: var(--muted); font-size: .6rem; }
.dashboard-market-card { margin-bottom: 18px; padding: 24px; }.market-preview-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 11px; margin-top: 18px; }.market-preview-grid > a { display: flex; align-items: center; gap: 11px; padding: 14px; border: 1px solid #e5ebf3; border-radius: 14px; color: inherit; text-decoration: none; }.market-preview-grid time { display: grid; flex: 0 0 auto; place-items: center; width: 45px; height: 45px; border-radius: 12px; color: #6a4c00; background: #fff0b5; }.market-preview-grid time strong,.market-preview-grid time span,.market-preview-grid > a > span strong,.market-preview-grid > a > span small { display: block; }.market-preview-grid time span,.market-preview-grid > a > span small { color: var(--muted); font-size: .58rem; }.compact-empty { grid-column: 1/-1; padding: 22px; border-radius: 14px; color: var(--muted); background: #f7f9fc; text-align: center; font-size: .72rem; }
.survey-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 15px; }.survey-card { display: flex; min-height: 210px; flex-direction: column; padding: 22px; color: inherit; text-decoration: none; transition: .18s; }.survey-card:hover { transform: translateY(-3px); }.survey-kind { align-self: flex-start; padding: 6px 8px; border-radius: 8px; color: var(--primary-strong); background: var(--primary-soft); font-size: .55rem; font-weight: 850; text-transform: uppercase; }.survey-card h2 { margin: 18px 0 8px; font-size: 1.05rem; }.survey-card p { color: var(--muted); font-size: .7rem; line-height: 1.5; }.survey-card footer { display: flex; align-items: center; justify-content: space-between; margin-top: auto; padding-top: 15px; border-top: 1px solid #edf1f7; font-size: .64rem; }
.survey-detail-grid { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); gap: 18px; }.survey-vote-panel,.survey-results { padding: 26px; }.survey-vote-panel h2 { margin: 19px 0 24px; font-size: 1.4rem; line-height: 1.35; }.survey-vote-panel form { display: grid; gap: 10px; }.survey-choice { display: flex; align-items: center; gap: 10px; padding: 14px; border: 1px solid #e1e8f1; border-radius: 13px; cursor: pointer; }.survey-choice:has(input:checked) { border-color: var(--primary); background: var(--primary-soft); }.survey-choice input { accent-color: var(--primary-strong); }.survey-choice span { font-size: .76rem; font-weight: 700; }.vote-confirmed { display: grid; gap: 7px; padding: 18px; border-radius: 14px; color: #17633d; background: #effcf5; }.result-row { margin-top: 17px; }.result-row > span { display: flex; justify-content: space-between; gap: 12px; font-size: .7rem; }.result-row > span b { color: var(--muted); }.result-row > i { display: block; height: 8px; margin-top: 8px; overflow: hidden; border-radius: 99px; background: #eef2f6; }.result-row em { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,var(--primary-strong),var(--primary)); }
.attendance-panel { padding: 22px; }.attendance-row { display: grid; grid-template-columns: 42px minmax(0,1fr) auto auto; align-items: center; gap: 12px; padding: 14px 0; border-top: 1px solid #edf1f7; }.attendance-avatar { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; color: var(--primary-strong); background: var(--primary-soft); font-weight: 850; }.attendance-avatar.large { width: 58px; height: 58px; margin: auto; font-size: 1.1rem; }.attendance-row > span:nth-child(2) strong,.attendance-row > span:nth-child(2) small { display: block; }.attendance-row > span:nth-child(2) small { margin-top: 4px; color: var(--muted); font-size: .62rem; }.qr-scanner { margin: 12px 0; padding: 15px; border-radius: 16px; color: #fff; background: #07183e; text-align: center; }.qr-scanner video { width: min(100%,520px); max-height: 360px; border-radius: 13px; object-fit: cover; }.qr-scanner p { font-size: .68rem; }.scan-confirm-shell { display: grid; min-height: calc(100vh - 180px); place-items: center; }.scan-confirm-card { width: min(100%,520px); padding: 35px; text-align: center; }.scan-confirm-card h1 { margin: 14px 0 8px; }.scan-confirm-card form { margin-top: 22px; }.registration-actions { display: flex; align-items: center; gap: 10px; }.registration-actions > a { color: var(--primary-strong); font-size: .64rem; font-weight: 750; }.registration-qr { display: grid; place-items: center; gap: 7px; margin: 15px 0; padding: 15px; border-radius: 14px; background: #f6f9fd; text-align: center; }.registration-qr img { width: 170px; height: 170px; }.registration-qr small { color: var(--muted); font-size: .62rem; }.stacked-actions { display: flex; align-items: stretch; flex-direction: column; gap: 9px; }

@media(max-width:1050px){.communication-layout,.survey-detail-grid{grid-template-columns:1fr}.survey-grid{grid-template-columns:repeat(2,1fr)}.market-preview-grid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.hero-actions{align-items:stretch;width:100%;flex-direction:column}.hero-actions>*{width:100%}.hero-actions a,.hero-actions button{justify-content:center;width:100%}.bulk-toolbar{align-items:stretch;flex-direction:column}.bulk-toolbar>*{width:100%}.survey-grid,.market-preview-grid{grid-template-columns:1fr}.attendance-row{grid-template-columns:42px 1fr}.attendance-row>form,.attendance-row>.table-status{grid-column:2;justify-self:start}.registration-actions{align-items:flex-end;flex-direction:column}.dashboard-market-card{padding:19px}}

/* Connexion technique ELTICY */
.support-login-body { min-height: 100dvh; margin: 0; color: #202f5e; background: radial-gradient(circle at 12% 8%,#a7197933,transparent 32%),linear-gradient(135deg,#111a36,#202f5e 62%,#6c1757); font-family: Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif; }
.support-login-shell { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(360px,.7fr); align-items: center; gap: clamp(45px,8vw,125px); width: min(1180px,calc(100% - 48px)); min-height: 100dvh; margin: auto; padding: 45px 0; }
.support-login-intro { color: #fff; }.support-login-intro > img { display: block; width: min(300px,70%); height: 115px; object-fit: contain; object-position: left center; }.support-login-label { margin: 35px 0 12px; color: #ee98d2; font-size: .62rem; font-weight: 850; letter-spacing: .18em; }.support-login-intro h1 { max-width: 650px; margin: 0; font-size: clamp(2.8rem,6vw,5.7rem); line-height: .93; letter-spacing: -.065em; }.support-login-intro > p:not(.support-login-label) { max-width: 600px; color: #b7c0d8; font-size: .9rem; line-height: 1.65; }.support-login-intro > div { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 30px; }.support-login-intro > div span { padding: 8px 11px; border: 1px solid #ffffff1f; border-radius: 999px; color: #d7ddef; background: #ffffff0b; font-size: .62rem; font-weight: 700; }
.support-login-card { width: 100%; padding: clamp(27px,4vw,42px); border: 1px solid #ffffff3d; border-radius: 27px; background: #fffffffa; box-shadow: 0 35px 90px #04091d70; }.support-login-emblem { display: grid; place-items: center; width: 62px; height: 62px; margin-bottom: 20px; padding: 5px; border-radius: 18px; background: #fff; box-shadow: 0 12px 30px #202f5e1b; }.support-login-emblem img { width: 100%; height: 100%; object-fit: contain; }.support-login-card h2 { margin: 7px 0 8px; font-size: 1.65rem; letter-spacing: -.035em; }.support-login-card > p:not(.support-eyebrow) { margin: 0 0 25px; color: #7a849f; font-size: .75rem; line-height: 1.55; }.support-login-card label { display: block; margin: 12px 0 7px; color: #5c6988; font-size: .67rem; font-weight: 750; }.support-login-card input { width: 100%; min-height: 49px; padding: 0 14px; border: 1px solid #d8deea; border-radius: 13px; outline: 0; color: #202f5e; background: #f9fafd; }.support-login-card input:focus { border-color: #a71979; box-shadow: 0 0 0 4px #a7197912; }.support-login-card button { width: 100%; min-height: 49px; margin-top: 19px; }.support-login-card > small { display: block; margin-top: 18px; color: #929bb0; font-size: .6rem; line-height: 1.5; text-align: center; }.support-login-error { padding: 11px 13px; border-radius: 11px; color: #a12548; background: #fff0f5; font-size: .68rem; }
@media(max-width:850px){.support-login-shell{grid-template-columns:1fr;gap:35px;width:min(640px,calc(100% - 32px));padding:50px 0}.support-login-intro h1{font-size:3.2rem}.support-login-intro>img{width:220px;height:85px}.support-login-intro>div{display:none}}

/* Apparence : clair, sombre ou synchronisee avec l'appareil */
.theme-control { position: relative; display: inline-flex; align-items: center; gap: 7px; min-height: 40px; padding: 0 10px; border: 1px solid var(--line); border-radius: 12px; color: var(--ink); background: rgba(255,255,255,.9); box-shadow: 0 8px 22px rgba(12,34,68,.06); }
.theme-control > span { color: var(--primary-strong); font-size: 17px; line-height: 1; }
.theme-control select { max-width: 118px; min-height: 38px; padding: 0 22px 0 2px; border: 0; outline: 0; color: inherit; background: transparent; font: 750 11px/1 Inter,ui-sans-serif,system-ui,sans-serif; cursor: pointer; }
.support-top-actions { display: flex; align-items: center; gap: 16px; }
.floating-theme-control { position: fixed; top: max(18px,env(safe-area-inset-top)); right: max(18px,env(safe-area-inset-right)); z-index: 20; border-color: rgba(255,255,255,.25); }
.support-login-logo { display: block; width: min(300px,70%); height: 115px; object-fit: contain; object-position: left center; }
.logo-on-light { display: none; }

html[data-theme="dark"] {
  --ink: #edf4ff;
  --navy: #050914;
  --navy-soft: #101a2d;
  --primary-soft: color-mix(in srgb,var(--primary) 18%,#101a2d);
  --canvas: #0b1220;
  --white: #111b2c;
  --muted: #9babc1;
  --line: #29384f;
  --shadow: 0 18px 48px rgba(0,0,0,.25);
}
html[data-theme="dark"] body,
html[data-theme="dark"] .app-body,
html[data-theme="dark"] .auth-body,
html[data-theme="dark"] .support-body { color: var(--ink); background: var(--canvas); }
html[data-theme="dark"] .workspace-bar,
html[data-theme="dark"] .support-topbar { border-color: var(--line); background: rgba(11,18,32,.9); }
html[data-theme="dark"] .global-search,
html[data-theme="dark"] .theme-control { border-color: var(--line); color: var(--ink); background: rgba(17,27,44,.95); box-shadow: none; }
html[data-theme="dark"] .global-search input,
html[data-theme="dark"] .theme-control select { color: var(--ink); }
html[data-theme="dark"] .theme-control select option { color: #edf4ff; background: #111b2c; }
html[data-theme="dark"] .global-search svg { stroke: #91a5c1; }
html[data-theme="dark"] .card,
html[data-theme="dark"] .metric-card,
html[data-theme="dark"] .data-panel,
html[data-theme="dark"] .settings-form,
html[data-theme="dark"] .login-card,
html[data-theme="dark"] .auth-card,
html[data-theme="dark"] .mfa-card,
html[data-theme="dark"] .support-kpi-grid article,
html[data-theme="dark"] .support-panel,
html[data-theme="dark"] .tenant-card,
html[data-theme="dark"] .module-card,
html[data-theme="dark"] .access-request-card,
html[data-theme="dark"] .module-choice-card,
html[data-theme="dark"] .survey-card,
html[data-theme="dark"] .survey-vote-panel,
html[data-theme="dark"] .survey-results,
html[data-theme="dark"] .attendance-panel,
html[data-theme="dark"] .recipient-panel,
html[data-theme="dark"] .calendar-panel,
html[data-theme="dark"] .upcoming-list,
html[data-theme="dark"] .dashboard-market-card,
html[data-theme="dark"] .scan-confirm-card,
html[data-theme="dark"] .pwa-install-dialog { border-color: var(--line); color: var(--ink); background: #111b2c; box-shadow: var(--shadow); }
html[data-theme="dark"] .module-card.private,
html[data-theme="dark"] .module-choice-card:has(input:checked) { border-color: color-mix(in srgb,var(--primary) 58%,#29384f); background: linear-gradient(145deg,#111b2c,#14243a); }
html[data-theme="dark"] .system-metric,
html[data-theme="dark"] .service-health span,
html[data-theme="dark"] .technical-fields,
html[data-theme="dark"] .module-assignment-form label,
html[data-theme="dark"] .access-request-card dl > div,
html[data-theme="dark"] .mfa-setup-grid,
html[data-theme="dark"] .compact-empty,
html[data-theme="dark"] .registration-qr { color: var(--ink); background: #162237; }
html[data-theme="dark"] .meter,
html[data-theme="dark"] .result-row > i { background: #27354a; }
html[data-theme="dark"] .tenant-mini-list > a,
html[data-theme="dark"] .request-mini-list > div,
html[data-theme="dark"] .tenant-card footer,
html[data-theme="dark"] .module-card footer,
html[data-theme="dark"] .form-actions,
html[data-theme="dark"] .access-request-card footer,
html[data-theme="dark"] .support-table-row,
html[data-theme="dark"] .mfa-device-list > div,
html[data-theme="dark"] .registered-device,
html[data-theme="dark"] .mfa-reset-form,
html[data-theme="dark"] .recipient-panel > div,
html[data-theme="dark"] .agenda-list-row,
html[data-theme="dark"] .survey-card footer,
html[data-theme="dark"] .attendance-row { border-color: #26354b; }
html[data-theme="dark"] .calendar-day { border-color: #29384f; color: var(--ink); background: #111b2c; }
html[data-theme="dark"] .calendar-day.outside { background: #0d1626; }
html[data-theme="dark"] .calendar-day > span { color: #c4d0e1; }
html[data-theme="dark"] .market-preview-grid > a,
html[data-theme="dark"] .survey-choice { border-color: var(--line); background: #121e31; }
html[data-theme="dark"] .survey-choice:has(input:checked) { border-color: var(--primary); background: var(--primary-soft); }
html[data-theme="dark"] .support-table-row strong,
html[data-theme="dark"] .support-table-row { color: var(--ink); }
html[data-theme="dark"] input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),
html[data-theme="dark"] textarea,
html[data-theme="dark"] select:not([data-theme-selector]) { border-color: #304158 !important; color: #edf4ff !important; background-color: #0e1829 !important; }
html[data-theme="dark"] input::placeholder,
html[data-theme="dark"] textarea::placeholder { color: #788ba7; }
html[data-theme="dark"] .color-editor input[type="color"],
html[data-theme="dark"] .color-editor .hex-color-input,
html[data-theme="dark"] .color-editor .rgb-color-input { border-color: #304158 !important; color: #edf4ff !important; background: #0e1829 !important; }
html[data-theme="dark"] .security-callout,
html[data-theme="dark"] .support-policy-card { border-color: #275274; background: linear-gradient(135deg,#10243a,#112c30); }
html[data-theme="dark"] .security-callout p,
html[data-theme="dark"] .support-policy-card p { color: #a5b7cc; }
html[data-theme="dark"] .draft-safety-note,
html[data-theme="dark"] .vote-confirmed { border-color: #28634a; color: #a9e8c7; background: #102a22; }
html[data-theme="dark"] .healthy-pill,
html[data-theme="dark"] .status-pill { background: #123527; color: #71dfad; }
html[data-theme="dark"] .status-pill.provisioning,
html[data-theme="dark"] .status-pill.pilot { background: #382f16; color: #f4d171; }
html[data-theme="dark"] .status-pill.suspended,
html[data-theme="dark"] .status-pill.error,
html[data-theme="dark"] .status-pill.retired { background: #3a1c24; color: #ff9ca8; }
html[data-theme="dark"] .mfa-shield,
html[data-theme="dark"] .mfa-instructions > span,
html[data-theme="dark"] .tenant-monogram,
html[data-theme="dark"] .module-symbol,
html[data-theme="dark"] .onboarding-heading > span,
html[data-theme="dark"] .technical-fields summary > span,
html[data-theme="dark"] .mfa-device-icon,
html[data-theme="dark"] .device-platform-icon,
html[data-theme="dark"] .device-counter { color: #80cfff; background: #17304a; }
html[data-theme="dark"] .qr-frame,
html[data-theme="dark"] .mfa-instructions code,
html[data-theme="dark"] .module-choice-check { border-color: var(--line); color: var(--ink); background: #f7faff; }
html[data-theme="dark"] .module-choice-card input:checked ~ .module-choice-check { border-color: var(--primary-strong); color: #fff; background: var(--primary-strong); }

/* Iconographie du centre de contrôle */
/* Filtres communs des listes associatives */
.table-filter-toolbar { display:flex; align-items:center; flex-wrap:wrap; gap:14px; padding:18px; color:var(--muted); font-size:13px; }
.table-filter-toolbar label { display:grid; gap:5px; }
.table-filter-toolbar input,.column-filter-panel input[type=search] { padding:10px; border:1px solid var(--line); border-radius:10px; background:var(--canvas); color:var(--ink); max-width:100%; }
.table-filter-toolbar button,.column-filter-panel button { padding:10px 13px; border:1px solid var(--line); border-radius:10px; color:var(--primary-strong); background:var(--primary-soft); cursor:pointer; }
.column-filter summary { display:flex; align-items:center; gap:8px; min-height:44px; cursor:pointer; list-style:none; }
.column-filter summary::-webkit-details-marker { display:none; }
.column-filter summary small { color:var(--primary-strong); }
.column-filter.is-filtered summary { color:var(--primary-strong); }
.column-filter-panel { position:fixed; z-index:150; top:50%; left:50%; transform:translate(-50%,-50%); width:min(380px,calc(100vw - 32px)); max-height:75vh; overflow:auto; padding:22px; border:1px solid var(--line); border-radius:20px; background:var(--canvas); color:var(--ink); box-shadow:0 24px 90px #07183e55; white-space:normal; text-transform:none; letter-spacing:normal; font-size:13px; font-weight:500; }
.column-filter-panel>label { display:grid; gap:8px; }
.column-sort { display:flex; gap:8px; margin-top:12px; }
.column-filter-panel p { line-height:1.5; color:var(--muted); }
.column-options { max-height:220px; overflow:auto; margin:12px 0; }
.column-options label { display:flex; align-items:center; gap:10px; min-height:42px; overflow-wrap:anywhere; cursor:pointer; }
.column-options input { width:18px; height:18px; flex:0 0 auto; accent-color:var(--primary-strong); }
.column-filter summary:focus-visible { outline:2px solid var(--primary); border-radius:8px; }
.support-icon { display: block; width: 1em; height: 1em; overflow: visible; }
.support-nav a > span { display: grid; flex: 0 0 auto; place-items: center; width: 34px; height: 34px; border: 1px solid rgba(255,255,255,.07); border-radius: 11px; color: #8ecff4; background: rgba(255,255,255,.045); font-size: 18px; transition: .18s ease; }
.support-nav a:hover > span,.support-nav a.active > span { border-color: rgba(255,255,255,.15); color: #fff; background: linear-gradient(145deg,rgba(56,189,248,.23),rgba(167,25,121,.26)); box-shadow: 0 7px 18px rgba(4,14,39,.22); }
.support-nav a.active .support-icon { stroke-width: 2.1; }
.support-primary-button { gap: 8px; }
.support-primary-button .support-icon { width: 17px; height: 17px; stroke-width: 2.2; }
.theme-control .support-icon { width: 16px; height: 16px; }
.kpi-icon .support-icon { width: 20px; height: 20px; stroke-width: 2; }
.mfa-device-icon .support-icon,.device-platform-icon .support-icon { width: 20px; height: 20px; }

.module-card { --module-ink:#1478c8; --module-bg:#e8f5ff; position: relative; overflow: hidden; transition: transform .2s ease,border-color .2s ease,box-shadow .2s ease; }
.module-card::before { position: absolute; inset: 0 0 auto; height: 3px; background: linear-gradient(90deg,var(--module-ink),transparent 78%); content: ""; opacity: .9; }
.module-card:hover { border-color: color-mix(in srgb,var(--module-ink) 28%,#dce6f1); transform: translateY(-3px); box-shadow: 0 18px 40px #153a6716; }
.module-symbol,.module-choice-icon { display: grid; flex: 0 0 auto; place-items: center; color: var(--module-ink); background: var(--module-bg); }
.module-symbol { width: 44px; height: 44px; border: 1px solid color-mix(in srgb,var(--module-ink) 13%,transparent); border-radius: 14px; font-size: 23px; }
.module-symbol .support-icon { stroke-width: 1.85; }
.module-choice-icon { width: 43px; height: 43px; margin-bottom: 12px; border-radius: 13px; font-size: 22px; }
.module-choice-icon .support-icon { stroke-width: 1.9; }
.module-choice-category { order: 1; }
.module-choice-card strong { order: 2; margin-top: 13px; }
.module-choice-card small { order: 3; }
.module-choice-card em { order: 4; }
.module-choice-card .module-choice-icon { order: 0; }

.module-theme-identity { --module-ink:#8157d9; --module-bg:#f0eaff; }
.module-theme-users_roles { --module-ink:#345ad3; --module-bg:#eaf0ff; }
.module-theme-members { --module-ink:#087eaf; --module-bg:#e3f7ff; }
.module-theme-agenda_events { --module-ink:#008a94; --module-bg:#e2fafa; }
.module-theme-forms_surveys { --module-ink:#b33c88; --module-bg:#ffebf7; }
.module-theme-documents { --module-ink:#b46b08; --module-bg:#fff4d9; }
.module-theme-notifications_security { --module-ink:#d14a4a; --module-bg:#ffeded; }
.module-theme-dashboard_quota { --module-ink:#087d70; --module-bg:#e0f7f3; }
.module-theme-finances { --module-ink:#168451; --module-bg:#e5f8ee; }
.module-theme-invoicing { --module-ink:#c45b21; --module-bg:#fff0e7; }
.module-theme-fundraising { --module-ink:#cf3e67; --module-bg:#ffebf0; }
.module-theme-public_directory { --module-ink:#1674c4; --module-bg:#e6f3ff; }
.module-theme-territories_map { --module-ink:#168069; --module-bg:#e4f7f1; }
.module-theme-meetings { --module-ink:#6f50c9; --module-bg:#eeeaff; }
.module-theme-attendance { --module-ink:#047b97; --module-bg:#e2f6fb; }
.module-theme-live_votes { --module-ink:#3b55bf; --module-bg:#e9edff; }
.module-theme-projects_budgets { --module-ink:#a76712; --module-bg:#fff3dd; }
.module-theme-market_presence { --module-ink:#c94a68; --module-bg:#ffebf0; }

html[data-theme="dark"] .module-card::before { opacity: .7; }
html[data-theme="dark"] .module-symbol,html[data-theme="dark"] .module-choice-icon { color: color-mix(in srgb,var(--module-ink) 70%,#fff); background: color-mix(in srgb,var(--module-ink) 20%,#172338); border-color: color-mix(in srgb,var(--module-ink) 28%,#29384f); }

@media(max-width:760px){
  .support-nav a > span { width: 31px; height: 31px; border-radius: 10px; font-size: 16px; }
  .module-symbol { width: 42px; height: 42px; }
}
html[data-theme="dark"] .table-status.neutral,
html[data-theme="dark"] .access-request-card header small { color: #b6c5d8; background: #1c2a3e; }
html[data-theme="dark"] .danger-button { border-color: #663342; color: #ff9cac; background: #361923; }

html[data-theme="light"] .support-login-body { color: #202f5e; background: radial-gradient(circle at 12% 8%,#a719791a,transparent 32%),linear-gradient(135deg,#f7f9fd,#e9eef7 62%,#f5eaf2); }
html[data-theme="light"] .support-login-intro { color: #202f5e; }
html[data-theme="light"] .support-login-intro > p:not(.support-login-label) { color: #61708f; }
html[data-theme="light"] .support-login-intro > div span { border-color: #202f5e1f; color: #394b72; background: #ffffff9c; }
html[data-theme="light"] .logo-on-dark { display: none; }
html[data-theme="light"] .logo-on-light { display: block; }
html[data-theme="dark"] .logo-on-light { display: none; }
html[data-theme="dark"] .logo-on-dark { display: block; }
html[data-theme="dark"] .support-login-card { border-color: #34445d; color: #edf4ff; background: #111b2cf5; }
html[data-theme="dark"] .support-login-card > p:not(.support-eyebrow),
html[data-theme="dark"] .support-login-card > small,
html[data-theme="dark"] .support-login-card label { color: #9facc2; }
html[data-theme="dark"] .support-login-emblem { background: #fff; }

@media(max-width:760px){.support-top-actions{gap:8px}.support-top-actions>.theme-control select{max-width:94px}.support-login-logo{width:220px;height:85px}}
@media(max-width:620px){.workspace-actions .theme-control{width:42px;min-width:42px;padding:0}.workspace-actions .theme-control>span{margin:auto}.workspace-actions .theme-control select{position:absolute;inset:0;width:42px;max-width:none;padding:0;opacity:0}.floating-theme-control{top:max(10px,env(safe-area-inset-top));right:max(10px,env(safe-area-inset-right))}}
@media(max-width:480px){.auth-header{padding-right:max(16px,env(safe-area-inset-right));padding-left:max(16px,env(safe-area-inset-left))}.auth-brand strong{display:none}.auth-theme-control select{max-width:82px}}

.mfa-remember{display:flex!important;align-items:flex-start;gap:10px;margin-top:8px;padding:12px 13px;border:1px solid #dce7f1;border-radius:12px;background:#f6faff;color:#334d6c!important;font-size:11px!important;line-height:1.45;cursor:pointer}
.mfa-form .mfa-remember input[type="checkbox"]{flex:0 0 auto;width:17px;height:17px;margin:0;padding:0;border:0;border-radius:4px;background:transparent;text-align:left;font-size:initial;font-weight:400;letter-spacing:normal;accent-color:#1684d7}
.mfa-remember-note{margin-top:-3px;color:#8293aa;font-size:9px;line-height:1.45}
html[data-theme="dark"] .mfa-remember{border-color:#37465d;background:#1b2535;color:#d7e5f6!important}
html[data-theme="dark"] .mfa-remember-note{color:#93a7c1}

.mfa-remember{display:flex!important;align-items:flex-start;gap:10px;margin-top:8px;padding:12px 13px;border:1px solid #dce7f1;border-radius:12px;background:#f6faff;color:#334d6c!important;font-size:11px!important;line-height:1.45;cursor:pointer}
.mfa-form .mfa-remember input[type="checkbox"]{flex:0 0 auto;width:17px;height:17px;margin:0;padding:0;border:0;border-radius:4px;background:transparent;text-align:left;font-size:initial;font-weight:400;letter-spacing:normal;accent-color:#1684d7}
.mfa-remember-note{margin-top:-3px;color:#8293aa;font-size:9px;line-height:1.45}
html[data-theme="dark"] .mfa-remember{border-color:#37465d;background:#1b2535;color:#d7e5f6!important}
html[data-theme="dark"] .mfa-remember-note{color:#93a7c1}
.account-create-form section { margin-bottom: 24px; }
.account-create-form fieldset { margin-top: 18px; padding: 18px; border: 1px solid var(--border, #dce5ef); border-radius: 16px; min-width: 0; }
.account-create-form fieldset[hidden] { display: none; }
.account-create-form .account-toggle { display: flex; align-items: flex-start; gap: 12px; margin: 16px 0; }
.account-create-form .account-toggle small { display: block; margin-top: 5px; }
.account-create-form input[type="checkbox"] { width: 20px; height: 20px; flex: 0 0 20px; accent-color: var(--primary); }
.account-role-choices > div { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 10px; }
.account-role-choices label { display: flex; align-items: center; gap: 10px; padding: 12px; border: 1px solid var(--border, #dce5ef); border-radius: 12px; }
.tenant-detail-stack { display: grid; gap: 18px; }
.tenant-detail-stack > .support-kpi-grid, .tenant-detail-stack > .quota-panel, .tenant-detail-stack > .support-two-columns { margin: 0; }
.support-action-panel { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.support-action-panel h2 { margin: 4px 0; font-size: 20px; }
.support-action-panel p:last-child { margin-bottom: 0; }
.support-action-panel > a { flex-shrink: 0; }
.recovery-entry { margin-bottom: 18px; }
.recovery-lock-summary { padding: 16px; margin: 12px 0; border: 1px solid #e6ab56; border-radius: 12px; background: #fff5e2; color: #704400; }
.recovery-locked-account { display: inline-block; margin: 4px 8px 0 0; font-weight: 700; }
.recovery-locked-option { font-weight: 700; }
html[data-theme="dark"] .recovery-lock-summary { color: #ffd08a; background: #352919; border-color: #80602d; }
@media(max-width:760px) { .support-action-panel { flex-direction: column; align-items: stretch; gap: 16px; } }
