/* Saint Paul — navigation, parcours et mouvement. Sans dépendance frontend. */
:root{--motion-fast:180ms;--motion-medium:380ms;--motion-slow:750ms;--focus-ring:0 0 0 4px #916b322b;--surface-warm:#f6f2e9}
html.reduce-motion *,html.reduce-motion *:before,html.reduce-motion *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
html.reduce-motion .reveal.is-hidden{opacity:1;transform:none}
html.reduce-motion::view-transition-group(*),html.reduce-motion::view-transition-old(*),html.reduce-motion::view-transition-new(*){animation:none!important}
[hidden]{display:none!important}
@view-transition{navigation:auto}
::view-transition-old(root){animation:sp-fade-out .18s ease both}
::view-transition-new(root){animation:sp-page-in .38s var(--ease) both}
@keyframes sp-fade-out{to{opacity:0}}
@keyframes sp-page-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes sp-rise{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes sp-toast{from{opacity:0;transform:translateY(-18px) scale(.98)}to{opacity:1;transform:none}}
@keyframes sp-glow{0%,100%{opacity:.28;transform:scale(.94)}50%{opacity:.55;transform:scale(1.04)}}
@keyframes sp-spin{to{transform:rotate(360deg)}}
@keyframes sp-line{from{transform:scaleX(0)}to{transform:scaleX(1)}}
body{overflow-wrap:break-word}
.admin-main,.profile-page{min-width:0}
.admin-title,.page-hero .container{animation:sp-page-in .65s var(--ease) both}
.hero-copy>.eyebrow{animation:sp-rise .7s var(--ease) both}
.hero-copy h1{animation:sp-rise .95s var(--ease) .08s both}
.hero-description,.hero-copy .button-row{animation:sp-rise .95s var(--ease) .2s both}
.hero-art{animation:sp-page-in 1.2s var(--ease) .15s both}
.hero-art:before,.patron-page .article-image:before{content:"";position:absolute;inset:4%;border-radius:50%;background:radial-gradient(ellipse,#d8bd8e7a,transparent 67%);animation:sp-glow 8s ease-in-out 2;pointer-events:none}
.patron-page{overflow:clip}.patron-page .article-image{isolation:isolate;position:relative;top:0}
.patron-page .article-image:before{inset:-12%;z-index:-1}
.patron-page .scripture{position:relative;overflow:hidden;border-left:3px solid var(--gold);background:linear-gradient(125deg,#f5eedf,#fbf9f4);padding:32px}
.patron-page .scripture:after{content:"✝";position:absolute;right:18px;bottom:-20px;color:#916b3212;font-size:160px;pointer-events:none}
.js .reveal{transition:opacity .8s var(--ease),transform .8s var(--ease)}
.js .reveal.is-hidden{opacity:0;transform:translateY(30px)}
.button,.card,.stat,.procedure-card,.article-card,.event-card{transition:transform .3s var(--ease),box-shadow .3s var(--ease),background-color .25s,border-color .25s}
.button{min-height:44px;position:relative;gap:10px}
.button:active{transform:translateY(1px) scale(.98)}
.button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:4px}
@media(hover:hover){.button:hover{transform:translateY(-2px);box-shadow:0 8px 22px #142e4020}.stat:hover,.procedure-card:hover,.article-card:hover,.event-card:hover{transform:translateY(-5px);box-shadow:0 14px 32px #142e4012}}
.button.loading:after{content:"";width:15px;height:15px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:sp-spin .7s linear infinite}
.button.loading{opacity:.8;pointer-events:none}
.field input:focus,.field select:focus,.field textarea:focus{box-shadow:var(--focus-ring);border-color:var(--gold);outline:0}
.field input,.field textarea,.field select{transition:box-shadow .2s,border-color .2s;background-color:#fff}
.field-hint{line-height:1.6}.field-error{display:block;font-weight:600}
.password-wrap{position:relative}.password-wrap input{padding-right:85px}.password-toggle{position:absolute;right:7px;top:50%;transform:translateY(-50%);min-height:40px;background:transparent;border:0;color:var(--navy);font-size:12px;padding:8px}
.alert{animation:sp-toast .5s var(--ease) both;position:relative;padding-right:46px}.alert.success{border-left:4px solid #367659;box-shadow:0 8px 24px #36765912}
.alert-close{position:absolute;right:8px;top:8px;border:0;background:transparent;color:inherit;min-width:36px;min-height:36px;font-size:22px}
.copy-feedback{animation:sp-toast .3s var(--ease) both}
.confirm-dialog[open]{animation:sp-toast .3s var(--ease) both}.confirm-dialog::backdrop{background:#0d22317a;backdrop-filter:blur(3px)}
.confirm-dialog .eyebrow{font-size:10px}.confirm-dialog{max-width:calc(100% - 32px)}
.back-link{display:inline-flex;margin-bottom:24px;min-height:32px;align-items:center}
.button-small{padding:8px 14px;font-size:13px;white-space:nowrap}
.form-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:28px;border-top:1px solid var(--line);padding-top:22px}
.account-menu{position:relative;margin:0!important;padding:0!important;border:0!important;min-width:0}
.account-menu>summary{display:flex;align-items:center;gap:10px;font:500 13px var(--sans);min-height:44px;list-style:none;cursor:pointer;color:var(--navy)}
.account-menu summary::-webkit-details-marker{display:none}.account-menu>summary:after{display:none}
.account-name{max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.account-dropdown{position:absolute;z-index:110;right:0;top:calc(100% + 12px);width:275px;max-width:calc(100vw - 32px);padding:22px;background:var(--white);border:1px solid var(--line);border-radius:10px;box-shadow:0 18px 50px #142e4026;animation:sp-toast .25s var(--ease) both}
.account-dropdown>strong,.account-dropdown>small{display:block;overflow-wrap:anywhere}.account-dropdown>small{margin:4px 0 12px;color:var(--muted)}
.account-dropdown>a{display:flex;align-items:center;gap:10px;min-height:44px;border-top:1px solid var(--line);font-size:14px}.account-dropdown form{margin-top:10px}.account-dropdown button{margin:0!important;min-height:44px}
.account-login{display:inline-flex;gap:8px;align-items:center;min-height:44px;font-size:13px;white-space:nowrap}
.header-inner{gap:22px}.header-inner>.account-menu,.header-inner>.account-login{margin-left:auto!important}
@media(min-width:951px){.header-inner>.main-nav{flex:1;justify-content:center}.header-inner>.account-menu,.header-inner>.account-login{margin-left:0!important;flex-shrink:0}}
.admin-top>.account-menu{margin-left:auto!important}.admin-top{z-index:80;gap:16px}
.sidebar{padding-bottom:22px}.sidebar nav{gap:5px}.sidebar nav a{min-height:44px;font-size:13px;line-height:1.45}
.sidebar .nav-group{padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;margin:5px 0;color:#fff}
.nav-group>summary{padding:12px 8px;color:#d8bd8e;font:600 10px/1.5 var(--sans);text-transform:uppercase;letter-spacing:1.4px;list-style:none;display:flex;align-items:center;justify-content:space-between}
.nav-group>summary:after{content:"＋";color:#d8bd8e;font-size:16px;position:static}.nav-group[open]>summary:after{content:"−"}.nav-group>div{display:grid;gap:3px}
.sidebar a[aria-current]{background:#ffffff12;border-radius:5px;border-left:3px solid var(--gold-light)}
.sidebar .back-site{display:block;padding-top:20px}.sidebar-caption{margin-bottom:10px}
.compact-stats{margin:24px 0 38px}.compact-stats .stat{padding:22px 24px}.compact-stats .stat>span{font-size:13px}.compact-stats .stat>strong{display:block;margin-top:8px}
.admin-main .section-heading h2{font-size:30px}.section-heading p{margin:8px 0 0;color:var(--muted)}
.filters.card{padding:22px;align-items:end}.filters .field{min-width:150px}.filters .field:first-child{flex:2}.filters .field{flex:1}
#user-results[aria-busy=true]{opacity:.5;transition:opacity .2s}.result-count{margin:0 0 12px}.responsive-table td{vertical-align:middle}.responsive-table td small{overflow-wrap:anywhere}
.role-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.role-choice{display:flex;align-items:flex-start;gap:12px;border:1px solid var(--line);padding:18px;border-radius:7px;cursor:pointer;background:#fff;transition:border-color .2s,background .2s}
.role-choice:has(input:checked){border-color:var(--gold);background:#f8f3e8}.role-choice input{width:18px;height:18px;flex:0 0 18px;margin-top:4px;accent-color:var(--navy)}.role-choice strong{display:block;font-size:14px}.role-choice small{display:block;line-height:1.65;margin-top:5px;color:var(--muted)}
.profile-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:28px;align-items:start}.profile-layout>*{min-width:0}.profile-page>.profile-layout{grid-template-columns:minmax(240px,1fr) minmax(0,2.2fr)}
.profile-identity{text-align:center;overflow-wrap:anywhere}.profile-identity h2{font-size:27px;margin:20px 0 10px}.profile-identity p{margin:8px 0;font-size:14px}.profile-identity small{color:var(--muted)}
.profile-photo,.profile-monogram{width:96px;height:96px;border-radius:50%;margin:auto;object-fit:cover}.profile-monogram{display:grid;place-items:center;background:var(--navy);color:var(--gold-light);font:44px var(--serif);box-shadow:0 0 0 7px var(--surface-warm)}
.profile-tabs{display:grid;gap:6px;margin-top:24px}.profile-tabs a{padding:15px 18px;border-radius:6px;font-size:14px;border:1px solid transparent}.profile-tabs a[aria-current]{background:#eee7d9;border-color:#d9c8a9;color:var(--navy);font-weight:600}
.profile-layout h2{font-size:28px}.access-history{list-style:none;padding:0;margin:0}.access-history li{display:flex;gap:14px;padding:18px 0;border-bottom:1px solid var(--line)}.access-history strong{display:block;font-size:14px}.access-history small{display:block;color:var(--muted);font-size:12px}.access-history p{margin:7px 0 0}.history-dot{flex:0 0 9px;width:9px;height:9px;background:var(--gold);border-radius:50%;margin-top:8px}
.status{line-height:1.5;white-space:normal;gap:5px}.status:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;display:inline-block;margin-right:5px;vertical-align:middle}
.status-active,.status-accepted{color:#226343;background:#e6f2e9}.status-invited,.status-unverified,.status-sending{color:#78501b;background:#faf0d9}.status-inactive,.status-cancelled,.status-revoked{color:#56616b;background:#eceeef}.status-completed,.status-celebrated{color:#244d70;background:#e7eef6}.status-failed,.status-refused{color:#913d45;background:#fae9ec}
.journey-step{border:0;padding:0;margin:0;min-width:0}.journey-progress{display:flex;list-style:none;padding:0;margin:0 0 30px;gap:8px;counter-reset:step}.journey-progress li{flex:1;border-top:3px solid var(--line);padding-top:12px;font-size:12px;color:var(--muted);counter-increment:step}.journey-progress li:before{content:"0" counter(step) " · ";font-weight:700}.journey-progress li[aria-current]{border-color:var(--gold);color:var(--navy);font-weight:600}.journey-progress li.is-complete{border-color:#367659}
.journey-controls{display:flex;gap:12px;justify-content:space-between;margin-top:28px}.journey-controls .button:last-child{margin-left:auto}.journey-step.is-entering{animation:sp-page-in .4s var(--ease) both}
.section-shortcuts{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:24px 0 30px}.shortcut{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);padding:18px;border-radius:7px;font-size:14px;min-height:62px}.shortcut svg{color:var(--gold);flex-shrink:0}.shortcut:hover{border-color:var(--gold)}
.chart-income,.chart-expense{transform-box:fill-box;transform-origin:bottom;animation:sp-chart .8s var(--ease) both}.chart-expense{animation-delay:.12s}@keyframes sp-chart{from{opacity:0;transform:scaleY(.05)}to{opacity:1;transform:scaleY(1)}}
.calendar-grid{animation:sp-page-in .55s var(--ease) both}.settings-panel{align-self:start}.settings-panel>summary{font-family:var(--serif);font-size:25px;color:var(--navy)}.settings-panel[open]>summary{margin-bottom:24px}.sticky-save{position:sticky;bottom:12px;background:#fbf9f4ed;backdrop-filter:blur(5px);padding:14px 18px;border:1px solid var(--line);border-radius:7px;margin-top:24px;text-align:right;z-index:5}
@media(min-width:951px) and (max-width:1250px){.main-nav{gap:15px}.main-nav>a{font-size:12px}.account-login span,.header-inner .account-name{display:none}.header-inner{gap:14px}}
@media(max-width:950px){.header-inner>.account-menu,.header-inner>.account-login{margin-left:0!important}.header-inner>.menu-toggle{margin-left:auto}.main-nav.is-open{animation:sp-page-in .3s var(--ease) both}.sidebar.is-open{animation:sp-page-in .3s var(--ease) both;box-shadow:12px 0 70px #142e403d}.profile-layout,.profile-page>.profile-layout{grid-template-columns:1fr}.profile-page>.profile-layout>aside{display:grid;grid-template-columns:1fr 1fr;gap:18px}.profile-tabs{margin:0}.role-choices{grid-template-columns:1fr}}
@media(max-width:600px){.account-name,.account-login span{display:none}.account-menu .avatar{display:grid;width:34px;height:34px}.header-inner{gap:12px}.account-dropdown{right:0}.admin-top .breadcrumb{flex:1;max-width:none;font-size:11px}.admin-top{gap:10px}.profile-page>.profile-layout>aside{display:block}.profile-tabs{display:flex;overflow:auto;gap:6px;margin-top:16px}.profile-tabs a{padding:12px;min-width:max-content;font-size:12px}.profile-identity{padding:22px!important}.profile-identity h2{margin:16px 0 8px}.profile-photo,.profile-monogram{width:74px;height:74px}.compact-stats .stat{padding:18px}.compact-stats .stat>span{font-size:11px}.compact-stats .stat>strong{font-size:30px}.section-heading{display:block}.section-heading>.button{margin-top:18px}.responsive-table,.table-scroll:has(.responsive-table){min-width:0!important;width:100%}.responsive-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.responsive-table tbody,.responsive-table tr,.responsive-table td{display:block;width:100%}.responsive-table tr{padding:14px 16px;margin-bottom:14px;background:#fff;border:1px solid var(--line);border-radius:8px}.responsive-table td{padding:8px 0;border:0;min-width:0;overflow-wrap:anywhere}.responsive-table td[data-label]:before{content:attr(data-label);display:block;font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin-bottom:3px}.responsive-table td:empty{display:none}.responsive-table .button{width:100%;justify-content:center}.form-actions{flex-wrap:wrap}.form-actions .button{flex:1}.journey-progress li{font-size:10px}.journey-progress li:before{display:block}.journey-controls .button{padding:12px 16px}.patron-page .scripture{padding:24px}.section-shortcuts{grid-template-columns:1fr 1fr}.shortcut{padding:14px;font-size:12px;gap:8px}.filters.card{padding:18px}.confirm-dialog .button-row{flex-wrap:wrap}.confirm-dialog .button{flex:1}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.js .reveal.is-hidden{opacity:1;transform:none}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}
@media print{.account-menu,.account-login,.profile-tabs,.journey-controls{display:none!important}.journey-step[hidden]{display:block!important}.responsive-table tr{break-inside:avoid}}
@media(max-width:600px){.filters.card .field:first-child{flex-basis:100%}}
.settings-groups{grid-template-columns:1fr}.settings-groups .settings-panel{height:auto}.settings-panel .field:has(textarea){grid-column:1/-1}
