:root,:root[data-theme=ice]{--accent:var(--m3);--bg-top:#f0f7ff;--bg-bottom:#d4e9ff;--ink:#10233f;--ink-soft:rgba(16,35,63,.62);--surface:hsla(0,0%,100%,.6);--surface-strong:hsla(0,0%,100%,.78);--surface-bd:hsla(0,0%,100%,.8);--shadow:rgba(30,60,120,.18);--m1:#7cc4ff;--m2:#bfe3ff;--m3:#1e8bff}:root[data-theme=rose]{--bg-top:#fff5ec;--bg-bottom:#ffe0d0;--ink:#2a1722;--ink-soft:rgba(42,23,34,.62);--surface:hsla(0,0%,100%,.6);--surface-strong:hsla(0,0%,100%,.78);--surface-bd:hsla(0,0%,100%,.82);--shadow:rgba(120,40,70,.18);--m1:#ff7eb3;--m2:#ffc0d4;--m3:#ec1865}:root[data-theme=silver]{--bg-top:#fafbfc;--bg-bottom:#dfe4e9;--ink:#1f2630;--ink-soft:rgba(31,38,48,.6);--surface:hsla(0,0%,100%,.6);--surface-strong:hsla(0,0%,100%,.8);--surface-bd:hsla(0,0%,100%,.85);--shadow:rgba(60,70,90,.15);--m1:#cfd4da;--m2:#e8ebee;--m3:#9aa3ad}:root[data-theme=gold]{--bg-top:#2b2410;--bg-bottom:#14110a;--ink:#f7eecb;--ink-soft:hsla(48,73%,88%,.72);--surface:hsla(0,0%,100%,.07);--surface-strong:hsla(0,0%,100%,.12);--surface-bd:hsla(48,73%,88%,.18);--shadow:rgba(0,0,0,.5);--m1:#6b5a16;--m2:#4a3f12;--m3:#f2c318}:root[data-theme=emerald]{--bg-top:#18271c;--bg-bottom:#0c150f;--ink:#e8f8ec;--ink-soft:rgba(232,248,236,.72);--surface:hsla(0,0%,100%,.07);--surface-strong:hsla(0,0%,100%,.12);--surface-bd:rgba(232,248,236,.18);--shadow:rgba(0,0,0,.5);--m1:#1f5a32;--m2:#143f22;--m3:#36e05a}:root[data-theme=noir]{--bg-top:#1c1c1c;--bg-bottom:#000;--ink:#f5f5f5;--ink-soft:hsla(0,0%,96%,.65);--surface:hsla(0,0%,100%,.08);--surface-strong:hsla(0,0%,100%,.15);--surface-bd:hsla(0,0%,100%,.22);--shadow:rgba(0,0,0,.6);--m1:#3a3a3a;--m2:#555;--m3:#2a2a2a}*{box-sizing:border-box}:root{--header-h:72px;--footer-h:52px;--gutter:clamp(16px,3vw,34px)}body,html{margin:0;padding:0;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:radial-gradient(120% 120% at 50% 0,var(--bg-top) 0,var(--bg-bottom) 100%);background-attachment:fixed;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}.bg{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none}.blob{position:absolute;border-radius:50%;filter:blur(70px);opacity:.5}.blob-1{width:46vw;height:46vw;left:-8vw;top:-12vh;background:radial-gradient(circle,var(--m1) 0,transparent 70%)}.blob-2{width:42vw;height:42vw;right:-8vw;top:6vh;background:radial-gradient(circle,var(--m2) 0,transparent 70%)}.blob-3{width:40vw;height:40vw;left:30vw;bottom:-18vh;background:radial-gradient(circle,var(--m3) 0,transparent 70%)}.theme-picker{position:fixed;bottom:calc((var(--footer-h) - 40px) / 2);right:var(--gutter);z-index:60;display:flex;gap:8px;padding:8px 10px;border-radius:999px;background:var(--surface-strong);border:1px solid var(--surface-bd);box-shadow:0 8px 24px var(--shadow);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.theme-dot{width:24px;height:24px;border-radius:50%;cursor:pointer;border:none;padding:0;box-shadow:inset 0 0 0 1px hsla(0,0%,51%,.55),0 2px 6px rgba(0,0,0,.25);transition:transform .12s,box-shadow .12s}.theme-dot.active,.theme-dot:hover{transform:scale(1.12)}.theme-dot.active{box-shadow:inset 0 0 0 1px hsla(0,0%,51%,.55),0 0 0 2px var(--ink),0 2px 6px rgba(0,0,0,.25)}.page{position:relative;z-index:1;max-width:1100px;margin:0 auto;padding:calc(var(--header-h) + 32px) var(--gutter) calc(var(--footer-h) + 32px)}.site-header{position:fixed;top:0;left:0;right:0;z-index:40;height:var(--header-h);display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 var(--gutter);pointer-events:none}.site-header>*{pointer-events:auto}.site-footer{position:fixed;bottom:0;left:0;right:0;z-index:40;height:var(--footer-h);display:flex;align-items:center;justify-content:center;padding:0 var(--gutter);font-size:12.5px;color:var(--ink-soft);pointer-events:none}.site-footer p{margin:0}.brand{display:inline-flex;align-items:center;gap:11px;padding:6px 10px 6px 6px;border-radius:14px;transition:background .14s ease}.brand:hover{background:var(--surface)}.brand-mark{display:grid;place-items:center;line-height:0;border-radius:10px}.brand-name{font-size:21px;font-weight:800;letter-spacing:-.6px}.account-btn{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;color:var(--ink);background:var(--surface);border:1px solid var(--surface-bd);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:transform .14s ease,border-color .14s ease}.account-btn:hover{transform:translateY(-1px);border-color:var(--accent)}.account-slot{display:block;width:42px;height:42px}.account-menu{position:relative}.account-trigger{display:inline-flex;align-items:center;gap:10px;padding:5px 14px 5px 5px;border-radius:999px;font-family:inherit;font-size:13.5px;font-weight:700;color:var(--ink);background:var(--surface);border:1px solid var(--surface-bd);cursor:pointer;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:border-color .14s ease}.account-trigger:hover{border-color:var(--accent)}.account-avatar{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;font-size:12px;font-weight:800;letter-spacing:.3px;color:#fff;background:linear-gradient(135deg,var(--m3),var(--m1))}.account-name{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:210px;padding:12px;border-radius:14px;background:var(--surface-strong);border:1px solid var(--surface-bd);box-shadow:0 16px 40px var(--shadow);backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2)}.account-email{margin:0 0 10px;padding-bottom:10px;border-bottom:1px solid var(--surface-bd);font-size:12.5px;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis}.account-signout{width:100%;padding:9px 12px;border-radius:10px;font-family:inherit;font-size:13.5px;font-weight:700;text-align:left;color:#ef4444;background:transparent;border:none;cursor:pointer}.account-signout:hover:not(:disabled){background:color-mix(in srgb,#ef4444 12%,transparent)}.account-signout:disabled{opacity:.6;cursor:progress}.header-link{padding:9px 16px;border-radius:999px;font-size:13.5px;font-weight:700;color:var(--ink);background:var(--surface);border:1px solid var(--surface-bd);transition:transform .14s ease,border-color .14s ease}.header-link:hover{transform:translateY(-1px);border-color:var(--accent)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));grid-gap:22px;gap:22px}.card{position:relative;display:flex;flex-direction:column;padding:24px;border-radius:22px;background:var(--surface);border:1px solid var(--surface-bd);box-shadow:0 18px 50px var(--shadow);backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2);overflow:hidden;transition:transform .16s ease,box-shadow .16s ease}.card:hover{transform:translateY(-3px);box-shadow:0 26px 60px var(--shadow)}.card-head{display:flex;align-items:center;gap:14px;margin-bottom:14px}.card-icon{flex:0 0 auto;width:60px;height:60px;border-radius:16px;display:grid;place-items:center;background:var(--surface-strong);border:1px solid var(--surface-bd);box-shadow:0 6px 18px color-mix(in srgb,var(--accent) 30%,transparent);overflow:hidden}.card-icon img{width:56px;height:56px;object-fit:contain;border-radius:12px}.card-emoji{font-size:32px}.card-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.card-title h2{margin:0;font-size:21px;font-weight:800;letter-spacing:-.4px}.badge{font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px;letter-spacing:.2px}.badge-live{background:color-mix(in srgb,#22c55e 22%,transparent);color:#15803d}.badge-beta{background:color-mix(in srgb,#f59e0b 24%,transparent);color:#b45309}.badge-soon{background:var(--surface-strong);color:var(--ink-soft)}:root[data-theme=emerald] .badge-live,:root[data-theme=gold] .badge-live,:root[data-theme=noir] .badge-live{color:#4ade80}:root[data-theme=emerald] .badge-beta,:root[data-theme=gold] .badge-beta,:root[data-theme=noir] .badge-beta{color:#fbbf24}.card-tagline{margin:0 0 8px;font-size:15px;font-weight:600}.card-desc{margin:0 0 16px;font-size:13.5px;line-height:1.5;color:var(--ink-soft)}.tags{list-style:none;display:flex;flex-wrap:wrap;gap:7px;margin:0 0 18px;padding:0}.tags li{font-size:11.5px;font-weight:600;padding:4px 10px;border-radius:999px;background:var(--surface-strong);border:1px solid var(--surface-bd);color:var(--ink-soft)}.card-actions{margin-top:auto;display:flex;flex-direction:column;gap:10px}.btn{display:inline-flex;align-items:center;gap:12px;padding:12px 16px;border-radius:12px;font-weight:700;font-size:14px;cursor:pointer;transition:transform .12s ease,filter .12s ease}.btn:hover{transform:translateY(-1px)}.btn-open{justify-content:center;background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 60%,#000 18%));color:#fff;box-shadow:0 8px 22px color-mix(in srgb,var(--accent) 45%,transparent)}.btn-open.disabled{color:var(--ink-soft);box-shadow:none;cursor:not-allowed;justify-content:center}.btn-download,.btn-open.disabled{background:var(--surface-strong);border:1px solid var(--surface-bd)}.btn-download{color:var(--ink)}.btn-download:hover{border-color:var(--accent)}.btn-ico{font-size:17px;width:20px;text-align:center;color:var(--accent)}.btn-body{display:flex;flex-direction:column;line-height:1.25;text-align:left}.btn-main{font-size:14px}.btn-sub{font-size:11.5px;font-weight:500;color:var(--ink-soft)}.auth-page{min-height:100vh;display:grid;place-items:center}.auth-card{width:100%;max-width:440px;padding:34px 32px 30px;border-radius:24px;background:var(--surface);border:1px solid var(--surface-bd);box-shadow:0 18px 50px var(--shadow);backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2)}.auth-title{margin:0 0 8px;font-size:clamp(26px,4.5vw,32px);font-weight:800;letter-spacing:-.9px}.auth-sub{margin:0 0 26px;font-size:14px;line-height:1.5;color:var(--ink-soft)}.auth-form,.field{display:flex;flex-direction:column}.field{gap:7px;margin-bottom:16px}.field label{font-size:13px;font-weight:700}.field-hint{font-size:12px;color:var(--ink-soft)}.field-error{margin:0;font-size:12px;font-weight:600;color:#ef4444}.input{width:100%;padding:12px 14px;border-radius:12px;font-family:inherit;font-size:14.5px;color:var(--ink);background:var(--surface-strong);border:1px solid var(--surface-bd);outline:none;transition:border-color .14s ease,box-shadow .14s ease}.input::placeholder{color:var(--ink-soft);opacity:.7}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent)}.input.invalid{border-color:#ef4444}.input.invalid:focus{box-shadow:0 0 0 3px rgba(239,68,68,.2)}.pw-wrap{position:relative}.pw-wrap .input{padding-right:44px}.pw-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:32px;height:32px;padding:0;border:none;border-radius:8px;background:transparent;color:var(--ink-soft);cursor:pointer}.pw-toggle:hover{color:var(--ink)}.strength{display:flex;align-items:center;gap:9px}.strength-track{flex:1 1;height:5px;border-radius:999px;background:var(--surface-strong);border:1px solid var(--surface-bd);overflow:hidden}.strength-fill{display:block;height:100%;border-radius:999px;transition:width .2s ease,background .2s ease}.strength-label{font-size:11.5px;font-weight:700;color:var(--ink-soft);white-space:nowrap}.auth-row{display:flex;justify-content:space-between;gap:12px;margin:2px 0 20px;font-size:13px}.auth-row,.check{align-items:center}.check{display:inline-flex;gap:8px;cursor:pointer;color:var(--ink-soft);font-weight:600}.check-block{align-items:flex-start;font-size:12.5px;line-height:1.45;font-weight:500}.check input{width:16px;height:16px;flex:0 0 auto;accent-color:var(--accent);cursor:pointer}.check-block input{margin-top:1px}.auth-link{color:var(--accent);font-weight:700}.auth-link:hover{text-decoration:underline}.btn-submit{width:100%;justify-content:center;border:none;font-family:inherit;margin-top:4px}.btn-submit:disabled{opacity:.65;cursor:progress;transform:none}.auth-alt{margin:20px 0 0;text-align:center;font-size:13.5px;color:var(--ink-soft)}.form-alert{display:flex;align-items:flex-start;gap:10px;margin:0 0 20px;padding:11px 13px;border-radius:12px;font-size:13px;line-height:1.45;font-weight:600;color:#b91c1c;background:color-mix(in srgb,#ef4444 12%,transparent);border:1px solid color-mix(in srgb,#ef4444 35%,transparent)}.form-alert-ico{flex:0 0 auto;display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#ef4444;color:#fff;font-size:12px}:root[data-theme=emerald] .form-alert,:root[data-theme=gold] .form-alert,:root[data-theme=noir] .form-alert{color:#fca5a5}.form-note{margin:0 0 18px;padding:13px 15px;border-radius:12px;font-size:13.5px;line-height:1.55;color:var(--ink);background:var(--surface-strong);border:1px solid var(--surface-bd)}.form-note-ok{color:#15803d;background:color-mix(in srgb,#22c55e 12%,transparent);border-color:color-mix(in srgb,#22c55e 35%,transparent)}:root[data-theme=emerald] .form-note-ok,:root[data-theme=gold] .form-note-ok,:root[data-theme=noir] .form-note-ok{color:#86efac}.auth-encart{margin-top:22px;padding-top:20px;border-top:1px solid var(--surface-bd)}.auth-encart-titre{margin:0 0 14px;font-size:13.5px;font-weight:700;color:var(--ink-soft)}a.btn-submit{text-decoration:none}.account-chevron{color:var(--ink-soft);transition:transform .16s ease}.account-chevron.open{transform:rotate(180deg)}.account-dropdown{min-width:246px}.account-identity{padding-bottom:11px;margin-bottom:8px;border-bottom:1px solid var(--surface-bd)}.account-identity-name{margin:0 0 2px;font-size:14px;font-weight:800}.account-links{display:flex;flex-direction:column;gap:2px;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid var(--surface-bd)}.account-link{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:10px;font-size:13.5px;font-weight:600;color:var(--ink)}.account-link:hover{background:var(--surface)}.account-link-ico{width:18px;text-align:center;color:var(--accent)}.landing{max-width:780px;margin:0 auto;text-align:center;padding:28px 0 8px}.landing-title{margin:0 0 16px;font-size:clamp(32px,6vw,52px);font-weight:800;line-height:1.1;letter-spacing:-1.4px}.landing-accent{background:linear-gradient(120deg,var(--m3),var(--m1));-webkit-background-clip:text;background-clip:text;color:transparent}.landing-sub{margin:0 auto 32px;max-width:560px;font-size:clamp(15px,2.4vw,18px);line-height:1.55;color:var(--ink-soft)}.landing-cta{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-bottom:56px}.landing-cta .btn{min-width:190px;justify-content:center}.btn-ghost{background:var(--surface);border:1px solid var(--surface-bd);color:var(--ink);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.btn-ghost:hover{border-color:var(--accent)}.landing-points{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));grid-gap:18px;gap:18px;margin:0;padding:0;text-align:left}.landing-points li{padding:20px;border-radius:18px;background:var(--surface);border:1px solid var(--surface-bd);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.landing-points h2{margin:0 0 7px;font-size:15px;font-weight:800}.landing-points p{margin:0;font-size:13.5px;line-height:1.5;color:var(--ink-soft)}.hub-head{margin-bottom:30px}.hub-title{margin:0 0 6px;font-size:clamp(26px,4.5vw,36px);font-weight:800;letter-spacing:-1px}.hub-sub{margin:0;font-size:14.5px;color:var(--ink-soft)}.empty-state{max-width:520px;padding:22px;border-radius:18px;font-size:14px;line-height:1.55;color:var(--ink-soft);background:var(--surface);border:1px dashed var(--surface-bd)}.panel-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));grid-gap:20px;gap:20px;align-items:start}.panel{padding:26px;border-radius:20px;background:var(--surface);border:1px solid var(--surface-bd);box-shadow:0 14px 40px var(--shadow);backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2)}.panel-wide{grid-column:1/-1}.panel-title{margin:0 0 16px;font-size:17px;font-weight:800;letter-spacing:-.3px}.panel-note{margin:0 0 18px;font-size:13.5px;line-height:1.55;color:var(--ink-soft)}.panel-link{display:inline-block;margin-top:16px;font-size:13.5px;font-weight:700;color:var(--accent)}.panel-link:hover{text-decoration:underline}.facts{margin:0 0 22px;padding:0 0 18px;border-bottom:1px solid var(--surface-bd);display:flex;flex-direction:column;gap:12px}.facts>div{display:flex;justify-content:space-between;align-items:center;gap:14px}.facts dt{font-size:13px;color:var(--ink-soft)}.facts dd{margin:0;font-size:13.5px;font-weight:700;text-align:right;overflow:hidden;text-overflow:ellipsis}.role-badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:11.5px;font-weight:700;color:var(--ink-soft);background:var(--surface-strong);border:1px solid var(--surface-bd)}.role-admin{color:#fff;border-color:transparent;background:linear-gradient(135deg,var(--m3),var(--m1))}.app-chips{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0}.app-chips li{padding:6px 13px;border-radius:999px;font-size:13px;font-weight:600;background:var(--surface-strong);border:1px solid var(--surface-bd)}.table-scroll{overflow-x:auto;margin:0 -6px;padding:0 6px}.admin-table{width:100%;border-collapse:collapse;font-size:13.5px}.admin-table td,.admin-table th{padding:12px 10px;border-bottom:1px solid var(--surface-bd);text-align:left}.admin-table thead th{font-size:12px;font-weight:800;color:var(--ink-soft);white-space:nowrap}.admin-table .cell-check,.admin-table thead .col-app{text-align:center}.admin-table tbody tr:last-child td,.admin-table tbody tr:last-child th{border-bottom:none}.admin-table tbody tr:hover{background:color-mix(in srgb,var(--accent) 7%,transparent)}.cell-user{display:flex;flex-direction:column;gap:2px;min-width:190px}.cell-name{display:flex;align-items:center;gap:8px;font-weight:700}.cell-self{padding:2px 7px;border-radius:999px;font-size:10.5px;font-weight:700;color:var(--ink-soft);background:var(--surface-strong);border:1px solid var(--surface-bd)}.cell-email{font-size:12px;font-weight:400;color:var(--ink-soft)}.cell-check{position:relative}.cell-check input{width:18px;height:18px;accent-color:var(--accent);cursor:pointer}.cell-check input:disabled{cursor:not-allowed;opacity:.55}.cell-spinner{position:absolute;inset:0;margin:auto;width:16px;height:16px;border-radius:50%;border:2px solid color-mix(in srgb,var(--accent) 30%,transparent);border-top-color:var(--accent);animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.form-success{display:flex;align-items:flex-start;gap:10px;margin:0 0 20px;padding:11px 13px;border-radius:12px;font-size:13px;line-height:1.45;font-weight:600;color:#15803d;background:color-mix(in srgb,#22c55e 13%,transparent);border:1px solid color-mix(in srgb,#22c55e 35%,transparent)}.form-success-ico{flex:0 0 auto;display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#22c55e;color:#fff;font-size:11px}:root[data-theme=emerald] .form-success,:root[data-theme=gold] .form-success,:root[data-theme=noir] .form-success{color:#86efac}@media (max-width:760px){:root{--header-h:64px}.site-footer{justify-content:flex-start;padding-right:210px;font-size:11.5px}.brand-name{font-size:19px}}@media (max-width:520px){:root{--footer-h:46px}.theme-dot{width:19px;height:19px}.theme-picker{gap:6px;padding:6px 8px;bottom:calc((var(--footer-h) - 33px) / 2)}.site-footer{padding-right:156px;font-size:10.5px}.auth-card{padding:28px 22px 24px}.auth-row{flex-direction:column;align-items:flex-start;gap:10px}.panel{padding:22px 18px}.account-name{display:none}.landing-cta .btn{width:100%}}