/* A consistent mobile shell; the desktop documents retain their layout. */
.client-heading,.client-menu,.client-views,.client-dock,.client-contribution-action{display:none}
.client-sheet{background:var(--paper);color:var(--ink);width:min(560px,100%);max-height:85dvh;border:1px solid var(--line);padding:24px}
.client-sheet::backdrop{background:#181e18a6;backdrop-filter:blur(5px)}
.client-sheet-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:24px}
.client-sheet-header h2{font:42px/1.1 var(--serif);letter-spacing:-.04em;margin:8px 0 0}
.client-sheet-header>button{width:44px;height:44px;border:1px solid var(--line);border-radius:50%;font-size:28px;flex-shrink:0}
.client-nav-footer{display:grid;gap:18px;padding:24px 12px 0;border-top:1px solid var(--line);font-size:12px}
@media(max-width:900px){
 body[data-page]{--client-header:calc(74px + env(safe-area-inset-top));--client-tabs:56px;--client-dock:0px;--client-height:100dvh;--client-top:0px;--client-bottom:0px;height:100dvh;overflow:hidden;overscroll-behavior:none;background:var(--paper)}
 body [hidden],.client-panel-hidden{display:none!important}
 .app-header{position:fixed;top:var(--client-top);inset-inline:0;height:var(--client-header);width:100%;max-width:none;margin:0;padding:calc(12px + env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) 12px max(20px,env(safe-area-inset-left));display:flex;gap:15px;background:var(--paper);border-bottom:1px solid var(--line);z-index:10}
 .app-header .wordmark{font-size:15px;line-height:1;width:auto;white-space:nowrap;flex-shrink:0;letter-spacing:-.035em;gap:4px}
 .client-heading{display:block;margin:0;font:23px/1.1 var(--serif);letter-spacing:-.02em}
 .client-heading span{display:block;margin-top:5px;font:10px/1.2 var(--sans);color:var(--muted);letter-spacing:.015em;max-width:185px}
 .client-menu{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;margin-left:auto;flex-shrink:0}
 .client-menu svg{width:22px;height:22px}
 .app-header .header-actions,body>div.section-shell,body>footer{display:none}
 .client-ready .client-views{display:flex;align-items:center;gap:5px}
 .client-views{position:fixed;top:calc(var(--client-top) + var(--client-header));inset-inline:0;height:var(--client-tabs);padding:6px 16px;background:var(--paper);z-index:9;border-bottom:1px solid var(--line)}
 .client-views button{min-width:0;flex:1;min-height:44px;font-size:12px;white-space:nowrap;border-radius:24px;padding:8px 4px}
 .client-views button[aria-pressed=true]{background:var(--ink);color:var(--paper)}
 #main{position:fixed;top:calc(var(--client-top) + var(--client-header));left:0;right:0;height:calc(var(--client-height) - var(--client-header));width:100%;max-width:none;margin:0;padding:0 22px;overflow:auto;overscroll-behavior:contain;scroll-padding:20px;-webkit-overflow-scrolling:touch}
 .client-ready #main{top:calc(var(--client-top) + var(--client-header) + var(--client-tabs));height:calc(var(--client-height) - var(--client-header) - var(--client-tabs) - var(--client-dock))}
 .page-hero{padding:25px 0 22px;border-bottom:1px solid var(--line)}
 .page-hero>.eyebrow,.page-hero>.lede{display:none}
 .page-hero h1{font-size:36px;line-height:1.14;margin:0;letter-spacing:-.025em;overflow-wrap:anywhere}
 .page-hero h1 .serif{font-size:40px}
 .page-content{padding:24px 0 28px}
 .section-title{display:block;margin:0 0 20px;padding:0;border:0}
 .section-title h2{font:34px/1.05 var(--serif);letter-spacing:-.035em}
 .section-title p{font-size:11px;line-height:1.5;margin-top:10px}
 .panel{overflow-wrap:anywhere;padding:22px;border-radius:5px;background:#fffefa}
 .panel h2{font-size:33px;line-height:1.1;margin:12px 0 20px}
 .panel p{font-size:14px;line-height:1.7}
 .small-label{font-size:9px}
 .notice{padding:14px 16px;font-size:12px;line-height:1.65;border-left-width:2px;margin-bottom:22px}
 .two-col,.three-col,.form-grid,.cards-grid,.timeline{grid-template-columns:1fr;gap:16px}
 .field{gap:9px;margin-bottom:22px}
 .field label,.field>span{font-size:12px}
 .field input,.field select,.field textarea{font-size:16px;min-height:48px;padding:13px 12px;max-width:100%;border-color:#bbc0ae;border-radius:4px}
 .field small{font-size:12px;line-height:1.5}
 .check{font-size:14px;gap:12px;line-height:1.6;padding:14px 0;margin:4px 0 16px}
 .check input{width:22px;height:22px;flex-shrink:0}
 .actions .button{min-height:46px}
 .inline-link{min-height:44px;display:inline-flex;align-items:center}
 .client-dock{position:fixed;bottom:var(--client-bottom);inset-inline:0;z-index:10;background:var(--paper);border-top:1px solid var(--line);padding:10px 18px max(12px,env(safe-area-inset-bottom));box-shadow:0 -10px 25px #222b1d04}
 .client-ready .client-dock{display:block}
 #clientDockStatus .message,.client-dock-hint{font-size:10px;line-height:1.45;margin:0 2px 10px;min-height:0;color:var(--muted);overflow-wrap:anywhere}
 #clientDockStatus .message.error{color:#8b2f27}
 #clientDockStatus .message:empty{display:none}
 #clientDockActions,#clientDockActions>.actions,#clientDockActions>.client-contribution-action{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0;width:100%}
 #clientDockActions .button{justify-content:center;flex:1;min-height:50px;font-size:13px;border-radius:4px;white-space:normal;padding:13px 12px;line-height:1.4;gap:10px}
 #clientDockActions>.actions>.secondary{background:transparent;border:0;font-size:11px;flex:0 0 100%;min-height:32px;padding:4px;margin-top:-8px;text-decoration:underline;text-underline-offset:4px}
 #clientDockActions .button:disabled{cursor:default;opacity:.58}
 #clientDockActions .inline-link{min-height:48px}
 #clientNav .app-nav{display:grid;gap:0;border:0;padding:0;font-size:20px;font-family:var(--serif)}
 #clientNav .app-nav a{padding:20px 12px;border-top:1px solid var(--line)}
 #clientNav .app-nav a[aria-current=page]{background:var(--yellow);box-shadow:none}
 .client-sheet,.modal{position:fixed;inset:auto 0 var(--client-bottom);margin:0 auto;width:100%;max-width:600px;max-height:calc(var(--client-height) - 16px);padding:24px 22px max(24px,env(safe-area-inset-bottom));border:1px solid var(--line);border-bottom:0;border-radius:20px 20px 0 0;overflow:auto;overscroll-behavior:contain;scroll-padding:20px}
 .client-sheet::before{content:'';display:block;width:32px;height:3px;border-radius:5px;background:#bec2b3;margin:-12px auto 22px}
 .modal .close{width:44px;height:44px;margin:-12px -10px 0 5px}
 .modal h2{font-size:34px;line-height:1.1}
 .modal>p{font-size:14px;line-height:1.7}
 .modal form>.button,.modal>#submitApplication{width:100%;justify-content:center;min-height:50px;white-space:normal;line-height:1.4}
 .guest-main{padding:24px 0}
 .guest-main .empty-state{padding:35px 0;background:transparent;border:0}
 .guest-main .actions{display:grid}
 #loading{padding:48px 0}
 /* Profile: the person and their cards come first. */
 .profile-head{display:grid;grid-template-columns:64px minmax(0,1fr);gap:12px 16px;align-items:center}
 .profile-head>div:last-child{display:contents}
 .profile-art{grid-column:1;grid-row:1;width:64px;font-size:30px}
 .profile-head .eyebrow{display:none}
 .profile-head h1{grid-column:2;grid-row:1;font:35px/1.02 var(--serif);margin:0;letter-spacing:-.04em}
 #memberLine{grid-column:1/-1;font-size:14px;line-height:1.65;max-width:none}
 .profile-head .chips{grid-column:1/-1;margin:0;gap:6px}
 .profile-head .badge{font-size:9px;padding:6px 8px}
 #freshness{grid-column:1/-1;padding:0;font-size:10px;line-height:1.4;margin:0;color:var(--muted)}
 body[data-page=moi] .page-content{display:flex;flex-direction:column;gap:0}
 .client-profile-overview{display:contents}
 #clientCardsTitle{order:0}
 #profileCards{order:1;display:grid;gap:14px;margin-bottom:24px}
 .client-universes{order:3;margin-bottom:18px}
 .client-profile-notice{order:4;margin:0}
 .profile-card{padding:22px}
 .profile-card h3{font-size:29px;line-height:1.12}
 .profile-card .actions{justify-content:space-between;gap:12px;margin-top:18px;border-top:1px solid var(--line);padding-top:5px}
 .profile-card .actions button{min-height:44px;font-size:12px;padding:8px 0}
 #microQuestions{margin-bottom:10px}
 .micro-question{font-size:25px;padding:18px 0;gap:16px}
 #skipQuestions{align-self:flex-start;margin-bottom:30px}
 body[data-client-view=contribution] .three-col{display:grid;gap:14px}
 /* Opportunities: an honest empty state and an explicitly labelled example. */
 body[data-page=opportunites] .empty-state{padding:8px 0 15px;border:0;background:transparent;text-align:left}
 body[data-page=opportunites] .empty-mark{display:grid;place-items:center;width:70px;height:70px;border-radius:50%;border:1px solid var(--ink);font-size:48px;background:var(--yellow);margin-bottom:22px}
 body[data-page=opportunites] .empty-state h2{font-size:39px;line-height:1.05;letter-spacing:-.03em}
 body[data-page=opportunites] .empty-state p{font-size:14px;margin:0}
 body[data-page=opportunites] .timeline{margin:0;gap:24px}
 body[data-page=opportunites] .timeline article{position:relative;padding:0 0 22px 50px;border-top:0;border-bottom:1px solid var(--line)}
 body[data-page=opportunites] .timeline b{position:absolute;left:0;top:0;font:29px var(--serif)}
 body[data-page=opportunites] .timeline h3{margin:0 0 10px;font:25px var(--serif)}
 .topic-demo{margin:0}
 .topic-demo .small-label{display:block;line-height:1.7}
 .topic-demo h3{font-size:33px;line-height:1.1}
 #clientDockActions>#topicChoices{display:grid;grid-template-columns:1fr 1fr;gap:8px}
 #clientDockActions #topicChoices .button{min-height:46px;font-size:12px;border:1px solid var(--line);margin:0;text-decoration:none}
 #topicChoices [aria-pressed=true]{background:var(--yellow);color:var(--ink)}
 /* Controls: one subject per view, with its own native form submission. */
 body[data-page=controles] .page-content{display:flex;flex-direction:column}
 body[data-page=controles] .page-content>.notice{order:1;margin-top:6px;margin-bottom:0}
 body[data-page=controles] .page-content>.panel{margin-top:0!important;margin-bottom:18px}
 #settingsForm .form-grid{gap:0}
 #settingsForm .check{border-top:1px solid var(--line);margin-top:0}
 #savedContact{overflow-wrap:anywhere;margin:0 0 20px}
 #contactForm .form-grid{gap:0}
 body[data-client-view=donnees] .two-col{margin-bottom:18px}
 body[data-page=controles] .panel .button{white-space:normal;line-height:1.4;min-height:46px}
}
@media(max-width:900px){
 body.client-compact{--client-header:calc(58px + env(safe-area-inset-top));--client-tabs:48px}
 body.client-compact .app-header{padding-top:calc(7px + env(safe-area-inset-top));padding-bottom:7px}
 body.client-compact .client-heading span{display:none}
 body.client-compact .client-views{padding-block:2px}
 body.client-compact .client-dock{padding-top:6px;padding-bottom:6px}
 body.client-compact #clientDockStatus .message,body.client-compact .client-dock-hint{margin-bottom:5px;font-size:9px}
 body.client-compact #clientDockActions .button{min-height:44px;padding-block:8px}
 body.client-compact #clientDockActions>.actions>.secondary{flex:1;min-height:44px;margin:0;max-width:135px}
 body.client-compact #clientDockActions>#topicChoices{gap:5px}
 body.client-compact #clientDockActions #topicChoices .button{min-height:38px;padding:6px}
}
