/* Page famille et sélecteur d’enfant : grands boutons, une couleur par enfant. */
.family-page{background:var(--paper)}
.family-main{max-width:960px;margin:0 auto;padding:28px 16px 60px;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;gap:22px}
.family-hero{display:flex;align-items:center;gap:16px}
.family-hero .logo{width:52px;height:52px;font-size:34px;border-radius:15px}
.family-hero h1{font-size:34px;margin:2px 0 4px}
.family-hero p{margin:0;color:var(--muted)}
.family-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:18px}
.family-card{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"icon name" "icon today" "badge badge" "go go";gap:6px 16px;align-items:center;padding:24px 22px;border-radius:22px;background:var(--white);border:2px solid var(--child-soft,#eaf2e7);text-decoration:none;color:var(--ink);box-shadow:0 10px 30px #163b3212;transition:transform .12s,box-shadow .12s;min-height:170px}
.family-card:hover,.family-card:focus-visible{transform:translateY(-2px);box-shadow:0 16px 36px #163b3222;border-color:var(--child)}
.family-icon{grid-area:icon;font-size:52px;line-height:1;width:82px;height:82px;display:grid;place-items:center;border-radius:24px;background:var(--child-soft,#eaf2e7)}
.family-name{grid-area:name}.family-name strong{display:block;font-size:28px;letter-spacing:-.6px;color:var(--child)}.family-name small{color:var(--muted);font-size:13px;font-weight:650}
.family-today{grid-area:today;font-size:14px;color:var(--ink)}
.family-badge{grid-area:badge;font-size:13px;font-weight:650;color:var(--child);background:var(--child-soft);padding:6px 10px;border-radius:9px;justify-self:start}
.family-go{grid-area:go;margin-top:6px;display:inline-block;justify-self:start;background:var(--child);color:#fff;font-weight:700;padding:11px 18px;border-radius:12px;font-size:15px}
.family-foot{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:auto;padding-top:10px;border-top:1px solid var(--line)}
.family-foot #parent-open{position:relative}
.family-switch{font-size:12px;color:var(--muted);text-decoration:none}.family-switch:hover{text-decoration:underline}
.aside-foot .family-switch{display:inline-block;margin-top:10px}
footer .family-switch{margin-left:auto}
.parent-children{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:3px;padding:3px;margin:0 0 20px;background:#e6ebe3;border-radius:13px}
.parent-children button{display:flex;align-items:center;justify-content:center;gap:9px;border:0;background:transparent;border-radius:10px;padding:7px 10px;min-height:52px;position:relative;color:var(--ink);transition:background .2s,box-shadow .2s}
.parent-children button.active{background:var(--white);box-shadow:0 1px 3px #0000001f,0 1px 1px #0000000d;color:var(--child)}
.parent-children .child-icon{font-size:22px}.parent-children .child-name{display:grid;text-align:left;line-height:1.2}.parent-children strong{font-size:16px}.parent-children small{font-size:12px;color:var(--muted);font-weight:500}
.parent-children b{position:absolute;top:5px;right:7px;background:#d93025;color:#fff;border-radius:999px;font-size:11px;min-width:20px;height:20px;display:inline-grid;place-items:center;padding:0 6px}
.parent-family-strip{display:grid;gap:8px;margin:4px 0 14px}
.parent-family-strip button{display:flex;justify-content:space-between;align-items:center;gap:10px;text-align:left;border:1px dashed var(--line);border-radius:12px;padding:10px 14px;background:var(--white)}
.parent-family-strip strong{color:var(--child)}
.read-aloud{font-size:13px;padding:6px 10px;min-height:36px;border:1px dashed var(--line);border-radius:10px;margin:6px 0}
@media(max-width:760px){.family-main{padding:18px 14px 40px}.family-hero h1{font-size:28px}.family-card{padding:18px 16px}.family-icon{width:66px;height:66px;font-size:40px}.family-name strong{font-size:24px}}






















/* Bilan parent : lisible d'un coup d'œil, grands boutons, pas de jargon. */
.bilan{display:grid;gap:18px;font-size:15px}
.bilan-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;align-items:flex-start}
.bilan-head h3{font-size:22px;margin:0 0 4px}.bilan-head p{margin:0;font-size:16px}
.bilan-period{display:flex;gap:6px;flex-wrap:wrap}
.bilan-period button{min-height:40px;padding:6px 14px;border-radius:999px;border:1px solid var(--line);background:var(--white);font-weight:650;font-size:14px}
.bilan-period button.active{background:var(--green);color:#fff;border-color:var(--green)}
.bilan-figures{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.bilan-figures div{background:var(--white);border:1px solid var(--line);border-radius:14px;padding:14px 12px;text-align:center}
.bilan-figures strong{display:block;font-size:26px;letter-spacing:-.5px;color:var(--green)}
.bilan-figures span{font-size:13px;color:var(--muted)}
.bilan-upcoming{background:#fff6e5;border:1px solid #f0d9a8;border-radius:14px;padding:12px 16px}
.bilan-upcoming p{margin:6px 0 0;font-size:15px}.bilan-upcoming small{display:block;color:var(--muted);font-size:13px}
.bilan-block{background:var(--white);border:1px solid var(--line);border-radius:16px;padding:16px}
.bilan-block h4{font-size:18px;margin:0 0 10px;display:flex;align-items:center;gap:8px}
.bilan-block h4 span{font-size:13px;background:var(--soft);color:var(--ink);border-radius:999px;padding:2px 10px}
.bilan-block.weak{border-color:#efc2b8}.bilan-block.strong{border-color:#c9e3cf}
.bilan-block ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.bilan-block li{padding:8px 0;border-top:1px solid var(--line)}.bilan-block li:first-child{border-top:0}
.bilan-block li strong{font-size:15px}.bilan-block li small{display:block;color:var(--muted);font-size:13px;margin-top:2px}
.bilan-item{border-top:1px solid var(--line);padding:12px 0}.bilan-item:first-of-type{border-top:0;padding-top:0}
.bilan-item-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.bilan-item-head strong{font-size:17px}
.bilan-item p{margin:6px 0}
.bilan-item details summary{font-size:14px;color:var(--green);font-weight:650;cursor:pointer}
button.big{min-height:50px;font-size:16px;padding:12px 20px;border-radius:12px}
.bilan-confirm{background:var(--soft);border-radius:12px;padding:12px 14px}.bilan-confirm p{margin:4px 0}
.bilan-request{margin:6px 0;font-size:15px;font-weight:600}.bilan-request small{display:block;font-weight:400;color:var(--muted);font-size:13px}
.bilan-request.ready{color:#1f6b47}.bilan-request.failed{color:#a0412d}
.bilan-empty{color:var(--muted);margin:0}
.origin-badge{display:inline-block;font-size:12px;border-radius:6px;padding:2px 8px;background:#eef1eb;color:#4c5d52;margin-right:4px}
.origin-badge.parent{background:#fde9d8;color:#8a4a17}
.journal-item{border-top:1px solid var(--line);padding:12px 0;display:grid;gap:8px}
.journal-main{display:grid;grid-template-columns:62px minmax(0,1fr);gap:10px}
.journal-date{font-size:13px;font-weight:700;color:var(--muted);padding-top:2px}
.journal-main strong{display:block;font-size:15px;margin-top:4px}.journal-main small{display:block;color:var(--muted);font-size:13px}
.journal-item>button{justify-self:start;min-height:42px}
.journal-detail{background:var(--paper);border-radius:12px;padding:12px 14px}
.journal-section{margin:8px 0}.journal-section p{margin:2px 0}
.journal-questions{padding-left:22px}.journal-questions li{margin:10px 0}.journal-questions p{margin:2px 0}
.journal-filter{display:grid;gap:4px;max-width:280px;font-size:13px;font-weight:650;margin:6px 0 4px}
.bilan-more{margin:0}.bilan-help{font-size:14px}
.bilan-link{width:100%;margin:12px 0}
@media(max-width:760px){.bilan-figures{grid-template-columns:repeat(2,minmax(0,1fr))}.bilan-figures strong{font-size:22px}.journal-main{grid-template-columns:1fr}.bilan-block{padding:14px}}
/* Écran d'exercice en primaire : plus grand, plus lisible. */
body.level-primaire .practice-card h2.question{font-size:24px;line-height:1.35}
body.level-primaire .answer-label span{font-size:15px}
body.level-primaire .answer-label input,body.level-primaire .answer-label select{font-size:20px;min-height:52px}
body.level-primaire .hint,body.level-primaire .feedback p{font-size:16px}
.bilan-fold{margin-top:8px}.bilan-fold>summary{font-size:15px;font-weight:650;color:var(--green);cursor:pointer;padding:8px 0}
.bilan-fold[open]>summary{margin-bottom:6px}
.bilan-global{margin:0;font-size:15px;background:var(--white);border:1px solid var(--line);border-radius:12px;padding:10px 14px}
.bilan-subjects h4{font-size:18px;margin:0 0 10px;display:flex;flex-wrap:wrap;gap:8px;align-items:baseline}
.bilan-subject-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.bilan-subject{display:grid;gap:6px;text-align:left;background:var(--white);border:2px solid var(--line);border-radius:14px;padding:14px;cursor:pointer;min-height:0}
.bilan-subject:hover{border-color:var(--green)}.bilan-subject.active{border-color:var(--green);background:var(--soft)}
.bilan-subject-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.bilan-subject-head>strong{font-size:17px}
.bilan-score{font-size:14px;font-weight:650;white-space:nowrap}.bilan-score strong{font-size:20px}
.bilan-score.none{color:var(--muted);font-weight:500}
.chart-legend i.ok{background:#267868}.chart-legend i.err{background:#eab967}.chart-legend i.wait{background:#a8b8df}.chart-legend i.rev{background:#789a92}
.bilan-bar{display:block;height:8px;border-radius:99px;background:#e7ece6;overflow:hidden}.bilan-bar i{display:block;height:100%;background:var(--green);border-radius:99px}
.bilan-subject small{color:var(--muted);font-size:13px;line-height:1.4}
.bilan-alerts{display:flex;flex-wrap:wrap;gap:6px}
.bilan-alert{font-size:12.5px;font-weight:650;border-radius:8px;padding:3px 8px;background:#fdecea;color:#8f3524}
.bilan-alert.eval{background:#fff3dc;color:#7a5410}.bilan-alert.idle{background:#e9effb;color:#35518a}.bilan-alert.good{background:#e6f3ea;color:#1f6b47}
.bilan-filter{display:flex;flex-wrap:wrap;align-items:center;gap:10px;background:var(--soft);border-radius:12px;padding:10px 14px;font-size:16px;scroll-margin-top:12px}
.bilan-filter button{min-height:42px}
@media(max-width:760px){.bilan-subject-grid{grid-template-columns:1fr}}
.bilan-subject-grid.single{grid-template-columns:1fr}

/* ---------------------------------------------------------------- Espace parent : navigation façon iOS */
#parent-dialog{max-width:720px;padding:0;background:#f4f5f0;scroll-padding-top:64px}
#parent-content{padding:0 22px calc(28px + env(safe-area-inset-bottom))}
.pnav{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:54px;margin:0 -22px;padding:env(safe-area-inset-top) 22px 0;background:#f4f5f0d1;background:color-mix(in srgb,#f4f5f0 82%,transparent);-webkit-backdrop-filter:saturate(1.6) blur(18px);backdrop-filter:saturate(1.6) blur(18px);border-bottom:.5px solid #0000001a}
.pnav-back,.pnav-close{background:none;border:0;color:var(--green);font-size:17px;min-height:44px;padding:6px 0;display:inline-flex;align-items:center;gap:3px;font-weight:500}
.pnav-back span{font-size:30px;line-height:1;margin-top:-4px}
.pnav-close{font-weight:650;margin-left:auto}
.pnav-brand{font-size:12px;font-weight:650;letter-spacing:.6px;text-transform:uppercase;color:var(--muted)}
.ptitle h2{font-size:30px;line-height:1.15;font-weight:800;letter-spacing:-.4px;margin:14px 0 4px}
.ptitle h2:focus{outline:none}
.ptitle p{margin:0 0 18px;color:var(--muted);font-size:15px}
.ptitle:has(+ .parent-children) h2{margin-bottom:14px}
.pintro{margin:0 0 16px;color:var(--muted);font-size:14.5px;line-height:1.45}
.phero{display:flex;align-items:center;gap:14px;background:var(--white);border-radius:16px;padding:16px;margin:0 0 26px;box-shadow:0 1px 2px #0000000f}
.phero-mark{flex:0 0 46px;height:46px;border-radius:50%;display:grid;place-items:center;font-size:22px;font-weight:800}
.phero.ok .phero-mark{background:#dff0e8;color:var(--green)}.phero.todo .phero-mark{background:#fde3e0;color:#c5271c}
.phero strong{font-size:18px;display:block}.phero p{margin:3px 0 0;color:var(--muted);font-size:14.5px;line-height:1.45}
.pgroup{margin:0 0 26px}
.pgroup>h3{font-size:13px;font-weight:650;letter-spacing:.4px;text-transform:uppercase;color:var(--muted);margin:0 0 8px 16px}
.pgroup-list{background:var(--white);border-radius:14px;overflow:hidden;box-shadow:0 1px 2px #0000000f}
.pgroup-foot{font-size:13px;color:var(--muted);margin:8px 16px 0;line-height:1.4}
.prow{position:relative;display:flex;align-items:center;gap:13px;width:100%;min-height:62px;padding:11px 14px;background:transparent;border:0;border-radius:0;text-align:left;color:var(--ink);text-decoration:none;font-weight:400;transition:background .15s}
.prow+.prow::before{content:"";position:absolute;top:0;left:62px;right:0;height:.5px;background:#0000001f}
button.prow:active,a.prow:active{background:#e9ede6}
@media(hover:hover){button.prow:hover,a.prow:hover{background:#f3f5f0}}
.prow-icon{flex:0 0 36px;height:36px;border-radius:9px;display:grid;place-items:center;font-size:19px;background:#eceee9}
.prow-icon.green{background:#dff0e8}.prow-icon.blue{background:#e1ecfb}.prow-icon.purple{background:#efe4f6}.prow-icon.gold{background:#fbf0d6}.prow-icon.red{background:#fde3e0}.prow-icon.orange{background:#fdebd3}
.prow-text{flex:1;min-width:0;display:grid;gap:1px}
.prow-text strong{font-size:16.5px;font-weight:600;line-height:1.3}
.prow-text small{font-size:14px;color:var(--muted);line-height:1.35}
.prow-text small{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}.prow.static .prow-text small{display:block}
.prow-badge{flex:0 0 auto;background:#e1ecfb;color:#2a58b4;border-radius:999px;padding:2px 9px;font-size:12.5px;font-weight:700}
.prow-badge.red{background:#d93025;color:#fff}
.prow-chevron{flex:0 0 auto;color:#b4bdb7;font-size:24px;line-height:1;margin-left:2px}
.prow.static{cursor:default}.prow.static .prow-text small{font-size:13.5px}
.pscreen.enter-forward{animation:pscreen-in .3s cubic-bezier(.2,.8,.2,1)}
.pscreen.enter-back{animation:pscreen-back .3s cubic-bezier(.2,.8,.2,1)}
@keyframes pscreen-in{from{opacity:0;transform:translateX(28px)}to{opacity:1;transform:none}}
@keyframes pscreen-back{from{opacity:0;transform:translateX(-28px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.pscreen.enter-forward,.pscreen.enter-back{animation:none}}
.bilan-lead{flex:1 1 260px;margin:0;font-size:16.5px;line-height:1.45}
.school-chapters>summary{font-weight:650}
#parent-page>.pgroup:last-child{margin-bottom:8px}
@media(max-width:760px){
 #parent-dialog{width:100%;max-width:none;height:100vh;height:100dvh;max-height:none;margin:0;border:0;border-radius:0;box-shadow:none}
 #parent-content{padding:0 16px calc(24px + env(safe-area-inset-bottom))}
 .pnav{margin:0 -16px;padding:env(safe-area-inset-top) 16px 0}
 .ptitle h2{font-size:28px;margin-top:10px}
 .pnav-close,.pnav-back{font-size:17px}
}
/* Progrès : sélecteur de période segmenté, cartes matière façon liste iOS */
.bilan-period{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:3px;padding:3px;background:#e6ebe3;border-radius:11px}
.bilan-period button{min-height:38px;border:0;border-radius:9px;background:transparent;font-weight:600;font-size:14.5px;padding:4px 8px;color:var(--ink)}
.bilan-period button.active{background:var(--white);color:var(--ink);box-shadow:0 1px 3px #0000001f}
.bilan-global{border:0;box-shadow:0 1px 2px #0000000f;color:var(--muted)}.bilan-global b{color:var(--ink)}
.bilan-subjects{margin:0}
.bilan-subject{border:0;box-shadow:0 1px 2px #0000000f;border-radius:14px;padding:14px 14px 14px 16px;color:var(--ink)}
.bilan-subject:hover{border-color:transparent}button.bilan-subject:active{background:#e9ede6}
@media(hover:hover){button.bilan-subject:hover{background:#f7f8f4}}
.bilan-subject .bilan-subject-head{align-items:center}.bilan-subject-head>strong{flex:1}
.bilan-subject.static{cursor:default}
.bilan-block{border:0;box-shadow:0 1px 2px #0000000f}
.bilan-block.weak{box-shadow:inset 3px 0 0 #e0806c,0 1px 2px #0000000f}.bilan-block.strong{box-shadow:inset 3px 0 0 #7cc08f,0 1px 2px #0000000f}.bilan-block.progress{box-shadow:inset 3px 0 0 #eab967,0 1px 2px #0000000f}
.bilan-upcoming{border:0}
.bilan .pgroup{margin:0}

/* Période du bilan */
.period-picker{display:grid;gap:8px}
.period-range{display:flex;align-items:center;gap:10px;width:100%;min-height:50px;padding:10px 14px;border:0;border-radius:12px;background:var(--white);box-shadow:0 1px 2px #0000000f;text-align:left;color:var(--ink);font-size:15px}
.period-range span:nth-child(2){flex:1}.period-range em{font-style:normal;color:var(--green);font-weight:650;font-size:14px;white-space:nowrap}
.period-range.active{box-shadow:inset 0 0 0 2px var(--green)}
.period-form{display:grid;gap:12px;background:var(--white);border-radius:14px;padding:14px;box-shadow:0 1px 2px #0000000f}
.period-form[hidden]{display:none}
.period-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.period-fields label{display:grid;gap:4px;font-size:13px;font-weight:650;color:var(--muted)}
.period-fields input{font-size:16px;min-height:46px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#fbfcf9;color:var(--ink);width:100%;min-width:0}
.period-quick{display:flex;flex-wrap:wrap;gap:6px}.period-quick button{min-height:38px;font-size:14px;padding:6px 12px;border-radius:999px}
.period-form #period-error:empty{display:none}.period-form #period-error{color:#a0412d;margin:0}
@media(max-width:380px){.period-fields{grid-template-columns:1fr}}
/* Calendrier de période : grandes cases, identique sur tous les appareils */
.period-form{max-width:none}
.cal-ends{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px}
.cal-ends>span{color:var(--muted);font-size:18px}
.cal-end{display:grid;gap:2px;text-align:left;min-height:62px;padding:9px 12px;border:0;border-radius:12px;background:#f1f3ee;color:var(--ink)}
.cal-end small{font-size:12.5px;font-weight:650;color:var(--muted)}.cal-end b{font-size:16px;font-weight:650}
.cal-end.active{background:var(--white);box-shadow:inset 0 0 0 2px var(--green)}
.cal-hint{margin:0;text-align:center;color:var(--muted);font-size:14.5px}
.cal-head{display:flex;align-items:center;justify-content:space-between;gap:10px;max-width:460px;width:100%;margin:0 auto}
.cal-head strong{font-size:18px}
.cal-nav{width:46px;height:46px;border-radius:50%;border:0;background:#eef2ec;color:var(--green);font-size:28px;line-height:1;display:grid;place-items:center;padding:0 0 3px}
.cal-nav:disabled{color:#c3cbc5;background:#f4f5f2}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));row-gap:4px;max-width:460px;width:100%;margin:0 auto}
.cal-wd{text-align:center;font-size:12.5px;font-weight:700;color:var(--muted);padding:4px 0}
.cal-day{height:48px;border:0;border-radius:12px;background:transparent;font-size:17px;font-weight:500;color:var(--ink);padding:0;position:relative}
@media(hover:hover){.cal-day:not(:disabled):not(.start):not(.end):hover{background:#eef2ec}}
.cal-day.today:not(.start):not(.end){box-shadow:inset 0 0 0 2px #b9d3c7;font-weight:700;color:var(--green)}
.cal-day.inside{background:#e1efe8;border-radius:0}
.cal-day.start,.cal-day.end{background:var(--green);color:#fff;font-weight:700}
.cal-day.start{border-radius:12px 0 0 12px}.cal-day.end{border-radius:0 12px 12px 0}.cal-day.start.single,.cal-day.start.end{border-radius:12px}
.cal-day:disabled{color:#c7cec9;opacity:1;cursor:default}
.period-form .period-quick{justify-content:center}

/* Avis du parent sur une séance */
.session-card{padding:12px 14px;display:grid;gap:8px}
.session-head{display:grid;gap:2px}.session-head strong{font-size:16.5px}
.session-opinion{display:grid;gap:8px}
.opinion-question{margin:0;font-weight:650;font-size:15.5px}
.opinion-buttons{display:flex;gap:8px;flex-wrap:wrap}.opinion-buttons button{min-height:46px;min-width:96px;font-size:16px}
.opinion-buttons button[aria-pressed=true]{border-color:var(--green);background:var(--soft);background:color-mix(in srgb,var(--green) 10%,white)}
.opinion-reasons{display:grid;gap:6px;background:#f6f8f3;border-radius:12px;padding:10px 12px}
.opinion-reasons[hidden]{display:none}
.opinion-reason{display:flex;align-items:center;gap:8px;font-size:15px;min-height:36px}.opinion-reason input{width:20px;height:20px}
.opinion-reasons textarea{width:100%;font:inherit;font-size:15px;border:1px solid var(--line);border-radius:10px;padding:8px}
.session-opinion p{margin:0}
.mission-detail .session-opinion{margin:8px 0 12px;padding:10px 12px;border-radius:12px;background:#f6f8f3}

/* Marque Le Maître Mot */
.brand-mark{width:46px;height:auto;flex:0 0 auto}
.brand:has(.brand-mark){gap:10px}
.family-hero .family-logo{width:92px;height:auto;flex:0 0 auto}
@media(max-width:760px){.family-hero .family-logo{width:68px}}
.brand:has(.brand-mark)>span:last-child{font-size:17px;line-height:1.15;white-space:nowrap}
/* Photos du cahier */
.photo-card{display:flex;gap:14px;background:var(--white);border-radius:14px;box-shadow:0 1px 2px #0000000f;padding:14px;margin:0 0 10px}.photo-card.warn{box-shadow:0 0 0 2px #e6b35a inset}.photo-thumbs{display:flex;gap:6px;flex-wrap:wrap;align-content:flex-start;max-width:46%}.photo-thumb img{display:block;width:64px;height:84px;object-fit:cover;border-radius:8px;border:1px solid var(--line);background:var(--soft)}.photo-thumb{text-decoration:none}.photo-thumb .capture-pdf{width:64px;height:84px;font-size:13px;border:1px solid var(--line)}.photo-more{display:grid;place-items:center;width:64px;height:84px;border-radius:8px;background:var(--soft);color:var(--muted);font-weight:650}.photo-body{flex:1;min-width:0;display:grid;gap:8px;align-content:start}.photo-body p{margin:0}.photo-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.photo-actions select{flex:1 1 190px;min-width:190px;width:auto}.photo-delete{justify-self:start;color:#a14332}.photo-delete[data-armed]{font-weight:750;text-decoration:underline}.photo-intro{margin:0 16px 10px}
@media(max-width:560px){.photo-card{flex-direction:column}.photo-thumbs{max-width:none}}
/* Journal des échanges IA */




/* Appareils connectés */
.device-add h3{margin:0 0 6px}.pair-qr{display:flex;justify-content:center;margin:14px 0 6px}.pair-qr svg{width:230px;max-width:100%;height:auto;background:#fff;border-radius:12px}.pair-code{text-align:center;font-size:15px;margin:6px 0}.pair-code b{font-size:24px;letter-spacing:3px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.pair-adresse{font-weight:700;word-break:break-all}#pair-left{text-align:center}
.device-card{display:flex;gap:12px;background:var(--white);border-radius:14px;box-shadow:0 1px 2px #0000000f;padding:14px;margin:0 0 10px}.device-icon{font-size:28px;line-height:1}.device-body{flex:1;min-width:0;display:grid;gap:6px}.device-body small{color:var(--muted)}.device-current{font-size:12px;font-weight:700;color:#1f6b47;background:#dff0e8;border-radius:999px;padding:2px 8px;margin-left:6px}.device-rename{display:flex;gap:8px}.device-rename input{flex:1;min-width:0}.device-actions{display:flex;gap:16px;flex-wrap:wrap}
