:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--accent:var(--color-orange);--accent-contrast:var(--color-ink);--accent-text:var(--color-blue2);--surface:var(--color-card);--page-bg:var(--color-bg);--border-color:var(--color-line);--radius:var(--radius-card);--text:var(--color-ink);--text-muted:var(--color-mut);--green:var(--color-green);--amber:var(--color-amber);--space-1:4px;--space-2:8px;--space-3:16px;--space-4:24px;--space-5:32px;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}*{box-sizing:border-box}body{background:var(--page-bg);min-height:100vh;color:var(--text);margin:0}img{max-width:100%;display:block}:focus-visible{outline:2px solid var(--accent-text);outline-offset:2px}a{color:var(--accent-text);text-decoration:none}a:hover{text-decoration:underline}h1,h2{color:var(--text);margin:0 0 var(--space-3);font-weight:700}h1{font-size:1.5rem}h2{font-size:1.125rem}.section{margin-top:var(--space-4)}.sub{color:var(--text-muted);font-size:var(--font-small);margin:0 0 var(--space-3)}.small{font-size:var(--font-small);color:var(--text-muted)}.error-message{color:#b3261e;border-radius:var(--radius);padding:var(--space-2) var(--space-3);margin:0 0 var(--space-3);background:#fdecea}.state-loading,.state-empty{color:var(--text-muted);padding:var(--space-3) 0}.page{max-width:480px;margin:var(--space-5) auto;padding:0 var(--space-3)}.page--narrow{max-width:360px}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:var(--space-4);margin-bottom:var(--space-3)}.field{margin-bottom:var(--space-3)}.field label{margin-bottom:var(--space-1);font-weight:600;display:block}.field input{width:100%;padding:12px var(--space-2);border:1px solid var(--border-color);border-radius:var(--radius);color:var(--text);background:#fff;font-size:1rem}.field input:focus-visible{border-color:var(--accent-text)}button,.button-group button{min-height:48px;padding:12px var(--space-4);border-radius:var(--radius);background:var(--accent);color:var(--accent-contrast);cursor:pointer;border:none;font-size:1rem;font-weight:700}button:disabled{opacity:.6;cursor:not-allowed}button.secondary{color:var(--text);border:1px solid var(--border-color);background:0 0}.button-group{gap:var(--space-2);flex-wrap:wrap;display:flex}.portal-shell{flex-direction:column;min-height:100vh;display:flex}.portal-shell--bare{justify-content:space-between;min-height:100vh}.portal-header{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface);border-bottom:1px solid var(--border-color);flex-wrap:wrap;display:flex}.portal-header-brand{color:var(--text);font-size:1.125rem;font-weight:700}.portal-header-greeting{color:var(--text-muted);flex:1;margin:0}.portal-content{width:100%;max-width:960px;padding:var(--space-4);flex:1;margin:0 auto}.portal-page h1{margin-bottom:var(--space-1)}.portal-footer{padding:var(--space-4);text-align:center;color:var(--text-muted);font-size:var(--font-small);border-top:1px solid var(--border-color)}.portal-footer-contact{margin:0 0 var(--space-1)}.portal-footer-product{opacity:.8;margin:0}.portal-card-grid{gap:var(--space-3);grid-template-columns:1fr;display:grid}.portal-site-card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:var(--space-3);color:var(--text);display:block}.portal-site-card:hover{text-decoration:none;box-shadow:0 4px 16px #0000001f}.portal-site-card-header{justify-content:space-between;align-items:flex-start;gap:var(--space-2);display:flex}.portal-site-card-header h2{margin:0;font-size:1.0625rem}.portal-site-card-address{color:var(--text-muted);margin:var(--space-1) 0 var(--space-2)}.portal-site-card-validation{margin:var(--space-2) 0 0}.portal-status-badge{font-size:var(--font-small);background:var(--status-en_cours-bg,#e6f4ea);color:var(--status-en_cours-fg,var(--green));white-space:nowrap;border-radius:999px;padding:2px 10px;font-weight:700;display:inline-block}.portal-status-badge--closed{background:var(--status-termine-bg,#eef1f5);color:var(--status-termine-fg,var(--text-muted))}.portal-presence{align-items:center;gap:var(--space-2);margin:var(--space-2) 0;font-size:var(--font-small);color:var(--text-muted);display:flex}.portal-presence-dot{background:var(--border-color);border-radius:50%;flex-shrink:0;width:10px;height:10px}.portal-presence--active{color:var(--green);font-weight:600}.portal-presence--active .portal-presence-dot{background:var(--green)}.portal-progress{align-items:center;gap:var(--space-2);margin:var(--space-2) 0;display:flex}.portal-progress-track{background:var(--border-color);border-radius:999px;flex:1;height:10px;overflow:hidden}.portal-progress-fill{background:var(--gradient-progress,var(--accent));border-radius:999px;height:100%}.portal-progress-value{font-weight:700;font-size:var(--font-small);white-space:nowrap}.portal-progress-value--exceeded{color:var(--amber)}.portal-progress-unavailable,.portal-progress-pending{color:var(--text-muted);font-size:var(--font-small);margin:var(--space-2) 0}.portal-site-detail-header{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.portal-photo-grid{gap:var(--space-2);grid-template-columns:repeat(2,1fr);display:grid}.portal-photo{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-card);margin:0;overflow:hidden}.portal-photo img{aspect-ratio:4/3;object-fit:cover;width:100%}.portal-photo figcaption{padding:var(--space-1) var(--space-2);font-size:var(--font-small);color:var(--text-muted)}.portal-activity-list{margin:0;padding:0;list-style:none}.portal-activity-list li{padding:var(--space-2) 0;border-bottom:1px solid var(--border-color);flex-direction:column;gap:2px;display:flex}.portal-activity-date{font-size:var(--font-small);color:var(--text-muted)}.portal-trust-note{background:var(--surface);border-radius:var(--radius);padding:var(--space-3);color:var(--text-muted);font-size:var(--font-small)}@media (width>=720px){.portal-card-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.portal-photo-grid{grid-template-columns:repeat(4,1fr)}.portal-header-brand{font-size:1.25rem}}
