:root {
  --navy: #152b49; --navy-2: #203e5e; --teal: #3a868f; --teal-dark: #2f737b; --teal-soft: #e5f3f2;
  --paper: #f5f7f8; --surface: #fff; --surface-soft: #f8fafb; --ink: #152b49; --muted: #627583;
  --line: #dce5e8; --danger: #bd4652; --green: #398268; --sand: #ba7a52; --shadow: 0 18px 55px rgba(18,43,72,.1);
  --radius: 18px; --container: min(1180px, calc(100vw - 48px));
}
* { box-sizing: border-box; }
html { min-height: 100%; background: var(--paper); scroll-behavior: smooth; }
body { min-height: 100vh; margin: 0; color: var(--ink); background: var(--paper); font: 15px/1.55 "Avenir Next", "Segoe UI", Arial, sans-serif; -webkit-font-smoothing: antialiased; }
button, input, textarea, select { font: inherit; color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; }
button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, a:focus-visible { outline: 3px solid rgba(58,134,143,.28); outline-offset: 2px; }
.ambient { position: fixed; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }
.orb { position: absolute; border-radius: 50%; filter: blur(5px); opacity: .33; }
.orb-one { width: 520px; height: 520px; top: -300px; right: -120px; background: radial-gradient(circle, rgba(74,174,179,.36), transparent 70%); }
.orb-two { width: 440px; height: 440px; bottom: -280px; left: -170px; background: radial-gradient(circle, rgba(35,81,119,.24), transparent 70%); }
.orb-three { width: 260px; height: 260px; top: 42%; left: 52%; background: radial-gradient(circle, rgba(102,194,187,.12), transparent 70%); }
.grid { position: absolute; inset: 0; opacity: .22; background-image: linear-gradient(rgba(35,84,108,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(35,84,108,.035) 1px, transparent 1px); background-size: 42px 42px; mask-image: linear-gradient(to bottom, #000, transparent 76%); }
#pointer-trail { position: fixed; inset: 0; z-index: 4; pointer-events: none; }
.app-shell { position: relative; z-index: 1; min-height: 100vh; }
.container { width: var(--container); margin-inline: auto; }
.brand { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; text-decoration: none; }
.brand img { width: 126px; max-height: 42px; object-fit: contain; }
.brand span { padding: 4px 6px; border: 1px solid rgba(58,134,143,.38); border-radius: 5px; color: var(--teal-dark); font-size: 11px; font-weight: 900; letter-spacing: .2em; }
.brand-compact img { width: 102px; }
.theme-switcher { position: relative; z-index: 70; }
.theme-switcher summary { min-height: 39px; display: inline-flex; align-items: center; gap: 8px; padding: 0 11px; border: 1px solid var(--line); border-radius: 10px; background: color-mix(in srgb, var(--surface) 86%, transparent); color: var(--ink); cursor: pointer; list-style: none; box-shadow: 0 5px 18px rgba(17,43,70,.05); user-select: none; }
.theme-switcher summary::-webkit-details-marker { display: none; }
.theme-current-icon { width: 20px; height: 20px; display: grid; place-items: center; border-radius: 6px; background: var(--teal-soft); color: var(--teal-dark); font-size: 13px; }
.theme-current-label { font-size: 11px; font-weight: 850; }
.theme-chevron { color: var(--muted); font-size: 12px; transition: transform .18s ease; }
.theme-switcher[open] .theme-chevron { transform: rotate(180deg); }
.theme-menu { position: absolute; top: calc(100% + 9px); right: 0; width: 244px; display: grid; gap: 4px; padding: 10px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); box-shadow: 0 20px 55px rgba(8,27,47,.18); animation: theme-menu-in .16s ease-out; }
.theme-menu > span { padding: 4px 7px 7px; color: var(--muted); font-size: 9px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.theme-menu button { display: grid; grid-template-columns: 34px 1fr 18px; align-items: center; gap: 9px; padding: 8px; border: 0; border-radius: 9px; background: transparent; text-align: left; cursor: pointer; }
.theme-menu button:hover, .theme-menu button[aria-pressed="true"] { background: var(--teal-soft); }
.theme-menu button > i { width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 9px; background: var(--surface); color: var(--teal-dark); font-style: normal; }
.theme-menu button b, .theme-menu button small { display: block; }
.theme-menu button b { font-size: 11px; }.theme-menu button small { color: var(--muted); font-size: 9px; }
.theme-menu button em { color: var(--teal-dark); font-size: 13px; font-style: normal; font-weight: 900; }
@keyframes theme-menu-in { from { opacity: 0; transform: translateY(-5px) scale(.98); } }
.site-header { position: sticky; top: 0; z-index: 30; border-bottom: 1px solid rgba(212,224,228,.82); background: rgba(250,252,252,.86); backdrop-filter: blur(18px); }
.header-inner { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.header-inner nav { display: flex; align-items: center; gap: 25px; }
.header-inner nav > a:not(.button) { color: var(--muted); font-size: 14px; font-weight: 700; text-decoration: none; }
.header-inner nav > a:hover { color: var(--teal-dark); }
.button { min-height: 42px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 0 17px; border: 1px solid transparent; border-radius: 10px; font-weight: 800; text-decoration: none; cursor: pointer; transition: .18s ease; }
.button:hover { transform: translateY(-1px); }
.button:disabled { opacity: .55; cursor: wait; transform: none; }
.button-primary { border-color: var(--teal-dark); background: var(--teal); color: #fff; box-shadow: 0 8px 22px rgba(47,115,123,.18); }
.button-primary:hover { background: var(--teal-dark); }
.button-secondary { border-color: #cfdcdf; background: var(--surface); color: var(--ink); }
.button-secondary:hover { border-color: #a9c4c7; background: #f8fbfb; }
.button-ghost { border-color: transparent; background: transparent; color: var(--teal-dark); }
.button-large { min-height: 52px; padding-inline: 24px; }
.eyebrow { display: block; color: var(--teal-dark); font-size: 11px; font-weight: 900; letter-spacing: .18em; text-transform: uppercase; }
.hero { min-height: 590px; display: grid; align-items: center; overflow: hidden; border-bottom: 1px solid var(--line); background: linear-gradient(135deg, rgba(255,255,255,.78), rgba(238,246,246,.5)); }
.hero-grid { display: grid; grid-template-columns: 1.15fr .85fr; align-items: center; gap: 80px; padding-block: 76px; }
.hero h1 { max-width: 760px; margin: 17px 0 22px; color: var(--navy); font: 500 clamp(44px, 6vw, 72px)/.99 Georgia, "Times New Roman", serif; letter-spacing: -.045em; }
.hero h1 em { color: var(--teal-dark); font-style: italic; }
.hero p { max-width: 690px; margin: 0; color: var(--muted); font-size: 18px; line-height: 1.75; }
.hero-badges { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 30px; }
.hero-badges span { padding: 7px 11px; border: 1px solid #cfdfdf; border-radius: 999px; background: rgba(255,255,255,.72); color: #486775; font-size: 12px; font-weight: 750; }
.hero-visual { position: relative; min-height: 390px; display: grid; place-items: center; }
.hero-visual::before, .hero-visual::after { content: ""; position: absolute; border-radius: 50%; }
.hero-visual::before { width: 370px; height: 370px; border: 1px solid rgba(58,134,143,.2); box-shadow: 0 0 0 32px rgba(58,134,143,.035), 0 0 0 64px rgba(58,134,143,.025); }
.hero-visual::after { width: 13px; height: 13px; top: 28px; right: 48px; background: var(--teal); box-shadow: -325px 280px 0 -3px var(--navy-2); }
.file-stack { position: relative; z-index: 2; width: min(430px, 100%); display: grid; gap: 11px; transform: rotate(-2deg); }
.file-stack article { min-height: 86px; display: grid; grid-template-columns: 47px 1fr 26px; align-items: center; gap: 13px; padding: 15px 17px; border: 1px solid #d4e2e3; border-radius: 16px; background: rgba(255,255,255,.93); box-shadow: 0 18px 45px rgba(21,43,73,.1); }
.file-stack article:nth-child(2) { transform: translateX(22px); }
.file-stack article:nth-child(3) { transform: translateX(-8px); }
.file-stack i { width: 47px; height: 47px; display: grid; place-items: center; border-radius: 12px; background: var(--teal-soft); color: var(--teal-dark); font-size: 21px; font-style: normal; }
.file-stack b, .file-stack small { display: block; }
.file-stack b { font-size: 14px; }
.file-stack small { margin-top: 3px; color: var(--muted); font-size: 12px; }
.file-stack article > span { color: var(--green); font-weight: 900; }
.catalog, .files-section { padding: 74px 0 92px; }
.section-title { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; margin-bottom: 27px; }
.section-title h2 { margin: 6px 0 0; font: 500 34px/1.1 Georgia, serif; }
.section-title > p { margin: 0; color: var(--muted); }
.collection-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.collection-card { --accent: var(--teal); position: relative; min-height: 285px; display: flex; flex-direction: column; padding: 24px; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: rgba(255,255,255,.88); box-shadow: 0 7px 25px rgba(21,43,73,.055); text-decoration: none; transition: .2s ease; }
.collection-card::after { content: ""; position: absolute; width: 170px; height: 170px; right: -90px; bottom: -100px; border-radius: 50%; background: color-mix(in srgb, var(--accent) 12%, transparent); transition: .2s ease; }
.collection-card:hover { transform: translateY(-5px); border-color: color-mix(in srgb, var(--accent) 45%, var(--line)); box-shadow: var(--shadow); }
.collection-card:hover::after { transform: scale(1.25); }
.accent-teal { --accent: #3a868f; }.accent-navy { --accent: #294c70; }.accent-sand { --accent: #ba7a52; }.accent-coral { --accent: #c76c68; }
.card-icon, .page-folder, .admin-collection-icon { display: grid; place-items: center; background: color-mix(in srgb, var(--accent) 12%, white); color: var(--accent); }
.card-icon { position: absolute; right: 21px; top: 68px; width: 68px; height: 68px; border-radius: 18px; font-size: 30px; transform: rotate(-4deg); }
.card-top { display: flex; align-items: center; justify-content: space-between; }
.access-pill { width: fit-content; display: inline-flex; align-items: center; gap: 5px; padding: 5px 9px; border: 1px solid #d3e0e2; border-radius: 999px; background: #f7fafb; color: #617984; font-size: 11px; font-weight: 850; }
.arrow { color: var(--accent); font-size: 19px; }
.collection-card h3 { max-width: calc(100% - 63px); margin: 60px 0 8px; font: 600 23px/1.18 Georgia, serif; }
.collection-card > p { margin: 0; color: var(--muted); font-size: 14px; }
.collection-card footer { position: relative; z-index: 1; display: flex; align-items: center; gap: 5px; margin-top: auto; padding-top: 22px; border-top: 1px solid #edf1f2; color: var(--muted); font-size: 12px; }
.collection-card footer span { margin-left: auto; color: var(--accent); font-weight: 800; }
.empty-public { grid-column: 1 / -1; min-height: 320px; display: grid; place-items: center; align-content: center; padding: 45px; border: 1px dashed #bed0d4; border-radius: var(--radius); background: rgba(255,255,255,.5); text-align: center; }
.empty-orbit { width: 82px; height: 82px; display: grid; place-items: center; border: 1px solid #c6dddd; border-radius: 50%; box-shadow: 0 0 0 12px rgba(58,134,143,.04); color: var(--teal); font-size: 32px; }
.empty-public h3 { margin: 22px 0 5px; font: 600 23px Georgia, serif; }
.empty-public p { max-width: 600px; margin: 0; color: var(--muted); }
.site-footer { border-top: 1px solid var(--line); background: rgba(255,255,255,.66); }
.site-footer .container { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 20px; color: #71838e; font-size: 12px; }
.page-main { min-height: calc(100vh - 153px); }
.page-hero { --accent: var(--teal); padding: 48px 0 58px; border-bottom: 1px solid var(--line); background: linear-gradient(135deg, color-mix(in srgb, var(--accent) 10%, white), rgba(255,255,255,.75)); }
.back-link { display: inline-flex; align-items: center; gap: 8px; color: var(--teal-dark); font-size: 13px; font-weight: 800; text-decoration: none; }
.page-heading { display: flex; align-items: center; gap: 25px; margin-top: 38px; }
.page-folder { width: 92px; height: 92px; flex: 0 0 92px; border-radius: 24px; font-size: 40px; transform: rotate(-3deg); box-shadow: 0 12px 32px color-mix(in srgb, var(--accent) 13%, transparent); }
.page-heading h1 { margin: 12px 0 5px; font: 500 clamp(34px, 5vw, 54px)/1 Georgia, serif; letter-spacing: -.03em; }
.page-heading p { max-width: 760px; margin: 0; color: var(--muted); font-size: 16px; }
.gate-section { min-height: 460px; display: grid; place-items: center; padding: 60px 24px 90px; }
.gate-card { width: min(560px, 100%); padding: 42px; border: 1px solid var(--line); border-radius: 22px; background: rgba(255,255,255,.92); box-shadow: var(--shadow); text-align: center; }
.gate-icon { width: 72px; height: 72px; display: grid; place-items: center; margin: 0 auto 25px; border-radius: 20px; background: var(--teal-soft); color: var(--teal-dark); font-size: 31px; }
.gate-card h2 { margin: 9px 0 7px; font: 600 28px Georgia, serif; }
.gate-card > p { margin: 0 auto 24px; color: var(--muted); }
.gate-card form { display: grid; gap: 13px; text-align: left; }
label { display: grid; gap: 7px; color: #405967; font-size: 12px; font-weight: 850; }
input, textarea, select { width: 100%; border: 1px solid #cddadd; border-radius: 9px; background: #fbfcfc; outline: 0; transition: .15s ease; }
input, select { min-height: 44px; padding: 0 12px; }
textarea { padding: 11px 12px; resize: vertical; }
input:focus, textarea:focus, select:focus { border-color: var(--teal); background: white; box-shadow: 0 0 0 3px rgba(58,134,143,.1); }
label small { color: #7b8b94; font-size: 11px; font-weight: 500; }
.file-list { display: grid; gap: 10px; }
.file-card { display: grid; grid-template-columns: 68px minmax(0, 1fr) auto; align-items: center; gap: 17px; padding: 16px; border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.92); box-shadow: 0 4px 14px rgba(21,43,73,.04); }
.file-type { position: relative; width: 62px; height: 62px; display: grid; place-items: center; border-radius: 13px; background: #eaf3f3; color: var(--teal-dark); font-size: 24px; }
.file-type span { position: absolute; right: -5px; bottom: -4px; padding: 2px 4px; border: 2px solid white; border-radius: 5px; background: var(--navy); color: white; font: 800 9px monospace; }
.file-copy { min-width: 0; }
.file-copy h3 { margin: 0; overflow: hidden; font-size: 15px; text-overflow: ellipsis; white-space: nowrap; }
.file-copy p { margin: 3px 0; color: var(--muted); font-size: 13px; }
.file-copy small { color: #83919a; font-size: 11px; }
.file-actions { display: flex; align-items: center; gap: 8px; }
.icon-button { width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 9px; background: white; color: var(--teal-dark); text-decoration: none; cursor: pointer; }
.file-missing { opacity: .68; }.missing-pill { color: var(--danger); font-size: 12px; font-weight: 800; }
.empty-inline { padding: 45px; border: 1px dashed #c6d5d7; border-radius: 14px; color: var(--muted); text-align: center; }
.not-found { min-height: calc(100vh - 153px); display: grid; place-items: center; padding: 50px 24px; text-align: center; }
.not-found > div { max-width: 630px; }.huge-code { color: rgba(58,134,143,.2); font: 800 120px/1 Georgia, serif; }.not-found h1 { margin: -15px 0 8px; font: 600 34px Georgia, serif; }.not-found p { margin: 0 0 25px; color: var(--muted); }
.boot-card { min-height: 100vh; display: grid; place-items: center; align-content: center; gap: 18px; }.boot-card img { width: 150px; }.boot-card p { margin: 0; color: var(--muted); }
.spinner { width: 24px; height: 24px; display: inline-block; border: 3px solid #d8e6e7; border-top-color: var(--teal); border-radius: 50%; animation: spin .8s linear infinite; } @keyframes spin { to { transform: rotate(360deg); } }

/* Administration */
.admin-shell { min-height: 100vh; --side: 255px; }
.admin-sidebar { position: fixed; inset: 0 auto 0 0; z-index: 40; width: var(--side); display: flex; flex-direction: column; padding: 26px 18px 19px; background: var(--navy); color: white; box-shadow: 10px 0 35px rgba(13,34,57,.08); }
.admin-sidebar .brand img { filter: brightness(0) invert(1); }.admin-sidebar .brand span { color: #83c5c6; border-color: rgba(131,197,198,.4); }
.admin-sidebar nav { display: grid; gap: 5px; margin-top: 45px; }
.admin-sidebar nav button { min-height: 47px; display: grid; grid-template-columns: 24px 1fr auto; align-items: center; gap: 10px; padding: 0 12px; border: 0; border-radius: 9px; background: transparent; color: #aebfce; text-align: left; cursor: pointer; }
.admin-sidebar nav button:hover, .admin-sidebar nav button.active { background: rgba(91,166,171,.15); color: white; }
.admin-sidebar nav button.active { box-shadow: inset 3px 0 #62adb1; }.admin-sidebar nav b { padding: 2px 7px; border-radius: 999px; background: rgba(255,255,255,.08); font-size: 11px; }
.sidebar-note { display: flex; gap: 9px; margin-top: auto; padding: 13px; border: 1px solid rgba(255,255,255,.08); border-radius: 10px; background: rgba(255,255,255,.04); }
.sidebar-note > span { color: #78bdbe; }.sidebar-note b, .sidebar-note small { display: block; }.sidebar-note b { font-size: 11px; }.sidebar-note small { margin-top: 2px; color: #8298aa; font-size: 10px; }
.admin-user { display: grid; grid-template-columns: 32px 1fr 20px; align-items: center; gap: 9px; margin-top: 13px; padding: 13px 5px 0; border-top: 1px solid rgba(255,255,255,.08); }.avatar { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; background: linear-gradient(135deg, #62aeb0, #2e727d); font-size: 12px; font-weight: 900; }.admin-user b, .admin-user small { display: block; max-width: 145px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.admin-user b { font-size: 11px; }.admin-user small { color: #8298aa; font-size: 9px; }.admin-user a { color: #8298aa; text-decoration: none; }
.admin-workspace { min-height: 100vh; margin-left: var(--side); }
.admin-header { position: sticky; top: 0; z-index: 25; min-height: 75px; display: flex; align-items: center; gap: 12px; padding: 0 29px; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.9); backdrop-filter: blur(15px); }.admin-header > div b { display: block; font-size: 15px; }.admin-header > .button-ghost { margin-left: auto; }.mobile-menu { display: none; }
.session-clock { min-height: 39px; display: grid; grid-template-columns: auto auto; align-content: center; gap: 0 7px; padding: 0 11px; border: 1px solid var(--line); border-radius: 10px; background: color-mix(in srgb,var(--surface) 86%,transparent); color: var(--ink); box-shadow: 0 5px 18px rgba(17,43,70,.05); }
.session-clock i { grid-row: 1 / 3; align-self: center; width: 7px; height: 7px; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 4px color-mix(in srgb,var(--green) 14%,transparent); }
.session-clock span { color: var(--muted); font-size: 8px; font-weight: 850; letter-spacing: .08em; line-height: 1.15; text-transform: uppercase; }
.admin-header > .session-clock b { display: block; font: 800 11px/1.15 ui-monospace,SFMono-Regular,Menlo,monospace; }
.session-clock.is-ending { border-color: color-mix(in srgb,var(--danger) 40%,var(--line)); }.session-clock.is-ending i { background: var(--danger); box-shadow: 0 0 0 4px color-mix(in srgb,var(--danger) 13%,transparent); }
html.session-expired::after { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; background: color-mix(in srgb,var(--paper) 88%,transparent); color: var(--ink); font-size: 13px; font-weight: 850; backdrop-filter: blur(9px); content: "Session expirée · actualisation…"; }
.admin-main { padding: 31px; }.admin-intro { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; }.admin-intro h1 { margin: 0; font: 500 35px Georgia, serif; }.admin-intro p { margin: 6px 0 0; color: var(--muted); }
.admin-stats { display: flex; border: 1px solid var(--line); border-radius: 12px; background: rgba(255,255,255,.86); box-shadow: 0 6px 20px rgba(21,43,73,.04); }.admin-stats article { min-width: 138px; padding: 13px 16px; border-right: 1px solid var(--line); }.admin-stats article:last-child { border: 0; }.admin-stats span, .admin-stats small { display: block; color: var(--muted); font-size: 10px; }.admin-stats b { display: block; margin: 2px 0; font-size: 18px; }
.admin-section { margin-top: 35px; }.admin-section-head { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 14px; }.admin-section-head h2 { margin: 4px 0 0; font-size: 19px; }
.admin-collections { display: grid; gap: 9px; }.admin-collection { display: grid; grid-template-columns: 58px minmax(0, 1fr) auto auto; align-items: center; gap: 15px; padding: 13px 15px; border: 1px solid var(--line); border-radius: 12px; background: rgba(255,255,255,.9); box-shadow: 0 3px 11px rgba(21,43,73,.035); }.admin-collection-icon { --accent: var(--teal); width: 54px; height: 54px; border-radius: 13px; font-size: 23px; }.admin-collection-copy > div { display: flex; align-items: center; gap: 5px; color: #82919a; }.admin-collection-copy small { font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }.status-dot { width: 6px; height: 6px; border-radius: 50%; background: #9aa6ad; }.status-dot.is-live { background: var(--green); box-shadow: 0 0 0 3px rgba(57,130,104,.12); }.admin-collection h3 { margin: 4px 0 1px; font-size: 14px; }.admin-collection p { margin: 0; color: #85949d; font: 10px monospace; }.admin-collection-meta { display: grid; grid-template-columns: auto 24px; align-items: center; gap: 4px 10px; text-align: right; }.admin-collection-meta .access-pill { grid-row: 1 / span 2; }.admin-collection-meta b { font-size: 15px; }.admin-collection-meta small { color: var(--muted); font-size: 9px; }
.admin-empty { min-height: 340px; display: grid; place-items: center; align-content: center; padding: 35px; border: 1px dashed #becfd3; border-radius: 14px; background: rgba(255,255,255,.5); text-align: center; }.admin-empty > div { color: var(--teal); font-size: 42px; }.admin-empty h3 { margin: 12px 0 5px; }.admin-empty p { max-width: 530px; margin: 0 0 18px; color: var(--muted); }
.modal-backdrop { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: 24px; background: rgba(9,25,43,.48); backdrop-filter: blur(7px); }.modal { position: relative; width: min(600px, 100%); max-height: calc(100vh - 48px); overflow: auto; padding: 31px; border: 1px solid rgba(255,255,255,.65); border-radius: 18px; background: #fff; box-shadow: 0 30px 90px rgba(8,27,47,.25); }.modal-wide { width: min(1080px, 100%); }.modal-picker { width: min(760px, 100%); }.modal-upload { width: min(620px, 100%); }.modal h2 { margin: 6px 0 7px; font: 600 27px Georgia, serif; }.modal > p { margin: 0 0 20px; color: var(--muted); }.modal-close { position: absolute; top: 14px; right: 14px; width: 35px; height: 35px; border: 0; border-radius: 9px; background: #f2f6f6; color: #6f818b; font-size: 23px; cursor: pointer; }.form-stack { display: grid; gap: 15px; }.form-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 7px; }.form-actions.split { justify-content: space-between; }.danger-link { border: 0; background: transparent; color: var(--danger); font-size: 11px; font-weight: 800; cursor: pointer; }
.editor-head { display: flex; justify-content: space-between; gap: 25px; padding-right: 35px; }.editor-head h2 { margin-bottom: 3px; }.editor-head a { color: var(--teal-dark); font: 10px monospace; text-decoration: none; }.publish-state { height: fit-content; margin-top: 20px; padding: 5px 9px; border-radius: 999px; background: #eef1f3; color: #70818b; font-size: 10px; font-weight: 900; text-transform: uppercase; }.publish-state.is-live { background: #e7f4ee; color: var(--green); }
.editor-grid { display: grid; grid-template-columns: .86fr 1.14fr; gap: 25px; margin-top: 24px; }.editor-settings, .editor-files { min-width: 0; padding: 19px; border: 1px solid var(--line); border-radius: 13px; background: var(--surface-soft); }.editor-settings { display: grid; gap: 13px; align-content: start; }.editor-settings h3, .editor-files h3 { margin: 0; font-size: 14px; }.two-fields { display: grid; grid-template-columns: 1.2fr .8fr; gap: 10px; }.three-fields { display: grid; grid-template-columns: 1.2fr 1fr .8fr; gap: 9px; }.info-strip { padding: 10px 12px; border: 1px solid #d6e4e4; border-radius: 9px; background: #edf6f5; color: #52717a; font-size: 11px; }.switch-row { display: flex; align-items: center; justify-content: space-between; padding: 11px 12px; border: 1px solid var(--line); border-radius: 9px; background: white; cursor: pointer; }.switch-row b, .switch-row small { display: block; }.switch-row b { font-size: 11px; }.switch-row small { margin-top: 2px; color: var(--muted); font-size: 9px; }.switch-row input { position: absolute; opacity: 0; }.switch-row i { position: relative; width: 39px; height: 22px; border-radius: 999px; background: #cbd5d8; }.switch-row i::after { content: ""; position: absolute; width: 16px; height: 16px; top: 3px; left: 3px; border-radius: 50%; background: white; box-shadow: 0 1px 4px rgba(0,0,0,.18); transition: .18s; }.switch-row input:checked + i { background: var(--teal); }.switch-row input:checked + i::after { transform: translateX(17px); }
.editor-files { background: white; }.editor-files-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 13px; border-bottom: 1px solid var(--line); }.editor-files-head p { margin: 3px 0 0; color: var(--muted); font-size: 10px; }.editor-files-head > div:last-child { display: flex; gap: 6px; }.editor-files-head .button { min-height: 34px; padding-inline: 10px; font-size: 10px; }.editor-file-list { display: grid; gap: 6px; margin-top: 12px; }.editor-file { display: grid; grid-template-columns: 24px 35px minmax(0, 1fr) 24px 25px; align-items: center; gap: 8px; padding: 8px; border: 1px solid #e3e9eb; border-radius: 9px; background: #fbfcfc; }.editor-file.is-missing { border-color: #e8c9ca; background: #fff7f7; }.drag-controls { display: grid; gap: 1px; }.drag-controls button { width: 21px; height: 16px; padding: 0; border: 0; background: transparent; color: #82919a; font-size: 10px; cursor: pointer; }.drag-controls button:disabled { opacity: .2; }.mini-file-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 8px; background: var(--teal-soft); color: var(--teal-dark); }.editor-file > div:nth-child(3) { min-width: 0; }.editor-file b, .editor-file span, .editor-file small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.editor-file b { font-size: 10px; }.editor-file span { color: #82919a; font: 8px monospace; }.editor-file small { color: var(--muted); font-size: 8px; }.editor-file > a, .remove-file { border: 0; background: transparent; color: var(--teal-dark); text-decoration: none; cursor: pointer; }.remove-file { color: var(--danger); font-size: 17px; }.editor-empty { min-height: 210px; display: grid; place-items: center; align-content: center; color: var(--teal); font-size: 30px; }.editor-empty p { margin: 4px 0 12px; color: var(--muted); font-size: 11px; }
.picker-toolbar { display: flex; align-items: flex-end; gap: 12px; margin: 20px 0 12px; }.picker-toolbar label { width: 210px; }.picker-path { flex: 1; min-width: 0; padding: 10px 12px; overflow: hidden; border: 1px solid var(--line); border-radius: 9px; background: #f7f9fa; color: #71838e; font: 10px monospace; text-overflow: ellipsis; white-space: nowrap; }.picker-manual { margin: 0 0 12px; padding: 10px 12px; border: 1px dashed var(--line); border-radius: 10px; background: var(--surface-soft); }.picker-manual summary { color: var(--teal-dark); font-size: 10px; font-weight: 850; cursor: pointer; }.picker-manual form { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; margin-top: 10px; }.picker-manual small { display: block; margin-top: 7px; color: var(--muted); font-size: 9px; }.picker-content { min-height: 250px; max-height: 46vh; display: grid; align-content: start; overflow: auto; border: 1px solid var(--line); border-radius: 11px; }.picker-content > .spinner { margin: 90px auto; }.picker-row { min-height: 49px; display: grid; grid-template-columns: 38px 1fr auto; align-items: center; gap: 10px; padding: 6px 13px; border: 0; border-bottom: 1px solid #edf1f2; background: white; text-align: left; cursor: pointer; }.picker-row:not(button) { grid-template-columns: 28px minmax(0,1fr); gap: 8px; cursor: default; }.picker-row:last-child { border-bottom: 0; }.picker-row:hover, .picker-row.is-selected { background: #f3f8f7; }.picker-row.is-selected { box-shadow: inset 3px 0 var(--teal); }.picker-entry { min-width: 0; display: grid; grid-template-columns: 38px minmax(0,1fr) auto; align-items: center; gap: 10px; padding: 0; border: 0; background: transparent; color: var(--ink); text-align: left; cursor: pointer; }.picker-row > i, .picker-entry > i { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 8px; background: #eaf4f3; color: var(--teal-dark); font-style: normal; }.picker-check { width: 24px; height: 24px; display: grid; place-items: center; padding: 0; border: 1px solid #b8c9cf; border-radius: 7px; background: var(--surface); color: white; font-size: 11px; font-weight: 900; cursor: pointer; }.picker-check.is-selected { border-color: var(--teal); background: var(--teal); }.picker-row b, .picker-row small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.picker-row b { font-size: 11px; }.picker-row small { color: var(--muted); font-size: 9px; }.picker-row em { color: var(--teal-dark); font-size: 10px; font-style: normal; font-weight: 800; }.picker-empty { padding: 70px; color: var(--muted); text-align: center; }.picker-selection { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-top: 12px; padding: 12px; border: 1px solid var(--line); border-radius: 11px; background: var(--surface-soft); }.picker-selection > span b { font-size: 14px; }.picker-selection > span small { display: block; margin-top: 2px; color: var(--muted); font-size: 9px; }.picker-selection > div { display: flex; gap: 7px; }
.drop-zone { min-height: 210px; display: grid; place-items: center; align-content: center; padding: 25px; border: 2px dashed #bdd2d4; border-radius: 13px; background: #f4f9f8; text-align: center; cursor: pointer; }.drop-zone input { position: absolute; width: 1px; height: 1px; opacity: 0; }.drop-zone > span { color: var(--teal); font-size: 42px; }.drop-zone b { max-width: 100%; overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }.drop-zone small { margin-top: 4px; color: var(--muted); }.drop-zone.is-oversize { border-color: #dfa8aa; background: #fff6f6; }.drop-zone.is-oversize > span { color: var(--danger); }.oversize-ticket { display: grid; grid-template-columns: 34px minmax(0,1fr); gap: 12px; padding: 14px; border: 1px solid #e8c9ca; border-radius: 11px; background: #fff7f7; color: var(--ink); }.oversize-ticket[hidden] { display: none; }.oversize-ticket > span { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 9px; background: #f9e3e4; color: var(--danger); font-weight: 900; }.oversize-ticket b { display: block; font-size: 12px; }.oversize-ticket p { margin: 4px 0 10px; color: var(--muted); font-size: 11px; line-height: 1.55; }.oversize-ticket .button { width: fit-content; min-height: 34px; padding-inline: 11px; font-size: 10px; }.button.is-oversize:disabled { cursor: not-allowed; }.upload-progress { position: relative; overflow: hidden; padding: 11px; border-radius: 8px; background: #edf4f4; color: var(--teal-dark); font-size: 10px; font-weight: 800; }.upload-progress i { position: absolute; inset: 0; background: linear-gradient(90deg, transparent, rgba(58,134,143,.16), transparent); animation: slide 1.4s infinite; }.upload-progress span { position: relative; } @keyframes slide { from { transform: translateX(-100%); } to { transform: translateX(100%); } }
.auth-screen { min-height: 100vh; display: grid; grid-template-columns: 1fr 1fr; background: white; }.auth-panel { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: clamp(35px, 7vw, 105px); }.auth-panel .brand { position: absolute; top: 35px; }.auth-icon { width: 65px; height: 65px; display: grid; place-items: center; margin-bottom: 25px; border-radius: 18px; background: var(--teal-soft); color: var(--teal-dark); font-size: 28px; }.auth-icon.auth-error { background: #f9e9ea; color: var(--danger); }.auth-panel h1 { margin: 10px 0 15px; font: 500 clamp(34px, 5vw, 52px)/1.05 Georgia, serif; letter-spacing: -.035em; }.auth-panel > p { max-width: 530px; margin: 0 0 25px; color: var(--muted); font-size: 16px; }.auth-panel > .back-link { margin-top: 24px; }.auth-art { position: relative; display: grid; place-items: center; overflow: hidden; background: linear-gradient(145deg, var(--navy), #1c4962); }.art-ring { position: absolute; border: 1px solid rgba(111,190,190,.2); border-radius: 50%; }.ring-one { width: 540px; height: 540px; }.ring-two { width: 390px; height: 390px; box-shadow: 0 0 0 45px rgba(81,176,180,.025), 0 0 0 90px rgba(81,176,180,.018); }.art-card { position: relative; z-index: 1; width: min(360px, 76%); display: grid; gap: 11px; padding: 30px; border: 1px solid rgba(255,255,255,.14); border-radius: 18px; background: rgba(255,255,255,.075); color: #dbe8ed; box-shadow: 0 30px 65px rgba(0,0,0,.18); backdrop-filter: blur(15px); }.art-card b { margin-bottom: 8px; color: white; font-size: 18px; }.art-card span { padding: 11px; border-radius: 9px; background: rgba(255,255,255,.06); font-size: 12px; }
.auth-theme { position: absolute; top: 32px; right: calc(50% + 32px); z-index: 5; }
#toast-root { position: fixed; z-index: 200; right: 20px; bottom: 20px; display: grid; gap: 8px; }.toast { min-width: 280px; display: grid; grid-template-columns: 25px 1fr; align-items: center; gap: 8px; padding: 13px 15px; border: 1px solid #cde0d8; border-radius: 10px; background: white; box-shadow: 0 14px 38px rgba(16,38,60,.17); animation: toast-in .2s ease-out; }.toast b { width: 23px; height: 23px; display: grid; place-items: center; border-radius: 50%; background: #e5f3ed; color: var(--green); }.toast span { font-size: 11px; font-weight: 750; }.toast-error { border-color: #ecc9cb; }.toast-error b { background: #f8e6e8; color: var(--danger); } @keyframes toast-in { from { opacity: 0; transform: translateY(10px); } }

/* Journal des versions — même langage que Fixelio et Fixelio SAV. */
.admin-changelog { overflow: hidden; border-radius: 28px; background: var(--surface); box-shadow: 0 24px 70px rgba(13,38,64,.1); }
.admin-changelog-hero { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 40px; padding: clamp(34px,5vw,64px); background: radial-gradient(circle at 82% 8%, rgba(95,195,197,.24), transparent 34%), linear-gradient(135deg,#102b4c,#173f60 58%,#257783); color: #fff; }
.admin-changelog-hero .eyebrow { color: #8ed8dc; }
.admin-changelog-hero h1 { max-width: 720px; margin: 11px 0 18px; color: #fff; font: 500 clamp(36px,5vw,66px)/.98 Georgia,serif; letter-spacing: -.055em; }
.admin-changelog-hero > div > p { max-width: 660px; margin: 0; color: #c6d7e2; font-size: 14px; line-height: 1.7; }
.admin-current-release { min-width: 190px; display: grid; grid-template-columns: auto auto; gap: 2px 10px; padding: 17px 19px; border: 1px solid rgba(255,255,255,.22); border-radius: 18px; background: rgba(5,20,39,.26); backdrop-filter: blur(12px); }
.admin-current-release i { grid-row: 1 / 3; align-self: center; width: 10px; height: 10px; border-radius: 50%; background: #7bd6b4; box-shadow: 0 0 0 7px rgba(123,214,180,.12); }
.admin-current-release span { color: #b7cad8; font-size: 10px; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.admin-current-release strong { color: #fff; font-size: 21px; }
.admin-changelog-list { margin: 0; padding: clamp(26px,4vw,50px) clamp(24px,5vw,64px) clamp(42px,6vw,72px); list-style: none; }
.admin-changelog-list > li { position: relative; display: grid; grid-template-columns: 175px minmax(0,1fr); gap: clamp(24px,4vw,58px); padding: 26px 0 38px; }
.admin-changelog-list > li:not(:last-child)::after { position: absolute; right: 0; bottom: 0; left: 0; height: 1px; background: var(--line); content: ""; }
.admin-version-marker { position: relative; display: grid; align-content: start; gap: 7px; padding-left: 26px; }
.admin-version-marker::before { position: absolute; top: 16px; bottom: -58px; left: 6px; width: 1px; background: var(--line); content: ""; }
.admin-changelog-list > li:last-child .admin-version-marker::before { display: none; }
.admin-version-marker i { position: absolute; top: 5px; left: 1px; z-index: 1; width: 11px; height: 11px; border: 3px solid var(--surface); border-radius: 50%; background: #8296a6; box-shadow: 0 0 0 1px #8296a6; }
.admin-changelog-list > li.is-current .admin-version-marker i { background: #2c9b82; box-shadow: 0 0 0 1px #2c9b82, 0 0 0 7px rgba(44,155,130,.1); }
.admin-version-marker > span { color: var(--ink); font-size: 15px; font-weight: 900; }.admin-version-marker time { color: var(--muted); font-size: 11px; line-height: 1.5; }
.admin-changelog-list article { min-width: 0; }
.admin-release-heading { display: flex; align-items: start; justify-content: space-between; gap: 22px; cursor: pointer; list-style: none; }.admin-release-heading::-webkit-details-marker { display: none; }
.admin-release-heading > div > span { color: var(--teal-dark); font-size: 9px; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }
.admin-release-heading h2 { margin: 5px 0 0; color: var(--ink); font: 600 clamp(23px,3vw,34px)/1.15 Georgia,serif; letter-spacing: -.035em; }
.admin-release-count { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 9px; }
.admin-release-count b { flex: 0 0 auto; padding: 8px 11px; border-radius: 999px; background: var(--surface-soft); color: var(--muted); font-size: 10px; }
.admin-release-count i { width: 29px; height: 29px; display: grid; place-items: center; border-radius: 50%; background: var(--surface-soft); color: var(--teal-dark); font-size: 17px; font-style: normal; transition: transform .18s ease; }
.admin-changelog-list details[open] .admin-release-count i { transform: rotate(45deg); }
.admin-release-body { animation: theme-menu-in .18s ease-out; }.admin-release-body > p { max-width: 760px; margin: 13px 0 20px; color: var(--muted); line-height: 1.7; }
.admin-release-body > ul { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px 24px; margin: 0; padding: 0; list-style: none; }
.admin-release-body > ul li { display: grid; grid-template-columns: 20px minmax(0,1fr); gap: 9px; color: var(--ink); font-size: 12px; line-height: 1.55; }
.admin-release-body > ul li span { width: 19px; height: 19px; display: grid; place-items: center; border-radius: 50%; background: #e1f2eb; color: #277961; font-size: 10px; font-weight: 900; }

/* Thème sombre complet. */
html[data-theme="dark"] {
  --navy: #091523; --navy-2: #142b43; --teal: #55aeb2; --teal-dark: #79c9cc; --teal-soft: #16363e;
  --paper: #0c1623; --surface: #142235; --surface-soft: #101d2c; --ink: #e8f1f4; --muted: #9bafbb;
  --line: #293c4e; --danger: #ef7d86; --green: #69c8a2; --sand: #d79a70; --shadow: 0 20px 60px rgba(0,0,0,.32);
}
html[data-theme="dark"] .ambient { opacity: .72; }
html[data-theme="dark"] .grid { opacity: .34; filter: invert(1); }
html[data-theme="dark"] .brand img { filter: brightness(0) invert(1); }
html[data-theme="dark"] .site-header { border-color: var(--line); background: rgba(10,20,32,.88); }
html[data-theme="dark"] .hero { background: linear-gradient(135deg,rgba(20,34,53,.8),rgba(16,47,55,.45)); }
html[data-theme="dark"] .hero h1 { color: var(--ink); }
html[data-theme="dark"] .hero-badges span,
html[data-theme="dark"] .file-stack article,
html[data-theme="dark"] .collection-card,
html[data-theme="dark"] .gate-card,
html[data-theme="dark"] .file-card,
html[data-theme="dark"] .admin-stats,
html[data-theme="dark"] .admin-collection,
html[data-theme="dark"] .admin-empty,
html[data-theme="dark"] .empty-public { border-color: var(--line); background: color-mix(in srgb,var(--surface) 90%,transparent); color: var(--ink); }
html[data-theme="dark"] .hero-badges span { color: var(--muted); }
html[data-theme="dark"] .file-stack article { box-shadow: 0 18px 45px rgba(0,0,0,.22); }
html[data-theme="dark"] .access-pill { border-color: var(--line); background: var(--surface-soft); color: var(--muted); }
html[data-theme="dark"] .card-icon,
html[data-theme="dark"] .page-folder,
html[data-theme="dark"] .admin-collection-icon { background: color-mix(in srgb,var(--accent) 21%,var(--surface)); }
html[data-theme="dark"] .collection-card footer { border-color: var(--line); }
html[data-theme="dark"] .site-footer { background: rgba(13,24,37,.78); }
html[data-theme="dark"] .site-footer .container,
html[data-theme="dark"] .file-copy small,
html[data-theme="dark"] .admin-collection-copy > div,
html[data-theme="dark"] .admin-collection p { color: var(--muted); }
html[data-theme="dark"] .page-hero { background: linear-gradient(135deg,color-mix(in srgb,var(--accent) 14%,var(--paper)),color-mix(in srgb,var(--surface) 78%,transparent)); }
html[data-theme="dark"] label { color: var(--ink); }
html[data-theme="dark"] input,
html[data-theme="dark"] textarea,
html[data-theme="dark"] select { border-color: var(--line); background: var(--surface-soft); color: var(--ink); }
html[data-theme="dark"] input:focus,
html[data-theme="dark"] textarea:focus,
html[data-theme="dark"] select:focus { background: var(--surface); }
html[data-theme="dark"] input::placeholder,
html[data-theme="dark"] textarea::placeholder { color: #708598; }
html[data-theme="dark"] .file-type,
html[data-theme="dark"] .picker-row > i,
html[data-theme="dark"] .picker-entry > i { background: var(--teal-soft); }
html[data-theme="dark"] .file-type span { border-color: var(--surface); }
html[data-theme="dark"] .icon-button,
html[data-theme="dark"] .mobile-menu,
html[data-theme="dark"] .switch-row,
html[data-theme="dark"] .editor-files,
html[data-theme="dark"] .picker-row { border-color: var(--line); background: var(--surface); }
html[data-theme="dark"] .picker-entry { background: transparent; color: var(--ink); }
html[data-theme="dark"] .button-secondary:hover,
html[data-theme="dark"] .picker-row:hover { border-color: #466174; background: #192c3f; }
html[data-theme="dark"] .admin-header { background: rgba(14,25,39,.9); }
html[data-theme="dark"] .session-clock { box-shadow: 0 5px 18px rgba(0,0,0,.16); }
html[data-theme="dark"] .modal { border-color: var(--line); background: var(--surface); box-shadow: 0 30px 90px rgba(0,0,0,.48); }
html[data-theme="dark"] .modal-close,
html[data-theme="dark"] .publish-state,
html[data-theme="dark"] .picker-path { background: var(--surface-soft); color: var(--muted); }
html[data-theme="dark"] .editor-file { border-color: var(--line); background: #122033; }
html[data-theme="dark"] .editor-file.is-missing { border-color: #75414a; background: #2a1821; }
html[data-theme="dark"] .info-strip,
html[data-theme="dark"] .drop-zone,
html[data-theme="dark"] .upload-progress { border-color: #2d535a; background: #142f38; color: var(--teal-dark); }
html[data-theme="dark"] .drop-zone.is-oversize,
html[data-theme="dark"] .oversize-ticket { border-color: #68434a; background: #351f27; }
html[data-theme="dark"] .oversize-ticket > span { background: #4b2831; }
html[data-theme="dark"] .auth-screen { background: var(--paper); }
html[data-theme="dark"] .toast { border-color: var(--line); background: var(--surface); box-shadow: 0 14px 38px rgba(0,0,0,.35); }
html[data-theme="dark"] .theme-switcher summary { box-shadow: 0 5px 18px rgba(0,0,0,.16); }
html[data-theme="dark"] .admin-release-body > ul li span { background: #173b32; color: #79d6b4; }

@media (max-width: 980px) {
  .hero-grid { grid-template-columns: 1fr; gap: 30px; }.hero-visual { min-height: 330px; }.collection-grid { grid-template-columns: repeat(2, 1fr); }
  .admin-sidebar { transform: translateX(-100%); transition: .2s; }.admin-sidebar.is-open { transform: translateX(0); }.admin-workspace { margin-left: 0; }.mobile-menu { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); }.admin-intro { align-items: flex-start; flex-direction: column; }.admin-stats { width: 100%; }.editor-grid { grid-template-columns: 1fr; }.modal-wide { width: min(720px, 100%); }.auth-screen { grid-template-columns: 1fr; }.auth-art { display: none; }.auth-theme { right: 32px; }.admin-changelog-hero { grid-template-columns: 1fr; align-items: start; }.admin-current-release { width: fit-content; }.picker-selection { align-items: stretch; flex-direction: column; }.picker-selection > div { justify-content: flex-end; }
}
@media (max-width: 680px) {
  :root { --container: min(100% - 30px, 1180px); }.site-header .brand img { width: 106px; }.header-inner { min-height: 67px; }.header-inner nav { gap: 8px; }.header-inner nav > a:not(.button) { display: none; }.theme-current-label { display: none; }.theme-switcher summary { padding-inline: 8px; }.hero { min-height: auto; }.hero-grid { padding-block: 52px 40px; }.hero h1 { font-size: 43px; }.hero p { font-size: 15px; }.hero-visual { min-height: 300px; }.hero-visual::before { width: 280px; height: 280px; }.file-stack article { grid-template-columns: 42px 1fr 20px; min-height: 76px; }.file-stack article:nth-child(2) { transform: translateX(7px); }.collection-grid { grid-template-columns: 1fr; }.catalog, .files-section { padding-block: 52px; }.section-title { align-items: flex-start; flex-direction: column; gap: 7px; }.site-footer .container { align-items: flex-start; flex-direction: column; justify-content: center; padding-block: 18px; }.page-heading { align-items: flex-start; flex-direction: column; }.page-folder { width: 74px; height: 74px; flex-basis: 74px; }.gate-card { padding: 28px 20px; }.file-card { grid-template-columns: 53px 1fr; }.file-type { width: 50px; height: 50px; }.file-actions { grid-column: 1 / -1; }.file-actions .button { flex: 1; }.admin-header { padding: 0 14px; }.admin-header > div:not(.session-clock) { display: none; }.admin-header > .button-ghost { margin-left: auto; font-size: 0; }.admin-header > .button-ghost::after { content: "Portail ↗"; font-size: 11px; }.session-clock { grid-template-columns: auto; min-width: 54px; padding-inline: 8px; text-align: center; }.session-clock i,.session-clock span { display: none; }.admin-header > .button-primary { min-width: 42px; padding-inline: 10px; font-size: 0; }.admin-header > .button-primary::after { content: "+"; font-size: 18px; }.admin-main { padding: 20px 14px; }.admin-stats { overflow-x: auto; }.admin-stats article { min-width: 128px; }.admin-collection { grid-template-columns: 45px minmax(0,1fr) auto; }.admin-collection-icon { width: 43px; height: 43px; }.admin-collection-meta { display: none; }.admin-collection > .button { width: 40px; padding: 0; overflow: hidden; font-size: 0; }.admin-collection > .button::after { content: "✦"; font-size: 15px; }.admin-changelog { border-radius: 20px; }.admin-changelog-hero { padding: 30px 22px; }.admin-changelog-hero h1 { font-size: 38px; }.admin-changelog-list { padding: 15px 21px 34px; }.admin-changelog-list > li { grid-template-columns: 1fr; gap: 17px; padding: 25px 0 32px; }.admin-version-marker { min-height: 25px; padding-left: 27px; }.admin-version-marker::before { display: none; }.admin-release-heading { align-items: flex-start; flex-direction: column; }.admin-release-count { width: 100%; justify-content: space-between; }.admin-release-body > ul { grid-template-columns: 1fr; }.modal-backdrop { padding: 0; align-items: end; }.modal { width: 100%; max-height: 94vh; padding: 25px 17px; border-radius: 18px 18px 0 0; }.editor-head { padding-right: 25px; }.two-fields, .three-fields { grid-template-columns: 1fr; }.editor-files-head { align-items: flex-start; flex-direction: column; }.editor-file { grid-template-columns: 24px 32px minmax(0,1fr) 22px; }.editor-file > a { display: none; }.picker-toolbar { align-items: stretch; flex-direction: column; }.picker-toolbar label { width: 100%; }.form-actions.split { align-items: stretch; flex-direction: column-reverse; }.auth-panel { min-height: 100vh; padding: 95px 24px 35px; }.auth-panel .brand { top: 25px; }.auth-theme { top: 25px; right: 20px; }.auth-panel h1 { font-size: 38px; }.huge-code { font-size: 90px; } #toast-root { left: 14px; right: 14px; bottom: 14px; }.toast { min-width: 0; }
}
@media (pointer: coarse), (prefers-reduced-motion: reduce) { #pointer-trail { display: none; } *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; } }

/* Fixelio Files 0.2 — exploitation, aperçus et liens temporaires. */
.modal-preview { width: min(1060px,96vw); padding: 24px; }.preview-head { display: flex; align-items: end; justify-content: space-between; gap: 20px; padding: 0 38px 18px 0; }.preview-head h2 { max-width: 760px; margin: 5px 0 0; overflow: hidden; font-size: 21px; text-overflow: ellipsis; white-space: nowrap; }.preview-stage { min-height: 420px; max-height: 72vh; display: grid; place-items: center; overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: #08131e; }.preview-image { max-width: 100%; max-height: 72vh; object-fit: contain; }.preview-frame { width: 100%; height: 70vh; border: 0; background: white; }.preview-media { width: 100%; max-height: 70vh; }.preview-audio { width: min(700px,90%); }.preview-text { width: 100%; height: 65vh; margin: 0; padding: 24px; overflow: auto; background: var(--surface); color: var(--ink); font: 12px/1.65 ui-monospace,SFMono-Regular,Consolas,monospace; white-space: pre-wrap; }
.preview-stage.preview-svg { display: block; background: #08131e; }.svg-viewer { height: 70vh; display: grid; grid-template-rows: auto minmax(0,1fr); }.svg-viewer-toolbar { min-height: 56px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 9px 13px; border-bottom: 1px solid rgba(255,255,255,.12); background: linear-gradient(180deg,#13263a,#0d1e30); color: #c4d6df; font-size: 10px; font-weight: 800; letter-spacing: .03em; }.svg-viewer-toolbar > div,.svg-viewer-actions,.svg-zoom-controls { display: flex; align-items: center; gap: 8px; }.svg-format { padding: 6px 9px; border-radius: 7px; background: rgba(102,208,204,.13); color: #7fe0dc; font-size: 9px; letter-spacing: .12em; }.svg-viewer-actions > button,.svg-zoom-controls button { height: 34px; border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.055); color: #e8f1f4; cursor: pointer; }.svg-viewer-actions > button { min-width: 92px; padding: 0 11px; border-radius: 9px; }.svg-zoom-controls { gap: 0; overflow: hidden; border-radius: 9px; }.svg-zoom-controls button { min-width: 36px; border-width: 1px 0 1px 1px; font-weight: 900; }.svg-zoom-controls button:nth-child(2) { min-width: 61px; font-size: 9px; }.svg-zoom-controls button:last-child { border-right-width: 1px; }.svg-viewer-actions button:hover { border-color: rgba(102,208,204,.6); background: rgba(102,208,204,.12); }.svg-canvas { min-height: 0; display: grid; place-items: center; overflow: auto; overscroll-behavior: contain; transition: background .2s ease; }.svg-canvas[data-background="grid"] { background-color: #e8edf0; background-image: linear-gradient(45deg,#cdd5da 25%,transparent 25%),linear-gradient(-45deg,#cdd5da 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#cdd5da 75%),linear-gradient(-45deg,transparent 75%,#cdd5da 75%); background-position: 0 0,0 10px,10px -10px,-10px 0; background-size: 20px 20px; }.svg-canvas[data-background="light"] { background: #fff; }.svg-canvas[data-background="dark"] { background: #0b1420; }.preview-svg-image { width: min(76%,760px); height: auto; margin: 48px; filter: drop-shadow(0 18px 35px rgba(4,17,29,.23)); transform: scale(var(--svg-zoom,1)); transform-origin: center; transition: transform .16s ease; }
.editor-file { grid-template-columns: 24px 34px minmax(0,1fr) 22px 22px 22px 22px; }.editor-file-copy code { display: block; margin-top: 5px; overflow: hidden; color: var(--teal-dark); font: 8px monospace; text-overflow: ellipsis; white-space: nowrap; }.editor-file-copy code + small { color: var(--teal-dark); }.editor-no-space-link { display: inline-flex; gap: 6px; align-items: center; color: var(--teal-dark); font-size: 10px; font-weight: 700; }.file-link-button { border: 0; background: transparent; color: var(--teal-dark); font-size: 16px; cursor: pointer; }.file-link-button:hover { transform: translateY(-1px); }.link-manager-head { padding-right: 35px; }.link-manager-head .back-link { margin-bottom: 18px; border: 0; background: transparent; cursor: pointer; }.link-manager-head h2 { margin: 6px 0; }.link-manager-head p { color: var(--muted); }.modal-links { width: min(1080px,96vw); }.permanent-link-card { display: grid; grid-template-columns: minmax(0,1fr) auto auto; align-items: center; gap: 9px; margin-top: 18px; padding: 15px; border: 1px solid color-mix(in srgb, var(--teal) 35%, var(--line)); border-radius: 13px; background: color-mix(in srgb, var(--teal-soft) 48%, var(--surface)); }.permanent-link-card b,.permanent-link-card code { display: block; }.permanent-link-card b { margin: 4px 0; font-size: 11px; }.permanent-link-card code { overflow: hidden; color: var(--teal-dark); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }.link-form { display: grid; grid-template-columns: 1.15fr .75fr 1.15fr .8fr auto; align-items: end; gap: 10px; margin: 22px 0; padding: 16px; border: 1px solid var(--line); border-radius: 13px; background: var(--surface-soft); }.managed-links { display: grid; gap: 8px; max-height: 45vh; overflow: auto; }.managed-links article { display: grid; grid-template-columns: minmax(0,1fr) auto auto auto; align-items: center; gap: 8px; padding: 12px; border: 1px solid var(--line); border-radius: 11px; background: var(--surface); }.managed-links article.is-inactive { opacity: .62; }.managed-links button:disabled { opacity: .45; cursor: not-allowed; }.managed-links b,.managed-links small,.managed-links code { display: block; }.managed-links small { margin-top: 2px; color: var(--muted); font-size: 9px; }.managed-links code { max-width: 500px; margin-top: 6px; overflow: hidden; color: var(--teal-dark); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.operations-page { display: grid; gap: 18px; }.operations-hero { display: flex; align-items: end; justify-content: space-between; gap: 25px; padding: 32px; overflow: hidden; border-radius: 22px; background: radial-gradient(circle at 85% 15%,rgba(94,205,196,.2),transparent 32%),linear-gradient(135deg,#102b4c,#1c5664); color: white; }.operations-hero h1 { margin: 7px 0 8px; color: white; font: 500 clamp(30px,4vw,48px)/1.05 Georgia,serif; }.operations-hero p { max-width: 650px; margin: 0; color: #c4d6df; }.operations-hero .button { border-color: rgba(255,255,255,.28); background: rgba(255,255,255,.1); color: white; }.operations-kpis { display: grid; grid-template-columns: repeat(3,1fr); overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); }.operations-kpis article { display: grid; gap: 4px; padding: 20px 24px; }.operations-kpis article + article { border-left: 1px solid var(--line); }.operations-kpis span { color: var(--muted); font-size: 9px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }.operations-kpis b { color: var(--ink); font: 600 28px Georgia,serif; }.operations-kpis small { color: var(--muted); }.operations-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }.operations-card { min-width: 0; padding: 22px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); box-shadow: 0 12px 30px rgba(13,38,64,.055); }.operations-card-head { display: flex; align-items: start; justify-content: space-between; gap: 15px; margin-bottom: 18px; }.operations-card h2 { margin: 3px 0 0; font-size: 18px; }.operations-card-head > small { color: var(--muted); }.operations-wide { width: 100%; }.mini-bars { height: 180px; display: flex; align-items: end; gap: 4px; padding-top: 12px; border-bottom: 1px solid var(--line); }.mini-bars i { flex: 1; height: var(--bar); min-height: 4px; border-radius: 4px 4px 0 0; background: linear-gradient(180deg,var(--teal),var(--teal-dark)); opacity: .78; }.mini-bars i:hover { opacity: 1; }.top-files,.audit-list,.upload-jobs { display: grid; }.top-files article { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--line); }.top-files article:last-child { border-bottom: 0; }.top-files b,.top-files small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.top-files small { color: var(--muted); font-size: 9px; }.top-files article > span { color: var(--teal-dark); font-size: 11px; font-weight: 900; }.health-pill,.job-status { padding: 5px 9px; border-radius: 999px; background: var(--surface-soft); color: var(--muted); font-size: 9px; font-weight: 900; text-transform: capitalize; }.health-pill.is-good,.job-status.is-clean { background: #e1f2eb; color: #277961; }.health-pill.is-warn,.job-status.is-error,.job-status.is-infected { background: #fae9e8; color: #a84a52; }.job-status.is-pending,.job-status.is-scanning { background: #fff0d3; color: #8b651c; }.status-metrics { display: grid; grid-template-columns: repeat(3,1fr); gap: 7px; margin-bottom: 14px; }.status-metrics span { padding: 11px; border-radius: 10px; background: var(--surface-soft); color: var(--muted); font-size: 9px; }.status-metrics b { display: block; color: var(--ink); font-size: 17px; }.status-card > small,.status-card > p { color: var(--muted); }.backup-list { display: grid; gap: 4px; margin-top: 12px; color: var(--muted); font-size: 9px; }.audit-list { max-height: 430px; overflow: auto; }.audit-list article { display: grid; grid-template-columns: 28px minmax(0,1fr) auto; align-items: center; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--line); }.audit-list article > i { width: 25px; height: 25px; display: grid; place-items: center; border-radius: 50%; background: var(--teal-soft); color: var(--teal-dark); font-style: normal; }.audit-list b,.audit-list span { display: block; }.audit-list b { font-size: 10px; }.audit-list span,.audit-list time { color: var(--muted); font-size: 9px; }.upload-jobs article { display: grid; grid-template-columns: minmax(180px,1fr) auto minmax(180px,1fr) auto; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--line); }.upload-jobs b,.upload-jobs small { display: block; }.upload-jobs small { color: var(--muted); font-size: 9px; }.operations-empty { align-self: center; justify-self: center; color: var(--muted); text-align: center; }
html[data-theme="dark"] .preview-stage { border-color: var(--line); } html[data-theme="dark"] .health-pill.is-good,html[data-theme="dark"] .job-status.is-clean { background: #173b32; color: #79d6b4; } html[data-theme="dark"] .health-pill.is-warn,html[data-theme="dark"] .job-status.is-error,html[data-theme="dark"] .job-status.is-infected { background: #3a2028; color: #f09aa2; } html[data-theme="dark"] .job-status.is-pending,html[data-theme="dark"] .job-status.is-scanning { background: #3a321c; color: #e9c268; }
@media (max-width:900px) { .link-form { grid-template-columns: 1fr 1fr; }.managed-links article { grid-template-columns: minmax(0,1fr) auto; }.managed-links article .danger-link { justify-self: start; }.operations-grid { grid-template-columns: 1fr; }.upload-jobs article { grid-template-columns: minmax(0,1fr) auto; }.upload-jobs article > small { grid-column: 1 / -1; } }
@media (max-width:680px) { .preview-head,.operations-hero { align-items: stretch; flex-direction: column; }.preview-stage { min-height: 300px; }.preview-frame,.preview-text { height: 62vh; }.svg-viewer { height: 62vh; }.svg-viewer-toolbar { align-items: stretch; flex-direction: column; }.svg-viewer-toolbar > div,.svg-viewer-actions { justify-content: space-between; }.preview-svg-image { width: 88%; margin: 30px; }.editor-file { grid-template-columns: 24px 32px minmax(0,1fr) 22px 22px 22px; }.editor-file > a { display: none; }.permanent-link-card { grid-template-columns: 1fr; }.link-form,.operations-kpis { grid-template-columns: 1fr; }.managed-links article { grid-template-columns: 1fr; }.operations-kpis article + article { border-top: 1px solid var(--line); border-left: 0; }.operations-hero { padding: 24px; }.status-metrics { grid-template-columns: 1fr; }.audit-list article { grid-template-columns: 25px minmax(0,1fr); }.audit-list time { grid-column: 2; } }

/* Fixelio Files 0.4.0 — parcours public, liens maîtrisés et statistiques réseau. */
.hero-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
.hero-actions + .hero-badges { margin-top: 18px; }
.public-journey { position: relative; z-index: 2; margin-top: -34px; }
.public-journey > .container { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); overflow: hidden; border: 1px solid var(--line); border-radius: 18px; background: color-mix(in srgb,var(--surface) 93%,transparent); box-shadow: 0 18px 48px rgba(18,43,72,.1); backdrop-filter: blur(16px); }
.public-journey article { min-width: 0; display: grid; grid-template-columns: 42px minmax(0,1fr); align-items: center; gap: 13px; padding: 20px 24px; }
.public-journey article + article { border-left: 1px solid var(--line); }
.public-journey article > span { width: 39px; height: 39px; display: grid; place-items: center; border-radius: 12px; background: var(--teal-soft); color: var(--teal-dark); font: 900 10px ui-monospace,SFMono-Regular,Menlo,monospace; }
.public-journey b,.public-journey small { display: block; }.public-journey b { font-size: 12px; }.public-journey small { margin-top: 2px; color: var(--muted); font-size: 10px; }
.context-nav { position: sticky; top: 76px; z-index: 20; border-bottom: 1px solid var(--line); background: color-mix(in srgb,var(--surface) 92%,transparent); backdrop-filter: blur(16px); }
.context-nav .container { min-height: 47px; display: flex; align-items: center; gap: 9px; overflow: hidden; color: var(--muted); font-size: 11px; }
.context-nav a { flex: 0 0 auto; color: var(--teal-dark); font-weight: 800; text-decoration: none; }.context-nav b { overflow: hidden; color: var(--ink); text-overflow: ellipsis; white-space: nowrap; }
.context-nav .context-action { margin-left: auto; padding: 6px 10px; border-radius: 8px; background: var(--teal-soft); }
.files-title > p b { color: var(--ink); }
.file-toolbar { position: sticky; top: 135px; z-index: 15; display: grid; grid-template-columns: minmax(240px,.75fr) minmax(0,1.25fr); align-items: center; gap: 14px; margin-bottom: 17px; padding: 12px; border: 1px solid var(--line); border-radius: 15px; background: color-mix(in srgb,var(--surface) 94%,transparent); box-shadow: 0 10px 28px rgba(18,43,72,.07); backdrop-filter: blur(16px); }
.file-search { position: relative; display: block; }.file-search > span { position: absolute; top: 50%; left: 14px; z-index: 1; color: var(--teal-dark); transform: translateY(-50%); }.file-search input { min-height: 48px; padding-left: 42px; border-radius: 11px; background: var(--surface-soft); }
.file-filters { min-width: 0; display: flex; justify-content: flex-end; gap: 6px; overflow-x: auto; scrollbar-width: thin; }
.file-filters button { min-height: 38px; display: inline-flex; flex: 0 0 auto; align-items: center; gap: 7px; padding: 0 11px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface); color: var(--muted); font-size: 10px; font-weight: 800; cursor: pointer; }
.file-filters button b { min-width: 20px; padding: 2px 5px; border-radius: 999px; background: var(--surface-soft); color: var(--muted); font-size: 8px; }
.file-filters button:hover,.file-filters button.is-active { border-color: color-mix(in srgb,var(--teal) 50%,var(--line)); background: var(--teal-soft); color: var(--teal-dark); }
.file-card { min-height: 98px; padding: 17px 18px; transition: border-color .18s ease,box-shadow .18s ease,transform .18s ease; }.file-card:hover { border-color: color-mix(in srgb,var(--teal) 35%,var(--line)); box-shadow: 0 11px 26px rgba(21,43,73,.075); transform: translateY(-1px); }.file-card[hidden] { display: none; }
.file-copy p { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.file-meta { display: flex; flex-wrap: wrap; gap: 5px 12px; margin-top: 7px; color: var(--muted); font-size: 9px; }.file-meta span { position: relative; }.file-meta span + span::before { position: absolute; left: -7px; color: color-mix(in srgb,var(--muted) 45%,transparent); content: "·"; }
.file-actions { flex-wrap: wrap; justify-content: flex-end; }.file-actions .file-action { min-height: 38px; padding-inline: 11px; font-size: 10px; white-space: nowrap; }
.file-search-empty { padding: 55px 20px; border: 1px dashed var(--line); border-radius: 15px; text-align: center; }.file-search-empty[hidden] { display: none; }.file-search-empty > span { color: var(--teal); font-size: 30px; }.file-search-empty h3 { margin: 9px 0 3px; }.file-search-empty p { margin: 0; color: var(--muted); }

.admin-welcome { padding: 29px; border: 1px solid var(--line); border-radius: 21px; background: radial-gradient(circle at 92% 10%,color-mix(in srgb,var(--teal) 11%,transparent),transparent 31%),var(--surface); box-shadow: 0 14px 38px rgba(18,43,72,.06); }
.admin-quick-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 19px; }
.admin-workflow { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; margin-top: 26px; padding-top: 20px; border-top: 1px solid var(--line); }
.admin-workflow article { min-width: 0; display: grid; grid-template-columns: 33px minmax(0,1fr); align-items: center; gap: 9px; padding: 10px; border: 1px solid transparent; border-radius: 11px; opacity: .58; }
.admin-workflow article > span { width: 31px; height: 31px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-soft); color: var(--muted); font-size: 10px; font-weight: 900; }
.admin-workflow b,.admin-workflow small { display: block; }.admin-workflow b { font-size: 10px; }.admin-workflow small { margin-top: 2px; color: var(--muted); font-size: 8px; line-height: 1.4; }
.admin-workflow article.is-current { border-color: color-mix(in srgb,var(--teal) 28%,var(--line)); background: var(--teal-soft); opacity: 1; }.admin-workflow article.is-current > span { border-color: var(--teal); background: var(--teal); color: white; }
.admin-workflow article.is-done { opacity: 1; }.admin-workflow article.is-done > span { border-color: color-mix(in srgb,var(--green) 30%,var(--line)); background: color-mix(in srgb,var(--green) 12%,var(--surface)); color: var(--green); }
.admin-section-head > div > p { margin: 4px 0 0; color: var(--muted); font-size: 10px; }
.admin-collection { min-height: 84px; padding: 14px 17px; transition: .16s ease; }.admin-collection:hover { border-color: color-mix(in srgb,var(--teal) 30%,var(--line)); box-shadow: 0 9px 25px rgba(21,43,73,.065); }.admin-collection > .button { min-width: 116px; }
.destination-empty { min-height: 130px; display: grid; place-items: center; color: var(--teal); font-size: 44px; }
.destination-list { display: grid; gap: 8px; margin-top: 18px; }.destination-list > button { display: grid; grid-template-columns: 48px minmax(0,1fr) auto; align-items: center; gap: 12px; padding: 12px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); text-align: left; cursor: pointer; }.destination-list > button:hover { border-color: var(--teal); background: var(--teal-soft); }.destination-list .admin-collection-icon { width: 46px; height: 46px; border-radius: 11px; }.destination-list b,.destination-list small { display: block; }.destination-list small { margin-top: 2px; color: var(--muted); font-size: 9px; }.destination-list em { color: var(--teal-dark); font-style: normal; }
.modal-step { display: flex; align-items: center; gap: 11px; margin-bottom: 22px; }.modal-step > span,.editor-block header > span,.editor-block-title > span { width: 34px; height: 34px; display: grid; flex: 0 0 34px; place-items: center; border-radius: 10px; background: var(--teal-soft); color: var(--teal-dark); font-size: 11px; font-weight: 900; }.modal-step b,.modal-step small { display: block; }.modal-step small { color: var(--muted); font-size: 9px; }
.editor-progress { display: flex; gap: 6px; margin-top: 22px; padding: 7px; overflow-x: auto; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-soft); }.editor-progress a { min-height: 38px; display: inline-flex; flex: 1 0 auto; align-items: center; justify-content: center; gap: 7px; padding: 0 11px; border-radius: 8px; color: var(--muted); font-size: 9px; font-weight: 850; text-decoration: none; }.editor-progress a:hover { background: var(--surface); color: var(--teal-dark); }.editor-progress a span { width: 20px; height: 20px; display: grid; place-items: center; border-radius: 6px; background: var(--surface); color: var(--teal-dark); }.editor-progress a b { padding: 2px 6px; border-radius: 999px; background: var(--teal-soft); color: var(--teal-dark); font-size: 8px; }
.editor-grid { grid-template-columns: minmax(0,.9fr) minmax(390px,1.1fr); align-items: start; gap: 16px; margin-top: 14px; }
.editor-settings { display: grid; gap: 12px; padding: 0; border: 0; background: transparent; }.editor-block { display: grid; gap: 13px; padding: 17px; scroll-margin-top: 14px; border: 1px solid var(--line); border-radius: 13px; background: var(--surface-soft); }.editor-block header,.editor-block-title { display: flex; align-items: center; gap: 10px; }.editor-block header h3,.editor-block-title h3 { margin: 0; font-size: 13px; }.editor-block header p,.editor-block-title p { margin: 2px 0 0; color: var(--muted); font-size: 9px; }.editor-block textarea { min-height: 82px; }
.editor-files { min-height: 520px; scroll-margin-top: 14px; }.editor-files-head { align-items: flex-start; }.editor-files-head > .editor-block-title { align-items: center; }.editor-empty h3 { margin: 10px 0 0; font-size: 13px; }.editor-empty p { max-width: 330px; margin: 5px 0 14px; text-align: center; }
.editor-savebar { grid-column: 1 / -1; position: sticky; bottom: -31px; z-index: 5; display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 3px -31px -31px; padding: 14px 31px; border-top: 1px solid var(--line); background: color-mix(in srgb,var(--surface) 94%,transparent); box-shadow: 0 -10px 28px rgba(18,43,72,.06); backdrop-filter: blur(16px); }.editor-savebar > div { display: flex; align-items: center; gap: 13px; }.editor-savebar span { color: var(--muted); font-size: 9px; }

html[data-theme="dark"] .public-journey > .container,html[data-theme="dark"] .file-toolbar,html[data-theme="dark"] .context-nav,html[data-theme="dark"] .editor-savebar { background: color-mix(in srgb,var(--surface) 92%,transparent); }
html[data-theme="dark"] .file-filters button,html[data-theme="dark"] .destination-list > button { background: var(--surface); }
html[data-theme="dark"] .file-filters button:hover,html[data-theme="dark"] .file-filters button.is-active,html[data-theme="dark"] .destination-list > button:hover,html[data-theme="dark"] .admin-workflow article.is-current { background: color-mix(in srgb,var(--teal) 16%,var(--surface)); }
html[data-theme="dark"] .admin-workflow article.is-current > span { color: white; }

@media (max-width:1100px) { .file-toolbar { grid-template-columns: 1fr; }.file-filters { justify-content: flex-start; }.file-card { grid-template-columns: 62px minmax(0,1fr); }.file-actions { grid-column: 1 / -1; justify-content: flex-end; }.admin-workflow { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width:980px) { .editor-grid { grid-template-columns: 1fr; }.editor-files { min-height: 0; }.editor-savebar { bottom: -25px; margin-inline: -17px; margin-bottom: -25px; padding-inline: 17px; } }
@media (max-width:680px) { .hero-actions { align-items: stretch; flex-direction: column; }.hero-actions .button { width: 100%; }.public-journey { margin-top: 0; }.public-journey > .container { grid-template-columns: 1fr; border-radius: 0; }.public-journey article { padding: 14px 16px; }.public-journey article + article { border-top: 1px solid var(--line); border-left: 0; }.context-nav { top: 67px; }.context-nav .container { min-height: 42px; }.context-nav .container > a:first-child,.context-nav .container > span:first-of-type { display: none; }.file-toolbar { top: 109px; padding: 9px; }.file-card { grid-template-columns: 50px minmax(0,1fr); padding: 14px; }.file-actions { justify-content: stretch; }.file-actions .file-action { flex: 1 1 calc(50% - 5px); }.file-actions .file-action:last-child { flex-basis: 100%; }.file-meta span:nth-child(3) { display: none; }.admin-welcome { padding: 20px 16px; }.admin-workflow { grid-template-columns: 1fr; }.admin-workflow article { padding: 7px; }.admin-section-head { align-items: stretch; flex-direction: column; gap: 12px; }.admin-section-head > button { width: 100%; }.editor-progress { margin-right: 25px; }.editor-progress a { flex: 0 0 auto; }.editor-block { padding: 14px; }.editor-savebar { align-items: stretch; flex-direction: column-reverse; }.editor-savebar > div { align-items: stretch; flex-direction: column; }.editor-savebar > div .button { width: 100%; }.editor-savebar span { text-align: center; } }

/* Liens temporaires, statistiques par élément et journal réseau — v0.4.0. */
.editor-file-stats { display: flex; flex-wrap: wrap; gap: 4px 10px; margin-top: 7px; color: var(--muted); font-size: 8px; }
.editor-file-stats span { position: relative; }
.editor-file-stats span + span::before { position: absolute; left: -6px; color: color-mix(in srgb,var(--muted) 45%,transparent); content: "·"; }
.temporary-quota { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin: 20px 0 8px; padding: 12px 15px; border: 1px solid color-mix(in srgb,var(--teal) 30%,var(--line)); border-radius: 12px; background: var(--teal-soft); }
.temporary-quota b { color: var(--teal-dark); font-size: 11px; }
.temporary-quota span { color: var(--muted); font-size: 9px; text-align: right; }
.temporary-quota.is-full { border-color: color-mix(in srgb,var(--danger) 35%,var(--line)); background: color-mix(in srgb,var(--danger) 8%,var(--surface)); }
.temporary-quota.is-full b { color: var(--danger); }
.managed-links article { grid-template-columns: minmax(230px,1fr) minmax(235px,.8fr) auto auto auto; }
.managed-link-ip { display: flex; align-items: end; gap: 7px; }
.managed-link-ip label { min-width: 0; margin: 0; font-size: 8px; }
.managed-link-ip input { min-width: 150px; min-height: 36px; padding: 7px 9px; font: 10px ui-monospace,SFMono-Regular,Menlo,monospace; }
.managed-link-ip .button { min-height: 36px; padding-inline: 10px; white-space: nowrap; }
.item-stat-strip { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; margin: 18px 0; }
.item-stat-strip article { min-width: 0; padding: 13px; border: 1px solid var(--line); border-radius: 11px; background: var(--surface-soft); }
.item-stat-strip span,.item-stat-strip b { display: block; }
.item-stat-strip span { color: var(--muted); font-size: 8px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.item-stat-strip b { margin-top: 5px; overflow: hidden; color: var(--ink); font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.item-access-log,.item-access-empty { margin: 0 0 18px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
.item-access-log summary { padding: 12px 14px; color: var(--teal-dark); font-size: 10px; font-weight: 850; cursor: pointer; }
.item-access-log summary b { margin-left: 5px; padding: 2px 6px; border-radius: 999px; background: var(--teal-soft); }
.item-access-log > div { max-height: 190px; overflow: auto; border-top: 1px solid var(--line); }
.item-access-log article { display: grid; grid-template-columns: minmax(120px,.55fr) minmax(0,1fr) auto; align-items: center; gap: 12px; padding: 9px 14px; border-bottom: 1px solid var(--line); }
.item-access-log article:last-child { border-bottom: 0; }
.item-access-log code { color: var(--teal-dark); font-size: 9px; }
.item-access-log span,.item-access-log time,.item-access-empty { color: var(--muted); font-size: 9px; }
.item-access-empty { padding: 13px 15px; }
.network-access-list { display: grid; max-height: 440px; overflow: auto; }
.network-access-list article { display: grid; grid-template-columns: minmax(125px,.55fr) auto minmax(0,1fr) auto; align-items: center; gap: 11px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.network-access-list article:last-child { border-bottom: 0; }
.network-access-list code { color: var(--teal-dark); font-size: 9px; }
.network-access-list .ip-version { padding: 4px 7px; border-radius: 999px; background: var(--teal-soft); color: var(--teal-dark); font-size: 8px; font-weight: 900; }
.network-access-list b,.network-access-list small { display: block; }
.network-access-list b { overflow: hidden; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.network-access-list small,.network-access-list time { color: var(--muted); font-size: 8px; }
@media (max-width:1000px) { .managed-links article { grid-template-columns: minmax(0,1fr) auto auto; }.managed-link-ip { grid-column: 1 / -1; grid-row: 2; }.item-stat-strip { grid-template-columns: repeat(2,minmax(0,1fr)); }.network-access-list article { grid-template-columns: minmax(120px,.55fr) auto minmax(0,1fr); }.network-access-list time { grid-column: 3; } }
@media (max-width:680px) { .temporary-quota { align-items: flex-start; flex-direction: column; }.temporary-quota span { text-align: left; }.managed-links article { grid-template-columns: 1fr; }.managed-link-ip { grid-column: auto; grid-row: auto; align-items: stretch; flex-direction: column; }.managed-link-ip input { width: 100%; }.item-stat-strip { grid-template-columns: 1fr 1fr; }.item-access-log article,.network-access-list article { grid-template-columns: 1fr auto; }.item-access-log span,.item-access-log time,.network-access-list article > div,.network-access-list time { grid-column: 1 / -1; }.network-access-list time { justify-self: start; } }

/* Fixelio Files 0.4.3 — gestion confortable, lisible et liens directs réutilisables. */
.admin-shell { --side: 292px; font-size: 16px; }
.admin-sidebar { padding: 32px 22px 24px; }
.admin-sidebar .brand img { width: 138px; }
.admin-sidebar .brand span { padding: 5px 8px; font-size: 12px; }
.admin-sidebar nav { gap: 9px; margin-top: 52px; }
.admin-sidebar nav button { min-height: 56px; grid-template-columns: 28px minmax(0,1fr) auto; gap: 12px; padding: 0 15px; border-radius: 13px; font-size: 14px; font-weight: 750; }
.admin-sidebar nav button > :first-child { font-size: 18px; }
.admin-sidebar nav b { padding: 3px 8px; font-size: 11px; }
.sidebar-note { gap: 12px; padding: 16px; border-radius: 14px; }
.sidebar-note b { font-size: 13px; }
.sidebar-note small { margin-top: 4px; font-size: 11px; line-height: 1.45; }
.admin-user { grid-template-columns: 42px minmax(0,1fr) 24px; gap: 11px; margin-top: 16px; padding: 17px 4px 0; }
.avatar { width: 42px; height: 42px; font-size: 15px; }
.admin-user b { max-width: 170px; font-size: 13px; }
.admin-user small { max-width: 170px; font-size: 11px; }
.admin-user a { font-size: 20px; }
.admin-header { min-height: 88px; gap: 15px; padding: 0 34px; }
.admin-header > div b { font-size: 18px; }
.admin-header .eyebrow { font-size: 10px; }
.admin-header .button { min-height: 46px; padding-inline: 17px; font-size: 13px; }
.session-clock { min-height: 46px; padding-inline: 14px; border-radius: 12px; }
.session-clock span { font-size: 9px; }
.admin-header > .session-clock b { font-size: 13px; }
.theme-switcher summary { min-height: 46px; padding-inline: 13px; border-radius: 12px; }
.theme-current-label { font-size: 13px; }
.admin-main { width: min(100%, 1580px); margin: 0 auto; padding: 42px clamp(28px,3vw,52px) 70px; }
.admin-welcome { padding: clamp(30px,3vw,46px); border-radius: 26px; box-shadow: 0 18px 48px rgba(18,43,72,.07); }
.admin-intro { align-items: center; gap: 42px; }
.admin-intro h1 { font-size: clamp(38px,4vw,52px); letter-spacing: -.035em; }
.admin-intro p { max-width: 680px; margin-top: 10px; font-size: 16px; line-height: 1.65; }
.admin-quick-actions { gap: 11px; margin-top: 25px; }
.admin-quick-actions .button { min-height: 48px; font-size: 14px; }
.admin-stats { flex: 0 0 auto; border-radius: 17px; }
.admin-stats article { min-width: 155px; padding: 19px 21px; }
.admin-stats span { font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.admin-stats b { margin: 5px 0 3px; font-size: 27px; }
.admin-stats small { font-size: 11px; }
.admin-workflow { gap: 13px; margin-top: 34px; padding-top: 28px; }
.admin-workflow article { grid-template-columns: 43px minmax(0,1fr); gap: 13px; min-height: 78px; padding: 14px; border-radius: 15px; }
.admin-workflow article > span { width: 41px; height: 41px; border-radius: 12px; font-size: 13px; }
.admin-workflow b { font-size: 13px; }
.admin-workflow small { margin-top: 3px; font-size: 11px; line-height: 1.45; }
.admin-section { margin-top: 48px; }
.admin-section-head { margin-bottom: 20px; }
.admin-section-head h2 { margin-top: 6px; font-size: 27px; }
.admin-section-head > div > p { margin-top: 5px; font-size: 13px; }
.admin-section-head .button { min-height: 46px; font-size: 13px; }
.admin-collections { gap: 14px; }
.admin-collection { min-height: 116px; grid-template-columns: 72px minmax(0,1fr) auto auto; gap: 20px; padding: 20px 22px; border-radius: 18px; box-shadow: 0 8px 25px rgba(21,43,73,.045); }
.admin-collection-icon { width: 68px; height: 68px; border-radius: 18px; font-size: 27px; }
.admin-collection-copy > div { gap: 7px; }
.admin-collection-copy small { font-size: 11px; }
.admin-collection h3 { margin: 7px 0 3px; font-size: 19px; }
.admin-collection p { font-size: 12px; }
.admin-collection-meta { grid-template-columns: auto 34px; gap: 5px 13px; }
.admin-collection-meta b { font-size: 22px; }
.admin-collection-meta small { font-size: 11px; }
.admin-collection-meta .access-pill { padding: 7px 11px; font-size: 12px; }
.admin-collection > .button { min-width: 170px; min-height: 48px; font-size: 13px; }

.modal-wide { width: min(1380px, 100%); }
.modal-links { width: min(1200px, 96vw); }
.modal-picker { width: min(920px, 100%); }
.modal-upload { width: min(720px, 100%); }
.modal-wide,.modal-links,.modal-picker,.modal-upload { padding: clamp(28px,3vw,44px); border-radius: 24px; }
.modal h2 { font-size: clamp(30px,3vw,39px); line-height: 1.1; }
.modal > p,.link-manager-head p { font-size: 14px; line-height: 1.65; }
.modal-close { top: 18px; right: 18px; width: 43px; height: 43px; border-radius: 12px; font-size: 27px; }
.modal label { gap: 9px; font-size: 14px; }
.modal label small { font-size: 12px; line-height: 1.45; }
.modal input,.modal select { min-height: 50px; padding-inline: 14px; border-radius: 11px; font-size: 14px; }
.modal textarea { min-height: 112px; padding: 13px 14px; border-radius: 11px; font-size: 14px; line-height: 1.55; }
.modal .button { min-height: 46px; padding-inline: 16px; font-size: 13px; }
.modal .danger-link { min-height: 40px; padding: 0 8px; font-size: 13px; }
.editor-head { align-items: center; padding-right: 46px; }
.editor-head a,.editor-no-space-link { margin-top: 8px; font-size: 12px; }
.publish-state { margin-top: 0; padding: 8px 12px; font-size: 11px; }
.editor-progress { gap: 9px; margin-top: 28px; padding: 9px; border-radius: 15px; }
.editor-progress a { min-height: 48px; gap: 9px; padding-inline: 15px; border-radius: 11px; font-size: 12px; }
.editor-progress a span { width: 27px; height: 27px; border-radius: 8px; }
.editor-progress a b { padding: 3px 7px; font-size: 10px; }
.editor-grid { grid-template-columns: minmax(430px,.88fr) minmax(590px,1.12fr); gap: 22px; margin-top: 22px; }
.editor-settings { gap: 18px; }
.editor-block { gap: 18px; padding: 24px; border-radius: 18px; }
.editor-block header,.editor-block-title { gap: 14px; }
.editor-block header > span,.editor-block-title > span { width: 43px; height: 43px; flex-basis: 43px; border-radius: 13px; font-size: 14px; }
.editor-block header h3,.editor-block-title h3,.editor-settings h3,.editor-files h3 { font-size: 18px; }
.editor-block header p,.editor-block-title p { margin-top: 4px; font-size: 12px; line-height: 1.45; }
.two-fields,.three-fields { gap: 15px; }
.info-strip { padding: 14px 16px; border-radius: 12px; font-size: 13px; line-height: 1.5; }
.switch-row { min-height: 76px; padding: 15px 17px; border-radius: 13px; }
.switch-row b { font-size: 14px; }
.switch-row small { margin-top: 4px; font-size: 12px; line-height: 1.4; }
.switch-row i { width: 47px; height: 27px; }
.switch-row i::after { width: 21px; height: 21px; }
.switch-row input:checked + i::after { transform: translateX(20px); }
.editor-files { min-height: 650px; padding: 25px; border-radius: 18px; }
.editor-files-head { gap: 17px; padding-bottom: 19px; }
.editor-files-head p { margin-top: 4px; font-size: 12px; line-height: 1.45; }
.editor-files-head > div:last-child { flex-wrap: wrap; justify-content: flex-end; gap: 9px; }
.editor-files-head .button { min-height: 43px; padding-inline: 13px; font-size: 12px; }
.editor-file-list { gap: 12px; margin-top: 18px; }
.editor-file { grid-template-columns: 34px 50px minmax(0,1fr) auto; gap: 13px; min-height: 116px; padding: 15px; border-radius: 14px; background: var(--surface-soft); }
.drag-controls { gap: 5px; }
.drag-controls button { width: 30px; height: 28px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); font-size: 13px; }
.mini-file-icon { width: 48px; height: 48px; border-radius: 13px; font-size: 19px; }
.editor-file-copy { min-width: 0; }
.editor-file b { font-size: 14px; }
.editor-file span { margin-top: 3px; font-size: 11px; line-height: 1.4; }
.editor-file small { margin-top: 3px; font-size: 11px; }
.editor-file-copy code { margin-top: 8px; font-size: 10px; }
.editor-file-stats { gap: 6px 15px; margin-top: 10px; font-size: 10px; }
.editor-file-actions { display: grid; grid-template-columns: repeat(2,minmax(115px,1fr)); gap: 7px; }
.file-action-button { min-height: 39px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 0 10px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); color: var(--teal-dark); font-size: 11px; font-weight: 800; text-decoration: none; cursor: pointer; }
.file-action-button:hover { border-color: color-mix(in srgb,var(--teal) 45%,var(--line)); background: var(--teal-soft); }
.file-action-button.is-danger { color: var(--danger); }
.file-action-button.is-danger:hover { border-color: color-mix(in srgb,var(--danger) 40%,var(--line)); background: color-mix(in srgb,var(--danger) 8%,var(--surface)); }
.editor-savebar { bottom: -44px; margin: 8px -44px -44px; padding: 18px 44px; }
.editor-savebar > div { gap: 18px; }
.editor-savebar span { max-width: 520px; font-size: 12px; line-height: 1.45; }

.picker-toolbar { gap: 15px; margin: 25px 0 16px; }
.picker-toolbar label { width: 250px; }
.picker-path { padding: 13px 15px; border-radius: 11px; font-size: 12px; }
.picker-manual { padding: 14px 15px; border-radius: 12px; }
.picker-manual summary { font-size: 13px; }
.picker-manual small { font-size: 11px; }
.picker-content { min-height: 310px; border-radius: 14px; }
.picker-row { min-height: 64px; grid-template-columns: 45px minmax(0,1fr) auto; gap: 13px; padding: 9px 16px; }
.picker-entry { grid-template-columns: 45px minmax(0,1fr) auto; gap: 13px; }
.picker-row > i,.picker-entry > i { width: 42px; height: 42px; border-radius: 11px; }
.picker-check { width: 30px; height: 30px; border-radius: 9px; }
.picker-row b { font-size: 14px; }
.picker-row small { margin-top: 2px; font-size: 11px; }
.picker-row em { font-size: 12px; }
.picker-selection { padding: 16px; border-radius: 14px; }
.picker-selection > span b { font-size: 17px; }
.picker-selection > span small { font-size: 11px; }

.link-manager-head .back-link { margin-bottom: 22px; font-size: 13px; }
.item-stat-strip { gap: 12px; margin: 24px 0; }
.item-stat-strip article { padding: 17px; border-radius: 14px; }
.item-stat-strip span { font-size: 10px; }
.item-stat-strip b { margin-top: 7px; font-size: 19px; }
.item-access-log summary { padding: 16px 18px; font-size: 13px; }
.item-access-log article { min-height: 48px; padding: 12px 18px; }
.item-access-log code { font-size: 11px; }
.item-access-log span,.item-access-log time,.item-access-empty { font-size: 11px; }
.permanent-link-card { gap: 13px; margin-top: 24px; padding: 20px; border-radius: 16px; }
.permanent-link-card b { margin: 6px 0; font-size: 14px; }
.permanent-link-card code { font-size: 11px; }
.temporary-quota { margin: 26px 0 12px; padding: 16px 19px; border-radius: 14px; }
.temporary-quota b { font-size: 14px; }
.temporary-quota span { font-size: 12px; }
.link-form { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 17px; margin: 16px 0 24px; padding: 22px; border-radius: 17px; }
.link-form > .button { grid-column: 1 / -1; min-height: 50px; }
.managed-links { gap: 14px; max-height: 55vh; }
.managed-links article { grid-template-columns: minmax(0,1.2fr) minmax(330px,.8fr); align-items: start; gap: 18px 24px; padding: 20px; border-radius: 16px; }
.managed-link-copy b { font-size: 15px; }
.managed-links small { margin-top: 4px; font-size: 11px; line-height: 1.5; }
.managed-links code { max-width: none; margin-top: 10px; font-size: 11px; }
.managed-link-ip { align-items: end; gap: 10px; }
.managed-link-ip label { font-size: 12px; }
.managed-link-ip input { min-width: 180px; min-height: 46px; padding-inline: 12px; font-size: 12px; }
.managed-link-ip .button { min-height: 46px; }
.managed-link-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 9px; padding-top: 14px; border-top: 1px solid var(--line); }
.managed-link-actions .danger-link { margin-left: auto; }

.operations-page { gap: 24px; }
.operations-hero { padding: 40px; border-radius: 26px; }
.operations-hero p { max-width: 780px; font-size: 15px; line-height: 1.65; }
.operations-kpis { border-radius: 19px; }
.operations-kpis article { gap: 6px; min-height: 125px; padding: 25px 28px; }
.operations-kpis span { font-size: 11px; }
.operations-kpis b { font-size: 34px; }
.operations-kpis small { font-size: 12px; line-height: 1.45; }
.operations-grid { gap: 22px; }
.operations-card { padding: 28px; border-radius: 20px; }
.operations-card h2 { font-size: 23px; }
.operations-card-head > small,.status-card > small,.status-card > p { font-size: 12px; }
.top-files article { min-height: 56px; padding: 13px 0; }
.top-files b { font-size: 13px; }
.top-files small { margin-top: 3px; font-size: 11px; }
.top-files article > span { font-size: 13px; }
.status-metrics span { padding: 15px; font-size: 11px; }
.status-metrics b { font-size: 22px; }
.backup-list { gap: 7px; font-size: 11px; }
.audit-list article { min-height: 52px; padding: 13px 0; }
.audit-list article > i { width: 31px; height: 31px; }
.audit-list b { font-size: 13px; }
.audit-list span,.audit-list time { font-size: 11px; }
.upload-jobs article { min-height: 58px; padding: 13px 0; }
.upload-jobs b { font-size: 13px; }
.upload-jobs small { font-size: 11px; }
.network-access-list article { min-height: 55px; gap: 14px; padding: 13px 0; }
.network-access-list code { font-size: 11px; }
.network-access-list .ip-version { padding: 5px 9px; font-size: 10px; }
.network-access-list b { font-size: 13px; }
.network-access-list small,.network-access-list time { font-size: 11px; }

@media (max-width:1280px) {
  .admin-shell { --side: 270px; }
  .admin-sidebar { padding-inline: 18px; }
  .admin-main { padding-inline: 28px; }
  .admin-intro { align-items: flex-start; flex-direction: column; }
  .admin-stats { width: 100%; }
  .admin-stats article { flex: 1; }
  .editor-grid { grid-template-columns: 1fr; }
  .editor-files { min-height: 0; }
  .editor-savebar { bottom: -28px; margin-inline: -28px; margin-bottom: -28px; padding-inline: 28px; }
}
@media (max-width:980px) {
  .admin-workflow { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .admin-collection { grid-template-columns: 62px minmax(0,1fr) auto; }
  .admin-collection-icon { width: 58px; height: 58px; }
  .admin-collection-meta { display: none; }
  .managed-links article { grid-template-columns: 1fr; }
  .managed-link-actions { grid-column: auto; }
}
@media (max-width:680px) {
  .admin-header { min-height: 72px; padding-inline: 14px; }
  .admin-main { padding: 24px 14px 45px; }
  .admin-welcome { padding: 24px 18px; }
  .admin-intro h1 { font-size: 38px; }
  .admin-intro p { font-size: 14px; }
  .admin-stats article { min-width: 145px; padding: 15px; }
  .admin-workflow { grid-template-columns: 1fr; }
  .admin-collection { grid-template-columns: 52px minmax(0,1fr); gap: 13px; padding: 17px; }
  .admin-collection-icon { width: 50px; height: 50px; border-radius: 14px; }
  .admin-collection > .button { grid-column: 1 / -1; width: 100%; min-width: 0; font-size: 13px; }
  .modal-wide,.modal-links,.modal-picker,.modal-upload { padding: 26px 17px; border-radius: 20px 20px 0 0; }
  .editor-progress { margin-right: 34px; }
  .editor-grid { gap: 15px; }
  .editor-block,.editor-files { padding: 17px; }
  .editor-files-head > div:last-child { width: 100%; justify-content: stretch; }
  .editor-files-head .button { flex: 1 1 auto; }
  .editor-file { grid-template-columns: 30px 45px minmax(0,1fr); }
  .editor-file-actions { grid-column: 1 / -1; grid-template-columns: repeat(2,1fr); width: 100%; }
  .editor-savebar { bottom: -26px; margin: 5px -17px -26px; padding: 16px 17px; }
  .link-form { grid-template-columns: 1fr; padding: 17px; }
  .managed-link-ip { align-items: stretch; flex-direction: column; }
  .managed-link-actions { justify-content: stretch; }
  .managed-link-actions .button { flex: 1; }
  .managed-link-actions .danger-link { width: 100%; margin-left: 0; }
  .item-stat-strip { grid-template-columns: 1fr 1fr; }
}
