/* Gratitude — carnet (app) styles. All custom classes are prefixed "crn-" to avoid
   colliding with the rest of the site. Relies on variables from gratitude_light.css
   and gratitude_dark.css (--cream, --ink, --line, --orange, --accent-a/b, --radius, --shadow). */

.crn-wrap{max-width:760px;margin:0 auto;padding-left:20px;padding-right:20px;}
.crn-hidden{display:none !important;}
/* Pas de « tirer pour rafraîchir » ni de rebond : un glissement vers le bas en haut de page
   rechargeait la page et cassait le code secret sur mobile (et c'est plus « app » ainsi). */
html, body{overscroll-behavior-y:none;}

/* onboarding */
.crn-onboard{position:relative;overflow:hidden;min-height:70vh;display:flex;align-items:center;justify-content:center;padding:48px 20px 64px;}
.crn-onboard-card{max-width:520px;text-align:center;position:relative;z-index:1;}
.crn-onboard-card h1{font-size:clamp(2rem,5vw,2.9rem);line-height:1.1;margin:18px 0;}
.crn-onboard-card p.crn-lede{color:var(--ink-soft);max-width:440px;margin:0 auto 28px;font-size:1.05rem;}
.crn-preview{margin:0 auto 30px;}
.crn-preview-week{display:flex; gap:8px; justify-content:center; margin-bottom:12px;}
.crn-preview-day{display:flex; flex-direction:column; align-items:center; gap:6px;}
.crn-preview-dow{font-size:0.7rem; color:var(--ink-faint); text-transform:uppercase; letter-spacing:0.02em;}
.crn-preview-dot{width:30px; height:30px; border-radius:50%; background:var(--cream-2); border:1.5px solid var(--line); display:block;}
.crn-preview-dot.on{background:radial-gradient(circle at 32% 28%,#FFE1A0,var(--accent-a) 65%); border-color:transparent;}
.crn-preview-caption{font-size:0.85rem; color:var(--ink-faint); text-align:center; margin:0;}
.crn-actions{display:flex;flex-direction:column;gap:12px;align-items:center;}

.crn-profiles-list{display:flex;flex-direction:column;gap:10px;margin:0 auto 20px;max-width:340px;text-align:left;}
.crn-profile-card{background:var(--paper);border:1.5px solid var(--line);border-radius:var(--radius-lg);padding:14px 16px;font-family:inherit;color:var(--ink);cursor:pointer;width:100%;text-align:left;}
.crn-profile-open:hover{border-color:var(--orange);}
.crn-profile-row{display:flex;align-items:center;gap:10px;font-size:0.95rem;font-weight:600;}
.crn-profile-row :is(i,svg){color:var(--ink-faint);}
.crn-profile-unlock{display:flex;gap:8px;margin-top:10px;}
.crn-profile-unlock input{flex:1;padding:9px 11px;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--cream);color:var(--ink);font-family:inherit;font-size:0.88rem;}
.crn-profile-unlock input:focus{outline:none;border-color:var(--orange);}
.crn-fine-print{margin-top:24px;font-size:0.85rem;color:var(--ink-faint);}

/* buttons */
.crn-btn{border:none;border-radius:999px;padding:13px 28px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .15s ease;}
.crn-btn:hover{transform:translateY(-1px);}
.crn-btn-primary{background:var(--sun);color:#3A2A0E;box-shadow:0 5px 0 0 var(--sun-deep);}
:root[data-bs-theme="dark"] .crn-btn-primary{color:var(--accent-face);box-shadow:0 5px 0 0 var(--sun-deep);}
.crn-btn-primary:active{transform:translateY(2px);box-shadow:0 2px 0 0 var(--sun-deep);}
.crn-btn-ghost{background:transparent;color:var(--ink);border:1.5px solid var(--line);border-radius:999px;padding:11px 26px;font-weight:600;cursor:pointer;}
.crn-btn-ghost:hover{border-color:var(--orange);}

/* header / nav */
.crn-header{position:sticky;top:0;z-index:5;background:var(--cream);border-bottom:1px solid var(--line);}
.crn-header-inner{display:flex;align-items:center;justify-content:space-between;padding:14px 0;flex-wrap:wrap;gap:8px;}
.crn-header-right{display:flex;align-items:center;gap:10px;}
.crn-tally{font-size:0.82rem;color:var(--ink-soft);background:var(--cream-2);padding:5px 12px;border-radius:999px;display:inline-flex;align-items:center;gap:6px;}
.crn-tally-icon{display:none;}
.crn-tally-compact{display:none;font-weight:700;}
.crn-tabs{display:flex;gap:4px;overflow-x:auto;padding-bottom:10px;margin-bottom:-1px;}
.crn-tabs button{background:transparent;border:none;padding:8px 14px;border-radius:10px 10px 0 0;font-size:0.92rem;font-weight:600;color:var(--ink-faint);white-space:nowrap;border-bottom:2px solid transparent;cursor:pointer;display:inline-flex;align-items:center;gap:8px;}
.crn-tabs button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--orange);}
.crn-tabs button:hover{color:var(--ink);}

/* banner */
.crn-banner{background:var(--orange-soft);border-bottom:1px solid var(--line);}
.crn-banner .crn-wrap{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 16px;font-size:0.9rem;flex-wrap:wrap;}
.crn-banner button{background:var(--ink);color:var(--cream);border:none;padding:7px 16px;border-radius:999px;font-size:0.85rem;font-weight:600;cursor:pointer;}

/* panels */
.crn-main{padding-top:32px;padding-bottom:70px;}
.crn-panel{display:none;}
.crn-panel.active{display:block;}
.crn-title{font-size:1.5rem;margin-bottom:6px;}
.crn-subtitle{font-size:1.05rem;margin-bottom:10px;}

.crn-switch-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid var(--line);}
.crn-switch-row:last-child{border-bottom:none;}
.crn-switch-label{display:block;font-size:0.9rem;font-weight:600;}
.crn-switch-desc{display:block;font-size:0.78rem;color:var(--ink-faint);margin-top:2px;}
.crn-switch{position:relative;display:inline-block;width:42px;height:24px;flex-shrink:0;}
.crn-switch input{position:absolute;opacity:0;width:1px;height:1px;}
.crn-switch-slider{position:absolute;inset:0;background:var(--line);border-radius:999px;transition:background .2s;cursor:pointer;}
.crn-switch-slider::before{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;background:#fff;border-radius:50%;transition:transform .2s;box-shadow:0 1px 2px rgba(0,0,0,0.2);}
.crn-switch input:checked + .crn-switch-slider{background:var(--orange);}
.crn-switch input:checked + .crn-switch-slider::before{transform:translateX(18px);}
.crn-switch input:focus-visible + .crn-switch-slider{outline:2px solid var(--orange);outline-offset:2px;}

.crn-memory-card{margin-top:14px;}
.crn-memory-card .crn-entry-list{margin-top:12px;}
.crn-greeting{font-size:0.95rem;color:var(--orange);margin-bottom:6px;}
.crn-sub{color:var(--ink-soft);margin-bottom:22px;font-size:0.95rem;}
.crn-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);padding:22px;margin-bottom:18px;box-shadow:var(--shadow);}

/* today */
.crn-today-header-row{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:18px;}
.crn-today-header-row .crn-title,
.crn-today-header-row .crn-sub{margin-bottom:0;}
.crn-today-stats{display:flex;gap:10px;flex-shrink:0;}
.crn-stat-pill{background:var(--cream-2);border-radius:var(--radius);padding:10px 16px;font-size:0.88rem;white-space:nowrap;}
.crn-stat-pill b{font-size:1.1rem;display:block;}

