
:root{--bg:#f8f5f1;--paper:#fffdfb;--ink:#2e302d;--muted:#7d7c77;--line:#e9e2db;--sage:#dce8df;--sage-deep:#66806d;--rose:#f1dfe2;--peach:#f6e5d5;--lav:#e9e3f2;--blue:#e1ebef;--sand:#eee6d9;--shadow:0 8px 28px rgba(74,61,49,.055);--r:18px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}.sidebar{position:fixed;inset:0 auto 0 0;width:245px;background:rgba(255,253,251,.97);border-right:1px solid var(--line);padding:24px 16px 18px;display:flex;flex-direction:column;z-index:50}.brand{display:flex;gap:11px;align-items:center;text-decoration:none;color:var(--ink);padding:0 8px 22px}.brandmark{width:38px;height:38px;border-radius:13px;background:var(--rose);display:grid;place-items:center;font-size:19px}.brand b{display:block;font-size:16px;letter-spacing:.02em}.brand small,.pet-card small,.sidebar-bottom small{display:block;color:var(--muted);font-size:11px}.pet-card{display:flex;align-items:center;gap:10px;background:linear-gradient(135deg,var(--sage),#edf3ed);padding:12px;border-radius:16px;margin-bottom:18px}.pet-avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--paper);font-weight:800;color:var(--sage-deep)}nav{display:grid;gap:4px}nav a{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:12px;text-decoration:none;color:#62635f;font-weight:600}nav a span{width:23px;text-align:center;font-size:17px}nav a:hover{background:#f3eee9;color:var(--ink)}.sidebar-bottom{margin-top:auto;padding:12px 7px 0;border-top:1px solid var(--line)}.pet-switch{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.pet-chip{font-size:12px;padding:6px 9px;border-radius:999px;background:#f3efeb;color:var(--ink);text-decoration:none}.pet-chip.active{background:var(--sage);font-weight:800}.pet-chip.add{background:var(--rose)}.app-main{margin-left:245px;max-width:1500px;padding:34px 38px 70px}.mobile-menu{display:none}.eyebrow{font-size:11px;font-weight:900;letter-spacing:.16em;color:var(--sage-deep);text-transform:uppercase;margin:0 0 5px}.pagehead{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:18px}.pagehead h1,h1{font-size:clamp(30px,4vw,46px);line-height:1.05;letter-spacing:-.035em;margin:0}.pagehead p{margin:5px 0 0;color:var(--muted)}h2{font-size:22px;margin:26px 0 13px}.hero{position:relative;overflow:hidden;background:linear-gradient(120deg,#edf3ed 0%,#fffaf5 58%,#f5e9eb 100%);border:1px solid var(--line);border-radius:26px;padding:30px 32px;margin-bottom:20px}.hero:after{content:'🐾';position:absolute;right:35px;top:10px;font-size:92px;opacity:.055;transform:rotate(-12deg)}.hero h1{font-size:clamp(34px,5vw,56px);margin:4px 0 8px}.hero p{margin:0;color:var(--muted);font-size:16px}.grid{display:grid;gap:14px}.stats{grid-template-columns:repeat(4,minmax(0,1fr));margin:0 0 24px}.card,.module,.compact-card,.panel{background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:var(--r)}.card{padding:17px;text-decoration:none;color:inherit}.card b{font-size:27px;display:block}.card span{font-weight:800}.card small{display:block;color:var(--muted);margin-top:3px}.modules{grid-template-columns:repeat(3,minmax(0,1fr))}.module{padding:18px;text-decoration:none;color:inherit}.module h3{font-size:17px;margin:5px 0}.module p,.module small{color:var(--muted);margin:0}.module:hover,.compact-card:hover{transform:translateY(-1px);box-shadow:0 10px 30px rgba(74,61,49,.09)}.count,.money{background:var(--sage);padding:8px 12px;border-radius:13px;font-size:13px}.money b,.money small{display:block}.filters{display:grid;grid-template-columns:minmax(180px,1.3fr) minmax(160px,1fr) minmax(150px,1fr) auto;gap:9px;background:var(--paper);border:1px solid var(--line);padding:10px;border-radius:16px;margin-bottom:16px}.filters:has(select:nth-of-type(1):last-of-type){grid-template-columns:minmax(200px,1.5fr) minmax(170px,1fr) auto}input,select,textarea,button{font:inherit;border:1px solid #ddd6cf;border-radius:11px;padding:10px 11px;background:#fff;color:var(--ink)}button,.button{background:#4f5e53;color:#fff;border:0;font-weight:750;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;border-radius:11px}button:hover,.button:hover{filter:brightness(.96)}textarea{width:100%;min-height:86px;resize:vertical}label{display:grid;gap:5px;color:var(--muted);font-size:12px}.cards-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.compact-card{padding:15px 16px;text-decoration:none;color:inherit;display:flex;gap:12px;align-items:center;min-width:0}.compact-card .grow{min-width:0}.compact-card h3{font-size:16px;margin:2px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.compact-card p{margin:2px 0;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.compact-card small{color:var(--muted)}.grow{flex:1}.thumb{width:46px;height:46px;flex:0 0 46px;border-radius:13px;background:var(--sage);display:grid;place-items:center;color:var(--sage-deep);font-size:17px}.pill,.badge{border-radius:999px;padding:6px 9px;font-size:11px;white-space:nowrap;background:#f0ece8}.badge.p0,.priority-3{background:var(--rose)}.badge.p1,.priority-2{background:var(--peach)}.badge.done{background:var(--sage);color:#466050}.badge.progressing{background:var(--blue)}.badge.lav{background:var(--lav)}.panel{padding:20px;margin:16px 0}.panel summary{cursor:pointer;font-weight:800;list-style:none}.panel summary::-webkit-details-marker{display:none}.formgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin:13px 0}.wide{grid-column:1/-1}.checkgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;max-height:390px;overflow:auto;margin:10px 0 14px;padding-right:5px}.check{display:grid;grid-template-columns:auto 1fr;gap:8px;background:#faf7f4;padding:9px;border-radius:11px;align-items:center}.check select,.check>input:last-child{grid-column:2}.check span{display:grid}.check small{color:var(--muted)}.list{display:grid;gap:9px}.row{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:13px 15px;text-decoration:none;color:inherit}.row summary{display:flex;align-items:center;gap:12px;cursor:pointer;list-style:none}.row h3{font-size:16px;margin:2px 0}.row p{margin:2px 0;color:var(--muted)}.inlineform{padding-top:14px;margin-top:12px;border-top:1px solid var(--line)}.rank{font-weight:900;color:var(--sage-deep)}.flash{position:fixed;right:24px;top:20px;z-index:90;background:#e2eee3;border:1px solid #ccddcf;padding:11px 15px;border-radius:13px;box-shadow:var(--shadow);animation:fade 4s forwards}@keyframes fade{0%,75%{opacity:1}100%{opacity:0;pointer-events:none}}.progress{height:6px;background:#eee9e4;border-radius:10px;overflow:hidden;margin-top:10px}.progress i{display:block;height:100%;background:var(--sage-deep)}.empty,.notice{padding:13px 15px;background:#f0ebe6;border-radius:13px;color:var(--muted)}.detailgrid{display:grid;grid-template-columns:220px 1fr;gap:25px;align-items:center;margin:18px 0}.image-placeholder{height:180px;border:1px dashed #cec4bb;border-radius:18px;background:#fbf8f5;display:grid;place-items:center;text-align:center;color:var(--muted)}.lead{font-size:17px;color:var(--muted)}.meta{display:flex;gap:7px;flex-wrap:wrap}.meta span{background:#f0ebe6;padding:6px 9px;border-radius:9px;font-size:12px}.back{display:inline-block;color:var(--sage-deep);text-decoration:none;font-weight:700;margin-bottom:12px}.timeline-row{display:grid;grid-template-columns:90px 1fr auto;gap:14px;align-items:center}.journal-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,.8fr);gap:16px}.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.quick{padding:13px;border-radius:14px;background:var(--paper);border:1px solid var(--line)}.quick small{color:var(--muted);display:block}.quick b{font-size:18px}.birth-intro{background:linear-gradient(120deg,#f4e8e9,#f8f1e8,#e8f0e9)}.chapters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.chapter{background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:20px;box-shadow:var(--shadow)}.chapter:nth-child(4n+1){background:linear-gradient(135deg,#fffdfb,#f7ecee)}.chapter:nth-child(4n+2){background:linear-gradient(135deg,#fffdfb,#edf3ed)}.chapter:nth-child(4n+3){background:linear-gradient(135deg,#fffdfb,#f5eee4)}.chapter:nth-child(4n){background:linear-gradient(135deg,#fffdfb,#eeeaf5)}.chapter-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.chapter h2{margin:3px 0 4px;font-size:21px}.chapter-list{display:grid;gap:6px;margin-top:14px}.chapter-link{display:flex;justify-content:space-between;gap:10px;padding:8px 9px;border-radius:10px;text-decoration:none;color:var(--ink);background:rgba(255,255,255,.58);font-size:13px}.chapter-link:hover{background:#fff}.chapter-link small{color:var(--muted)}
@media(max-width:1050px){.stats{grid-template-columns:repeat(2,1fr)}.modules{grid-template-columns:repeat(2,1fr)}.cards-2{grid-template-columns:1fr}.journal-layout{grid-template-columns:1fr}.checkgrid{grid-template-columns:1fr}}
@media(max-width:760px){.sidebar{transform:translateX(-105%);transition:.2s;box-shadow:10px 0 30px #0001}.sidebar.open{transform:none}.mobile-menu{display:block;position:fixed;z-index:60;left:12px;top:12px;width:42px;height:42px;padding:0;border-radius:13px}.app-main{margin-left:0;padding:70px 14px 55px}.pagehead{align-items:flex-start}.filters,.filters:has(select:nth-of-type(1):last-of-type){grid-template-columns:1fr 1fr}.filters input{grid-column:1/-1}.filters button{grid-column:1/-1}.chapters{grid-template-columns:1fr}.detailgrid{grid-template-columns:1fr}.image-placeholder{height:150px}.formgrid{grid-template-columns:1fr}.wide{grid-column:auto}}
@media(max-width:480px){.stats,.modules,.quick-grid{grid-template-columns:1fr 1fr}.hero{padding:24px 20px}.filters{grid-template-columns:1fr}.filters>*{grid-column:auto!important}.compact-card{padding:12px}.compact-card p{display:none}.pill{white-space:normal}.stats .card{padding:13px}.card b{font-size:22px}}


/* =========================================================
   Petites Pattes V1.2 — palette pastel rose / bleu / vert
   Refonte visuelle uniquement : aucune logique métier modifiée.
   ========================================================= */
:root {
  --pp-bg: #fbf8f6;
  --pp-surface: #fffdfc;
  --pp-text: #2f3331;
  --pp-muted: #7d8581;
  --pp-border: #e9e1df;

  --pp-pink-50: #fff7f9;
  --pp-pink-100: #f9e5eb;
  --pp-pink-200: #f3d3dd;
  --pp-pink-500: #b9778d;

  --pp-blue-50: #f5faff;
  --pp-blue-100: #e2f0fa;
  --pp-blue-200: #cfe5f4;
  --pp-blue-500: #6f98b3;

  --pp-green-50: #f5fbf7;
  --pp-green-100: #dfeee4;
  --pp-green-200: #cde4d5;
  --pp-green-500: #6f967d;

  --pp-lilac-100: #eee7f6;
  --pp-peach-100: #fae8dc;
}

/* Fond général */
html, body {
  background: var(--pp-bg) !important;
  color: var(--pp-text);
}

/* Sidebar plus douce */
.sidebar,
aside.sidebar,
.app-sidebar {
  background: #fffdfc !important;
  border-right-color: var(--pp-border) !important;
}

/* Identité Petites Pattes */
.brand-icon,
.logo-icon,
.sidebar-brand-icon {
  background: var(--pp-pink-100) !important;
  color: #76586d !important;
}

/* Profil actif */
.companion-card,
.pet-card,
.active-companion,
.sidebar .companion {
  background: linear-gradient(135deg, var(--pp-green-100), var(--pp-blue-50)) !important;
}

/* Cartes : garder la sobriété mais retirer le beige dominant */
.card,
.panel,
.stat-card,
.module-card,
.list-card,
.command-card,
.purchase-card,
.rule-card,
.social-card {
  background: rgba(255, 253, 252, .96) !important;
  border-color: var(--pp-border) !important;
}

/* Accueil : bandeau pastel équilibré */
.hero,
.home-hero,
.dashboard-hero,
.birthbook-hero {
  background:
    radial-gradient(circle at 92% 22%, rgba(243,211,221,.55), transparent 23%),
    linear-gradient(115deg, var(--pp-green-50) 0%, #fffaf7 47%, var(--pp-pink-50) 100%) !important;
}

/* Pastels par grandes familles de modules */
body.page-commands .eyebrow,
body.page-education .eyebrow,
.education-accent { color: var(--pp-green-500) !important; }

body.page-journal .eyebrow,
body.page-health .eyebrow,
.health-accent { color: var(--pp-blue-500) !important; }

body.page-birthbook .eyebrow,
.birthbook-accent { color: var(--pp-pink-500) !important; }

/* Icônes de listes */
.command-icon,
.list-icon,
.item-icon {
  background: var(--pp-green-100) !important;
  color: var(--pp-green-500) !important;
}

/* Badges */
.badge,
.pill,
.status {
  border-color: transparent !important;
}
.status-not-started,
.badge-neutral {
  background: #f2efed !important;
}
.status-learning,
.badge-learning {
  background: var(--pp-blue-100) !important;
  color: #466f89 !important;
}
.status-done,
.status-acquired,
.badge-success {
  background: var(--pp-green-100) !important;
  color: #4f755c !important;
}
.badge-priority,
.priority-p0 {
  background: var(--pp-pink-100) !important;
  color: #9b6276 !important;
}

/* Boutons principaux : vert pastel soutenu pour conserver le contraste */
button.primary,
.btn-primary,
input[type="submit"],
button[type="submit"] {
  background: #587462 !important;
  border-color: #587462 !important;
}
button.primary:hover,
.btn-primary:hover,
input[type="submit"]:hover,
button[type="submit"]:hover {
  background: #496453 !important;
}

/* Champs : focus bleu pastel */
input:focus,
select:focus,
textarea:focus {
  border-color: var(--pp-blue-500) !important;
  box-shadow: 0 0 0 3px rgba(207, 229, 244, .55) !important;
}

/* Progressions */
progress,
.progress,
.progress-bar-track {
  background: #f0ecea !important;
}
.progress > span,
.progress-bar,
.progress-fill {
  background: linear-gradient(90deg, var(--pp-green-200), var(--pp-blue-200)) !important;
}

/* Livre de naissance : alternance pastel discrète */
.birthbook-grid > *:nth-child(4n+1),
.chapter-grid > *:nth-child(4n+1) {
  background: var(--pp-pink-50) !important;
}
.birthbook-grid > *:nth-child(4n+2),
.chapter-grid > *:nth-child(4n+2) {
  background: var(--pp-green-50) !important;
}
.birthbook-grid > *:nth-child(4n+3),
.chapter-grid > *:nth-child(4n+3) {
  background: #fffaf5 !important;
}
.birthbook-grid > *:nth-child(4n+4),
.chapter-grid > *:nth-child(4n+4) {
  background: #f9f6ff !important;
}

/* Liens et petits accents */
a { text-decoration-color: rgba(111, 152, 179, .35); }
a:hover { text-decoration-color: var(--pp-blue-500); }

/* Petits boutons de changement de compagnon */
.companion-switch button,
.pet-switch button,
.sidebar-footer button {
  background: var(--pp-pink-100);
}

/* Les tableaux / historiques peuvent rester neutres avec un léger bleu */
.history-empty,
.empty-state {
  background: linear-gradient(90deg, #f5f1ef, var(--pp-blue-50)) !important;
}


/* =========================================================
   Petites Pattes V1.3 — affinage UX
   ========================================================= */
.pet-avatar{overflow:hidden;text-decoration:none}
.pet-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.pet-avatar-large{width:110px;height:110px;font-size:34px;background:var(--pp-green-100)}
.profile-photo-editor{display:flex;align-items:center;gap:18px;margin-bottom:18px}
.profile-photo-editor label{min-width:260px}
.secondary-description{font-size:12px;opacity:.78;max-width:46ch}
.picker-head{display:flex;justify-content:space-between;align-items:end;gap:12px;margin-top:16px}
.picker-head h3{margin:0}.picker-head small{color:var(--muted)}
.command-picker-tools{display:grid;grid-template-columns:minmax(220px,1.4fr) minmax(180px,.8fr);gap:8px;margin:10px 0}
.command-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;max-height:420px;overflow:auto;padding:3px 4px 8px 0;margin-bottom:14px}
.pick-row{background:var(--pp-blue-50);border:1px solid var(--pp-border);border-radius:13px;padding:9px}
.pick-row>label{display:flex;align-items:center;gap:9px;color:var(--ink);cursor:pointer}
.pick-row>label span{display:grid}.pick-row small{color:var(--muted)}
.pick-row.selected{background:linear-gradient(135deg,var(--pp-green-50),var(--pp-blue-50));border-color:var(--pp-green-200)}
.pick-details{display:none;grid-template-columns:150px 1fr;gap:7px;margin:9px 0 0 25px}
.pick-row.selected .pick-details{display:grid}
.purchase-card{display:block}
.purchase-card>summary{display:flex;align-items:center;gap:12px;width:100%;cursor:pointer;list-style:none}
.purchase-card>summary::-webkit-details-marker{display:none}
.quick-toggle{margin:0}
.quick-toggle button{border:0;cursor:pointer;color:var(--ink)}
.card-kicker{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:11px}
.priority{padding:3px 7px;border-radius:999px;font-weight:750}
.priority-indispensable{background:var(--pp-pink-100);color:#966176}
.priority-utile{background:var(--pp-blue-100);color:#557c94}
.priority-envie{background:#fff2c9;color:#88702e}
.priority-plus-tard{background:#efedec;color:#777}
.priority-a-regarder{background:var(--pp-green-100);color:#587864}
.birth-detail-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.55fr);gap:16px;align-items:start}
.media-side{position:sticky;top:24px}
.structured-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.structured-fields .wide{grid-column:1/-1}
.free-memory{margin-top:16px;padding-top:16px;border-top:1px solid var(--pp-border)}
.completion-line{display:flex;justify-content:space-between;align-items:end;gap:14px;margin-top:12px}
.completion-line label{max-width:180px}
@media(max-width:1050px){.command-picker{grid-template-columns:1fr}.birth-detail-layout{grid-template-columns:1fr}.media-side{position:static}}
@media(max-width:760px){.command-picker-tools,.pick-details,.structured-fields{grid-template-columns:1fr}.structured-fields .wide{grid-column:auto}.profile-photo-editor{align-items:flex-start;flex-direction:column}}
