:root{--p:#8B5000; --on-p:#FFFFFF; --p-c:#FAEAD5; --on-p-c:#6B3E00;--s:#4E5136; --on-s:#FFFFFF; --s-c:#E9EBD4; --on-s-c:#4E5136;--t:#2C6659; --on-t:#FFFFFF; --t-c:#DCEFE9; --on-t-c:#1F4F45;--err:#B3261E; --on-err:#FFFFFF; --err-c:#FBE4E1; --on-err-c:#8C1D17;--bg:#FBF7F3; --on-bg:#1C1917;--surf:#FBF7F3; --on-surf:#1C1917;--surf-c-low:#FFFFFF; --surf-c:#F6F1EA; --surf-c-high:#F3ECE3; --surf-c-highest:#EAE1D7;--surf-var:#EFE0D0; --on-surf-var:#6B6259;--outline:#A79C90; --outline-var:#EFE7DD;--el1: none;--el2: 0 2px 4px rgba(32,26,19,.10), 0 6px 16px rgba(32,26,19,.10);}
*{box-sizing:border-box;}
body{ background:var(--bg); color:var(--on-surf); font-family:'Roboto', system-ui, sans-serif; margin:0; }
h1,h2,h3{ font-family:'Roboto', system-ui, sans-serif; font-weight:500; text-wrap:balance; margin:0; }
.mono{ font-family:'Roboto Mono', ui-monospace, monospace; font-variant-numeric:tabular-nums; }
button{ font-family:inherit; }
::-webkit-scrollbar{ width:8px; height:8px; }
::-webkit-scrollbar-thumb{ background:var(--outline-var); border-radius:99px; }
@media (prefers-reduced-motion: reduce){ *{ transition:none !important; }
 }
.loadscreen{ min-height:100vh; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; text-align:center; padding:32px; }
.loadscreen .mark{ width:52px; height:52px; border-radius:16px; background:var(--p); color:var(--on-p); display:flex; align-items:center; justify-content:center; font-weight:700; font-size:22px; }
.loadscreen h1{ font-size:20px; }
.loadscreen p{ color:var(--on-surf-var); font-size:14px; max-width:420px; }
.loadscreen .err{ background:var(--err-c); color:var(--on-err-c); border-radius:12px; padding:10px 16px; font-size:13px; font-family:'Roboto Mono',monospace; max-width:520px; }
.shell{ position:relative; min-height:100vh; background:var(--bg); }
.navitem{ appearance:none; border:none; background:transparent; text-align:left; display:flex; align-items:center; gap:14px; height:50px; padding:0 16px; border-radius:25px; color:var(--on-surf-var); font-size:14px; font-weight:500; cursor:pointer; width:100%; }
.navitem svg{ flex:none; }
.navitem:hover{ background:var(--surf-c-high); }
.navitem[data-active="true"]{ background:var(--s-c); color:var(--on-s-c); font-weight:700; }
.navitem[data-active="true"]:hover{ background:var(--s-c); }
.main{ width:100%; }
.topbar{ height:64px; display:flex; align-items:center; justify-content:space-between; padding:0 20px; border-bottom:1px solid var(--outline-var); background:var(--surf); position:sticky; top:0; z-index:5; }
.topbar .left{ display:flex; align-items:center; gap:14px; min-width:0; }
.brandbtn{ appearance:none; border:none; background:transparent; cursor:pointer; display:flex; align-items:center; gap:9px; padding:4px 6px 4px 2px; border-radius:12px; min-width:0; }
.brandbtn:hover{ background:var(--surf-c-high); }
.brandbtn .mark{ width:30px; height:30px; border-radius:9px; background:var(--p); color:var(--on-p); display:flex; align-items:center; justify-content:center; font-weight:700; font-size:14px; flex:none; }
.brandbtn .name{ font-size:18px; font-weight:500; letter-spacing:-.2px; color:var(--on-surf); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.topbar .side{ display:flex; align-items:center; gap:10px; flex:none; }
.iconbtn{ width:40px; height:40px; border-radius:20px; background:var(--surf-c-high); border:none; display:flex; align-items:center; justify-content:center; color:var(--on-surf); cursor:pointer; flex:none; }
.chipavatar{ width:34px; height:34px; border-radius:17px; display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:700; flex:none; }
.content{ padding:22px 24px 48px; display:flex; flex-direction:column; gap:20px; max-width:1240px; margin:0 auto; }
.bottomnav{ display:none; position:fixed; left:0; right:0; bottom:0; z-index:10; background:var(--surf-c-low); border-top:1px solid var(--outline-var); overflow-x:auto; }
.bottomnav-row{ display:flex; min-width:max-content; padding:6px 4px calc(6px + env(safe-area-inset-bottom,0px)); }
.bottomnav .navitem{ flex-direction:column; height:auto; padding:8px 14px; border-radius:16px; gap:4px; width:auto; min-width:68px; }
.bottomnav .navitem span.lbl{ font-size:10.5px; }
@media (max-width:880px){.bottomnav{ display:block; }
.content{ padding-bottom:112px; }
.topbar{ padding:0 16px; }
}
.card{ background:var(--surf-c-low); border:1px solid var(--outline-var); border-radius:20px; padding:20px 22px; display:flex; flex-direction:column; gap:14px; }
.card-head{ display:flex; align-items:baseline; justify-content:space-between; gap:10px; flex-wrap:wrap; }
.card-head h2{ font-size:18px; font-weight:500; }
.count{ font-family:'Roboto Mono',monospace; font-size:12px; color:var(--on-surf-var); background:var(--surf-c); padding:2px 10px; border-radius:99px; }
.subgrid{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:700px){ .subgrid{ grid-template-columns:1fr; }
 }
.mini-card{ background:var(--surf); border-radius:14px; padding:14px 16px; display:flex; flex-direction:column; gap:8px; }
.mini-card h3{ font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--on-surf-var); font-weight:600; }
.mini-card .row{ background:var(--surf-c); padding:8px 10px; }
.menu-slot{ display:flex; justify-content:space-between; gap:8px; font-size:.87rem; padding:3px 0; }
.menu-slot b{ font-weight:500; color:var(--on-surf-var); flex:none; width:52px; }
.menu-slot .placeholder{ color:var(--on-surf-var); font-style:italic; }
.day-nav{ display:flex; align-items:center; gap:10px; }
.day-nav button{ border:1px solid var(--outline-var); background:var(--surf-c); color:var(--on-surf); border-radius:10px; width:32px; height:32px; cursor:pointer; font-size:1rem; }
.day-nav button:hover{ border-color:var(--p); color:var(--p); }
.day-empty{ color:var(--on-surf-var); font-style:italic; font-size:.88rem; }
.menu-table{ width:100%; border-collapse:collapse; }
.menu-table th{ font-size:.7rem; text-transform:uppercase; letter-spacing:.05em; color:var(--on-surf-var); text-align:left; padding:0 6px 8px; font-weight:600; }
.menu-table td{ vertical-align:top; padding:3px; }
.menu-slot-label{ font-size:.7rem; color:var(--on-surf-var); text-transform:uppercase; letter-spacing:.05em; padding-right:8px; white-space:nowrap; }
.menu-select{ background:var(--surf-c); border:1px solid var(--outline-var); border-radius:10px; padding:7px 6px; font-size:.8rem; min-width:120px; max-width:150px; color:var(--on-surf); }
.menu-select:focus{ outline:none; border-color:var(--p); background:var(--surf); }
.actions{ display:flex; gap:10px; flex-wrap:wrap; }
.btn{ appearance:none; border:1px solid var(--outline-var); background:var(--surf-c); color:var(--on-surf); border-radius:10px; padding:10px 20px; font-size:.85rem; font-weight:500; cursor:pointer; display:inline-flex; align-items:center; gap:8px; }
.btn:hover{ border-color:var(--p); color:var(--p); }
.btn.primary{ background:var(--p); border-color:var(--p); color:var(--on-p); }
.btn.primary:hover{ filter:brightness(1.05); color:var(--on-p); }
.btn.success{ background:#2C6659; border-color:#2C6659; color:#FFFFFF; }
.btn.success:hover{ background:#1F4F45; border-color:#1F4F45; color:#FFFFFF; }
.btn:disabled{ opacity:.4; cursor:not-allowed; border-color:var(--outline-var); color:var(--on-surf-var); }
.btn:disabled:hover{ border-color:var(--outline-var); color:var(--on-surf-var); }
.filterbar{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.flabel{ font-size:.72rem; color:var(--on-surf-var); text-transform:uppercase; letter-spacing:.06em; margin-right:2px; }
.chip{ border:1px solid var(--outline-var); background:var(--surf); color:var(--on-surf-var); border-radius:99px; padding:6px 14px; font-size:.83rem; font-weight:500; cursor:pointer; }
.chip[data-active="true"]{ color:#fff; border-color:transparent; }
.chip[data-person="tous"][data-active="true"]{ background:var(--on-surf); }
.chip[data-person="Andres"][data-active="true"]{ background:#3B6FA0; }
.chip[data-person="Sam"][data-active="true"]{ background:#C4577A; }
.chip[data-person="Famille"][data-active="true"]{ background:var(--s); color:var(--on-s); }
.chip[data-active="true"]:not([data-person]){ background:var(--t); color:var(--on-t); border-color:transparent; }
.stepnote{ font-size:.78rem; color:var(--on-surf-var); }
ul.plain{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.row{ display:flex; align-items:flex-start; gap:10px; padding:10px 12px; border-radius:14px; background:var(--surf-c); }
.itemcard{ display:flex; align-items:flex-start; gap:10px; padding:15px 18px; border-radius:15px; background:var(--surf-c-low); border:1px solid var(--outline-var); }
.itemcard:hover{ border-color:#DCD1C4; }
.itemcard .body{ flex:1; min-width:0; display:flex; flex-direction:column; gap:4px; }
.itemcard .txt{ font-size:.9rem; line-height:1.35; }
.itemcard .meta{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; font-size:.78rem; color:var(--on-surf-var); }
.row.done{ opacity:.55; }
 .row.done .txt{ text-decoration:line-through; }
.row.picked{ background:var(--p-c); }
.check-wrap{ position:relative; flex:none; margin-top:1px; cursor:pointer; }
.check-wrap input{ position:absolute; opacity:0; width:20px; height:20px; margin:0; cursor:pointer; }
.check-wrap .box{ display:block; width:20px; height:20px; border-radius:6px; border:1.8px solid var(--outline); background:var(--surf); }
.check-wrap input:checked + .box{ background:var(--t); border-color:var(--t); position:relative; }
.check-wrap input:checked + .box::after{ content:"✓"; position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:13px; color:#fff; }
.row .body{ flex:1; min-width:0; }
 .row .txt{ font-size:.9rem; line-height:1.35; }
.row .meta{ display:flex; gap:6px; flex-wrap:wrap; margin-top:5px; }
.tagpill{ font-size:.67rem; font-weight:700; padding:2px 9px; border-radius:99px; display:inline-flex; align-items:center; gap:4px; }
.tagpill.person.Andres{ color:#3B6FA0; background:#DEE9F3; }
.tagpill.person.Sam{ color:#C4577A; background:#F6E1E7; }
.tagpill.person.Famille{ color:var(--on-s-c); background:var(--s-c); }
.tagpill.person.generic{ color:#6B6259; background:#F1EAE2; }
.tagpill.dom{ color:var(--on-surf-var); background:var(--surf); border:1px solid var(--outline-var); font-weight:500; }
.tagpill.prio.Urgent{ color:var(--on-err-c); background:var(--err-c); }
.tagpill.prio.Courant{ color:var(--on-p-c); background:var(--p-c); }
.tagpill.prio.PasUrgent{ color:var(--on-surf-var); background:var(--surf-c-high); }
.tagpill.due{ color:var(--on-t-c); background:var(--t-c); font-family:'Roboto Mono',monospace; }
.tagpill.overdue{ color:var(--on-err-c); background:var(--err-c); font-family:'Roboto Mono',monospace; }
.tagpill.appr.Aimé{ color:var(--on-t-c); background:var(--t-c); }
.tagpill.appr.Neutre{ color:var(--on-surf-var); background:var(--surf-c-high); }
.prio-group + .prio-group{ margin-top:14px; }
.prio-label{ font-size:.7rem; text-transform:uppercase; letter-spacing:.07em; color:var(--on-surf-var); margin-bottom:7px; display:flex; align-items:center; gap:6px; }
.prio-label .d{ width:7px; height:7px; border-radius:50%; }
.repas-card{ display:flex; justify-content:space-between; align-items:center; gap:10px; padding:12px 14px; border-radius:14px; background:var(--surf-c-low); border:1px solid var(--outline-var); }
.repas-card + .repas-card{ margin-top:8px; }
.repas-card .txt{ flex:1; font-size:.88rem; }
.routines-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:18px; }
.routines-group-head{ display:flex; align-items:center; gap:8px; margin-bottom:10px; }
.routines-group-head .child{ font-size:13px; font-weight:500; color:var(--on-surf); }
.routines-group-head .moment{ font-size:11px; color:var(--on-surf-var); text-transform:uppercase; letter-spacing:.08em; }
.routines-group-head .ratio{ font-family:'Roboto Mono',monospace; font-size:11.5px; color:var(--on-surf-var); margin-left:auto; }
.routine-chip{ display:inline-flex; align-items:center; gap:6px; height:30px; padding:0 12px; border-radius:99px; border:1px solid var(--outline-var); background:var(--surf-c-low); font-size:12.5px; color:var(--on-surf); cursor:pointer; }
.routine-chip.done{ background:var(--t-c); border-color:var(--t); color:var(--on-t-c); }
.jaifait-row{ display:flex; align-items:flex-start; gap:12px; }
.jaifait-row .person{ font-size:11.5px; font-weight:600; color:var(--on-surf-var); margin-bottom:7px; }
.jaifait-chips{ display:flex; flex-wrap:wrap; gap:7px; }
.afaire-row{ display:flex; align-items:flex-start; gap:11px; padding:9px 8px; border-radius:11px; margin:0 -8px; background:transparent; list-style:none; }
.afaire-row:hover{ background:var(--surf); }
.modal-scrim{ position:fixed; inset:0; background:rgba(20,15,10,.5); z-index:50; opacity:0; pointer-events:none; transition:opacity .18s ease; display:flex; align-items:flex-end; justify-content:center; }
.modal-scrim[data-open="true"]{ opacity:1; pointer-events:auto; }
.modal{ background:var(--surf-c-low); border-radius:24px 24px 0 0; width:100%; max-width:560px; max-height:88vh; overflow-y:auto; padding:22px 22px calc(22px + env(safe-area-inset-bottom,0px)); box-shadow:var(--el2); }
@media (min-width:640px){ .modal-scrim{ align-items:center; }
 .modal{ border-radius:24px; }
 }
.modal-head{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:16px; }
.modal-head h2{ font-size:18px; font-weight:500; }
.field{ display:flex; flex-direction:column; gap:6px; margin-bottom:14px; }
.field label{ font-size:.72rem; text-transform:uppercase; letter-spacing:.05em; color:var(--on-surf-var); font-weight:600; }
.field input[type=text], .field input[type=date], .field select, .field textarea{ font-family:inherit; font-size:.9rem; padding:10px 12px; border-radius:10px; border:1px solid var(--outline-var); background:var(--surf); color:var(--on-surf); }
.field textarea{ resize:vertical; min-height:64px; }
.field input:focus, .field select:focus, .field textarea:focus{ outline:none; border-color:var(--p); }
.checkgrid{ display:flex; flex-wrap:wrap; gap:6px; }
.checkchip{ display:inline-flex; align-items:center; gap:5px; font-size:.78rem; border:1px solid var(--outline-var); background:var(--surf); color:var(--on-surf-var); border-radius:99px; padding:5px 12px; cursor:pointer; }
.checkchip input{ margin:0; }
.checkchip:has(input:checked){ border-color:var(--p); color:var(--p); background:var(--p-c); }
.modal-actions{ display:flex; justify-content:flex-end; gap:10px; margin-top:6px; }
.row-actions{ display:flex; gap:2px; flex:none; align-self:flex-start; }
.iconsm{ width:30px; height:30px; border-radius:15px; border:none; background:transparent; color:var(--on-surf-var); display:flex; align-items:center; justify-content:center; cursor:pointer; }
.iconsm[data-move-liste]{ width:auto; min-width:30px; padding:0 8px; border-radius:9px; border:1px solid var(--outline-var); background:var(--surf-c-low); font-size:11px; font-weight:700; }
.iconsm[data-move-liste]:hover{ border-color:#CFC3B4; color:var(--on-surf); }
.iconsm:hover{ background:var(--surf-c-high); color:var(--on-surf); }
.iconsm:disabled{ opacity:.3; cursor:not-allowed; }
.routine-manage-block + .routine-manage-block{ margin-top:20px; }
.routine-manage-title{ font-size:11px; text-transform:uppercase; letter-spacing:.06em; font-weight:700; color:var(--on-surf-var); margin-bottom:8px; display:flex; align-items:center; }
.routine-manage-row{ display:flex; align-items:center; gap:10px; padding:8px 10px; border-radius:12px; background:var(--surf); }
.routine-manage-row + .routine-manage-row{ margin-top:6px; }
.routine-manage-row .emoji{ font-size:1.1rem; flex:none; }
.routine-manage-row .lbl{ flex:1; font-size:.85rem; }
.routine-manage-row .movebtns{ display:flex; flex-direction:column; }
.tagpill.creator{ color:var(--on-t-c); background:var(--t-c); }
.board-auto{ display:grid; grid-template-columns:repeat(auto-fit,minmax(255px,1fr)); gap:16px; align-items:start; }
.kanban-card.collapsed{ cursor:pointer; }
.kanban-card .quickmoves{ display:flex; gap:4px; flex-wrap:wrap; margin-top:8px; }
.kanban-card .quickmoves button{ height:24px; padding:0 9px; border-radius:7px; border:1px solid var(--outline-var); background:var(--surf-c-low); color:var(--on-surf-var); font-size:11px; font-weight:600; cursor:pointer; font-family:inherit; }
.kanban-card .quickmoves button:hover{ border-color:#CFC3B4; color:var(--on-surf); }
.kanban-card.done{ opacity:.55; }
 .kanban-card.done .txt{ text-decoration:line-through; }
.col-collapse{ appearance:none; border:none; background:transparent; cursor:pointer; color:var(--on-surf-var); display:flex; align-items:center; }
.board-col{ background:var(--surf-c); border-radius:18px; padding:6px; display:flex; flex-direction:column; gap:8px; min-height:80px; }
.board-col-head{ display:flex; align-items:center; gap:9px; font-size:13.5px; color:var(--on-surf); font-weight:500; padding:8px 6px 4px; }
.board-col-head .lbl{ font-size:13.5px; font-weight:500; }
.board-col-head .n{ font-family:'Roboto Mono',monospace; font-size:12px; color:var(--on-surf-var); margin-left:auto; }
.kanban-col[data-dragover="true"]{ outline:2px dashed var(--p); outline-offset:2px; }
.kanban-card{ background:var(--surf-c-low); border:1px solid var(--outline-var); border-radius:13px; padding:10px 12px; cursor:grab; }
.kanban-card:hover{ border-color:#DCD1C4; }
.kanban-card[data-dragging="true"]{ opacity:.4; }
.loginwrap{ min-height:100vh; display:flex; align-items:center; justify-content:center; background:#FBF7F3; padding:24px; }
.logincard{ width:100%; max-width:360px; background:#FFFFFF; border:1px solid #EFE7DD; border-radius:22px; padding:32px 28px; }
.logincard .brand{ display:flex; align-items:center; gap:10px; margin-bottom:22px; }
.logincard .dot{ width:9px; height:9px; border-radius:50%; background:#8B5000; }
.logincard .word{ font-size:19px; font-weight:500; color:#1C1917; }
.logincard h1{ font-size:20px; font-weight:500; margin-bottom:18px; color:#1C1917; }
.loginfield{ margin-bottom:14px; }
.loginfield label{ display:block; font-size:11px; text-transform:uppercase; letter-spacing:0.09em; color:#A79C90; font-weight:700; margin-bottom:7px; }
.loginfield input{ width:100%; height:42px; padding:0 13px; border-radius:10px; border:1px solid #EFE7DD; background:#FFFFFF; font-size:14px; color:#1C1917; outline:none; font-family:inherit; box-sizing:border-box; }
.loginfield input:focus{ border-color:#8B5000; }
.loginerr{ font-size:12.5px; color:#B3261E; margin:-4px 0 14px; }
.loginbtn{ width:100%; height:44px; border-radius:11px; border:none; background:#8B5000; color:#FFFFFF; font-size:14px; font-weight:500; cursor:pointer; font-family:inherit; }
.loginbtn:hover{ background:#6B3E00; }
.loginfoot{ font-size:12px; color:#B5A99C; margin-top:20px; text-align:center; }
.identchip{ display:flex; align-items:center; gap:8px; cursor:pointer; border:none; background:transparent; padding:4px 8px; border-radius:20px; font-family:inherit; }
.identchip:hover{ background:var(--surf-c-high); }
.profilemenu{ position:absolute; right:20px; top:60px; z-index:20; background:var(--surf); border:1px solid var(--outline-var); border-radius:14px; box-shadow:var(--el2); padding:8px; min-width:200px; display:flex; flex-direction:column; gap:2px; }
.profilemenu button{ appearance:none; border:none; background:transparent; text-align:left; padding:10px 12px; border-radius:10px; font-size:.85rem; cursor:pointer; font-family:inherit; color:var(--on-surf); }
.profilemenu button:hover{ background:var(--surf-c-high); }
.profilemenu .who{ padding:8px 12px 4px; font-size:.72rem; color:var(--on-surf-var); text-transform:uppercase; letter-spacing:.05em; }
.reglages-tabs{ display:flex; gap:18px; border-bottom:1px solid var(--outline-var); overflow-x:auto; margin-bottom:4px; }
.rtab{ appearance:none; border:none; background:transparent; padding:0 2px 10px; height:44px; font-size:13.5px; font-weight:500; color:#A79C90; border-bottom:2px solid transparent; cursor:pointer; font-family:inherit; white-space:nowrap; }
.rtab[data-active="true"]{ color:#1C1917; border-bottom-color:#8B5000; }
.journal-list{ background:#FFFFFF; border:1px solid #EFE7DD; border-radius:20px; padding:6px 22px; }
.journal-row{ display:flex; gap:12px; padding:12px 0; border-top:1px solid #F7F1EA; }
.journal-row:first-child{ border-top:none; }
.journal-date{ flex:0 0 70px; font-family:'Roboto Mono',monospace; font-size:12px; color:#8B5000; }
.journal-txt{ font-size:13px; color:#4E463E; }
.tagsfield{ display:flex; flex-wrap:wrap; gap:6px; margin-bottom:8px; }
.tagchip{ display:inline-flex; align-items:center; gap:5px; font-size:12.5px; padding:5px 6px 5px 11px; border-radius:99px; background:#F6F1EA; color:#4E463E; }
.tagchip button{ appearance:none; border:none; background:transparent; color:#8A7F72; cursor:pointer; border-radius:50%; width:18px; height:18px; display:flex; align-items:center; justify-content:center; font-family:inherit; }
.tagchip button:hover{ background:#F0DAD7; color:#B3261E; }
.tagsugg{ display:flex; flex-wrap:wrap; gap:6px; margin-top:6px; }
.tagsugg button{ appearance:none; height:28px; padding:0 11px; border-radius:99px; border:1px solid #EAE1D7; background:#FFFFFF; color:#6B3E00; font-size:12px; cursor:pointer; font-family:inherit; }
.tagsugg button:hover{ border-color:#CFC3B4; background:#FBF7F3; }
.smallchip{ display:inline-flex; align-items:center; padding:6px 13px; border-radius:99px; font-size:12.5px; border:1px solid #EAE1D7; color:#8A7F72; background:transparent; cursor:pointer; font-family:inherit; }
.smallchip[data-active="true"]{ background:#FAEAD5; color:#6B3E00; border-color:transparent; }
.badge-attention{ display:inline-flex; align-items:center; padding:6px 13px; border-radius:99px; font-size:12.5px; background:#FDF3E6; border:1px solid #F0C9A0; color:#6B3E00; }
.userpill{ display:flex; align-items:center; gap:10px; padding:10px 4px; border-top:1px solid var(--outline-var); }
.userpill:first-child{ border-top:none; }
.userpill .name{ font-size:.88rem; font-weight:500; }
.userpill .login{ font-family:'Roboto Mono',monospace; font-size:.76rem; color:var(--on-surf-var); }
.rolebadge{ font-size:.68rem; font-weight:700; padding:3px 10px; border-radius:99px; }
.rolebadge.parent{ color:#2F5F8A; background:#E3EDF6; }
.rolebadge.enfant{ color:#2C6659; background:#DCEFE9; }
.mealgrid{ display:grid; grid-template-columns:52px repeat(7,1fr); gap:4px; }
.mealcell{ min-height:52px; border-radius:10px; border:1px solid #F1EAE2; background:transparent; cursor:pointer; padding:6px 7px; text-align:left; font-family:inherit; font-size:12px; color:#1C1917; }
.mealcell-head.today{ background:var(--surf-c-highest); border-radius:10px; }
.mealcell-head.today .slotlbl{ color:var(--p); font-weight:700; }
.mealcell-head.today{ font-weight:700; color:var(--p); }
.mealcell:hover{ border-color:#CFC3B4; }
.mealcell.filled{ background:var(--surf-c); border-color:var(--outline-var); }
.mealcell.empty-cell{ color:#CFC3B4; font-size:15px; }
.mealcell .slotlbl{ display:block; font-size:.62rem; color:#A79C90; text-transform:uppercase; letter-spacing:.04em; margin-bottom:2px; }
.mealpicker{ display:flex; flex-direction:column; gap:6px; max-height:320px; overflow-y:auto; }
.mealpicker-row{ display:flex; align-items:center; gap:8px; padding:8px 10px; border-radius:12px; background:var(--surf-c); cursor:pointer; border:none; text-align:left; font-family:inherit; }
.mealpicker-row:hover{ background:var(--surf-c-high); }
.avis-dot{ width:8px; height:8px; border-radius:50%; flex:none; }
@media print{ body *{ visibility:hidden; }
 #print-courses, #print-courses *{ visibility:visible; }
 #print-courses{ position:absolute; left:0; top:0; width:100%; }
 }
.sidebar{ display:none; }
.sb-brand{ display:flex; align-items:center; gap:10px; padding:4px 10px 24px; flex:none; }
.sb-brand .dot{ width:9px; height:9px; border-radius:50%; background:var(--p); flex:none; }
.sb-brand .word{ font-size:19px; font-weight:500; letter-spacing:-.3px; color:var(--on-surf); }
.sb-nav-item{ appearance:none; border:none; background:transparent; display:flex; align-items:center; gap:12px; height:40px; padding:0 10px; border-radius:10px; color:var(--on-surf-var); font-size:14px; font-weight:500; cursor:pointer; width:100%; text-align:left; font-family:inherit; }
.sb-nav-item:hover{ background:var(--surf-c-high); color:var(--on-surf); }
.sb-nav-item[data-active="true"]{ color:var(--on-surf); font-weight:700; }
.sb-badge{ margin-left:auto; font-family:'Roboto Mono',monospace; font-size:11px; color:var(--on-surf-var); background:var(--surf-c-high); border-radius:99px; padding:2px 9px; flex:none; }
.sb-divider{ height:1px; background:var(--outline-var); margin:14px 10px; flex:none; }
.sb-foot{ margin-top:auto; display:flex; flex-direction:column; gap:10px; flex:none; }
.sb-mobile-btn{ display:flex; align-items:center; gap:8px; width:100%; padding:9px 12px; border:1px solid var(--outline-var); background:transparent; border-radius:10px; color:var(--on-surf-var); font-size:12.5px; font-weight:500; cursor:pointer; font-family:inherit; }
.sb-mobile-btn:hover{ border-color:#CFC3B4; color:var(--on-surf); }
.sb-profile{ position:relative; }
.sb-profile-btn{ display:flex; align-items:center; gap:9px; padding:6px 8px; width:100%; border:none; background:transparent; border-radius:10px; cursor:pointer; font-family:inherit; }
.sb-profile-btn:hover{ background:var(--surf-c); }
.sb-profile-name{ display:flex; flex-direction:column; align-items:flex-start; min-width:0; }
.sb-profile-name .n{ font-size:12.5px; color:var(--on-surf); font-weight:500; }
.sb-profile-name .r{ font-size:10.5px; color:var(--on-surf-var); }
.sb-profile-dot{ width:6px; height:6px; border-radius:50%; background:var(--t); margin-left:auto; flex:none; }
.sb-profilemenu{ position:absolute; bottom:52px; left:0; width:100%; background:var(--surf-c-low); border:1px solid var(--outline-var); border-radius:13px; box-shadow:var(--el2); padding:10px; display:flex; flex-direction:column; gap:8px; z-index:20; }
.sb-profilemenu .who{ font-size:11px; text-transform:uppercase; letter-spacing:.09em; color:var(--on-surf-var); font-weight:700; }
.sb-profilemenu .moderow{ display:flex; gap:6px; }
.sb-profilemenu .moderow button{ flex:1; height:30px; border-radius:8px; border:1px solid var(--outline-var); background:transparent; font-size:11.5px; font-weight:500; color:var(--on-surf-var); cursor:pointer; font-family:inherit; }
.sb-profilemenu .moderow button[data-active-mode="true"]{ background:var(--p); border-color:var(--p); color:var(--on-p); }
.sb-profilemenu .logoutbtn{ height:32px; margin-top:2px; border-radius:9px; border:1px solid var(--outline-var); background:transparent; font-size:12px; font-weight:500; color:var(--err); cursor:pointer; font-family:inherit; }
.sb-profilemenu .logoutbtn:hover{ background:var(--surf); }
@media (min-width:881px){.shell{ display:flex; }
.topbar{ display:none; }
.sidebar{ display:flex; flex-direction:column; gap:2px; width:244px; flex:none; height:100vh; position:sticky; top:0; padding:24px 16px 18px; border-right:1px solid var(--outline-var); }
.main{ flex:1; min-width:0; }
.content{ padding:34px 44px 80px; }
}
.shell.previewmobile{ display:block !important; }
.shell.previewmobile .sidebar{ display:none !important; }
.shell.previewmobile .topbar{ display:flex !important; }
.shell.previewmobile .content{ padding:22px 24px 112px !important; max-width:480px; margin:0 auto; }
.exitpreview{ position:sticky; top:0; z-index:6; display:flex; align-items:center; justify-content:space-between; gap:10px; background:var(--p-c); color:var(--on-p-c); padding:8px 14px; font-size:12.5px; font-weight:500; }
.exitpreview button{ appearance:none; border:none; background:transparent; color:var(--on-p-c); font-weight:700; text-decoration:underline; cursor:pointer; font-family:inherit; font-size:12.5px; }
.dash-header{ display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:22px; flex-wrap:wrap; }
.dash-weekday{ font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--on-surf-var); font-weight:700; margin-bottom:9px; }
.dash-daylabel{ font-size:36px; font-weight:300; letter-spacing:-.9px; line-height:1; color:var(--on-surf); }
.dash-daynav{ display:flex; align-items:center; gap:8px; }
.dash-daynav button{ height:36px; border-radius:10px; border:1px solid var(--outline-var); background:var(--surf-c-low); color:var(--on-surf-var); font-size:13px; font-weight:500; cursor:pointer; font-family:inherit; display:flex; align-items:center; justify-content:center; }
.dash-daynav button:hover{ border-color:#CFC3B4; color:var(--on-surf); }
.dash-daynav button:disabled{ opacity:.4; cursor:not-allowed; }
.dash-daynav .arrowbtn{ width:36px; padding:0; }
.dash-daynav .todaybtn{ padding:0 16px; }
.stat-bar{ display:flex; border:1px solid var(--outline-var); background:var(--surf-c-low); border-radius:16px; overflow:hidden; margin-bottom:24px; }
.stat{ flex:1; appearance:none; border:none; background:transparent; padding:16px 20px; display:flex; flex-direction:column; gap:4px; cursor:pointer; font-family:inherit; text-align:left; border-right:1px solid var(--outline-var); }
.stat:last-child{ border-right:none; }
.stat:hover{ background:var(--surf-c); }
.stat .n{ display:flex; align-items:baseline; gap:7px; }
.stat .n .v{ font-family:'Roboto Mono',monospace; font-size:25px; font-weight:500; letter-spacing:-.5px; line-height:1; color:var(--on-surf); }
.stat .n .dot{ width:7px; height:7px; border-radius:50%; }
.stat .lbl{ font-size:11.5px; color:var(--on-surf-var); letter-spacing:.02em; }
.daywrap{ background:var(--surf-c); border-radius:26px; padding:4px 8px 8px; }
.daywrap-head{ display:flex; align-items:center; gap:11px; padding:14px 14px 12px; flex-wrap:wrap; }
@media (max-width:480px){ .dash-daynav .todaybtn{ display:none; }
 }
.daywrap-head .d{ width:9px; height:9px; border-radius:50%; background:var(--p); flex:none; }
.daywrap-head .lbl{ font-size:11.5px; letter-spacing:.12em; text-transform:uppercase; font-weight:700; color:var(--on-surf-var); }
.daywrap-head .sub{ font-size:12px; color:#A0958A; }
.daywrap-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(310px,1fr)); gap:8px; align-items:start; }
.dw-col{ min-width:0; display:flex; flex-direction:column; gap:8px; }
.dw-section{ min-width:0; background:var(--surf-c-low); border-radius:20px; padding:22px 24px 18px; }
.dw-section.tight{ padding:20px 22px; }
.dw-section.spaced{ margin-top:8px; }
.dw-section h2{ font-size:16px; font-weight:500; }
.dw-section-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:4px; gap:10px; }
.dw-section-head p{ font-size:12px; color:var(--on-surf-var); margin-top:3px; }
.dw-linkbtn{ border:none; background:transparent; padding:0; font-size:12.5px; color:var(--p); font-weight:500; cursor:pointer; font-family:inherit; }
.dw-linkbtn:hover{ text-decoration:underline; }
.dw-addbtn{ width:30px; height:30px; border-radius:9px; border:none; background:var(--p-c); color:var(--on-p-c); display:flex; align-items:center; justify-content:center; cursor:pointer; flex:none; }
.dw-addbtn:hover{ filter:brightness(.97); }
.agenda-allday{ display:flex; flex-wrap:wrap; gap:10px; padding:12px 0 4px; }
.agenda-allday-chip{ display:inline-flex; align-items:center; gap:6px; font-size:12.5px; color:var(--on-surf); }
.agenda-allday-chip .dot{ width:6px; height:6px; border-radius:50%; flex:none; }
.agenda-list{ display:flex; flex-direction:column; margin-top:10px; list-style:none; padding:0; }
.agenda-row{ display:flex; align-items:flex-start; gap:10px; padding:9px 0; border-top:1px solid var(--outline-var); }
.agenda-row:first-child{ border-top:none; }
.agenda-time{ font-family:'Roboto Mono',monospace; font-size:12.5px; color:var(--on-surf-var); width:46px; flex:none; padding-top:2px; }
.agenda-bar{ width:3px; border-radius:3px; flex:none; align-self:stretch; min-height:22px; }
.agenda-body{ min-width:0; flex:1; }
.agenda-label{ display:block; font-size:14.5px; line-height:1.3; color:var(--on-surf); }
.agenda-sub{ display:block; font-size:12px; color:var(--on-surf-var); margin-top:3px; }
.agenda-avatar{ width:26px; height:26px; border-radius:13px; display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:700; flex:none; }
.dw-menu-row{ display:flex; align-items:baseline; gap:14px; }
.dw-menu-slot{ font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:#A79C90; font-weight:600; width:42px; flex:none; }
.dw-menu-row .name{ font-size:14px; color:var(--on-surf); }
.dw-menu-row .placeholder{ color:var(--on-surf-var); font-style:italic; }
.indep-sep{ display:flex; align-items:center; gap:8px; padding:18px 6px 8px; font-size:11px; letter-spacing:.12em; text-transform:uppercase; font-weight:700; color:#A0958A; }
.indep-sep .d{ width:7px; height:7px; border-radius:2px; background:#CFC3B4; flex:none; }
.arrowbtn-sm{ width:28px; height:28px; border-radius:8px; border:1px solid var(--outline-var); background:var(--surf-c-low); color:var(--on-surf-var); display:flex; align-items:center; justify-content:center; cursor:pointer; flex:none; }
.arrowbtn-sm:hover{ border-color:#CFC3B4; color:var(--on-surf); }
.page-header{ display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:22px; flex-wrap:wrap; }
.page-kicker{ font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--on-surf-var); font-weight:700; margin-bottom:9px; }
.page-title{ font-size:36px; font-weight:300; letter-spacing:-.9px; line-height:1; color:var(--on-surf); }
@media (max-width:480px){ .page-title{ font-size:22px; letter-spacing:-.5px; }
 .dash-daylabel{ font-size:26px; letter-spacing:-.6px; }
 }
.page-action{ height:40px; padding:0 20px; border-radius:11px; border:none; background:var(--p); color:var(--on-p); font-size:13.5px; font-weight:500; display:inline-flex; align-items:center; gap:8px; cursor:pointer; font-family:inherit; flex:none; }
.page-action:hover{ filter:brightness(1.05); }
.notes-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(290px,1fr)); gap:10px; max-width:900px; }
.page-action.secondary{ background:var(--surf-c-low); border:1px solid var(--outline-var); color:var(--on-surf); }
.page-action.secondary:hover{ border-color:#CFC3B4; filter:none; }
.sub-action{ height:36px; padding:0 16px; border-radius:10px; border:1px solid var(--outline-var); background:var(--surf-c-low); font-size:12.5px; font-weight:500; color:var(--on-surf); cursor:pointer; font-family:inherit; flex:none; white-space:nowrap; }
.sub-action:hover{ border-color:#CFC3B4; }
.userchip{ display:inline-flex; align-items:center; gap:8px; padding:7px 8px 7px 7px; border-radius:99px; background:var(--surf-c-low); border:1px solid var(--outline-var); }
.userchip .name{ font-size:12.5px; color:var(--on-surf); }
.userchip .login{ font-size:10.5px; color:var(--on-surf-var); }
.iconxs{ width:22px; height:22px; border:none; background:transparent; border-radius:50%; color:var(--on-surf-var); display:flex; align-items:center; justify-content:center; padding:0; cursor:pointer; }
.iconxs:hover{ background:var(--surf-c-highest); color:var(--on-surf); }
.sheet-head{ display:flex; align-items:center; justify-content:space-between; padding-bottom:6px; }
.sheet-head .kicker{ font-size:11.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--on-surf-var); font-weight:700; }
.sheet-textarea{ width:100%; border:none; outline:none; resize:none; font-family:inherit; font-size:21px; font-weight:400; line-height:1.3; letter-spacing:-.3px; color:var(--on-surf); min-height:62px; background:transparent; padding:10px 0 6px; }
.sheet-row{ margin-bottom:16px; }
.sheet-label{ font-size:11px; text-transform:uppercase; letter-spacing:.09em; color:var(--on-surf-var); font-weight:700; margin-bottom:8px; }
.sheet-2col{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:16px; }
.sheet-date{ width:100%; height:38px; padding:0 13px; border-radius:10px; border:1px solid var(--outline-var); background:var(--surf-c-low); font-size:13.5px; font-family:'Roboto Mono',monospace; color:var(--on-surf); }
.pillrow{ display:flex; gap:6px; flex-wrap:wrap; }
.pillpick{ height:32px; padding:0 12px; border-radius:9px; border:1px solid var(--outline-var); background:var(--surf-c-low); font-size:12.5px; font-weight:500; color:var(--on-surf-var); cursor:pointer; font-family:inherit; }
.pillpick:hover{ border-color:#CFC3B4; }
.pillpick[data-active="true"]{ background:var(--p); border-color:var(--p); color:var(--on-p); }
.sheet-domaine{ border-top:1px solid var(--surf-c-high); padding-top:14px; margin-bottom:4px; }
.sheet-foot{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding-top:16px; margin-top:16px; border-top:1px solid var(--surf-c-high); }
.sheet-delete{ border:none; background:transparent; color:var(--err); font-size:13px; font-weight:500; cursor:pointer; font-family:inherit; padding:0; }
.sheet-delete:hover{ text-decoration:underline; }
.sheet-close{ width:32px; height:32px; border-radius:9px; border:none; background:var(--surf-c-high); color:var(--on-surf-var); display:flex; align-items:center; justify-content:center; cursor:pointer; flex:none; }
.sheet-close:hover{ background:var(--surf-c-highest); color:var(--on-surf); }
.quickadd-course{ display:flex; gap:8px; align-items:center; margin-bottom:14px; }
.quickadd-course input{ flex:1; font-family:inherit; font-size:.9rem; padding:10px 12px; border-radius:10px; border:1px solid var(--outline-var); background:var(--surf); color:var(--on-surf); }
.quickadd-course input:focus{ outline:none; border-color:var(--p); }
.quickadd-course button{ flex:none; }
.shop-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(290px,1fr)); gap:16px; align-items:start; }
.shop-card{ background:var(--surf-c-low); border:1px solid var(--outline-var); border-radius:20px; padding:20px 22px; }
.shop-card-head{ display:flex; align-items:baseline; justify-content:space-between; margin-bottom:12px; }
.shop-card-head h2{ font-size:16px; font-weight:500; }
.shop-card-head .ratio{ font-size:12px; color:var(--on-surf-var); }
.shop-progress{ height:4px; border-radius:99px; background:var(--surf-c-highest); overflow:hidden; margin-bottom:14px; }
.shop-progress-bar{ height:100%; background:var(--t); border-radius:99px; }
.shop-list{ gap:1px; }
.shop-row{ display:flex; align-items:center; gap:11px; padding:7px 8px; border-radius:10px; margin:0 -8px; }
.shop-row:hover{ background:var(--surf); }
.shop-row .txt{ font-size:14px; color:var(--on-surf); }
.shop-row.done .txt{ text-decoration:line-through; color:var(--on-surf-var); }
.shop-actions{ display:flex; gap:8px; margin-top:14px; padding-top:12px; border-top:1px solid var(--surf-c-high); }
.shop-actions .btn.success{ flex:1; }
.sugg-box{ background:#E9F2EE; border:1px solid #CFE3DA; border-radius:18px; padding:12px 12px 8px; display:flex; flex-direction:column; }
.sugg-head{ display:flex; align-items:center; gap:9px; }
.sugg-head .t{ font-size:13.5px; font-weight:500; color:#1F4F45; }
.sugg-head .n{ font-family:'Roboto Mono',monospace; font-size:12px; color:#6E9A8B; margin-left:auto; }
.sugg-sub{ font-size:11.5px; color:#6E9A8B; margin:5px 0 8px; }
.sugg-list{ display:flex; flex-direction:column; gap:5px; max-height:300px; overflow-y:auto; }
.sugg-item{ background:#FFFFFF; border:1px solid #DCEAE4; border-radius:12px; padding:8px 9px 8px 11px; display:flex; align-items:center; gap:8px; }
.sugg-item:hover{ border-color:#B7D6CA; }
.sugg-item .txt{ flex:1; min-width:0; font-size:13px; line-height:1.3; color:var(--on-surf); }
.sugg-dismiss{ width:22px; height:22px; flex:none; border:none; background:transparent; border-radius:6px; color:#C0B5A8; display:flex; align-items:center; justify-content:center; cursor:pointer; font-family:inherit; }
.sugg-dismiss:hover{ background:#F1EAE2; color:#6B6259; }
.sugg-add{ height:26px; padding:0 10px; flex:none; border:none; border-radius:8px; background:#DCEFE9; color:#1F4F45; font-size:12px; font-weight:700; display:flex; align-items:center; justify-content:center; cursor:pointer; font-family:inherit; }
.sugg-add:hover{ background:#C7E5DB; }
.sugg-push{ width:100%; height:38px; margin-top:8px; border-radius:12px; border:none; background:#2C6659; color:#FFFFFF; font-size:12.5px; font-weight:500; cursor:pointer; font-family:inherit; }
.sugg-push:hover{ background:#1F4F45; }
.planif-cal{ background:var(--surf-c-low); border:1px solid var(--outline-var); border-radius:20px; padding:20px; }
.planif-cols{ display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:14px; align-items:start; }
.repas-sugg-box{ background:var(--surf-c-high); border-radius:20px; padding:18px 20px; margin-bottom:18px; }
.repas-sugg-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(165px,1fr)); gap:10px; margin-top:14px; }
.repas-sugg-card{ background:var(--surf-c-low); border-radius:14px; padding:13px 14px; display:flex; flex-direction:column; gap:9px; }
.repas-sugg-card .txt{ font-size:13.5px; line-height:1.3; font-weight:500; }
.repas-sugg-card .meta{ display:flex; align-items:center; gap:8px; font-size:11.5px; color:var(--on-surf-var); }