.crn-today-date{font-size:1.05rem;margin-bottom:12px;text-transform:capitalize;color:var(--ink-soft);}

.crn-today-form{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);margin-bottom:18px;overflow:hidden;}
.crn-today-form-summary{list-style:none;cursor:pointer;padding:16px 20px;display:flex;justify-content:space-between;align-items:center;font-size:0.95rem;}
.crn-today-form-summary::-webkit-details-marker{display:none;}
.crn-today-form-summary::marker{content:"";}
.crn-today-form-chevron{color:var(--ink-faint);transition:transform .2s;}
.crn-today-form[open] .crn-today-form-chevron{transform:rotate(180deg);}
.crn-today-form-body{padding:0 20px 22px;border-top:1px solid var(--line);padding-top:18px;}
.crn-entry-form{display:flex;gap:10px;flex-wrap:wrap;}
.crn-entry-form input[type=text],
.crn-entry-form input[type=password]{flex:1;min-width:180px;padding:12px 14px;border:1.5px solid var(--line);border-radius:var(--radius);background:var(--cream);color:var(--ink);text-overflow:ellipsis;}
.crn-entry-form input[type=text]:focus,
.crn-entry-form input[type=password]:focus{outline:none;border-color:var(--orange);}
.crn-entry-form button{background:var(--sun);color:#3A2A0E;border:none;border-radius:var(--radius);padding:0 20px;font-weight:700;cursor:pointer;}
.crn-optional-hint{font-size:0.78rem;color:var(--ink-faint);text-align:center;margin:0 0 18px;}
.crn-emotions{margin-top:10px;}
.crn-emotion-select{width:100%; padding:11px 12px; border:1.5px solid var(--line); border-radius:var(--radius); background:var(--cream); color:var(--ink); font-size:0.92rem; font-family:inherit; cursor:pointer;}
.crn-emotion-select:focus{outline:none; border-color:var(--orange);}

.crn-prompt{font-style:italic; color:var(--ink-soft); font-size:0.9rem; margin:2px 0 14px;}

.crn-tag-input-row{display:flex; gap:8px;}
.crn-tag-input-row input{flex:1; padding:10px 12px; border:1.5px solid var(--line); border-radius:var(--radius); background:var(--cream); color:var(--ink); font-family:inherit; font-size:0.9rem;}
.crn-tag-input-row input:focus{outline:none; border-color:var(--orange);}
.crn-tag-input-row button{background:var(--cream-2); border:1.5px solid var(--line); color:var(--ink-soft); border-radius:var(--radius); width:40px; cursor:pointer; flex-shrink:0;}
.crn-tag-input-row button:hover{border-color:var(--orange); color:var(--orange);}
.crn-tag-chips{display:flex; flex-wrap:wrap; gap:6px; margin-top:8px;}
.crn-tag-chips:empty{margin-top:0;}
.crn-tag-chip{display:inline-flex; align-items:center; gap:6px; background:var(--orange-soft); color:var(--ink); border-radius:999px; padding:4px 10px; font-size:0.78rem; font-weight:600;}
.crn-tag-remove{background:none; border:none; color:inherit; opacity:0.6; padding:0; font-size:0.75rem; cursor:pointer; line-height:1;}
.crn-tag-remove:hover{opacity:1;}
.crn-entry-tags{display:flex; flex-wrap:wrap; gap:5px; margin-top:6px;}
.crn-entry-tags .crn-tag-chip{background:var(--cream-2); font-weight:500; font-size:0.72rem; padding:3px 9px;}

.crn-entry-list{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-direction:column;gap:8px;}
#crn-today-list-card .crn-entry-list{margin-top:0;}
.crn-entry-list li{display:flex;align-items:flex-start;gap:10px;background:var(--cream);border-radius:var(--radius);padding:10px 12px;}
.crn-entry-list li .bullet{font-size:1.05rem;line-height:1.4;}
.crn-entry-list li .emo{font-size:1.05rem;}
.crn-entry-list li .txt{flex:1;}
.crn-entry-list li .del{background:none;border:none;color:var(--ink-faint);font-size:1rem;padding:2px 6px;border-radius:6px;cursor:pointer;}
.crn-entry-list li .del:hover{color:var(--rose);}
.crn-entry-actions{display:flex;align-items:center;gap:2px;flex-shrink:0;}
.crn-entry-actions .edit{background:none;border:none;color:var(--ink-faint);font-size:0.9rem;padding:4px 6px;border-radius:6px;cursor:pointer;}
.crn-entry-actions .edit:hover{color:var(--orange);}
.crn-empty-note{color:var(--ink-faint);font-size:0.92rem;font-style:italic;margin-top:14px;}

.crn-entry-list li.crn-entry-edit{display:block;background:var(--paper);border:1.5px solid var(--orange);}
.crn-edit-text{width:100%;padding:9px 11px;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--cream);color:var(--ink);font-family:inherit;font-size:0.92rem;box-sizing:border-box;margin-bottom:8px;}
.crn-edit-text:focus{outline:none;border-color:var(--orange);}
.crn-entry-edit .crn-emotion-select{margin-bottom:8px;}
.crn-entry-edit .crn-tag-input-row{margin-bottom:6px;}
.crn-edit-actions{display:flex;gap:8px;margin-top:10px;}
.crn-edit-save{background:var(--sun);color:#3A2A0E;border:none;border-radius:var(--radius-sm);padding:8px 16px;font-size:0.85rem;cursor:pointer;}
.crn-edit-cancel{background:none;border:1.5px solid var(--line);color:var(--ink-soft);border-radius:var(--radius-sm);padding:8px 16px;font-size:0.85rem;cursor:pointer;}
.crn-edit-cancel:hover{border-color:var(--ink-faint);}

.crn-charcount{display:block;text-align:right;font-size:0.72rem;color:var(--ink-faint);margin-top:4px;}
.crn-charcount.warn{color:var(--rose);}

/* calendar */
.crn-cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;}
.crn-cal-nav button{background:none;border:1.5px solid var(--line);border-radius:10px;width:36px;height:36px;font-size:1rem;color:var(--ink);cursor:pointer;}
.crn-cal-nav button:hover{border-color:var(--orange);}
.crn-cal-label{font-size:1.1rem;text-transform:capitalize;}
.crn-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;}
.crn-cal-dow{text-align:center;font-size:0.75rem;color:var(--ink-faint);font-weight:700;padding-bottom:4px;}
.crn-cal-cell{aspect-ratio:1;border:none;background:var(--cream);border-radius:var(--radius-sm);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;}
.crn-cal-cell.crn-blank{background:transparent;cursor:default;}
.crn-cal-cell .num{font-size:0.82rem;color:var(--ink-faint);}
.crn-cal-cell.has-entry{background:var(--accent-a);}
.crn-cal-cell.has-entry{background:radial-gradient(circle at 35% 30%,color-mix(in srgb, var(--accent-a) 55%, white 45%),var(--accent-a) 70%);}
.crn-cal-cell.has-entry{border-radius:50%;}
.crn-cal-cell.has-entry .num{color:var(--accent-face);font-weight:700;}
.crn-cal-cell.has-entry{position:relative;}
.crn-cal-cell.has-entry::after{
  content:""; position:absolute; inset:-3px; border-radius:50%; pointer-events:none;
  animation:crn-glow-pulse 2.6s ease-in-out infinite;
}
@keyframes crn-glow-pulse{
  0%,100%{ box-shadow:0 0 0 0 var(--accent-glow); }
  50%{ box-shadow:0 0 9px 3px var(--accent-glow); }
}
.crn-cal-cell.today{box-shadow:inset 0 0 0 2px var(--orange);}
.crn-cal-cell.future{opacity:0.35;cursor:default;}
.crn-cal-cell.selected{box-shadow:0 0 0 2px var(--ink);}
.crn-cal-legend{display:flex;gap:16px;margin-top:14px;font-size:0.82rem;color:var(--ink-soft);}
.crn-cal-legend span{display:inline-flex;align-items:center;gap:6px;}
.crn-legend-dot{width:12px;height:12px;border-radius:50%;display:inline-block;}
.crn-legend-dot.on{background:var(--accent-a);}
.crn-legend-dot.off{background:var(--cream-2);border:1px solid var(--line);}
#crn-day-panel h3{font-size:1.05rem;margin-bottom:10px;text-transform:capitalize;}

