:root { --ink:#20201d; --muted:#6f6d65; --paper:#f3f0e8; --surface:#fffdf8; --line:#dcd6c8; --accent:#9c3e2d; --accent-dark:#753023; --gold:#b78c4b; --shadow:0 12px 35px rgba(45,39,30,.08); }
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
button,input,textarea,select { font:inherit; }
button { cursor:pointer; }
.access-locked .topbar,.access-locked #app{display:none}.access-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top left,rgba(183,140,75,.18),transparent 34%),linear-gradient(135deg,#24231f 0%,#383127 52%,#8d392c 100%)}.access-card{width:min(100%,390px);display:grid;gap:18px;padding:34px;background:var(--surface);border:1px solid rgba(255,255,255,.28);border-radius:8px;box-shadow:0 25px 70px rgba(0,0,0,.22)}.access-card h1{font-size:38px}.access-title{display:flex;align-items:center;gap:11px}.access-card label{display:grid;gap:7px;font-size:13px;font-weight:800}.access-card .primary-button{width:100%;margin-top:4px}.access-error{margin:0;padding:10px 12px;border-radius:6px;background:#f5dfdb;color:#8f2f25;font-size:13px;font-weight:700}.access-granted .access-screen{display:none}
.topbar { height:76px; padding:0 max(24px,calc((100vw - 1180px)/2)); background:#24231f; color:#fff; display:flex; align-items:center; justify-content:space-between; box-shadow:0 2px 12px rgba(0,0,0,.18); }
.brand { display:flex; align-items:center; gap:12px; color:inherit; text-decoration:none; }
.brand-mark { color:#d6a95f; font-size:25px; }
.brand strong,.brand small { display:block; }.brand strong { font-family:Georgia,serif; font-size:20px; }.brand small { opacity:.6; font-size:10px; letter-spacing:.07em; text-transform:uppercase; margin-top:3px; }
nav { display:flex; align-self:stretch; }.nav-button { border:0; padding:0 20px; background:transparent; color:#bbb8af; border-bottom:3px solid transparent; }.nav-button:hover,.nav-button.is-active { color:#fff; border-bottom-color:var(--gold); }
.page-shell { max-width:1180px; padding:54px 24px 80px; margin:auto; }.narrow-shell { max-width:880px; }
.hero,.editor-heading,.section-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:30px; }.hero { margin-bottom:35px; }.eyebrow { margin:0 0 7px; color:var(--accent); font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }h1 { margin:0; font:700 42px/1.1 Georgia,serif; }.subtitle { color:var(--muted); margin:10px 0 0; }
.primary-button,.secondary-button,.small-button,.back-button { border:0; border-radius:6px; padding:12px 18px; font-weight:700; }.primary-button { background:var(--accent); color:#fff; box-shadow:0 5px 15px rgba(156,62,45,.2); }.primary-button:hover { background:var(--accent-dark); }.secondary-button,.small-button { background:#ece7db; color:var(--ink); }.back-button { background:transparent; padding-left:0; color:var(--muted); margin-bottom:24px; }.small-button { padding:9px 12px; font-size:13px; }.full { width:100%; margin-top:10px; }
.toolbar { display:flex; justify-content:space-between; gap:20px; margin-bottom:24px; }.filter-group { display:flex; gap:12px; flex-wrap:wrap; }.select-label { display:flex; gap:10px; align-items:center; color:var(--muted); font-size:13px; }.select-label select { min-width:170px; }
input,textarea,select { width:100%; border:1px solid var(--line); border-radius:5px; background:#fff; color:var(--ink); padding:11px 12px; outline:none; }input:focus,textarea:focus,select:focus { border-color:var(--gold); box-shadow:0 0 0 3px rgba(183,140,75,.12); }textarea { resize:vertical; }
.challenge-grid { display:grid; gap:12px; }.challenge-row { background:var(--surface); border:1px solid var(--line); border-radius:8px; box-shadow:var(--shadow); overflow:hidden; }.challenge-row-main { display:grid; grid-template-columns:48px 34px minmax(0,1fr) auto; align-items:center; gap:10px; padding:17px 20px; }.challenge-number { color:var(--gold); font:700 18px Georgia,serif; }.summary-toggle { width:30px; height:30px; border:0; border-radius:50%; background:#eee9dd; color:var(--ink); font-size:25px; line-height:1; transition:transform .2s ease; }.summary-toggle.is-open { transform:rotate(90deg); }.challenge-row-title h2 { margin:4px 0 0; font:700 21px/1.25 Georgia,serif; }.meta { color:var(--muted); font-size:12px; }.row-actions { display:flex; gap:7px; }.row-actions button { border:1px solid var(--line); background:transparent; border-radius:5px; padding:8px 11px; }.row-actions .delete { color:var(--accent); }.challenge-summary { padding:0 22px 20px 112px; border-top:1px solid var(--line); }.challenge-summary p { margin:18px 0 12px; color:var(--muted); line-height:1.65; white-space:pre-wrap; }.challenge-summary .tags { margin-bottom:0; }.tags { display:flex; flex-wrap:wrap; gap:6px; margin:12px 0 18px; }.tag { font-size:11px; padding:4px 8px; background:#eee9dd; border-radius:20px; }.empty { grid-column:1/-1; text-align:center; padding:70px 20px; border:1px dashed #c9c1b1; color:var(--muted); }
.editor-heading { align-items:center; margin-bottom:30px; }.heading-actions { display:flex; gap:10px; }.form-layout { display:grid; grid-template-columns:minmax(0,2fr) minmax(260px,1fr); gap:22px; align-items:start; }.main-column,.side-column { display:grid; gap:22px; }.panel { background:var(--surface); border:1px solid var(--line); border-radius:8px; padding:24px; box-shadow:var(--shadow); }.panel h2 { font:700 21px Georgia,serif; margin:0 0 17px; }.hint { color:var(--muted); font-size:13px; margin:-10px 0 17px; }.panel label { display:block; font-size:13px; font-weight:700; }.panel label input,.panel label textarea { margin-top:7px; }.two-columns { display:grid; grid-template-columns:1fr 1fr; gap:15px; margin-top:15px; }
.spaced-field { margin-top:15px; max-width:260px; }
.step-row { border-top:1px solid var(--line); padding:18px 0 0; margin-top:18px; }.step-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:9px; }.step-head strong { font-family:Georgia,serif; }.icon-button { border:0; background:transparent; color:var(--accent); font-size:18px; }.social-check { display:flex!important; flex-direction:row; align-items:center; gap:8px; color:var(--muted); margin-top:9px; font-weight:500!important; }.social-check input,.actor-option input { width:auto; margin:0; accent-color:var(--accent); }
.check-list { display:grid; gap:10px; margin-bottom:14px; }.actor-option { display:flex!important; align-items:center; gap:9px; font-weight:500!important; }.inline-add { display:flex; gap:7px; }.inline-add button { width:42px; border:0; border-radius:5px; background:#ded7c9; }.material-row { display:flex; gap:7px; margin:8px 0; }.material-row button { border:0; background:transparent; color:var(--accent); }.actor-form { display:flex; gap:12px; align-items:end; padding-bottom:24px; border-bottom:1px solid var(--line); }.actor-form label { flex:1; }.actor-list { display:grid; margin-top:8px; }.actor-item { display:flex; justify-content:space-between; align-items:center; padding:15px 4px; border-bottom:1px solid var(--line); }.usage { color:var(--muted); font-size:13px; }.actor-item button { border:0; background:transparent; color:var(--accent); }.toast { position:fixed; right:24px; bottom:24px; background:#26251f; color:#fff; padding:13px 18px; border-radius:6px; box-shadow:var(--shadow); }
.actor-instructions { display:grid; gap:14px; margin-top:22px; padding-top:20px; border-top:1px solid var(--line); }.actor-instructions:empty { display:none; }.instruction-field span { display:block; color:var(--accent); font-size:12px; margin-bottom:7px; }.instruction-field textarea { font-weight:400; }
.keyword-row { display:flex; gap:7px; margin:8px 0; }.keyword-row button { border:0; background:transparent; color:var(--accent); }.keyword-cloud { display:flex; flex-wrap:wrap; gap:7px; }.keyword-cloud span,.keyword-tag { padding:6px 10px; border-radius:20px; background:#efe4cc; color:#755c2f; font-size:12px; font-weight:700; }
.material-groups { display:grid; gap:22px; }.material-group { padding-top:18px; border-top:1px solid var(--line); }.material-group:first-child { padding-top:0; border-top:0; }.material-group h3 { margin:0 0 10px; color:var(--accent); font-size:13px; text-transform:uppercase; letter-spacing:.06em; }.material-category { margin-bottom:18px; }.material-category:last-child { margin-bottom:0; }.material-category h3 { margin:0 0 8px; color:var(--accent); font-size:12px; text-transform:uppercase; letter-spacing:.06em; }
.reader-shell { max-width:1050px; }.reader-hero { display:flex; align-items:flex-end; justify-content:space-between; gap:25px; padding:12px 0 30px; border-bottom:1px solid var(--line); }.reader-meta { display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }.reader-meta span { padding:6px 10px; background:#e8e1d3; border-radius:20px; color:#57544d; font-size:12px; font-weight:700; }.reader-layout { display:grid; grid-template-columns:minmax(0,2fr) minmax(240px,1fr); gap:48px; margin-top:32px; }.reader-main { display:grid; gap:26px; }.reader-section { position:relative; padding-left:58px; }.reader-section h2 { margin:0 0 13px; font:700 26px Georgia,serif; }.section-number { position:absolute; left:0; top:2px; margin:0; color:var(--gold); font:700 18px Georgia,serif; }.prose { color:#4d4b45; line-height:1.65; white-space:pre-wrap; }.timeline { list-style:none; padding:0; margin:0; counter-reset:steps; }.timeline li { position:relative; padding:0 0 22px 42px; line-height:1.6; white-space:pre-wrap; }.timeline li::before { counter-increment:steps; content:counter(steps); position:absolute; left:0; top:0; width:25px; height:25px; display:grid; place-items:center; border-radius:50%; color:#fff; background:var(--accent); font-size:12px; font-weight:700; }.timeline li:not(:last-child)::after { content:""; position:absolute; left:12px; top:29px; bottom:5px; width:1px; background:var(--line); }.social-flag { display:block; width:max-content; margin-top:8px; padding:4px 8px; border-radius:4px; background:#efe4cc; color:#755c2f; font-size:11px; font-weight:700; }.reader-aside { display:grid; align-content:start; gap:20px; }.reader-list { display:grid; gap:10px; color:#4d4b45; }.reader-list div { padding-bottom:10px; border-bottom:1px solid var(--line); }.reader-list div:last-child { border:0; padding:0; }.reader-empty { color:var(--muted); font-style:italic; }
.entity-name { display:inline; padding:1px 4px; border-radius:4px; font-weight:700; box-decoration-break:clone; -webkit-box-decoration-break:clone; }.entity-actor-0 { color:#8f2f25; background:#f5dfdb; }.entity-actor-1 { color:#285c82; background:#dceaf4; }.entity-actor-2 { color:#486b2e; background:#e2ecd9; }.entity-actor-3 { color:#744b87; background:#ebe0f0; }.entity-actor-4 { color:#8a5a16; background:#f2e5ca; }.entity-actor-5 { color:#276b65; background:#d9ece9; }.entity-place { color:#684a23; background:#eadcc5; border-bottom:2px solid #b78c4b; }
.todo-prose { padding:14px 16px; border-left:3px solid var(--gold); background:#efe9dc; }
.resource-shell { max-width:1100px; }.resource-layout { display:grid; grid-template-columns:340px minmax(0,1fr); gap:24px; align-items:start; }.resource-form-panel { position:sticky; top:24px; }.resource-form { display:grid; gap:18px; }.form-buttons { display:flex; justify-content:flex-end; gap:9px; }.resource-list { display:grid; gap:14px; }.resource-card { background:var(--surface); border:1px solid var(--line); border-radius:8px; padding:21px 22px; box-shadow:var(--shadow); }.resource-card-head { display:flex; justify-content:space-between; gap:20px; }.resource-card h2 { margin:0 0 8px; font:700 21px Georgia,serif; }.resource-description { margin:0; color:var(--muted); line-height:1.6; white-space:pre-wrap; }.resource-actions { display:flex; gap:6px; flex-shrink:0; }.resource-actions button { border:1px solid var(--line); border-radius:5px; padding:7px 10px; background:transparent; color:var(--ink); }.resource-actions .delete { color:var(--accent); }.resource-usage { display:inline-block; margin-top:13px; color:var(--muted); font-size:12px; }
.place-reader-grid { display:grid; grid-template-columns:minmax(0,2fr) minmax(250px,1fr); gap:48px; margin-top:32px; }.place-challenge-link { width:100%; border:0; padding:0; background:transparent; color:var(--accent); text-align:left; font-weight:700; }
.place-game-type { margin:7px 0 0; color:var(--accent); font-weight:700; }.place-type-list { display:block; margin-top:4px; color:var(--accent); font-size:12px; font-weight:700; }.form-label-text { display:block; margin-bottom:7px; font-size:13px; font-weight:700; }.actor-dropdown { border:1px solid var(--line); border-radius:5px; background:#fff; }.actor-dropdown summary { padding:11px 12px; cursor:pointer; color:var(--muted); }.actor-dropdown .check-list { padding:4px 12px 12px; margin:0; max-height:220px; overflow:auto; border-top:1px solid var(--line); }
.place-logo { width:38px; height:38px; display:inline-grid; place-items:center; flex:0 0 auto; border-radius:8px; background:#e9e2d4; font-size:21px; }.place-logo.large { width:52px; height:52px; font-size:29px; }.place-title-with-logo { display:flex; align-items:center; gap:14px; }.challenge-place-line { display:flex; align-items:center; gap:8px; margin-top:5px; color:var(--muted); font-size:12px; }.challenge-place-line .place-logo { width:25px; height:25px; border-radius:5px; font-size:15px; }
.place-group { display:grid; gap:12px; }.place-group + .place-group { margin-top:30px; padding-top:28px; border-top:2px solid var(--line); }.place-group-title { display:flex; align-items:center; gap:10px; margin:0 0 4px; font:700 23px Georgia,serif; }.place-group-title span { min-width:25px; height:25px; display:inline-grid; place-items:center; border-radius:50%; background:#e8e1d3; color:var(--muted); font:700 11px Inter,ui-sans-serif,system-ui,sans-serif; }.place-group-list { display:grid; gap:12px; }
.place-row-main { grid-template-columns:48px minmax(0,1fr) 34px auto; }.place-group.is-principal .place-group-list { grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }.place-group.is-principal .challenge-row { display:flex; flex-direction:column; min-width:0; }.place-group.is-principal .challenge-row-main { flex:1; grid-template-columns:48px minmax(0,1fr) 34px; align-items:start; padding:20px 18px; }.place-group.is-principal .challenge-row-title { min-width:0; }.place-group.is-principal .challenge-row-title h2 { font-size:20px; overflow-wrap:anywhere; }.place-group.is-principal .row-actions { grid-column:1/-1; display:grid; grid-template-columns:repeat(3,1fr); width:100%; margin-top:18px; }.place-group.is-principal .row-actions button { padding:8px 6px; }.place-group.is-principal .challenge-summary { padding:0 18px 18px; }.place-challenge-description { margin:14px 0 0; color:var(--muted); font-size:13px; line-height:1.55; }

@media (max-width:950px) { .place-group.is-principal .place-group-list { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:620px) { .place-group.is-principal .place-group-list { grid-template-columns:1fr; }.place-group.is-principal .challenge-row-main { grid-template-columns:48px minmax(0,1fr) 30px; }.place-group.is-principal .row-actions { grid-column:1/-1; padding-left:0; } }
@media (max-width:850px) { .form-layout,.reader-layout,.resource-layout,.place-reader-grid { grid-template-columns:1fr; }.resource-form-panel { position:static; }.side-column { grid-row:1; }.editor-heading { align-items:flex-end; }.reader-aside { grid-template-columns:1fr 1fr; }.challenge-row-main { grid-template-columns:38px 30px minmax(0,1fr); }.row-actions { grid-column:3; }.challenge-summary { padding-left:98px; } }
@media (max-width:580px) { .topbar { height:auto; padding:14px 18px; flex-wrap:wrap; gap:10px; }.brand small { display:none; }nav { height:40px; }.page-shell { padding:35px 16px 60px; }.hero,.editor-heading,.section-heading,.toolbar,.reader-hero { flex-direction:column; align-items:flex-start; }.hero .primary-button,.heading-actions,.reader-hero .primary-button { width:100%; }.heading-actions button { flex:1; }h1 { font-size:34px; }.search { width:100%; }.select-label { width:100%; }.actor-form { flex-direction:column; align-items:stretch; }.two-columns,.reader-aside { grid-template-columns:1fr; }.reader-section { padding-left:42px; }.challenge-row-main { grid-template-columns:28px 30px 1fr; padding:14px 12px; }.row-actions { grid-column:1/-1; padding-left:68px; flex-wrap:wrap; }.challenge-summary { padding:0 14px 16px; }.challenge-number { font-size:15px; } }
@media (max-width:850px) { .place-group .place-row-main { grid-template-columns:48px minmax(0,1fr) 30px; }.place-group .place-row-main .row-actions { grid-column:2/-1; padding-left:0; } }
@media (max-width:580px) { .place-group .place-row-main { padding:14px 12px; }.place-group .place-row-main .row-actions { grid-column:1/-1; } }
.landing-shell { max-width:1100px; }.landing-intro { max-width:760px; margin-bottom:34px; }.landing-intro > p:last-child { color:var(--muted); font-size:17px; line-height:1.65; }.gameplay-grid,.home-links { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }.gameplay-card { background:var(--surface); border:1px solid var(--line); border-radius:9px; padding:25px; box-shadow:var(--shadow); }.gameplay-card h2 { margin:17px 0 8px; font:700 21px Georgia,serif; }.gameplay-card p { margin:0; color:var(--accent); line-height:1.5; font-weight:700; }.home-links { margin-top:34px; padding-top:30px; border-top:2px solid var(--line); }.home-links button { display:grid; grid-template-columns:42px 1fr; column-gap:12px; text-align:left; border:1px solid var(--line); border-radius:8px; padding:19px; background:var(--surface); color:var(--ink); box-shadow:var(--shadow); }.home-links button > span { grid-row:1/3; font-size:25px; }.home-links strong { font:700 20px Georgia,serif; }.home-links small { margin-top:4px; color:var(--muted); }.planning-shell { max-width:1000px; }.planning-layout { display:grid; grid-template-columns:350px minmax(0,1fr); gap:25px; align-items:start; }.planning-form { display:grid; gap:17px; }.planning-results { display:grid; gap:15px; }.planning-summary { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }.planning-stat { padding:18px; background:var(--surface); border:1px solid var(--line); border-radius:8px; }.planning-stat strong,.planning-stat span { display:block; }.planning-stat strong { font:700 26px Georgia,serif; }.planning-stat span { margin-top:5px; color:var(--muted); font-size:12px; }.session-details { border:1px solid var(--line); border-radius:8px; background:var(--surface); overflow:hidden; }.session-details summary { padding:16px 18px; cursor:pointer; font-weight:700; }.session-list { display:grid; border-top:1px solid var(--line); }.session-row { display:flex; justify-content:space-between; gap:15px; padding:12px 18px; border-bottom:1px solid var(--line); }.session-row:last-child { border:0; }.session-row span { color:var(--muted); }.planning-error { padding:16px; color:var(--accent); background:#f3dfda; border-radius:8px; }
@media (max-width:800px) { .gameplay-grid,.home-links { grid-template-columns:1fr; }.planning-layout { grid-template-columns:1fr; } }
@media (max-width:520px) { .planning-summary { grid-template-columns:1fr; } }
.actor-row-main { grid-template-columns:48px minmax(0,1fr) 34px auto; }.full-challenge-summary { padding:26px 30px; }.expanded-grid { display:grid; grid-template-columns:minmax(0,2fr) minmax(240px,1fr); gap:40px; }.expanded-section { margin-bottom:30px; }.expanded-section:last-child { margin-bottom:0; }.expanded-section h3,.expanded-aside h3 { margin:0 0 11px; font:700 19px Georgia,serif; }.expanded-section > p,.expanded-steps p,.expanded-aside p { color:var(--muted); line-height:1.65; white-space:pre-wrap; }.expanded-steps { display:grid; gap:18px; padding-left:23px; }.expanded-steps li { padding-left:6px; }.expanded-steps p { margin:5px 0 0; }.expanded-aside { display:grid; align-content:start; gap:24px; }.expanded-aside > section { padding-bottom:20px; border-bottom:1px solid var(--line); }.expanded-actor + .expanded-actor { margin-top:14px; }.expanded-actor p { margin:5px 0 0; font-size:13px; }.expanded-material + .expanded-material { margin-top:13px; }.expanded-material ul { margin:7px 0 0; padding-left:18px; color:var(--muted); line-height:1.55; }
@media (max-width:850px) { .actor-row-main { grid-template-columns:48px minmax(0,1fr) 30px; }.actor-row-main .row-actions { grid-column:2/-1; }.expanded-grid { grid-template-columns:1fr; }.full-challenge-summary { padding:22px; } }
@media (max-width:580px) { .actor-row-main { padding:14px 12px; }.actor-row-main .row-actions { grid-column:1/-1; padding-left:0; }.full-challenge-summary { padding:18px 14px; } }
@media (max-width:700px) { .topbar nav { width:100%; overflow-x:auto; }.topbar .nav-button { flex:0 0 auto; } }
.planning-summary { grid-template-columns:repeat(2,1fr); }
@media (max-width:520px) { .planning-summary { grid-template-columns:1fr; } }

.gameplay-panel { background:var(--surface); border:1px solid var(--line); border-radius:9px; box-shadow:var(--shadow); overflow:hidden; }
.gameplay-panel .gameplay-card { display:grid; grid-template-columns:60px minmax(0,1fr); gap:18px; align-items:start; padding:24px 26px; border:0; border-radius:0; box-shadow:none; }
.gameplay-panel .gameplay-card + .gameplay-card { border-top:1px solid var(--line); }
.gameplay-panel .gameplay-card h2 { margin:2px 0 8px; }
.gameplay-panel .gameplay-card p { color:var(--muted); font-weight:400; }
@media (max-width:580px) { .gameplay-panel .gameplay-card { grid-template-columns:48px minmax(0,1fr); padding:20px 16px; } }
.universe-badge { display:inline-block; margin-left:8px; padding:4px 8px; border-radius:20px; font:700 11px Inter,ui-sans-serif,system-ui,sans-serif; vertical-align:middle; }
.universe-badge.observation { color:#285c82; background:#dceaf4; }
.universe-badge.manipulation { color:#8f2f25; background:#f5dfdb; }
.universe-badge.reflection { color:#744b87; background:#ebe0f0; }
.resolution-fields { display:grid; gap:14px; }
.resolution-box { display:block; padding:16px; border:1px solid var(--line); border-radius:7px; }
.resolution-box > span,.resolution-box > strong { display:block; margin-bottom:9px; font-weight:700; }
.resolution-box.positive { background:#f3f7f1; border-color:#d7e4d2; }
.resolution-box.positive > span,.resolution-box.positive > strong { color:#4d7045; }
.resolution-box.negative { background:#faf3f1; border-color:#ead8d3; }
.resolution-box.negative > span,.resolution-box.negative > strong { color:#8a5148; }
.resolution-box textarea { background:rgba(255,255,255,.72); }
.resolution-box .prose,.resolution-box p { margin:0; }
.spaced-fields { margin-top:15px; }
.status-badge { display:inline-block; width:max-content; margin-top:7px; padding:5px 9px; border-radius:20px; font-size:11px; font-weight:700; }
.status-badge.status-writing { color:#785a25; background:#f1e7ce; }
.status-badge.status-waiting { color:#315f7a; background:#dfeaf0; }
.status-badge.status-valid { color:#426b48; background:#e0ece1; }
.reader-meta .status-badge.status-writing { color:#785a25; background:#f1e7ce; }
.reader-meta .status-badge.status-waiting { color:#315f7a; background:#dfeaf0; }
.reader-meta .status-badge.status-valid { color:#426b48; background:#e0ece1; }
.materials-overview { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.material-overview-group { background:var(--surface); border:1px solid var(--line); border-radius:9px; box-shadow:var(--shadow); overflow:hidden; }
.material-overview-group > header { display:flex; align-items:center; gap:13px; padding:19px 21px; border-bottom:1px solid var(--line); }
.material-overview-group > header > span { font-size:25px; }
.material-overview-group h2 { margin:0; font:700 20px Georgia,serif; }
.material-overview-group small { color:var(--muted); }
.material-overview-list { display:grid; padding:5px 20px; }
.material-overview-item { display:flex; justify-content:space-between; gap:15px; align-items:center; padding:13px 0; border-bottom:1px solid var(--line); }
.material-overview-item:last-child { border:0; }
.material-overview-item button { border:0; padding:0; background:transparent; color:var(--accent); text-align:right; }
@media (max-width:760px) { .materials-overview { grid-template-columns:1fr; } }
/* Pages détaillées du matériel */
.materials-overview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.material-category-card{width:100%;min-height:132px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;padding:24px;color:var(--ink);text-align:left;background:var(--paper,#fffdf8);border:1px solid var(--line,#ded5c5);border-radius:14px;box-shadow:0 12px 30px rgba(52,39,25,.07);cursor:pointer;transition:.18s ease}.material-category-card:hover{transform:translateY(-2px);border-color:var(--accent,#ad3c2c);box-shadow:0 16px 34px rgba(52,39,25,.12)}.material-category-icon{display:grid;place-items:center;width:54px;height:54px;font-size:28px;background:#eee8dc;border-radius:12px}.material-category-copy{display:grid;gap:7px;min-width:0}.material-category-copy strong{font-family:var(--serif);font-size:1.3rem}.material-category-copy small{color:var(--muted)}.material-category-arrow{font-size:2rem;color:var(--accent)}.material-progress{display:block;width:100%;height:5px;overflow:hidden;background:#e8e1d6;border-radius:99px}.material-progress>span{display:block;height:100%;background:#65806b;border-radius:inherit}.material-category-hero{margin-top:14px}.material-checklist{display:grid;gap:12px}.material-check-item{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;background:var(--paper,#fffdf8);border:1px solid var(--line,#ded5c5);border-radius:12px}.material-check-label{flex:1;display:flex;align-items:center;gap:14px;cursor:pointer}.material-check{position:absolute;opacity:0;pointer-events:none}.material-check-box{flex:0 0 auto;width:24px;height:24px;display:grid;place-items:center;border:1.5px solid #aa9f8e;border-radius:6px;background:#fff}.material-check:checked+.material-check-box{background:#65806b;border-color:#65806b}.material-check:checked+.material-check-box::after{content:'✓';color:#fff;font-size:15px;font-weight:700}.material-check-copy{display:grid;gap:4px}.material-check-copy small{color:var(--muted)}.material-check-item.is-complete{background:#f3f6f0;opacity:.72}.material-check-item.is-complete .material-check-copy strong{text-decoration:line-through}@media(max-width:760px){.materials-overview{grid-template-columns:1fr}.material-check-item{align-items:stretch;flex-direction:column}.material-check-item .secondary-button{align-self:flex-start}}
.material-item-content{flex:1;display:grid;gap:14px;min-width:0}.material-description-label{display:grid;gap:6px;color:var(--muted);font-size:.82rem;font-weight:700}.material-description{width:100%;resize:vertical;background:#fff;border:1px solid var(--line,#ded5c5);border-radius:8px;padding:10px 12px;color:var(--ink);font:inherit;font-weight:400}.material-description:focus{outline:2px solid rgba(173,60,44,.16);border-color:var(--accent,#ad3c2c)}.material-challenge-links{display:flex;flex-wrap:wrap;gap:8px}.material-challenge-links button{padding:6px 9px;background:#f5f0e7;border:1px solid var(--line,#ded5c5);border-radius:6px;color:var(--ink);cursor:pointer}.material-check-item.is-orphan{background:#fff4f2;border-color:#dca69f;opacity:1}.material-check-item.is-orphan .material-check-copy strong,.material-check-item.is-orphan .material-check-copy small{color:#a23c31}.material-check-item.is-orphan .material-check-box{background:#f2dedb;border-color:#dca69f}.material-delete-button{flex:0 0 auto;padding:9px 12px;border:1px solid #dca69f;border-radius:7px;background:#fff;color:#a23c31;cursor:pointer}
/* Tri et détails repliables du matériel */
.material-status-group{display:grid;gap:10px}.material-status-group+.material-status-group{margin-top:14px;padding-top:22px;border-top:1px solid var(--line,#ded5c5)}.material-status-title{display:flex;align-items:center;gap:9px;margin:0;font-family:var(--serif);font-size:1.25rem}.material-status-title span{display:grid;place-items:center;min-width:26px;height:26px;padding:0 7px;background:#eae3d8;border-radius:99px;font-family:var(--sans);font-size:.75rem}.material-status-group.is-done .material-status-title{color:#52715a}.material-status-group.is-unused .material-status-title{color:#a23c31}.material-status-list{display:grid;gap:10px}.material-status-empty{margin:0;padding:14px 18px;color:var(--muted);background:rgba(255,255,255,.4);border:1px dashed var(--line,#ded5c5);border-radius:10px}.material-check-item{display:block}.material-item-summary{display:flex;align-items:center;gap:12px}.material-item-details{margin-top:16px;padding:16px 0 2px;border-top:1px solid var(--line,#ded5c5)}.material-details-toggle{flex:0 0 auto;width:36px;height:36px;display:grid;place-items:center;border:1px solid var(--line,#ded5c5);border-radius:50%;background:#f4efe6;color:var(--ink);font-size:1.45rem;cursor:pointer;transition:transform .18s ease,background .18s ease}.material-details-toggle.is-open{transform:rotate(90deg);background:#e9e1d4}.material-check-item.is-complete{background:#edf6ee;border-color:#a8c5ad;opacity:1}.material-check-item.is-complete .material-check-copy strong{color:#42644a;text-decoration:none}.material-check-item.is-complete .material-check-copy small{color:#66806c}.material-check-item.is-orphan{background:#fff1ef;border-color:#dca69f}.material-check-item.is-orphan .material-item-details{border-color:#e6bdb7}@media(max-width:760px){.material-item-summary{align-items:flex-start;flex-wrap:wrap}.material-check-label{min-width:calc(100% - 50px)}.material-delete-button{margin-left:auto}}
.material-filter-bar{display:flex;justify-content:flex-end;margin:-4px 0 18px}.material-filter-bar label{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:.85rem;font-weight:700}.material-status-filter{min-width:170px;padding:9px 34px 9px 11px;background:#fff;border:1px solid var(--line,#ded5c5);border-radius:8px;color:var(--ink);font:inherit;cursor:pointer}.material-status-filter:focus{outline:2px solid rgba(173,60,44,.16);border-color:var(--accent,#ad3c2c)}
.material-checkbox-only{flex:0 0 auto;display:grid;place-items:center;cursor:pointer}.material-name-toggle{flex:1;min-width:0;padding:0;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.material-name-toggle:hover strong{color:var(--accent,#ad3c2c)}.challenge-title-toggle{cursor:pointer}.challenge-title-toggle:hover h2{color:var(--accent,#ad3c2c)}
.actor-costume-card{padding:18px 20px;background:#f4efe6;border:1px solid var(--line,#ded5c5);border-radius:10px}.actor-mission-grid{display:grid;gap:16px}.actor-mission-card{padding:20px;background:var(--surface,#fffdf8);border:1px solid var(--line,#ded5c5);border-radius:10px;box-shadow:0 8px 22px rgba(52,39,25,.06)}.actor-mission-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding-bottom:15px;border-bottom:1px solid var(--line,#ded5c5)}.actor-mission-card h3{margin:5px 0 0;font:700 20px/1.25 Georgia,serif}.actor-mission-meta{color:var(--accent);font-size:.75rem;font-weight:700}.actor-mission-card header button{flex:0 0 auto;padding:8px 11px;border:1px solid var(--line,#ded5c5);border-radius:6px;background:#f4efe6;color:var(--ink);cursor:pointer}.actor-mission-instruction{padding-top:15px}.actor-mission-instruction strong{display:block;margin-bottom:7px;color:var(--accent);font-size:.78rem;text-transform:uppercase;letter-spacing:.05em}.actor-mission-instruction p{margin:0;color:#4d4b45;line-height:1.65;white-space:pre-wrap}@media(max-width:650px){.actor-mission-card header{flex-direction:column}.actor-mission-card header button{align-self:flex-start}}
.step-flags{display:flex;align-items:center;gap:10px 18px;flex-wrap:wrap;margin-top:9px}.step-flags .social-check{margin-top:0}.step-type-flag{display:inline-block;width:max-content;margin:8px 6px 0 0;padding:4px 8px;border-radius:4px;font-size:11px;font-weight:700}.cinematic-flag{color:#5e4776;background:#ece3f3}.involvement-flag{color:#315f52;background:#deeee8}
.step-image-editor{display:grid;gap:10px;margin-top:12px}.step-image-button{width:max-content!important;display:inline-flex!important;align-items:center;gap:7px;padding:8px 11px;background:#ece7db;border-radius:6px;color:var(--ink);font-size:12px!important;cursor:pointer}.step-image-input{position:absolute;width:1px!important;height:1px;opacity:0;pointer-events:none}.step-image-preview{width:min(100%,760px);margin:0}.step-image-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.step-image-gallery[hidden]{display:none}.step-image-gallery figure{position:relative;margin:0;min-width:0}.step-image-preview img,.step-illustration{display:block;width:100%;max-height:360px;object-fit:contain;border:1px solid var(--line,#ded5c5);border-radius:9px;background:#eee8dc}.step-image-preview button{position:absolute;right:8px;bottom:8px;padding:7px 9px;border:0;border-radius:5px;background:rgba(36,35,31,.88);color:#fff;cursor:pointer}.step-illustration{margin:12px 0 4px}.qualification-step-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}.qualification-step-gallery img{display:block;width:100%;max-height:420px;object-fit:contain;border:1px solid var(--line,#ded5c5);border-radius:9px;background:#eee8dc}
@media (max-width:700px){.step-image-gallery,.qualification-step-gallery{grid-template-columns:1fr}}
.gameplay-description-box{margin:18px 0 24px;padding:20px 22px;border:1px solid var(--line);border-left-width:5px;border-radius:10px;background:var(--surface);box-shadow:var(--shadow)}.gameplay-description-box.family-border-dexterity{border-left-color:#347fb7}.gameplay-description-box.family-border-infiltration{border-left-color:#438b59}.gameplay-description-box.family-border-diversion{border-left-color:#b64b3f}.gameplay-description-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}.gameplay-description-head h2{margin:0;font:700 23px Georgia,serif}.gameplay-description-head>div{display:flex;gap:8px}.rich-prose{line-height:1.7;white-space:pre-wrap}.rich-text-wrap{display:grid;gap:0}.rich-text-toolbar{display:flex;gap:5px;padding:6px 7px;border:1px solid var(--line);border-bottom:0;border-radius:6px 6px 0 0;background:#f2eee5}.rich-text-toolbar button{display:grid;place-items:center;width:31px;height:27px;padding:0;border:1px solid #d7cdbd;border-radius:4px;background:#fff;color:var(--ink);cursor:pointer}.rich-text-toolbar button:hover{border-color:var(--gold);background:#fffaf1}.rich-text-wrap>textarea{margin-top:0!important;border-radius:0 0 6px 6px!important}.rich-italic{font-style:italic}.rich-underline{text-decoration:underline}
.attack-reader,.attack-editor{padding:28px}.attack-summary-read{padding:20px;border:1px solid var(--line);border-left:5px solid var(--accent);border-radius:10px;background:#faf7f0;line-height:1.75}.attack-summary-text{min-height:130px}.attack-step-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:28px 0 14px}.attack-step-heading h2,.attack-steps-title{margin:0}.attack-steps-title{margin-top:30px}.attack-step-list{display:grid;gap:14px;margin-top:16px}.attack-step-edit{display:grid;grid-template-columns:42px minmax(0,1fr) 36px;gap:14px;align-items:start;padding:18px;border:1px solid var(--line);border-radius:11px;background:#fffdf9}.attack-step-edit>div{display:grid;gap:9px}.attack-step-title{border:0;border-bottom:1px solid var(--line);background:transparent;font:700 21px Georgia,serif}.attack-step-text{min-height:120px}
@media(max-width:650px){.attack-step-edit{grid-template-columns:36px minmax(0,1fr)}.attack-step-edit>.icon-button{grid-column:2}.attack-step-heading{align-items:flex-start;flex-direction:column}}
.annotation-editor{display:grid;gap:8px;margin:12px 0;padding:12px 14px;border:1px dashed #c9a96c;border-radius:8px;background:#fff9eb}.annotation-editor label{display:flex;align-items:center;gap:8px;color:#785c28;font-size:13px;font-weight:700}.annotation-editor .rich-text-wrap{min-width:0}.annotation-text{width:100%;min-height:72px;padding:10px;border:1px solid #dbc99f;border-radius:7px;background:#fffdf7;line-height:1.5}.annotated-layout{display:grid;grid-template-columns:minmax(0,1fr)}.annotated-layout.has-annotation{grid-template-columns:190px minmax(0,1fr);gap:18px;align-items:start}.margin-annotation{padding:12px 13px;border-left:3px solid #c69a43;border-radius:0 7px 7px 0;background:#fff6dc;color:#65512b;font-size:13px;line-height:1.5}.margin-annotation span{display:block;margin-bottom:5px;color:#9b7123;font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.annotated-step{grid-template-columns:42px 190px minmax(0,1fr)}.flow-variant-panel>.margin-annotation,.flow-common-box>.margin-annotation,.gameplay-description-box>.margin-annotation{float:left;width:180px;margin:0 18px 12px 0}.final-situation-read>.margin-annotation{float:left;width:180px;margin:0 16px 8px 0}
@media(max-width:800px){.annotated-layout.has-annotation,.annotated-step{grid-template-columns:1fr}.annotated-step>.final-step-number{margin-bottom:4px}.flow-variant-panel>.margin-annotation,.flow-common-box>.margin-annotation,.gameplay-description-box>.margin-annotation,.final-situation-read>.margin-annotation{float:none;width:auto;margin:0 0 12px}}
.annotated-step:not(:has(.margin-annotation)){grid-template-columns:42px minmax(0,1fr)}
.final-part-tabs:has(>button:nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}
.inline-important-box{display:block;margin:18px 0;padding:14px 16px;border:2px dashed #c08a2d;border-radius:9px;background:#fffaf0;color:#4f422c;line-height:1.6}.inline-important-box>span{display:block;margin-bottom:6px;color:#9a6918;font-size:10px;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.inline-important-box>div{font-size:14px}.rich-text-toolbar .important-box-tool{margin-left:5px;border-color:#c6a15e;background:#fff8e8;color:#8c641e}.rich-text-toolbar .important-box-tool-label{align-self:center;margin-left:2px;color:#806a43;font-size:11px;font-weight:700}

.home-project-overview{display:grid;gap:34px}.home-overview-head{max-width:850px}.home-overview-head h1{margin:8px 0 12px}.home-overview-head>p:last-child{margin:0;color:var(--muted);font-size:17px}.home-phase-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.home-phase-card{min-height:250px;display:grid;grid-template-rows:auto 1fr auto;gap:24px;padding:28px;text-align:left;border:1px solid var(--line);border-top:5px solid var(--accent);border-radius:12px;background:var(--surface);color:var(--ink);box-shadow:var(--shadow);cursor:pointer;transition:transform .18s ease,box-shadow .18s ease}.home-phase-card:hover{transform:translateY(-4px);box-shadow:0 18px 35px rgba(52,39,25,.13)}.home-phase-card.phase-qualification{border-top-color:#347fb7}.home-phase-card.phase-attack{border-top-color:#438b59}.home-phase-card.phase-final{border-top-color:#b64b3f}.home-phase-number{font:700 16px Georgia,serif;color:var(--muted)}.home-phase-card strong{display:block;margin-bottom:10px;font:700 28px/1.15 Georgia,serif}.home-phase-card small{display:block;color:var(--muted);font-size:14px;line-height:1.55}.home-phase-card>b{justify-self:end;font-size:27px;font-weight:400}@media(max-width:800px){.home-phase-grid{grid-template-columns:1fr}.home-phase-card{min-height:190px}}
.home-phase-card{min-height:390px;grid-template-rows:auto 145px 1fr auto;gap:18px}.home-phase-illustration{display:grid;place-items:center;overflow:hidden;border-radius:9px;background:#f3eee4}.home-phase-illustration svg{width:100%;height:100%;padding:12px;fill:none;stroke:currentColor;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;opacity:.72}.phase-qualification .home-phase-illustration{color:#347fb7;background:#edf5fb}.phase-attack .home-phase-illustration{color:#438b59;background:#eef7f0}.phase-final .home-phase-illustration{color:#b64b3f;background:#fbefed}.home-phase-illustration .accent-line{stroke-width:7;opacity:1}@media(max-width:800px){.home-phase-card{min-height:350px}}

/* Les annotations de lecture vivent dans une véritable marge extérieure. */
@media(min-width:1451px){
  .flow-variant-panel,.flow-common-box,.gameplay-description-box,.final-situation-read,.final-step-read,.annotated-layout{position:relative;overflow:visible}
  .flow-variant-panel>.margin-annotation,.flow-common-box>.margin-annotation,.gameplay-description-box>.margin-annotation,.final-situation-read>.margin-annotation,.final-step-read>.margin-annotation,.annotated-layout>.margin-annotation{position:absolute;top:12px;right:calc(100% + 18px);z-index:2;float:none;width:205px;margin:0;box-sizing:border-box;box-shadow:0 8px 22px rgba(66,50,26,.08)}
  .annotated-layout.has-annotation{display:block}
  .annotated-step{grid-template-columns:42px minmax(0,1fr)}
}
@media(max-width:1450px){
  .annotated-layout.has-annotation{grid-template-columns:1fr}
  .annotated-layout>.margin-annotation{margin-bottom:14px}
  .annotated-step{grid-template-columns:42px minmax(0,1fr)}
  .annotated-step>.margin-annotation{grid-column:2;margin-bottom:4px}
}

/* Alignement des cartes de qualification (la structure diffère des anciennes cartes). */
#challenge-list .challenge-row-main{grid-template-columns:34px minmax(0,1fr) auto;gap:16px;padding:20px 22px}
#challenge-list .summary-toggle{grid-column:1;grid-row:1;align-self:center}
#challenge-list .challenge-main-content{grid-column:2;display:grid;grid-template-columns:42px minmax(0,1fr);column-gap:14px;align-items:center;min-width:0}
#challenge-list .challenge-count{grid-column:1;grid-row:1/3;align-self:center;color:var(--gold);font:700 14px Georgia,serif}
#challenge-list .challenge-main-content h2{grid-column:2;margin:0 0 8px;font:700 23px/1.2 Georgia,serif;overflow-wrap:anywhere}
#challenge-list .challenge-meta{grid-column:2;display:flex;flex-wrap:wrap;gap:7px;align-items:center}
#challenge-list .row-actions{grid-column:3;grid-row:1;align-self:center;white-space:nowrap}
@media(max-width:760px){#challenge-list .challenge-row-main{grid-template-columns:34px minmax(0,1fr)}#challenge-list .row-actions{grid-column:2;grid-row:2;margin-top:12px;padding-left:56px;white-space:normal}#challenge-list .challenge-main-content{grid-column:2}}
@media(max-width:520px){#challenge-list .challenge-row-main{padding:16px 14px;gap:10px}#challenge-list .challenge-main-content{grid-template-columns:1fr}#challenge-list .challenge-count{grid-column:1;grid-row:auto;margin-bottom:5px}#challenge-list .challenge-main-content h2,#challenge-list .challenge-meta{grid-column:1}#challenge-list .row-actions{padding-left:0}}
.qualification-flow-row{border-left:5px solid var(--gold)}.qualification-flow-row.flow-dexterity{border-left-color:#347fb7}.qualification-flow-row.flow-infiltration{border-left-color:#438b59}.qualification-flow-row.flow-diversion{border-left-color:#b64b3f}.qualification-flow{display:grid;gap:24px}.flow-block{padding:22px;border:1px solid var(--line);border-radius:10px;background:#fffdf9}.flow-block-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:16px}.flow-block-head h3{margin:0;font:700 21px Georgia,serif}.flow-block-head p{margin:5px 0 0;color:var(--muted);font-size:13px}.flow-variant-tabs{display:flex;gap:7px;overflow-x:auto;padding:2px 2px 10px}.flow-variant-tab{flex:0 0 auto;padding:8px 12px;border:1px solid var(--line);border-radius:20px;background:#f3eee4;color:var(--muted);cursor:pointer}.flow-variant-tab.is-active{border-color:var(--gold);background:#e9dfca;color:var(--ink);font-weight:800}.flow-variant-panel{padding:18px;border-left:3px solid var(--gold);border-radius:0 8px 8px 0;background:#f8f4ec}.flow-variant-panel[hidden]{display:none}.flow-variant-panel p,.flow-common-content{margin:0;color:var(--muted);line-height:1.7}.flow-variant-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px}.flow-variant-actions button,.flow-block-head button{padding:7px 10px;border:1px solid var(--line);border-radius:5px;background:var(--surface);cursor:pointer}.flow-variant-actions .delete{color:var(--accent)}.flow-empty{margin:0;color:var(--muted);font-style:italic}.flow-common-editor textarea{min-height:120px}.flow-common-editor-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}.flow-variant-images{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.flow-variant-images img{width:100%;max-height:360px;object-fit:contain;border:1px solid var(--line);border-radius:8px;background:#eee8dc}@media(max-width:650px){.flow-block{padding:16px}.flow-block-head{display:grid}.flow-variant-images{grid-template-columns:1fr}}
.block-variant-editor{display:grid;gap:14px;padding:18px;border:1px dashed var(--gold);border-radius:9px;background:#faf6ed}.block-variant-editor label{display:grid;gap:7px;font-size:12px;font-weight:800}.block-variant-flags{display:flex;flex-wrap:wrap;gap:14px}.block-variant-flags label{display:flex;align-items:center;gap:7px;font-weight:700}.block-variant-flags input{width:auto}.block-variant-image-preview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.block-variant-image-preview figure{position:relative;margin:0}.block-variant-image-preview img{width:100%;height:150px;object-fit:contain;border:1px solid var(--line);border-radius:7px;background:#eee8dc}.block-variant-image-preview button{position:absolute;right:6px;bottom:6px;padding:5px 7px;border:0;border-radius:4px;background:rgba(35,33,29,.86);color:#fff}.block-variant-editor-actions{display:flex;justify-content:flex-end;gap:8px}@media(max-width:650px){.block-variant-image-preview{grid-template-columns:1fr}}
.qualification-flow-static{margin-top:0}.qualification-flow-static .flow-block{box-shadow:var(--shadow)}.qualification-flow-static.flow-dexterity .flow-block{border-top:3px solid rgba(52,127,183,.55)}.qualification-flow-static.flow-infiltration .flow-block{border-top:3px solid rgba(67,139,89,.55)}.qualification-flow-static.flow-diversion .flow-block{border-top:3px solid rgba(182,75,63,.55)}
.diversion-brief-box{padding:22px 24px;border:1px solid #dfbeb9;border-left:5px solid #b64b3f;border-radius:10px;background:#fff8f6;color:#5f4a46;line-height:1.75;box-shadow:0 7px 20px rgba(74,45,39,.06)}.diversion-brief-box strong{color:#8f3027;font-weight:800}
.diversion-restitution-brief{background:#fffaf8;border-left-color:#9d473f}
.flow-common-box{padding:22px 24px;border:1px solid var(--line);border-left:5px solid var(--gold);border-radius:10px;background:#fffaf3;box-shadow:0 7px 20px rgba(55,43,30,.06)}.flow-common-box.common-dexterity{border-color:#bed5e6;border-left-color:#347fb7;background:#f7fbfe}.flow-common-box.common-infiltration{border-color:#c6ddcd;border-left-color:#438b59;background:#f7fcf8}.flow-common-box.common-diversion{border-color:#dfbeb9;border-left-color:#b64b3f;background:#fff8f6}.flow-common-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.flow-common-heading span{display:block;margin-bottom:5px;color:var(--muted);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.1em}.flow-common-heading h3{margin:0;font:700 21px Georgia,serif}.flow-common-heading button{padding:7px 11px;border:1px solid var(--line);border-radius:5px;background:var(--surface);cursor:pointer}.flow-common-content{line-height:1.75}.flow-common-box.common-dexterity strong{color:#245f89}.flow-common-box.common-infiltration strong{color:#326b43}.flow-common-box.common-diversion strong{color:#8f3027}@media(max-width:600px){.flow-common-heading{display:grid}}
.loose-ideas-list{display:grid;gap:10px}.loose-idea-row{display:grid;grid-template-columns:42px minmax(0,1fr) 150px 160px 38px;align-items:center;gap:10px;padding:12px 14px;background:var(--surface,#fffdf8);border:1px solid var(--line,#ded5c5);border-radius:9px;box-shadow:0 6px 18px rgba(52,39,25,.05)}.loose-idea-row.is-to-delete{background:#fff3f1;border-color:#dfb0a9}.loose-idea-number{color:var(--gold);font:700 15px Georgia,serif}.loose-idea-text,.loose-idea-category,.loose-idea-status{margin:0}.loose-idea-row.is-to-delete .loose-idea-text{color:#9c463b}.loose-idea-delete{width:36px;height:36px;border:0;border-radius:6px;background:transparent;color:var(--accent);font-size:17px;cursor:pointer}.loose-idea-delete:hover{background:#f1e3df}@media(max-width:680px){.loose-idea-row{grid-template-columns:32px minmax(0,1fr) 38px}.loose-idea-category{grid-column:2/3}.loose-idea-status{grid-column:2/3}.loose-idea-delete{grid-column:3;grid-row:1}}
.loose-idea-row.is-to-revise{background:#fff9e9;border-color:#d9c487}.loose-idea-row.is-to-revise .loose-idea-text{color:#765f24}

.data-tools{display:flex;align-items:center;gap:7px;margin-left:10px}.data-tools button,.data-tools label{width:auto;display:inline-flex;align-items:center;justify-content:center;padding:8px 10px;border:1px solid rgba(255,255,255,.18);border-radius:6px;background:rgba(255,255,255,.06);color:#ddd9cf;font-size:11px;font-weight:700;cursor:pointer;white-space:nowrap}.data-tools button:hover,.data-tools label:hover{background:rgba(255,255,255,.13);color:#fff}.data-tools input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}@media(max-width:1050px){.topbar{height:auto;min-height:76px;flex-wrap:wrap;padding-top:10px;padding-bottom:10px}.topbar nav{order:3;width:100%;height:48px;overflow-x:auto}.nav-button{flex:0 0 auto}.data-tools{margin-left:auto}}
.status-badge.status-revise,.reader-meta .status-badge.status-revise{color:#744f78;background:#eee1ef}

/* Slider modifiable de la page d’accueil */
.home-slider{position:relative}.home-slider-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:12px;color:var(--muted);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.home-slider-toolbar button{padding:8px 11px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);font-weight:700;cursor:pointer}.home-slider-stage{position:relative;min-height:350px;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}.home-slide{display:none;min-height:350px;padding:54px 90px;align-items:center}.home-slide.is-active{display:grid;animation:homeSlideIn .25s ease}.home-slide.is-intro{text-align:center}.home-slide.is-intro>div{max-width:760px;margin:auto}.home-slide.is-intro h1{font-size:47px}.home-slide.is-intro p:last-child,.home-slide-universe p{color:var(--muted);font-size:17px;line-height:1.7}.home-slide-universe{display:grid;grid-template-columns:82px minmax(0,1fr);align-items:center;gap:28px}.home-slide-icon{display:grid;place-items:center;width:76px;height:76px;border-radius:16px;background:#ebe4d8;font-size:42px}.home-slide-universe h1{margin-bottom:17px}.home-slide-universe .universe-badge{font-size:12px}.home-slider-arrow{position:absolute;top:50%;z-index:2;width:43px;height:43px;display:grid;place-items:center;transform:translateY(-50%);border:1px solid var(--line);border-radius:50%;background:rgba(255,253,248,.94);color:var(--ink);font-size:30px;cursor:pointer;box-shadow:0 5px 15px rgba(0,0,0,.08)}.home-slider-arrow.prev{left:18px}.home-slider-arrow.next{right:18px}.home-slider-dots{display:flex;justify-content:center;gap:8px;margin-top:14px}.home-slider-dot{width:9px;height:9px;padding:0;border:0;border-radius:50%;background:#cfc7b8;cursor:pointer}.home-slider-dot.is-active{width:25px;border-radius:10px;background:var(--accent)}.home-slider-form{display:grid;gap:18px}.home-slide-fields{display:grid;gap:16px}.home-slide-fields h2{margin-bottom:0}@keyframes homeSlideIn{from{opacity:0;transform:translateX(12px)}to{opacity:1;transform:none}}@media(max-width:700px){.home-slide{min-height:410px;padding:45px 55px}.home-slider-stage{min-height:410px}.home-slide.is-intro h1{font-size:35px}.home-slide-universe{grid-template-columns:1fr;text-align:center}.home-slide-icon{margin:auto}.home-slide-universe p{font-size:15px}.home-slider-arrow.prev{left:8px}.home-slider-arrow.next{right:8px}}
.diversion-flag{color:#7a4c27;background:#f3e3d3}

/* Slider agrandi pour les contenus longs */
.landing-shell{max-width:1240px}.home-slider-stage{min-height:500px}.home-slide{min-height:500px;padding:70px 115px}.home-slide.is-intro>div{max-width:900px}.home-slide-universe{grid-template-columns:96px minmax(0,1fr);gap:36px}.home-slide-icon{width:88px;height:88px;font-size:48px}.home-slide-universe p{max-width:900px;font-size:18px;line-height:1.8}@media(max-width:700px){.home-slider-stage,.home-slide{min-height:500px}.home-slide{padding:55px 55px}.home-slide-universe p{font-size:16px}}
/* Séparation des acteurs principaux et secondaires */
.actor-group{display:grid;gap:12px}.actor-group+.actor-group{margin-top:30px;padding-top:28px;border-top:2px solid var(--line)}.actor-group-list{display:grid;gap:12px}.actor-group-empty{margin:0;padding:22px;border:1px dashed var(--line);border-radius:8px;color:var(--muted)}
/* Vignettes des acteurs principaux */
.actor-group.is-principal .actor-group-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.actor-group.is-principal .challenge-row{display:flex;flex-direction:column;min-width:0}.actor-group.is-principal .actor-row-main{flex:1;grid-template-columns:48px minmax(0,1fr) 34px;align-items:start;padding:20px 18px}.actor-group.is-principal .challenge-row-title{min-width:0}.actor-group.is-principal .challenge-row-title h2{font-size:20px;overflow-wrap:anywhere}.actor-group.is-principal .row-actions{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);width:100%;margin-top:18px;padding-left:0}.actor-group.is-principal .row-actions button{padding:8px 6px}.actor-group.is-principal .challenge-summary{padding:0 18px 18px}.actor-main-description{margin:14px 0 0;color:var(--muted);font-size:13px;line-height:1.6;white-space:pre-line}@media(max-width:950px){.actor-group.is-principal .actor-group-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.actor-group.is-principal .actor-group-list{grid-template-columns:1fr}.actor-group.is-principal .actor-row-main{grid-template-columns:48px minmax(0,1fr) 30px}.actor-group.is-principal .row-actions{grid-column:1/-1}}
/* Retours à la ligne saisis dans les slides */
.home-slide h1,.home-slide p{white-space:pre-line}
/* Repère coloré des trois univers principaux */
.challenge-row.challenge-theme-van{border-left:5px solid #4f829e}.challenge-row.challenge-theme-workshop{border-left:5px solid #b65c43}.challenge-row.challenge-theme-library{border-left:5px solid #80689a}
.slide-rich-field>span{display:flex;align-items:center;justify-content:space-between;gap:12px}.slide-rich-field>span button{width:auto;padding:5px 9px;border:1px solid var(--line);border-radius:5px;background:#eee8dd;color:var(--ink);font-size:11px;cursor:pointer}.slide-rich-field>span button:hover{background:#e3dacb}.home-slide strong{font-weight:800;color:var(--ink)}
/* Gameplays chronologiques et enquêtes à pistes parallèles */
.gameplay-structure-label{display:grid!important;grid-template-columns:minmax(180px,260px);gap:7px;margin-bottom:24px}.step-section-field{display:none!important;margin:0 0 12px}.gameplay-editor-panel.is-parallel .step-section-field{display:block!important}.gameplay-editor-panel.is-parallel .step-row{padding:18px;border:1px solid var(--line);border-radius:9px;background:#fbf8f1}.gameplay-editor-panel.is-parallel .step-row+.step-row{margin-top:12px}.parallel-gameplay{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.parallel-piste{padding:18px;border:1px solid var(--line);border-radius:9px;background:var(--surface);box-shadow:0 6px 16px rgba(52,39,25,.05)}.parallel-piste h3{margin:0 0 12px;font:700 19px Georgia,serif}.parallel-piste-content+.parallel-piste-content{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.parallel-piste-content p{margin:0;color:var(--muted);line-height:1.65;white-space:pre-wrap}.parallel-piste-flags{margin-top:9px}.parallel-piste.piste-setup,.parallel-piste.piste-finale,.parallel-piste.piste-other{grid-column:1/-1}.parallel-piste.piste-who{border-top:4px solid #80689a}.parallel-piste.piste-when{border-top:4px solid #b78c4b}.parallel-piste.piste-where{border-top:4px solid #4f829e}.parallel-piste.piste-setup{border-left:4px solid #77736a}.parallel-piste.piste-finale{border-left:4px solid #5d8064}@media(max-width:760px){.parallel-gameplay{grid-template-columns:1fr}.parallel-piste.piste-setup,.parallel-piste.piste-finale,.parallel-piste.piste-other{grid-column:auto}}
/* Challenge déplié : présentation pleine largeur */
.expanded-challenge-content {
  display: grid;
  gap: 30px;
}

.expanded-challenge-content > .expanded-section {
  margin-bottom: 0;
}

.expanded-top-context {
  display: grid;
  grid-template-columns: minmax(220px, .7fr) minmax(0, 2fr);
  gap: 28px;
  padding: 20px 22px;
  background: #f5f0e7;
  border: 1px solid var(--line);
  border-radius: 10px;
}

.expanded-top-context h3 {
  margin: 0 0 12px;
  font: 700 18px Georgia, serif;
}

.expanded-top-actors > div {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px;
}

.expanded-top-actor {
  padding: 11px 13px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 8px;
}

.expanded-top-actor p {
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.55;
  white-space: pre-wrap;
}

.expanded-material-details {
  overflow: hidden;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 9px;
}

.expanded-material-details summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 17px 20px;
  cursor: pointer;
  font: 700 19px Georgia, serif;
}

.expanded-material-details summary small {
  color: var(--muted);
  font: 600 12px Arial, sans-serif;
}

.expanded-material-details[open] summary {
  border-bottom: 1px solid var(--line);
}

.expanded-material-groups {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 20px;
  padding: 20px;
}

.expanded-material-groups .expanded-material + .expanded-material {
  margin-top: 0;
}

@media (max-width: 700px) {
  .expanded-top-context {
    grid-template-columns: 1fr;
    padding: 16px;
  }

  .expanded-top-actors > div {
    grid-template-columns: 1fr;
  }
}
/* Fil conducteur des challenges linéaires */
.challenge-timeline { --timeline-color:var(--accent); list-style:none; margin:0; padding:4px 0 0; }
.challenge-timeline>li { position:relative; display:grid; grid-template-columns:46px minmax(0,1fr); gap:16px; padding:0 0 22px; }
.challenge-timeline>li:not(:last-child)::after { content:""; position:absolute; left:22px; top:43px; bottom:3px; width:2px; background:var(--line); }
.challenge-timeline-number { position:relative; z-index:1; display:grid; place-items:center; width:44px; height:44px; border:2px solid #d7b2a7; border-radius:50%; background:var(--surface); color:var(--accent); font:700 13px Georgia,serif; box-shadow:0 3px 9px rgba(52,39,25,.08); }
.challenge-timeline-card { min-width:0; padding:17px 19px; border:1px solid var(--line); border-radius:9px; background:var(--surface); box-shadow:0 5px 14px rgba(52,39,25,.045); }
.challenge-timeline-title { display:block; margin-bottom:7px; color:var(--ink); font:700 17px Georgia,serif; }
.challenge-timeline-card p { margin:0; color:var(--muted); line-height:1.68; white-space:pre-wrap; }
.challenge-timeline-flags { display:flex; flex-wrap:wrap; gap:7px; margin-top:11px; }
.challenge-timeline-flags:empty { display:none; }
.challenge-timeline-flags .social-flag,.challenge-timeline-flags .step-type-flag { display:inline-block; width:auto; margin-top:0; }
@media(max-width:580px){.challenge-timeline>li{grid-template-columns:36px minmax(0,1fr);gap:10px}.challenge-timeline-number{width:34px;height:34px;font-size:11px}.challenge-timeline>li:not(:last-child)::after{left:17px;top:35px}.challenge-timeline-card{padding:14px}}
/* Carrousels de présentation et filtres personnages */
.home-carousel-switcher{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:22px}.home-carousel-switcher button,.challenge-character-filters button{padding:13px 16px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font-weight:700;cursor:pointer}.home-carousel-switcher button.is-active,.challenge-character-filters button.is-active{border-color:var(--accent);background:#f3dfda;color:var(--accent)}.home-slide-image{display:block;width:100%;height:360px;object-fit:contain;object-position:center;border-radius:10px;background:#eee8dc}.home-slide:has(.home-slide-image) .home-slide-universe{grid-template-columns:minmax(280px,46%) minmax(0,1fr)}.home-slide-editor-head{display:flex;align-items:center;justify-content:space-between;gap:15px}.home-slide-editor-head .delete{width:auto;padding:8px 11px}.home-slide-image-field{display:grid;gap:7px}.home-slide-image-preview{display:grid;gap:9px;color:var(--muted)}.home-slide-image-preview img{width:100%;max-height:300px;object-fit:contain;border:1px solid var(--line);border-radius:8px;background:#eee8dc}.home-slide-image-preview button{width:max-content}.add-home-slide{width:100%}.toolbar{display:flex;align-items:end;justify-content:space-between;gap:18px}.challenge-character-filters{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));gap:10px;flex:1}.challenge-status-filter{min-width:210px}@media(max-width:760px){.home-carousel-switcher,.challenge-character-filters{grid-template-columns:1fr}.toolbar{align-items:stretch}.challenge-status-filter{min-width:0}.home-slide:has(.home-slide-image) .home-slide-universe{grid-template-columns:1fr}.home-slide-image{height:220px}}
.home-carousel-switcher{grid-template-columns:repeat(4,1fr)}@media(max-width:760px){.home-carousel-switcher{grid-template-columns:repeat(2,1fr)}}
.home-content-friendly-badge{display:inline-block;width:max-content;margin:2px 0 14px;padding:5px 10px;border-radius:20px;background:#efe4cc;color:#755c2f;font:700 11px Arial,sans-serif;letter-spacing:.02em}.home-slide.is-intro .home-content-friendly-badge{margin-left:auto;margin-right:auto}.home-content-friendly-option{display:flex!important;align-items:center;gap:9px;padding:12px 14px;border:1px solid var(--line);border-radius:7px;background:#faf7f0;font-weight:700}.home-content-friendly-option input{width:auto}
.home-slide-universe.no-image{grid-template-columns:1fr}.home-slide-universe.no-image>div{max-width:950px;margin:auto;width:100%}
.home-slide-order-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.home-slide-order-actions button{width:auto;padding:8px 11px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);cursor:pointer}.home-slide-order-actions button:hover{border-color:var(--accent);color:var(--accent)}@media(max-width:600px){.home-slide-editor-head{align-items:flex-start;flex-direction:column}.home-slide-order-actions{justify-content:flex-start}}
/* Structure commune des gameplays du Technicien */
.gameplay-editor-panel.is-technician .step-section-field,.gameplay-editor-panel.is-hacker .step-section-field{display:block!important}.gameplay-editor-panel.is-technician .step-row,.gameplay-editor-panel.is-hacker .step-row{padding:18px;border:1px solid var(--line);border-radius:9px;background:#fbf8f1}.gameplay-editor-panel.is-technician .step-row+.step-row,.gameplay-editor-panel.is-hacker .step-row+.step-row{margin-top:12px}.technician-gameplay,.hacker-gameplay{display:grid;gap:0}.technician-phase{position:relative;display:grid;grid-template-columns:48px minmax(0,1fr);gap:16px;padding:0 0 24px}.technician-phase:not(:last-child)::after{content:"";position:absolute;left:23px;top:46px;bottom:3px;width:2px;background:var(--line)}.technician-phase-number{position:relative;z-index:1;display:grid;place-items:center;width:46px;height:46px;border:2px solid #d9b3a8;border-radius:50%;background:var(--surface);color:var(--accent);font:700 13px Georgia,serif}.technician-phase>div{padding:17px 19px;border:1px solid var(--line);border-radius:9px;background:var(--surface)}.technician-phase h3{margin:0 0 10px!important;font:700 18px Georgia,serif}.technician-phase-content+.technician-phase-content{margin-top:15px;padding-top:15px;border-top:1px solid var(--line)}.technician-phase-content p{margin:0;color:var(--muted);line-height:1.68;white-space:pre-wrap}.technician-phase-empty{margin:0;color:#aaa49a;font-style:italic}.technician-phase.tech_welcome .technician-phase-number{border-color:#c7c2b8;color:#77736a}@media(max-width:580px){.technician-phase{grid-template-columns:36px minmax(0,1fr);gap:10px}.technician-phase-number{width:34px;height:34px;font-size:11px}.technician-phase:not(:last-child)::after{left:17px;top:35px}.technician-phase>div{padding:14px}}
.home-carousel-switcher{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.home-carousel-switcher .new-carousel-button{border-style:dashed;color:var(--accent);background:transparent}.carousel-name-panel{border-left:4px solid var(--accent)}
.carousel-name-panel{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:18px}.carousel-order-actions{display:flex;gap:8px}.carousel-order-actions button{width:auto;padding:10px 12px;border:1px solid var(--line);border-radius:6px;background:var(--surface);cursor:pointer}.home-slide:has(.home-slide-feature-image){padding:30px}.home-slide-feature-image{display:flex;flex-direction:column;width:100%;overflow:hidden;border-radius:11px;background:#eee8dc}.home-slide-feature-image>img{display:block;width:100%;height:360px;object-fit:contain;object-position:center}.home-slide-feature-title{position:static;padding:22px 42px 24px;background:#292722;color:#fff}.home-slide-feature-title h1{margin:0;color:#fff;font-size:38px}.home-slide-feature-title .home-content-friendly-badge{margin-top:12px}@media(max-width:700px){.carousel-name-panel{grid-template-columns:1fr}.carousel-order-actions{flex-wrap:wrap}.home-slide:has(.home-slide-feature-image){padding:16px}.home-slide-feature-image>img{height:330px}.home-slide-feature-title{padding:20px 22px 22px}.home-slide-feature-title h1{font-size:30px}}
/* Page Identification */
.identification-shell{max-width:1250px}.identification-head{display:grid;grid-template-columns:44px minmax(170px,.8fr) minmax(210px,1fr) minmax(300px,1.7fr) 42px;gap:12px;padding:0 16px 9px;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.identification-head span:first-child{grid-column:2}.identification-list{display:grid;gap:10px}.identification-row{display:grid;grid-template-columns:44px minmax(170px,.8fr) minmax(210px,1fr) minmax(300px,1.7fr) 42px;gap:12px;align-items:center;padding:14px 16px;border:1px solid var(--line);border-radius:9px;background:var(--surface);box-shadow:0 4px 12px rgba(52,39,25,.04)}.identification-number{color:var(--gold);font:700 14px Georgia,serif}.identification-row input,.identification-row select,.identification-row textarea{width:100%;margin:0}.identification-row textarea{resize:none;overflow:hidden;min-height:42px;line-height:1.45}.identification-clue{min-height:58px!important}.identification-actor-field{display:grid;gap:8px}.identification-multiple{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px;font-weight:700}.identification-multiple input{width:auto}.identification-actor:disabled{opacity:.45}.identification-delete{display:grid;place-items:center;width:36px;height:36px;padding:0;border:1px solid #ead4ce;border-radius:6px;background:#fff8f6;color:var(--accent);cursor:pointer}@media(max-width:700px){.identification-head{display:none}.identification-row{grid-template-columns:32px minmax(0,1fr) 38px}.identification-title,.identification-actor-field,.identification-row textarea{grid-column:2/4}.identification-delete{grid-column:3;grid-row:1}}
/* Réorganisation des blocs du gameplay Technicien */
.step-head-actions{display:flex;align-items:center;gap:10px}.step-order-actions{display:none;gap:6px}.gameplay-editor-panel.is-technician .step-order-actions{display:flex}.step-order-actions button{padding:6px 9px;border:1px solid var(--line);border-radius:5px;background:var(--surface);color:var(--ink);font-size:11px;font-weight:700;cursor:pointer}.step-order-actions button:hover{border-color:var(--accent);color:var(--accent)}
@media(max-width:600px){.step-head{align-items:flex-start}.step-head-actions{align-items:flex-end;flex-direction:column-reverse}.step-order-actions{flex-wrap:wrap;justify-content:flex-end}}
/* Fiches Identification */
.identification-list{display:grid;gap:11px}.identification-card{overflow:hidden;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:0 5px 14px rgba(52,39,25,.05)}.identification-card-head{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:12px;padding:16px 18px}.identification-card-head h2{margin:0;font-size:21px}.identification-card-toggle{display:grid;place-items:center;width:36px;height:36px;padding:0;border:0;border-radius:50%;background:#eee8dc;color:var(--ink);font-size:24px;cursor:pointer;transition:transform .2s}.identification-card-toggle.is-open{transform:rotate(90deg)}.identification-card-actions{display:flex;gap:8px}.identification-card-actions button{padding:9px 12px;border:1px solid var(--line);border-radius:6px;background:var(--surface);cursor:pointer}.identification-card-actions .delete{color:var(--accent)}.identification-card-details{padding:20px 76px 24px;border-top:1px solid var(--line)}.identification-card-details h3{margin:0 0 6px;font-size:15px}.identification-card-details p{margin:0 0 20px;color:var(--muted);line-height:1.7;white-space:pre-wrap}.identification-card-image{display:block;width:100%;max-height:520px;object-fit:contain;border-radius:9px;background:#eee8dc}.identification-editor-multiple{display:flex!important;align-items:center;gap:9px;padding:12px 14px;border:1px solid var(--line);border-radius:7px;background:#faf7f0}.identification-editor-multiple input{width:auto}.identification-image-field{display:grid;gap:8px}.identification-image-preview{position:relative;width:min(100%,720px);margin:0}.identification-image-preview img{display:block;width:100%;max-height:500px;object-fit:contain;border:1px solid var(--line);border-radius:9px;background:#eee8dc}.identification-image-preview button{position:absolute;right:9px;bottom:9px;padding:8px 10px;border:0;border-radius:6px;background:rgba(36,35,31,.88);color:#fff;cursor:pointer}@media(max-width:700px){.identification-card-head{grid-template-columns:38px minmax(0,1fr)}.identification-card-actions{grid-column:2;flex-wrap:wrap}.identification-card-details{padding:18px 20px 22px}}
.identification-mechanic{margin:0 0 26px;padding:24px 28px;border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:10px;background:#faf7f0;box-shadow:0 5px 14px rgba(52,39,25,.04)}.identification-mechanic h2{margin:4px 0 10px;font-size:25px}.identification-mechanic p:not(.eyebrow){max-width:900px;margin:7px 0;color:var(--muted);font-size:16px;line-height:1.7}.identification-mechanic strong{color:var(--ink)}

/* Nouvelle rubrique Challenges */
.challenge-mechanic{margin-bottom:24px}
.challenge-gameplay-filters{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:0 0 28px}
.challenge-gameplay-filters button{min-height:54px;border:1px solid var(--line,#ddd2c1);border-radius:10px;background:#fffdf9;font:700 16px inherit;cursor:pointer}
.challenge-gameplay-filters button[data-gameplay="dexterity"]{color:#245f91;background:#edf6fc;border-color:#b9d7eb}.challenge-gameplay-filters button[data-gameplay="dexterity"].is-active{color:#fff;background:#347fb7;border-color:#347fb7;box-shadow:0 8px 20px rgba(52,127,183,.2)}
.challenge-gameplay-filters button[data-gameplay="infiltration"]{color:#347348;background:#edf7ef;border-color:#bfdcc6}.challenge-gameplay-filters button[data-gameplay="infiltration"].is-active{color:#fff;background:#438b59;border-color:#438b59;box-shadow:0 8px 20px rgba(67,139,89,.2)}
.challenge-gameplay-filters button[data-gameplay="diversion"]{color:#9a382e;background:#fbeeed;border-color:#e6c2be}.challenge-gameplay-filters button[data-gameplay="diversion"].is-active{color:#fff;background:#b64b3f;border-color:#b64b3f;box-shadow:0 8px 20px rgba(182,75,63,.2)}
.challenge-gameplay-filters{position:sticky;top:10px;z-index:40;padding:10px;margin:0 -10px 28px;border:1px solid rgba(216,205,187,.78);border-radius:13px;background:rgba(246,242,233,.94);box-shadow:0 9px 24px rgba(52,39,25,.11);backdrop-filter:blur(9px)}
.gameplay-family-badge,.archive-badge{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:700}
.family-dexterity{background:#dfeefa;color:#285c84}.family-infiltration{background:#e0f1e4;color:#347348}.family-diversion{background:#f7dfdc;color:#9a382e}.archive-badge{background:#ece8df;color:#6f675b}
.new-gameplay-blocks{display:grid;gap:14px}.new-gameplay-block{display:grid;grid-template-columns:44px 1fr;gap:16px;padding:20px;border:1px solid #e1d8ca;border-radius:12px;background:#fffdf9}.new-gameplay-block h3{margin:0 0 8px}.new-gameplay-block p{margin:0;white-space:pre-wrap}.new-gameplay-number{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#efe9de;color:#a83b2b;font-weight:800}
.old-challenge-row{opacity:.92}
.place-family-dexterity{border-left:5px solid #347fb7}.place-family-infiltration{border-left:5px solid #438b59}.place-family-diversion{border-left:5px solid #b64b3f}
.places-unified .place-group-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.places-unified .challenge-row{display:flex;flex-direction:column;min-width:0}.places-unified .challenge-row-main{flex:1;grid-template-columns:48px minmax(0,1fr) 34px;align-items:start;padding:20px 18px}.places-unified .row-actions{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);width:100%;margin-top:18px}.places-unified .challenge-summary{padding:0 18px 18px}
.actor-place-card .gameplay-family-badge,.places-unified .gameplay-family-badge{margin-top:7px}.actor-group.is-complice{margin-top:32px;padding-top:28px;border-top:1px solid var(--line)}.actor-group.is-complice .actor-group-list{display:grid;gap:12px}.actor-place-card.is-complice{border-left:5px solid #aaa398}
.final-parts{display:grid;gap:24px}.final-part{padding:26px}.final-part-1{border-top:5px solid #347fb7}.final-part-2{border-top:5px solid #438b59}.final-part-3{border-top:5px solid #b64b3f}.final-step-list{display:grid;gap:12px;margin-top:20px}.final-step{display:grid;grid-template-columns:42px minmax(0,1fr) 36px;gap:12px;align-items:start;padding:14px;border:1px solid var(--line);border-radius:10px;background:#fffdf9}.final-step-number{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#eee8dc;color:var(--accent);font-size:12px;font-weight:800}.final-step textarea{width:100%;min-height:52px;resize:vertical;border:0;background:transparent;line-height:1.55;padding:7px 4px;overflow:hidden}.final-step textarea:focus{outline:0}.final-empty{margin:0;padding:22px;border:1px dashed var(--line);border-radius:10px;color:var(--muted);text-align:center}
.final-part-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.final-part-card{display:flex;min-height:145px;padding:22px;flex-direction:column;align-items:flex-start;justify-content:center;border:1px solid var(--line);border-top-width:5px;border-radius:12px;background:var(--surface);text-align:left;box-shadow:var(--shadow);transition:transform .18s,box-shadow .18s}.final-part-card:hover{transform:translateY(-2px)}.final-part-card.is-active{box-shadow:0 0 0 3px rgba(156,62,45,.13),var(--shadow)}.final-part-card span{font-size:14px;color:var(--muted)}.final-part-card strong{margin:7px 0;font-family:Georgia,serif;font-size:28px}.final-part-card small{color:var(--muted)}.final-part-detail{padding:28px}.final-step-content{display:grid;gap:8px;min-width:0}.final-step-title{width:100%;padding:6px 4px;border:0;border-bottom:1px solid var(--line);background:transparent;font-family:Georgia,serif;font-size:20px;font-weight:700}.final-step-title:focus{outline:0;border-color:var(--accent)}.final-step-image-editor{margin-top:8px}.final-step-image-editor figure{position:relative;margin:12px 0 0}.final-step-image-editor img{display:block;width:100%;max-height:600px;object-fit:contain;border:1px solid var(--line);border-radius:10px;background:#eee8dc}.final-step-image-editor figure button{position:absolute;right:10px;bottom:10px;padding:8px 11px;border:0;border-radius:6px;background:rgba(36,35,31,.88);color:#fff}.final-step-image-input{display:none}
.final-situation{display:grid;gap:7px;margin:22px 0 8px;padding:20px;border:1px solid #d8ccb9;border-left:5px solid var(--accent);border-radius:10px;background:#faf7f0}.final-situation>strong{font-family:Georgia,serif;font-size:21px}.final-situation>span{color:var(--muted);font-size:13px}.final-situation textarea{width:100%;min-height:92px;margin-top:5px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);line-height:1.6;resize:vertical;overflow:hidden}
.final-part-title-input{width:min(720px,100%);padding:4px 0;border:0;border-bottom:1px solid var(--line);background:transparent;font-family:Georgia,serif;font-size:30px;font-weight:700;line-height:1.2;resize:none;overflow:hidden}.final-part-title-input:focus{outline:0;border-color:var(--accent)}.final-situation-read p{margin:5px 0 0;white-space:pre-wrap;line-height:1.7}.final-edit-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:24px}.final-edit-toolbar h3,.final-steps-heading{margin:0}.final-steps-heading{margin-top:26px}.final-step-read{display:grid;grid-template-columns:42px minmax(0,1fr);gap:16px;padding:20px;border:1px solid var(--line);border-radius:11px;background:#fffdf9}.final-step-read h3{margin:3px 0 9px;font-family:Georgia,serif;font-size:22px}.final-step-read p{margin:0;line-height:1.7;white-space:pre-wrap}.final-step-read img{display:block;width:100%;max-height:650px;margin-top:16px;object-fit:contain;border:1px solid var(--line);border-radius:10px;background:#eee8dc}
.final-part-card span{color:var(--ink);font:700 25px/1.2 Georgia,serif}.final-part-card strong{margin:9px 0 0;color:var(--muted);font:800 13px/1.2 Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase}.final-detail-heading .eyebrow{font-size:11px}.final-detail-heading h2{font-size:32px;margin-top:5px}
.attack-placeholder{padding:34px;border-left:5px solid var(--accent)}.attack-placeholder h2{margin-bottom:10px}.attack-placeholder p{margin:0;color:var(--muted);line-height:1.7}
@media(max-width:760px){.challenge-gameplay-filters{grid-template-columns:1fr}.new-gameplay-block{grid-template-columns:36px 1fr}}
@media(max-width:760px){.challenge-gameplay-filters{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;top:6px;padding:7px;margin-left:-7px;margin-right:-7px}.challenge-gameplay-filters button{min-height:44px;padding:6px 4px;font-size:12px}}
@media(max-width:950px){.places-unified .place-group-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.places-unified .place-group-list{grid-template-columns:1fr}}
@media(max-width:700px){.final-part-tabs{grid-template-columns:1fr}.final-part-card{min-height:105px}.final-step{grid-template-columns:36px minmax(0,1fr) 32px}}
