/* Shared navigation and identity. */
.pesev-site-header,.pesev-site-footer{box-sizing:border-box;max-width:1200px;width:100%;margin:0 auto;color:#172741;font:14px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;text-align:left}
.pesev-site-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;padding:22px 24px;border:0;border-bottom:1px solid #e1e7f1;background:transparent;position:relative}
.pesev-tool-brand{display:flex;align-items:center;gap:12px;min-width:0;color:#172741;text-decoration:none}
.pesev-tool-brand>span:last-child{min-width:0}.pesev-tool-brand strong{display:block;margin:0;font-size:21px;font-weight:800;line-height:1.2;letter-spacing:-.6px}.pesev-tool-brand small{display:block;color:#586b85;font-size:12px;margin:4px 0 0;line-height:1.4;max-width:320px}
.pesev-tool-icon{box-sizing:border-box;display:inline-grid;place-items:center;flex-shrink:0;width:44px;height:44px;border-radius:14px;background:#e5edff;color:#315be8;border:0;box-shadow:none}
.pesev-ui-icon{display:block;flex-shrink:0;width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.pesev-tool-icon .pesev-ui-icon{width:27px;height:27px}.app-icon.pesev-tool-icon{width:53px;height:53px;border-radius:16px;background:#e5edff!important;color:#315be8;box-shadow:none!important}.app-icon.pesev-tool-icon .pesev-ui-icon{width:29px;height:29px}
.pesev-header-links{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:10px;min-width:0}
.pesev-site-header .pesev-home-link,.pesev-site-header .pesev-account-link{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;max-width:100%;padding:6px 12px;border:1px solid #dbe4f2;border-radius:12px;background:#fff;color:#2542c7;text-decoration:none;font:inherit;font-weight:650;white-space:nowrap}
.pesev-home-link .pesev-ui-icon{width:19px;height:19px}.pesev-site-header a:hover,.pesev-site-footer a:hover{background:#edf3ff;color:#2847d1}.pesev-site-header a:focus-visible,.pesev-site-footer a:focus-visible{outline:3px solid var(--pesev-link,#23211e);outline-offset:3px}.pesev-header-links .pesev-user-label{display:inline-flex;align-items:center;min-width:0;max-width:min(310px,55vw);text-overflow:clip}.pesev-header-links .pesev-user-name{min-width:0;max-width:18ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pesev-header-links .pesev-account-caption,.pesev-header-links .pesev-user-separator{flex-shrink:0}.pesev-header-links .pesev-user-separator{white-space:pre}
.pesev-site-footer{display:block;padding:22px 24px 28px;border:0;border-top:1px solid #e1e7f1;font-size:12px;background:transparent}
.pesev-footer-main{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;color:#586b85}
.pesev-site-footer .pesev-home-link{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:4px 8px;margin-left:-8px;border:0;border-radius:9px;color:#2542c7;font-weight:750;text-decoration:none}.pesev-footer-links{display:flex;flex-wrap:wrap;gap:14px;align-items:center}.pesev-footer-links a{display:inline-flex;align-items:center;min-height:44px;color:#586b85;text-decoration:none;padding:4px;border-radius:8px}
.pesev-footer-detail{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;color:#586b85;font-size:12px;overflow-wrap:anywhere}.pesev-footer-detail .unige-affiliation{width:100%;margin:0}.pesev-footer-detail img{max-width:100%;height:auto}.pesev-footer-detail .folio-pwa-controls{flex-wrap:wrap}
.pesev-tool-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:10px;margin:0 0 18px;min-width:0}.pesev-tool-toolbar>div{display:flex;flex-wrap:wrap;align-items:center;gap:8px;max-width:100%}.pesev-tool-toolbar button{min-height:44px}.pesev-tool-toolbar .top-actions{flex-wrap:wrap}.pesev-tool-toolbar [hidden]{display:none!important}
@media(max-width:600px){.pesev-header-links .pesev-user-name,.pesev-header-links .pesev-user-separator{display:none}.pesev-site-header{padding:16px;gap:14px}.pesev-header-links{width:100%;justify-content:space-between;gap:8px}.pesev-tool-brand strong{font-size:20px}.pesev-tool-brand small{max-width:240px}.pesev-site-header .pesev-account-link{padding:6px 10px}.pesev-site-footer{padding:18px 16px 24px}.pesev-footer-main{gap:4px 12px}.pesev-footer-links{gap:10px}.pesev-tool-toolbar{justify-content:flex-start}.pesev-tool-toolbar>div{width:100%}}
@media print{.pesev-site-header,.pesev-site-footer,.pesev-tool-toolbar{display:none!important}}

/* Application brands: only the title changes on hover, without a colored rectangle. */
html .pesev-site-header[data-pesev-tool]:not([data-pesev-tool=home]):not([data-pesev-tool=compte])>.pesev-tool-brand:hover{background:transparent;color:var(--pesev-ink,#172741)}
html .pesev-site-header[data-pesev-tool]:not([data-pesev-tool=home]):not([data-pesev-tool=compte])>.pesev-tool-brand:hover strong{color:var(--pesev-link,#23211e)}
html[data-pesev-theme=dark] .pesev-site-header[data-pesev-tool]:not([data-pesev-tool=home]):not([data-pesev-tool=compte])>.pesev-tool-brand:hover strong{color:var(--pesev-link,#b6c7ff)}

.pesev-backup{display:flex;align-items:center}.pesev-backup button,.pesev-backup-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border:1px solid var(--pesev-line,#dbe4f2);border-radius:10px;background:var(--pesev-surface,#fff);color:var(--pesev-link,#2542c7);padding:10px 14px;font:inherit;font-weight:650;cursor:pointer}.pesev-backup button:focus-visible{outline:3px solid var(--pesev-link,#2542c7);outline-offset:3px}.pesev-backup button:disabled{opacity:.5;cursor:not-allowed}[data-pesev-backup-original]{display:none!important}.pesev-sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.pesev-tools[data-state=clean],.cloudbar[data-state=clean]{border:0!important;box-shadow:none!important;padding:8px 18px;background:transparent!important}.pesev-tools .pesev-actions:empty{display:none}@media print{.pesev-backup{display:none}}

/* Native cursor images: no follower, timer, hidden pointer or document-editor override. */
@media (hover:hover) and (pointer:fine) {
  html {
    --pesev-card-cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Ccircle cx='8' cy='8' r='3' fill='%23172741' stroke='%23fff' stroke-width='1'/%3E%3C/svg%3E") 8 8, pointer;
    --pesev-button-cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Ccircle cx='12' cy='12' r='8' fill='none' stroke='%23172741' stroke-width='1'/%3E%3Ccircle cx='12' cy='12' r='3' fill='%23172741'/%3E%3C/svg%3E") 12 12, pointer;
  }
  html[data-pesev-theme=dark] {
    --pesev-card-cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Ccircle cx='8' cy='8' r='3' fill='%23e4eaf5' stroke='%23172741' stroke-width='1'/%3E%3C/svg%3E") 8 8, pointer;
    --pesev-button-cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Ccircle cx='12' cy='12' r='8' fill='none' stroke='%23e4eaf5' stroke-width='1'/%3E%3Ccircle cx='12' cy='12' r='3' fill='%23e4eaf5'/%3E%3C/svg%3E") 12 12, pointer;
  }
  html,html body {cursor:var(--pesev-card-cursor)}
  html body :is(a,button,summary,select,label,[role=button],.btn):not(:disabled):not([aria-disabled=true]) {cursor:var(--pesev-button-cursor)}
  html body :is(input,textarea,[role=textbox]), html body [contenteditable]:not([contenteditable=false]) {cursor:text}
  html body :is(input[type=checkbox],input[type=radio],input[type=range],input[type=color],input[type=file],input[type=button],input[type=submit],input[type=reset],input[type=image],input[type=hidden]) {cursor:auto}
  html body [draggable=true] {cursor:grab}
  html body [draggable=true]:active {cursor:grabbing}
  /* Explicit compatible controls; editors, canvas, inputs and draggable pages stay native. */
  html :is(.pesev-header-links,.pesev-site-footer,.pesev-account-menu,.pesev-preferences,.home-discovery,.home-empty) button:not(:disabled):not([aria-disabled=true]),
  html .pesev-favorite:not(:disabled), html .pesev-backup button:not(:disabled) {cursor:var(--pesev-button-cursor)}
}

/* Same-origin cross-document enhancement. Links and navigation remain entirely native. */

  @view-transition {navigation:auto}
  main {view-transition-name:pesev-content}
  /* Folio's main is only its viewer; Scan has no main landmark. */
  body:has([data-pesev-tool=folio]) .app-shell,
  body:has([data-pesev-tool=scan])>.shell {view-transition-name:pesev-content}
  body:has([data-pesev-tool=folio]) main {view-transition-name:none}
  .pesev-site-header {view-transition-name:pesev-header;z-index:20}
  .pesev-site-footer {view-transition-name:pesev-footer}
  ::view-transition-old(root),::view-transition-new(root) {animation:none;mix-blend-mode:normal}
  ::view-transition-group(pesev-content),::view-transition-group(pesev-header),::view-transition-group(pesev-footer) {animation:none}
  ::view-transition-group(pesev-header),::view-transition-group(pesev-footer) {z-index:2}
  ::view-transition-old(pesev-header),::view-transition-old(pesev-footer) {display:none}
  ::view-transition-new(pesev-header),::view-transition-new(pesev-footer) {animation:none}
  /* The previous page is never shown again over the new one; only the new content fades in. */
  ::view-transition-old(pesev-content) {display:none}
  ::view-transition-new(pesev-content) {animation:pesev-content-in 180ms ease-out both;mix-blend-mode:normal}
  .pesev-home-link .pesev-ui-icon,.home-search>svg {transition:transform 180ms ease-out}
  .pesev-home-link:is(:hover,:focus-visible) .pesev-ui-icon {transform:translateY(-1px)}
  .home-search:is(:hover,:focus-within)>svg {transform:scale(1.06)}
  .pesev-favorite svg {transition:fill-opacity 180ms ease-out}
  .pesev-favorite:not([aria-pressed=true]) svg {fill:currentColor;fill-opacity:0}
  .pesev-favorite[aria-pressed=true] svg {fill-opacity:1}

/* Day/night switch: the whole page is one snapshot, revealed in a circle from the button (personalization.js). */
html[data-pesev-theme-switching] *{view-transition-name:none!important}
@keyframes pesev-content-in {from {opacity:0;transform:translateY(4px)}to {opacity:1;transform:none}}
/* Lien d’évitement : invisible jusqu’au focus clavier, puis premier élément de la page. */
.pesev-skip-link{position:absolute;left:12px;top:-120px;z-index:10000;display:inline-flex;align-items:center;min-height:44px;padding:10px 16px;border-radius:10px;background:var(--pesev-ink,#23211e);color:var(--pesev-page,#fff);font:700 14px/1.2 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;text-decoration:none}
.pesev-skip-link:focus,.pesev-skip-link:focus-visible{top:12px;outline:3px solid var(--pesev-link,#2542c7);outline-offset:2px}
.pesev-footer-legal{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:center;margin:4px 0 0 -4px}
.pesev-footer-legal a{display:inline-flex;align-items:center;min-height:44px;padding:4px;border-radius:8px;color:#586b85;text-decoration:none}
html[data-pesev-accent] .pesev-footer-legal a{color:var(--pesev-muted)}
@media print{.pesev-skip-link{display:none!important}}