/* recap */
.crn-recap-switch{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap;}
.crn-recap-switch button{background:var(--cream-2);border:none;border-radius:999px;padding:8px 18px;font-size:0.88rem;font-weight:600;color:var(--ink-soft);cursor:pointer;display:inline-flex;align-items:center;gap:7px;}
.crn-recap-switch button[aria-selected="true"]{background:var(--ink);color:var(--cream);}
.crn-recap-mode-select{display:none;}
.crn-recap-selects{display:flex;gap:10px;margin-bottom:18px;flex-wrap:wrap;}
.crn-recap-selects select{padding:10px 12px;border-radius:var(--radius);border:1.5px solid var(--line);background:var(--paper);color:var(--ink);}
.crn-recap-total{font-size:0.95rem;color:var(--ink-soft);margin-bottom:16px;}
.crn-recap-total b{color:var(--ink);}
.crn-recap-day{border-bottom:1px solid var(--line);padding:12px 0;}
.crn-recap-day:last-child{border-bottom:none;}
.crn-recap-day .d{font-weight:700;font-size:0.9rem;margin-bottom:4px;text-transform:capitalize;}
.crn-search-goto{background:none;border:none;font:inherit;font-weight:700;font-size:0.9rem;text-transform:capitalize;color:var(--orange);cursor:pointer;padding:0;text-decoration:underline;}
.crn-search-goto:hover{color:var(--rose);}
.crn-recap-day ul{margin:0;padding-left:20px;}
.crn-yeargrid-scroll{overflow-x:auto;padding-bottom:6px;}
.crn-yeargrid{display:grid;grid-template-rows:repeat(7,1fr);grid-auto-flow:column;gap:3px;width:max-content;}
.crn-yeargrid-cell{width:11px;height:11px;border-radius:2px;background:var(--accent-a);opacity:0.12;}
.crn-yeargrid-cell.level-1{opacity:0.35;}
.crn-yeargrid-cell.level-2{opacity:0.55;}
.crn-yeargrid-cell.level-3{opacity:0.8;}
.crn-yeargrid-cell.level-4{opacity:1;}
.crn-yeargrid-cell.blank{opacity:0;}
.crn-yeargrid-legend{display:flex;align-items:center;gap:5px;margin-top:10px;font-size:0.75rem;color:var(--ink-faint);}
.crn-yeargrid-legend .crn-yeargrid-cell{width:10px;height:10px;}

.crn-bars{display:flex;align-items:flex-end;gap:6px;height:150px;margin:10px 0 6px;}
.crn-bar-col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:6px;}
.crn-bar{width:100%;background:var(--cream-2);border-radius:6px 6px 0 0;min-height:4px;}
.crn-bar.best{background:var(--accent-a);}
.crn-bar-col .lbl{font-size:0.68rem;color:var(--ink-faint);text-transform:uppercase;letter-spacing:0.02em;}
.crn-month-acc{border:1px solid var(--line);border-radius:var(--radius);margin-bottom:8px;overflow:hidden;}
.crn-month-acc summary{padding:12px 16px;cursor:pointer;font-weight:600;list-style:none;display:flex;justify-content:space-between;}
.crn-month-acc summary::-webkit-details-marker{display:none;}
.crn-month-acc[open] summary{background:var(--cream-2);}
.crn-month-acc .crn-acc-body{padding:6px 16px 14px;}

.crn-badges-legend{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:16px;font-size:0.78rem;color:var(--ink-soft);}
.crn-badges-legend span{display:inline-flex;align-items:center;gap:6px;}

.crn-badges-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(100px,1fr)); gap:16px 10px;}
.crn-badge{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;color:var(--ink-faint);}
.crn-badge-medallion{
  width:62px;height:62px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:var(--cream-2);border:2px solid var(--line);color:var(--ink-faint);font-size:1.4rem;
  position:relative;overflow:hidden;
}
.crn-badge-days{font-size:0.78rem;font-weight:600;line-height:1.3;}
.crn-badge.unlocked .crn-badge-medallion{
  border-color:transparent;color:#fff;
  box-shadow:0 3px 8px rgba(0,0,0,0.18), inset 0 -3px 6px rgba(0,0,0,0.18), inset 0 3px 5px rgba(255,255,255,0.45);
}
.crn-badge.unlocked .crn-badge-medallion::after{
  content:"";position:absolute;top:-40%;left:-15%;width:55%;height:180%;
  background:rgba(255,255,255,0.35);transform:rotate(20deg);
}
.crn-badge.unlocked .crn-badge-days{color:var(--ink);}
.crn-badge.unlocked.cat-streak .crn-badge-medallion{background:linear-gradient(135deg,#FFD37A,#E8804B);}
.crn-badge.unlocked.cat-total .crn-badge-medallion{background:linear-gradient(135deg,#B7D6A8,#5E7C56);}
.crn-badge.unlocked.cat-tags .crn-badge-medallion{background:linear-gradient(135deg,#E3C6EC,#8B5FA3);}
.crn-badge.unlocked.cat-emotions .crn-badge-medallion{background:linear-gradient(135deg,#F5B8B8,#C96A50);}
.crn-badge.cat-mystery .crn-badge-medallion{border-style:dashed;}
.crn-badge.unlocked.badge-dragon .crn-badge-medallion{background:linear-gradient(135deg,#FFD23F,#E8A317 40%,#D7263D);}
.crn-badge.unlocked.badge-code .crn-badge-medallion{background:linear-gradient(135deg,#FFE7A0,#C98A1B 45%,#6B3FA0);}
.crn-badge.playable{cursor:pointer;}
.crn-badge.playable .crn-badge-medallion{transition:transform .2s ease;}
.crn-badge.playable:hover .crn-badge-medallion,.crn-badge.playable:focus-visible .crn-badge-medallion{transform:scale(1.08) rotate(-4deg);}
.crn-badge.playable:focus-visible{outline:2px solid var(--orange);outline-offset:4px;border-radius:12px;}
.crn-badge.playable .crn-badge-days::after{content:" ▸";color:var(--orange);}

.crn-quote-card{text-align:center; padding:44px 26px;}
.crn-quote{font-family:'Fraunces',serif; font-style:italic; font-weight:400; font-size:1.5rem; line-height:1.45; color:var(--ink); margin:0 0 16px;}
.crn-quote::before{content:"\201C"; color:var(--accent-a); font-size:1.5em; line-height:0; vertical-align:-0.32em; margin-right:2px;}
.crn-quote::after{content:"\201D"; color:var(--accent-a); font-size:1.5em; line-height:0; vertical-align:-0.5em; margin-left:2px;}
.crn-quote-date{color:var(--ink-faint); font-size:0.85rem; margin:0 0 20px; text-transform:capitalize;}

/* backup */
.crn-backup-status{display:flex;align-items:center;gap:10px;margin-bottom:20px;padding:14px 16px;border-radius:var(--radius);font-size:0.92rem;}
.crn-backup-status.ok{background:color-mix(in srgb, var(--moss) 20%, transparent);color:var(--moss);}
.crn-backup-status.warn{background:var(--orange-soft);color:var(--orange);}
.crn-backup-actions{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:8px;}
.crn-danger-link{margin-top:24px;font-size:0.85rem;}
.crn-danger-link button{background:none;border:none;color:var(--ink-faint);text-decoration:underline;padding:0;font-size:0.85rem;cursor:pointer;}
.crn-danger-link button:hover{color:var(--rose);}
.crn-privacy-note{font-size:0.88rem;color:var(--ink-soft);margin-top:20px;line-height:1.6;}

@media (max-width:520px){
  .crn-entry-form{flex-direction:column;}
  .crn-entry-form button{padding:12px;}

  .crn-recap-switch{display:none;}
  .crn-recap-mode-select{display:block; width:100%; padding:12px 14px; border:1.5px solid var(--line); border-radius:999px; background:var(--cream-2); color:var(--ink); font-weight:600; font-size:0.9rem; margin-bottom:20px; font-family:inherit; cursor:pointer;}
  .crn-recap-mode-select:focus{outline:none; border-color:var(--orange);}

  .crn-wrap{padding-left:20px; padding-right:20px;}
  .crn-header-inner{padding:10px 0;}
  .crn-controls{flex-wrap:wrap; gap:8px; justify-content:flex-end;}
  .crn-tally{padding:6px 10px 6px 8px;}
  .crn-tally-icon{display:inline-flex;}
  .crn-tally-compact{display:inline;}
  .crn-tally-full{display:none;}
  .crn-tabs{gap:0; justify-content:space-around; overflow-x:visible;}
  .crn-tabs button{padding:10px 8px; font-size:1.05rem; flex:1; justify-content:center;}
  .crn-tab-label{display:none;}
  .crn-main{padding-top:20px;padding-bottom:50px;}
  .crn-card{padding:16px;}
  .crn-title{font-size:1.25rem;}
  .crn-dropdown-menu{right:0; min-width:150px;}

  .crn-onboard{padding:32px 20px 48px;}
  .crn-onboard-card h1{font-size:1.7rem;}
  .crn-preview-week{gap:4px;}
  .crn-preview-dot{width:26px; height:26px;}

  .crn-cal-grid{gap:4px;}
  .crn-cal-cell .num{font-size:0.72rem;}
  .crn-recap-selects{flex-wrap:wrap;}
  .crn-recap-selects select{flex:1 1 45%;}
  .crn-today-stats{gap:8px;}
  .crn-stat-pill{flex:1 1 auto; padding:8px 10px; font-size:0.8rem;}
  .crn-backup-actions{flex-direction:column; align-items:stretch;}
}

.crn-celebrate{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:200;}
.crn-celebrate-icon{display:inline-block;opacity:0;transform:scale(0.3) rotate(-8deg);filter:drop-shadow(0 6px 24px rgba(244,185,66,0.55));}
.crn-celebrate-play .crn-celebrate-icon{animation:crn-celebrate-pop 1.5s cubic-bezier(.34,1.56,.64,1) forwards;}
@keyframes crn-celebrate-pop{
  0%{opacity:0;transform:scale(0.3) rotate(-8deg);}
  32%{opacity:1;transform:scale(1.12) rotate(4deg);}
  46%{transform:scale(1) rotate(0deg);}
  82%{opacity:1;transform:scale(1);}
  100%{opacity:0;transform:scale(0.92);}
}
.crn-celebrate-play .crn-celebrate-icon .crn-eye-l{transform-box:fill-box;transform-origin:center;animation:crn-celebrate-wink 1.5s ease-in-out;}
@keyframes crn-celebrate-wink{
  0%,38%{transform:scaleY(1);}
  46%{transform:scaleY(0.15);}
  54%{transform:scaleY(1);}
  100%{transform:scaleY(1);}
}

@media (prefers-reduced-motion: reduce){
  .sun-mark .rays, .sun-mark .rays-slow, .sun-mark .rays-very-fast{animation:none !important;}
  .crn-cal-cell.has-entry::after{animation:none !important;}
  .crn-celebrate{display:none !important;}
  .crn-dragon-play .crn-dragon-pop-inner{animation:none !important; opacity:1; transform:none;}
  .crn-chest-play .crn-chest-inner, .crn-chest-play .crn-chest-lid, .crn-chest-play .crn-chest-svg,
  .crn-chest-play .crn-chest-rays, .crn-chest-play .crn-chest-spark, .crn-chest-play .crn-chest-glow,
  .crn-chest-play .crn-chest-title{animation:none !important;}
  .crn-chest-play .crn-chest-inner{opacity:1; transform:none;}
  .crn-easter .crn-easter-dragon, .crn-easter .crn-easter-dove{transition:none !important;}
}

.crn-undo-toast{
  position:fixed; left:50%; bottom:24px; transform:translateX(-50%);
  background:var(--ink); color:var(--cream); border-radius:999px; padding:10px 10px 10px 18px;
  display:flex; align-items:center; gap:14px; box-shadow:var(--shadow-lift); z-index:150;
  font-size:0.9rem; max-width:calc(100vw - 32px);
}
.crn-undo-toast[hidden]{display:none;}
.crn-undo-toast button{background:var(--sun); color:#3A2A0E; border:none; border-radius:999px; padding:8px 16px; font-size:0.85rem; cursor:pointer; white-space:nowrap;}
@media (max-width:520px){
  .crn-undo-toast{bottom:16px; font-size:0.85rem;}
}

.crn-reminder-toast{background:var(--orange-soft);border-bottom:1px solid var(--line);}
.crn-reminder-toast .crn-wrap{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 16px;font-size:0.9rem;flex-wrap:wrap;}
.crn-reminder-toast[hidden]{display:none;}
.crn-reminder-toast :is(i,svg){color:var(--orange);}
.crn-reminder-toast button{background:none;border:none;color:var(--ink-soft);font-size:0.95rem;cursor:pointer;padding:2px 6px;}
.crn-reminder-toast button:hover{color:var(--rose);}

/* ---------- easter egg : colombe -> dragon ---------- */
.crn-easter{display:inline-grid; place-items:center; cursor:pointer; -webkit-tap-highlight-color:transparent;}
.crn-easter > span{grid-area:1/1; transition:opacity .2s ease, transform .2s ease;}
.crn-easter .crn-easter-dragon{opacity:0; transform:scale(0.6) rotate(-12deg); color:#D7263D;}
.crn-easter:hover .crn-easter-dove{opacity:0; transform:scale(0.6);}
.crn-easter:hover .crn-easter-dragon{opacity:1; transform:scale(1.15) rotate(0deg);}
.crn-easter:active .crn-easter-dragon{transform:scale(0.95);}

.crn-dragon-pop{position:fixed; inset:0; z-index:210; display:flex; align-items:center; justify-content:center; cursor:pointer;}
.crn-dragon-pop-inner{display:flex; flex-direction:column; align-items:center; gap:6px; opacity:0; transform:scale(0.3) rotate(-10deg);}
.crn-dragon-play .crn-dragon-pop-inner{animation:crn-dragon-pop 2.5s cubic-bezier(.34,1.56,.64,1) forwards;}
.crn-dragon-pop-icon{font-size:8rem; line-height:1; color:#D7263D; filter:drop-shadow(0 0 3px #FFD23F) drop-shadow(0 8px 26px rgba(255,190,40,0.6));}
.crn-dragon-pop-text{font-size:3rem; letter-spacing:0.08em; color:#FFC21A; -webkit-text-stroke:1.5px #D7263D; text-shadow:0 3px 0 rgba(0,0,0,0.12);}
.crn-dragon-pop-badge{margin-top:6px; background:var(--ink); color:var(--cream); border-radius:999px; padding:6px 14px; font-size:0.85rem;}
.crn-dragon-pop-badge :is(i,svg){color:var(--sun);}
@keyframes crn-dragon-pop{
  0%{opacity:0; transform:scale(0.3) rotate(-10deg);}
  18%{opacity:1; transform:scale(1.15) rotate(5deg);}
  26%{transform:scale(1) rotate(-3deg);}
  32%{transform:scale(1.04) rotate(2deg);}
  38%{transform:scale(1) rotate(0deg);}
  86%{opacity:1; transform:scale(1);}
  100%{opacity:0; transform:scale(0.9);}
}

/* ---------- easter egg : The Code (coffre) ---------- */
.crn-chest-pop{position:fixed; inset:0; z-index:210; display:flex; align-items:center; justify-content:center; cursor:pointer; background:rgba(20,14,8,0); transition:background .3s ease;}
.crn-chest-play{background:rgba(20,14,8,0.35);}
.crn-chest-inner{display:flex; flex-direction:column; align-items:center; gap:8px; opacity:0;}
.crn-chest-play .crn-chest-inner{animation:crn-chest-life 4.1s ease forwards;}
.crn-chest-stage{position:relative; width:220px; height:190px; display:flex; align-items:center; justify-content:center;}
.crn-chest-svg{width:200px; height:170px; position:relative; z-index:2; overflow:visible;}
.crn-chest-play .crn-chest-svg{animation:crn-chest-shake .6s ease-in-out .35s 1;}
.crn-chest-shadow{fill:rgba(0,0,0,0.18);}
.crn-chest-lid{transform-box:fill-box; transform-origin:0% 100%;}
.crn-chest-play .crn-chest-lid{animation:crn-chest-open .45s cubic-bezier(.34,1.56,.64,1) .95s forwards;}
.crn-chest-glow{fill:#FFE38A; opacity:0; filter:blur(4px); transform-box:fill-box; transform-origin:center;}
.crn-chest-play .crn-chest-glow{animation:crn-chest-glow 2.8s ease 1s forwards;}
.crn-chest-rays{position:absolute; inset:-60px; z-index:1; border-radius:50%; opacity:0;
  background:repeating-conic-gradient(from 0deg, rgba(255,214,90,0.55) 0deg 10deg, rgba(255,214,90,0) 10deg 24deg);
  -webkit-mask:radial-gradient(circle, #000 25%, transparent 68%); mask:radial-gradient(circle, #000 25%, transparent 68%);}
.crn-chest-play .crn-chest-rays{animation:crn-chest-rays 3s ease 1s forwards;}
.crn-chest-spark{position:absolute; left:50%; top:45%; z-index:3; color:#FFD23F; font-size:1.3rem; opacity:0;
  text-shadow:0 0 8px rgba(255,200,60,0.9); transform:translate(-50%,-50%);}
.crn-chest-play .crn-chest-spark{animation:crn-chest-spark 1.3s ease-out calc(1.05s + var(--delay)) forwards;}
.crn-chest-title{font-size:2.4rem; color:#FFD23F; -webkit-text-stroke:1.2px #6B3FA0; text-shadow:0 3px 0 rgba(0,0,0,0.15); opacity:0; transform:translateY(8px);}
.crn-chest-play .crn-chest-title{animation:crn-chest-title .5s ease 1.3s forwards;}
.crn-chest-pop .crn-dragon-pop-badge{opacity:0;}
.crn-chest-play .crn-dragon-pop-badge{animation:crn-chest-title .5s ease 1.6s forwards;}
@keyframes crn-chest-life{
  0%{opacity:0; transform:scale(0.4) translateY(30px);}
  10%{opacity:1; transform:scale(1.06) translateY(0);}
  15%{transform:scale(1);}
  88%{opacity:1; transform:scale(1);}
  100%{opacity:0; transform:scale(0.94);}
}
@keyframes crn-chest-shake{
  0%,100%{transform:rotate(0);} 20%{transform:rotate(-5deg);} 40%{transform:rotate(5deg);}
  60%{transform:rotate(-4deg);} 80%{transform:rotate(3deg);}
}
@keyframes crn-chest-open{
  0%{transform:translateY(0) rotate(0);}
  100%{transform:translateY(-26px) rotate(-28deg);}
}
@keyframes crn-chest-glow{
  0%{opacity:0; transform:scale(0.6);} 15%{opacity:1; transform:scale(1.2);} 100%{opacity:0.85; transform:scale(1);}
}
@keyframes crn-chest-rays{
  0%{opacity:0; transform:rotate(0) scale(0.6);} 20%{opacity:1; transform:rotate(20deg) scale(1);} 100%{opacity:0.7; transform:rotate(90deg) scale(1.05);}
}
@keyframes crn-chest-spark{
  0%{opacity:0; transform:translate(-50%,-50%) rotate(var(--a)) translateX(0) scale(0.4);}
  25%{opacity:1;}
  100%{opacity:0; transform:translate(-50%,-50%) rotate(var(--a)) translateX(var(--d)) scale(1);}
}
@keyframes crn-chest-title{ to{opacity:1; transform:translateY(0);} }

.crn-gacha-teaser{padding-top:6px;}
.crn-gacha-icon{width:84px; height:84px; margin:0 auto 12px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-size:2.3rem; color:#fff; background:linear-gradient(135deg,#FFE7A0,#C98A1B 45%,#6B3FA0);
  box-shadow:0 4px 12px rgba(0,0,0,0.2), inset 0 -3px 6px rgba(0,0,0,0.18), inset 0 3px 5px rgba(255,255,255,0.45);}
.crn-gacha-teaser h3{font-size:1.4rem; margin:0 0 8px;}
.crn-gacha-teaser p{font-size:0.95rem; margin:0;}

/* =================================================================
   v1.8 : photos souvenirs, bocal à gratitudes, rétrospective
   ================================================================= */

/* ---------- photos ---------- */
.crn-photo-row{display:flex; align-items:center; gap:10px; margin-top:12px; flex-wrap:wrap;}
.crn-photo-btn{display:inline-flex; align-items:center; gap:6px; cursor:pointer; margin:0;
  background:var(--cream-2); border:1.5px dashed var(--line); color:var(--ink-soft); border-radius:999px; padding:8px 14px; font-size:0.85rem;}
.crn-photo-btn:hover{border-color:var(--orange); color:var(--ink);}
.crn-photo-btn :is(i,svg){color:var(--orange);}
.crn-photo-preview{position:relative; display:inline-flex;}
.crn-photo-preview img{width:56px; height:56px; object-fit:cover; border-radius:10px; border:1px solid var(--line); display:block; background:var(--cream-2);}
.crn-photo-remove{position:absolute; top:-7px; right:-7px; width:22px; height:22px; border-radius:50%; border:none; cursor:pointer;
  background:var(--ink); color:var(--cream); font-size:0.7rem; line-height:22px; padding:0;}
.crn-entry-list li .crn-entry-photo{align-self:center;}
.crn-entry-photo{flex:0 0 auto; width:44px; height:44px; padding:0; border:none; border-radius:9px; overflow:hidden; cursor:zoom-in;
  background:var(--cream-2); box-shadow:0 1px 3px rgba(0,0,0,0.12);}
.crn-entry-photo img{width:100%; height:100%; object-fit:cover; display:block; opacity:0; transition:opacity .25s ease;}
.crn-entry-photo img.ready{opacity:1;}
.crn-entry-photo.missing{display:none;}
.crn-recap-day li .crn-entry-photo, .crn-memory-card li .crn-entry-photo{margin-left:8px; vertical-align:middle; display:inline-block;}
.crn-photo-lightbox{position:fixed; inset:0; z-index:1100; background:rgba(15,10,5,0.88); display:flex; align-items:center; justify-content:center; padding:20px; cursor:zoom-out;
  animation:crn-fade .2s ease;}
.crn-photo-lightbox img{max-width:100%; max-height:100%; border-radius:12px; box-shadow:0 20px 60px rgba(0,0,0,0.5);}
.crn-photo-lightbox-x{position:absolute; top:calc(14px + env(safe-area-inset-top, 0px)); right:14px; width:40px; height:40px; border-radius:50%; border:none;
  background:rgba(255,255,255,0.15); color:#fff; font-size:1.1rem; cursor:pointer;}
@keyframes crn-fade{from{opacity:0;} to{opacity:1;}}

/* ---------- bocal à gratitudes ---------- */
.crn-jar-card{text-align:center; padding-top:22px;}
.crn-jar-stage{position:relative; width:220px; height:250px; margin:0 auto 6px;}
.crn-jar svg{width:220px; height:250px; display:block; overflow:visible;}
:root[data-bs-theme="dark"] .crn-jar{--jar-glass:rgba(160,190,210,.12); --jar-line:rgba(170,190,205,.45);}
.crn-jar.shake{animation:crn-jar-shake .65s ease-in-out; transform-origin:50% 95%;}
@keyframes crn-jar-shake{
  0%,100%{transform:rotate(0);} 15%{transform:rotate(-9deg);} 30%{transform:rotate(8deg);} 45%{transform:rotate(-7deg);}
  60%{transform:rotate(5deg);} 75%{transform:rotate(-3deg);} 90%{transform:rotate(1deg);}
}
.crn-jar-slip{position:absolute; left:50%; top:110px; width:30px; height:16px; margin-left:-15px; border-radius:3px; opacity:0; pointer-events:none;
  background:var(--slip, #F4B942); box-shadow:0 2px 6px rgba(0,0,0,0.2); z-index:2;}
.crn-jar-slip.fly{animation:crn-slip-fly .7s cubic-bezier(.2,1.2,.4,1) forwards;}
@keyframes crn-slip-fly{
  0%{opacity:1; transform:translateY(0) rotate(0) scale(1);}
  60%{opacity:1; transform:translateY(-150px) rotate(220deg) scale(1.5);}
  100%{opacity:0; transform:translateY(-120px) rotate(360deg) scale(2.4);}
}
.crn-jar-count{color:var(--ink-soft); margin:4px 0 14px; font-size:0.92rem;}
.crn-quote-card.unfold{animation:crn-unfold .55s cubic-bezier(.2,1.3,.4,1);}
@keyframes crn-unfold{from{opacity:0; transform:perspective(600px) rotateX(-70deg) scale(.9);} to{opacity:1; transform:none;}}
.crn-quote-photo:empty{display:none;}
.crn-quote-photo{margin:0 0 14px;}
.crn-quote-photo .crn-entry-photo{width:min(260px, 80%); height:auto; aspect-ratio:4/3; border-radius:14px;}

/* ---------- rétrospective : invitation ---------- */
.crn-retro-invite{display:flex; align-items:center; gap:12px; margin:0 0 18px; padding:12px 14px 12px 12px; border-radius:var(--radius-lg, 20px);
  background:linear-gradient(120deg, color-mix(in srgb, var(--sun) 28%, var(--cream)), color-mix(in srgb, var(--orange) 18%, var(--cream)));
  border:1px solid color-mix(in srgb, var(--sun) 50%, var(--line)); flex-wrap:wrap;}
.crn-retro-invite-icon{width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:var(--sun); color:#3A2A0E; flex:0 0 auto;}
.crn-retro-invite-text{flex:1 1 180px; color:var(--ink); font-size:0.92rem;}
.crn-retro-invite .crn-btn{padding:9px 18px; font-size:0.88rem;}
.crn-retro-invite-x{background:none; border:none; color:var(--ink-soft); cursor:pointer; padding:4px 8px; font-size:0.9rem;}
.crn-retro-open{margin-top:12px; padding:10px 20px; font-size:0.92rem;}

/* ---------- rétrospective : diaporama ---------- */
html.crn-retro-open{overflow:hidden;}
.crn-retro{position:fixed; inset:0; z-index:1050; background:rgba(20,14,8,0.82); backdrop-filter:blur(6px); display:flex; align-items:center; justify-content:center;
  opacity:0; transition:opacity .25s ease; padding:env(safe-area-inset-top, 0px) 0 env(safe-area-inset-bottom, 0px);}
.crn-retro.open{opacity:1;}
.crn-retro.closing{opacity:0;}
.crn-retro-frame{position:relative; width:min(430px, 100vw); height:min(760px, 100%); overflow:hidden; border-radius:24px;
  background:radial-gradient(120% 80% at 50% 0%, #FFF3D6 0%, #FBE3B4 45%, #F4B97A 100%); color:#2A2118; box-shadow:0 30px 80px rgba(0,0,0,0.45);}
:root[data-bs-theme="dark"] .crn-retro-frame{background:radial-gradient(120% 80% at 50% 0%, #2E3A55 0%, #1B2238 50%, #0F1322 100%); color:#F1E9D8;}
@media (max-width:480px){ .crn-retro-frame{height:100%; border-radius:0;} }
.crn-retro-progress{position:absolute; top:12px; left:14px; right:56px; display:flex; gap:4px; z-index:3;}
.crn-retro-progress span{flex:1; height:3px; border-radius:2px; background:rgba(0,0,0,0.15); overflow:hidden;}
:root[data-bs-theme="dark"] .crn-retro-progress span{background:rgba(255,255,255,0.18);}
.crn-retro-progress i{display:block; height:100%; width:0; background:currentColor; transition:width .35s ease;}
.crn-retro-progress span.done i, .crn-retro-progress span.now i{width:100%;}
.crn-retro-x{position:absolute; top:4px; right:8px; z-index:4; width:40px; height:40px; border:none; background:none; color:inherit; font-size:1.1rem; cursor:pointer; opacity:.7;}
.crn-retro-slides{position:absolute; inset:0;}
.crn-retro-slide{position:absolute; inset:0; padding:56px 30px 70px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:12px;
  opacity:0; transform:translateX(30px) scale(.98); transition:opacity .4s ease, transform .45s cubic-bezier(.2,1,.3,1); pointer-events:none; overflow-y:auto;}
.crn-retro-slide.past{transform:translateX(-30px) scale(.98);}
.crn-retro-slide.active{opacity:1; transform:none; pointer-events:auto;}
.crn-retro-slide h2{font-size:clamp(1.8rem, 7vw, 2.4rem); line-height:1.15; margin:0;}
.crn-retro-slide p{margin:0; font-size:1rem; line-height:1.5; opacity:.85; max-width:320px;}
.crn-retro-kicker{font-size:0.78rem !important; letter-spacing:0.14em; text-transform:uppercase; opacity:.7 !important;}
.crn-retro-number{font-size:clamp(4rem, 22vw, 6rem); line-height:1; color:#D9731F;}
:root[data-bs-theme="dark"] .crn-retro-number{color:#F4B942;}
.crn-retro-number :is(i,svg){font-size:.6em; color:#E8804B;}
.crn-retro-big-icon{line-height:0;}
.crn-retro-emoji{font-size:5rem; line-height:1; animation:crn-retro-bob 2.4s ease-in-out infinite;}
@keyframes crn-retro-bob{0%,100%{transform:translateY(0);} 50%{transform:translateY(-8px);}}
.crn-retro-chips{display:flex; gap:8px; flex-wrap:wrap; justify-content:center;}
.crn-retro-chips span{background:rgba(255,255,255,0.45); border-radius:999px; padding:5px 12px; font-size:0.85rem;}
:root[data-bs-theme="dark"] .crn-retro-chips span{background:rgba(255,255,255,0.1);}
.crn-retro-bars{display:flex; align-items:flex-end; gap:5px; height:140px; width:100%; max-width:320px; margin:6px 0;}
.crn-retro-bars span{flex:1; height:100%; display:flex; flex-direction:column; justify-content:flex-end; align-items:center; gap:4px;}
.crn-retro-bars i{display:block; width:100%; height:var(--h); border-radius:5px 5px 2px 2px; background:rgba(0,0,0,0.14);}
:root[data-bs-theme="dark"] .crn-retro-bars i{background:rgba(255,255,255,0.16);}
.crn-retro-bars span.best i, :root[data-bs-theme="dark"] .crn-retro-bars span.best i{background:linear-gradient(180deg, #F4B942, #E8804B);}
.crn-retro-bars b{font-size:0.7rem; opacity:.6; font-weight:600;}
.crn-retro-slide.active .crn-retro-bars i{animation:crn-retro-grow .7s cubic-bezier(.2,1,.3,1) both;}
@keyframes crn-retro-grow{from{height:0;}}
.crn-retro-podium{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:10px; width:100%; max-width:300px;}
.crn-retro-podium li{display:flex; justify-content:space-between; align-items:center; padding:12px 16px; border-radius:14px; background:rgba(255,255,255,0.4);}
:root[data-bs-theme="dark"] .crn-retro-podium li{background:rgba(255,255,255,0.08);}
.crn-retro-podium li.p1{font-size:1.25rem; background:linear-gradient(90deg, rgba(244,185,66,0.55), rgba(255,255,255,0.35));}
.crn-retro-podium small{opacity:.7;}
.crn-retro-quote{font-size:1.4rem; line-height:1.4; margin:0; max-width:330px;}
.crn-retro-quote::before{content:"\201C"; color:#E8804B;} .crn-retro-quote::after{content:"\201D"; color:#E8804B;}
.crn-retro-date{font-size:0.88rem !important;}
.crn-retro-mosaic{display:grid; grid-template-columns:repeat(3, 1fr); gap:6px; width:100%; max-width:330px;}
.crn-retro-mosaic img{width:100%; aspect-ratio:1; object-fit:cover; border-radius:10px; background:rgba(0,0,0,0.08); opacity:0; transition:opacity .3s ease;}
.crn-retro-mosaic img.ready{opacity:1;}
.crn-retro-mosaic img:nth-child(1){grid-column:span 2; grid-row:span 2;}
.crn-retro-notes{position:relative; width:100%; max-width:320px; display:flex; flex-direction:column; gap:12px;}
.crn-retro-note{background:#FFF8EA; color:#2A2118; border-radius:6px; padding:14px 16px; box-shadow:0 6px 18px rgba(0,0,0,0.15); text-align:left;}
.crn-retro-note p{opacity:1; margin:0 0 6px; font-size:0.95rem;}
.crn-retro-note small{opacity:.6; font-size:0.75rem;}
.crn-retro-note.n0{transform:rotate(-2deg);} .crn-retro-note.n1{transform:rotate(1.5deg);} .crn-retro-note.n2{transform:rotate(-1deg);}
.crn-retro-outro-btns{display:flex; gap:10px; flex-wrap:wrap; justify-content:center; margin-top:8px;}
.crn-retro-nav{position:absolute; bottom:18px; z-index:3; width:44px; height:44px; border-radius:50%; border:none; cursor:pointer;
  background:rgba(255,255,255,0.45); color:inherit; display:flex; align-items:center; justify-content:center;}
:root[data-bs-theme="dark"] .crn-retro-nav{background:rgba(255,255,255,0.12);}
.crn-retro-nav.prev{left:18px;} .crn-retro-nav.next{right:18px;}
.crn-retro-nav:disabled{opacity:.3; cursor:default;}
.crn-retro-nav[hidden]{display:none;}
@media (prefers-reduced-motion: reduce){
  .crn-jar.shake, .crn-jar-slip.fly, .crn-quote-card.unfold, .crn-retro-emoji, .crn-retro-slide.active .crn-retro-bars i{animation:none;}
  .crn-retro-slide{transition:opacity .2s ease; transform:none !important;}
}

/* ---------- v1.8.1 : transfert par codes QR ---------- */
.crn-qr-onboard{margin:10px 0 0;text-align:center;}
.crn-link-btn{background:none;border:none;padding:4px 6px;color:var(--ink-soft);cursor:pointer;font-size:0.92rem;display:inline-flex;align-items:center;gap:7px;}
.crn-link-btn span{text-decoration:underline;text-underline-offset:3px;}
.crn-link-btn:hover{color:var(--ink);}
.crn-qr-title{font-size:1rem;margin:22px 0 4px;color:var(--ink);display:flex;align-items:center;gap:8px;}
.crn-qr-sub{margin-bottom:12px;}
.crn-qr-popup{max-width:440px;}
.crn-qr-wrap{display:flex;flex-direction:column;align-items:center;gap:10px;}
.crn-qr-canvas{display:block;border-radius:12px;box-shadow:0 2px 14px rgba(0,0,0,.12);image-rendering:pixelated;background:#fff;}
.crn-qr-label{font-size:0.95rem;color:var(--ink);}
.crn-qr-controls{display:flex;gap:10px;}
.crn-qr-ctl{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--cream);color:var(--ink);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-size:1rem;}
.crn-qr-ctl:hover{border-color:var(--sun);}
.crn-qr-help{font-size:0.86rem;color:var(--ink-soft);margin:0;line-height:1.5;}
.crn-qr-warn{font-size:0.8rem;color:var(--ink-faint);margin:0;line-height:1.45;}
.crn-qr-video{position:relative;width:100%;max-width:340px;aspect-ratio:1/1;border-radius:14px;overflow:hidden;background:#111;}
.crn-qr-video video{width:100%;height:100%;object-fit:cover;display:block;}
.crn-qr-aim{position:absolute;inset:14%;border:3px solid rgba(244,185,66,.9);border-radius:16px;box-shadow:0 0 0 2000px rgba(0,0,0,.25);pointer-events:none;}
.crn-qr-dots{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;max-width:320px;}
.crn-qr-dots span{width:10px;height:10px;border-radius:3px;background:var(--line);transition:background .2s;}
.crn-qr-dots span.on{background:var(--sun);}

/* ---------- v1.9 : caméra ---------- */
.crn-no-cam .crn-photo-cam-btn{display:none;}
.crn-photo-row.working .crn-photo-btn{opacity:.55;pointer-events:none;}
.crn-photo-row.working .crn-photo-preview::after{content:"";width:22px;height:22px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--orange);animation:crn-spin .8s linear infinite;align-self:center;}
@keyframes crn-spin{to{transform:rotate(360deg);}}
.crn-cam-popup{max-width:560px;}
.crn-cam-video{width:100%;aspect-ratio:4/3;background:#111;border-radius:14px;overflow:hidden;}
.crn-cam-video video{width:100%;height:100%;object-fit:cover;display:block;transform:scaleX(-1);}

/* ---------- v1.9 : carte à partager ---------- */
.crn-entry-actions .share{background:none;border:none;color:var(--ink-faint);font-size:0.88rem;padding:4px 6px;border-radius:6px;cursor:pointer;}
.crn-entry-actions .share:hover{color:var(--orange);}
.crn-quote-foot{display:flex;flex-direction:column;align-items:center;gap:6px;}
.crn-quote-foot .crn-quote-date{margin:0;}
.crn-quote-share{background:none;border:1px solid var(--line);color:var(--ink-soft);border-radius:999px;padding:6px 14px;font-size:0.85rem;cursor:pointer;display:inline-flex;align-items:center;gap:7px;}
.crn-quote-share:hover{border-color:var(--orange);color:var(--ink);}
.crn-quote-share :is(i,svg){color:var(--orange);}
.crn-share-popup{max-width:460px;}
.crn-share-wrap{display:flex;flex-direction:column;align-items:center;gap:14px;}
.crn-share-preview{width:100%;max-width:300px;aspect-ratio:4/5;border-radius:14px;box-shadow:0 6px 24px rgba(0,0,0,.16);display:block;background:var(--cream-2);}
.crn-share-opts{display:flex;flex-direction:column;align-items:center;gap:10px;width:100%;}
.crn-share-segs{display:inline-flex;border:1px solid var(--line);border-radius:999px;padding:3px;background:var(--cream);}
.crn-share-seg{border:none;background:none;color:var(--ink-soft);padding:7px 14px;border-radius:999px;font-size:0.88rem;cursor:pointer;display:inline-flex;align-items:center;gap:6px;}
.crn-share-seg.on{background:var(--sun);color:#2B2118;}
.crn-share-checks{display:flex;gap:16px;flex-wrap:wrap;justify-content:center;}
.crn-share-check{display:inline-flex;align-items:center;gap:7px;font-size:0.9rem;color:var(--ink);cursor:pointer;}
.crn-share-check input{accent-color:var(--orange);width:17px;height:17px;}
.crn-share-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;}
.crn-share-actions .crn-btn{display:inline-flex;align-items:center;gap:8px;}
.crn-share-note{font-size:0.8rem;color:var(--ink-faint);margin:0;padding:0 8px;line-height:1.45;}

/* ---------- v1.9 : émotions dans le temps ---------- */
:root{--emo-other:#BDB3A2;}
:root[data-bs-theme="dark"]{--emo-other:#5A5145;}
.crn-emo-sub{margin-bottom:12px;}
.crn-emo-legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:0.85rem;color:var(--ink);margin-bottom:14px;}
.crn-emo-key{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;}
.crn-emo-key i{width:12px;height:12px;border-radius:3px;display:inline-block;}
.crn-emo-key b{color:var(--ink-soft);font-weight:600;}
.crn-emo-chart{display:flex;gap:6px;align-items:stretch;}
.crn-emo-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;min-width:0;}
.crn-emo-stack{width:100%;max-width:30px;height:140px;display:flex;flex-direction:column;gap:2px;}
.crn-emo-seg{display:block;min-height:3px;border-radius:2px;cursor:pointer;transition:filter .15s;}
.crn-emo-seg:first-child{border-top-left-radius:4px;border-top-right-radius:4px;}
.crn-emo-seg:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;}
.crn-emo-seg:hover{filter:brightness(1.12);}
.crn-emo-col.empty .crn-emo-stack{border:1.5px dashed var(--line);border-radius:4px;}
.crn-emo-dom{font-size:1rem;line-height:1.2;height:1.2em;color:var(--ink-faint);}
.crn-emo-lbl{font-size:0.68rem;color:var(--ink-faint);text-transform:uppercase;letter-spacing:0.02em;}
.crn-emo-note{font-size:0.8rem;color:var(--ink-faint);margin:12px 0 0;}
.crn-emo-note:empty{display:none;}
.crn-emo-tip{position:absolute;z-index:3000;background:var(--ink);color:var(--paper);font-size:0.8rem;padding:6px 10px;border-radius:8px;pointer-events:none;box-shadow:0 4px 14px rgba(0,0,0,.2);white-space:nowrap;}
@media (max-width:520px){ .crn-emo-chart{gap:3px;} .crn-emo-dom{font-size:0.85rem;} .crn-emo-lbl{font-size:0.6rem;} }
.crn-bar-col{min-width:0;}
@media (max-width:520px){
  .crn-bars{gap:3px;}
  .crn-bar-col .lbl{font-size:0.58rem;letter-spacing:0;}
  .crn-entry-actions .share, .crn-entry-actions .edit{padding:4px 4px;}
}

/* ---------- v1.9.1 : tutoriel ---------- */
.crn-tuto-popup{max-width:420px;}
.crn-tuto{display:flex;flex-direction:column;align-items:center;gap:10px;padding-top:6px;}
.crn-tuto-icon{width:80px;height:80px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2.4rem;line-height:1;
  background:radial-gradient(circle at 35% 30%, #FFF1CC, #F9D27A);box-shadow:0 6px 20px rgba(244,185,66,.35);}
.crn-tuto-title{font-size:1.45rem;margin:6px 0 0;color:var(--ink);}
.crn-tuto-text{font-size:0.98rem;line-height:1.55;color:var(--ink-soft);margin:0;min-height:6.2em;}
.crn-tuto-text b{color:var(--ink);}
.crn-tuto-dots{display:flex;gap:6px;margin-top:6px;}
.crn-tuto-dots span{width:8px;height:8px;border-radius:50%;background:var(--line);transition:width .2s;}
.crn-tuto-dots span.on{width:22px;border-radius:4px;background:var(--sun);}
.crn-tuto-skip{background:none;border:none;color:var(--ink-faint);font-size:0.85rem;text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:4px;margin-top:2px;}
.crn-tuto-skip:hover{color:var(--ink);}
.crn-tuto-row{border-bottom:none;}
.crn-btn-sm{padding:8px 14px;font-size:0.88rem;display:inline-flex;align-items:center;gap:7px;white-space:nowrap;flex-shrink:0;}

/* ---------- v1.9.2 : installer l'app ---------- */
.crn-install-card{padding:16px 18px;}
.crn-install-row{display:flex;align-items:center;gap:14px;}
.crn-install-icon{width:52px;height:52px;border-radius:12px;flex-shrink:0;box-shadow:0 2px 8px rgba(0,0,0,.12);}
.crn-install-body{flex:1;min-width:0;}
.crn-install-desc{font-size:0.85rem;color:var(--ink-soft);line-height:1.5;margin-top:3px;}
.crn-install-desc b{color:var(--ink);}
.crn-install-desc :is(i,svg){color:var(--orange);}
@media (max-width:520px){ .crn-install-row{flex-wrap:wrap;} .crn-install-row .crn-btn{width:100%;justify-content:center;} }
