:root{--red:#e31c23;--red-dark:#b91016;--yellow:#f4c20d;--cream:#fffaf0;--ink:#1d1b18;--muted:#706a61;--line:#eadfc9;--green:#159447;--green-bg:#e9f8ee;--danger:#c93636;--danger-bg:#fff0ee;--panel:#fffdf8;--shadow:0 14px 40px rgba(62,42,8,.11);font-family:Inter,ui-rounded,"SF Pro Rounded","Avenir Next",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--cream)}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 10% 0%,rgba(244,194,13,.14),transparent 22rem),var(--cream);min-height:100vh}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}.hidden{display:none!important}.muted{color:var(--muted)}.tiny{font-size:.78rem;color:var(--muted);line-height:1.45}.eyebrow{margin:0 0 .25rem;color:var(--red);font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}h1,h2,p{margin-top:0}h1{font-size:clamp(1.55rem,5vw,2.25rem);line-height:1.05;margin-bottom:.45rem}h2{font-size:1.05rem;margin-bottom:.4rem}.primary,.secondary,.ghost,.danger,.button-link{min-height:44px;border-radius:14px;padding:.7rem 1rem;border:0;font-weight:850;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:.35rem}.primary{background:var(--red);color:#fff}.primary:hover{background:var(--red-dark)}.secondary{background:#fff4c5;color:#4c3900;border:1px solid #f0d96d}.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}.danger{background:var(--danger-bg);color:var(--danger);border:1px solid #f2b9b4}.small{min-height:38px;padding:.45rem .75rem;font-size:.85rem}.icon-btn{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:#fff;cursor:pointer}label{display:grid;gap:.35rem;font-size:.87rem;font-weight:750;color:#514a41}input,select,textarea{width:100%;min-height:46px;border:1px solid #d9ceba;border-radius:12px;background:#fff;padding:.7rem .8rem;color:var(--ink);font-size:16px}textarea{resize:vertical;min-height:70px}input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible{outline:3px solid rgba(227,28,35,.22);outline-offset:2px}.stack{display:grid;gap:1rem}.stack.compact{gap:.7rem}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}.alert{padding:.8rem 1rem;border-radius:12px;margin-bottom:1rem}.alert.error{background:var(--danger-bg);color:#8b1f1f;border:1px solid #f1bbb6}
.auth-page{display:grid;place-items:center;padding:1.25rem}.auth-card{width:min(100%,430px);background:#fff;border:1px solid var(--line);border-radius:28px;padding:1.5rem;box-shadow:var(--shadow);text-align:center}.auth-logo{width:120px;height:120px;object-fit:contain;margin:.2rem auto 1rem}.auth-card label{text-align:left}.auth-card .muted{line-height:1.55}.auth-card .primary{width:100%}
.app-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem max(1rem,env(safe-area-inset-left));background:rgba(255,250,240,.95);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:.7rem;min-width:0}.brand img{width:48px;height:48px;object-fit:contain;border-radius:50%}.brand div{display:grid;min-width:0}.brand strong{font-size:1rem;white-space:nowrap}.brand span{font-size:.74rem;color:var(--muted);white-space:nowrap}.app-main{max-width:980px;margin:0 auto;padding:1.25rem 1rem 7rem}.panel{display:none}.panel.active{display:block}.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.section-head h1{margin-bottom:0}.child-switcher{display:flex;gap:.65rem;overflow-x:auto;padding:.2rem 0 1rem;scrollbar-width:none}.child-chip{border:1px solid var(--line);background:#fff;border-radius:18px;padding:.45rem .7rem .45rem .45rem;display:flex;align-items:center;gap:.5rem;font-weight:850;white-space:nowrap;cursor:pointer}.child-chip.active{border-color:var(--red);background:#fff4ef;box-shadow:inset 0 0 0 1px var(--red)}.avatar{width:38px;height:38px;border-radius:50%;object-fit:cover;border:2px solid #fff;box-shadow:0 0 0 1px var(--line)}.avatar.large{width:64px;height:64px}.avatar-fallback{display:grid;place-items:center;background:#fff3ba;font-size:1.25rem}.empty-card{background:#fff;border:1px dashed #d9caa9;border-radius:24px;padding:2rem 1rem;text-align:center}.big-emoji{font-size:3rem;margin-bottom:.6rem}.score-card{background:linear-gradient(135deg,#fff,#fff7d7);border:1px solid #ead36a;border-radius:22px;padding:1rem;display:grid;grid-template-columns:auto 1fr auto;gap:.9rem;align-items:center;margin-bottom:1rem}.score-card>div:first-child{display:grid}.score-card strong{font-size:1.4rem}.score-bar{height:10px;border-radius:999px;background:#eee1b5;overflow:hidden}.score-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--yellow),var(--red));border-radius:inherit;transition:width .25s ease}.pill{font-size:.78rem;background:#fff;border:1px solid var(--line);border-radius:999px;padding:.45rem .65rem;font-weight:800;white-space:nowrap}.rules-list{display:grid;gap:.75rem}.rule-card{display:grid;grid-template-columns:auto 1fr auto;gap:.8rem;background:#fff;border:1px solid var(--line);border-radius:20px;padding:.9rem;align-items:start;transition:.2s}.rule-card.ok{border-color:#a6dfb8;background:linear-gradient(90deg,var(--green-bg),#fff 35%)}.rule-card.ko{border-color:#f0b0aa;background:linear-gradient(90deg,var(--danger-bg),#fff 35%)}.rule-icon{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:#ffd94f;border:2px solid var(--red);font-size:1.3rem;flex:none}.rule-icon.small{width:38px;height:38px;font-size:1.05rem}.rule-copy{min-width:0}.rule-title-line{display:flex;align-items:center;gap:.6rem;justify-content:space-between}.rule-title-line h2{margin:0;font-size:1rem}.rule-copy>p{font-size:.9rem;color:#5f584e;line-height:1.4;margin:.25rem 0 0}.status-label{font-size:.7rem;font-weight:850;border-radius:999px;background:#f1ece3;padding:.3rem .5rem;white-space:nowrap}.rule-card.ok .status-label{background:var(--green-bg);color:#0b7035}.rule-card.ko .status-label{background:var(--danger-bg);color:#a32929}.rule-actions{display:flex;gap:.35rem;align-items:center}.status-btn,.reset-btn{width:42px;height:42px;border-radius:12px;border:1px solid var(--line);background:#fff;font-weight:950;font-size:1.1rem;cursor:pointer}.status-btn.ok{color:var(--green)}.status-btn.ko{color:var(--danger)}.status-btn.ok.selected{background:var(--green);color:#fff;border-color:var(--green)}.status-btn.ko.selected{background:var(--danger);color:#fff;border-color:var(--danger)}.reset-btn{width:36px;color:#8b8172}.sanction{margin-top:.65rem;background:#fff4ef;border-left:4px solid var(--red);padding:.65rem .75rem;border-radius:0 10px 10px 0;display:grid;gap:.15rem;font-size:.82rem}.sanction strong{color:var(--red)}
.bottom-nav{position:fixed;left:50%;transform:translateX(-50%);bottom:max(.6rem,env(safe-area-inset-bottom));z-index:30;width:min(calc(100% - 1rem),700px);display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border:1px solid var(--line);border-radius:22px;padding:.35rem;box-shadow:0 10px 35px rgba(58,41,12,.18)}.nav-btn{border:0;background:transparent;min-height:54px;border-radius:17px;display:grid;place-items:center;gap:.1rem;font-size:.68rem;font-weight:800;color:#776f64;cursor:pointer}.nav-btn span{font-size:1.15rem}.nav-btn.active{background:#fff2c4;color:#2f2a22}.filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem;margin-bottom:1rem}.history-result,.parent-grid{display:grid;gap:1rem}.history-summary{background:#201f1b;color:#fff;border-radius:22px;padding:1rem 1.2rem;display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.history-summary strong{font-size:2rem}.history-summary span{color:#dfd8cc}.history-list{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}.history-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 1rem;border-bottom:1px solid #f0e7d9}.history-row:last-child{border-bottom:0}.state-ok{color:var(--green)}.state-ko{color:var(--danger)}.state-pending{color:#8c8274}.day-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.45rem}.day-cell{background:#fff;border:1px solid var(--line);border-radius:13px;min-height:60px;display:grid;place-items:center;padding:.35rem;cursor:pointer}.day-cell span{font-size:.72rem;color:var(--muted)}.inline-select{max-width:300px;margin-bottom:1rem}.reward-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem}.reward-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:1.1rem;text-align:center}.reward-card span{font-size:2rem}.reward-card strong{display:block;font-size:1.7rem;margin:.35rem 0}.reward-card p{margin:0;color:var(--muted);font-size:.86rem}.reward-card.wide{grid-column:span 3}.parent-grid{grid-template-columns:1.2fr .8fr}.settings-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:1rem}.settings-card.wide{grid-row:span 3}.settings-card p{font-size:.88rem;line-height:1.45;color:var(--muted)}.profile-list{display:grid;gap:.6rem}.profile-row{display:flex;justify-content:space-between;gap:.8rem;align-items:center;padding:.65rem;border:1px solid #eee4d5;border-radius:16px}.profile-main{display:flex;align-items:center;gap:.65rem;min-width:0}.profile-main div{display:grid}.profile-main span{font-size:.76rem;color:var(--muted)}.row-actions{display:flex;gap:.4rem}.upload-label{margin:.8rem 0}.upload-label input{margin-top:.35rem}.button-link{margin-bottom:.2rem}
dialog{border:0;padding:0;border-radius:24px;width:min(calc(100% - 1.2rem),590px);max-height:90%;box-shadow:var(--shadow);background:transparent}dialog::backdrop{background:rgba(27,22,14,.55);backdrop-filter:blur(3px)}.dialog-card{background:#fff;padding:1rem;display:grid;gap:.9rem;border-radius:24px}.dialog-card.large{max-height:88vh;overflow:auto}.dialog-head{display:flex;justify-content:space-between;align-items:flex-start}.dialog-head h2{font-size:1.35rem;margin:0}.dialog-actions{display:flex;justify-content:flex-end;gap:.6rem}.rules-settings-list{display:grid;gap:.8rem}.rule-setting{border:1px solid var(--line);border-radius:17px;padding:.8rem;display:grid;gap:.7rem;background:#fffdf9}.setting-head{display:flex;align-items:center;gap:.6rem}.setting-head strong{flex:1}.switch-label{display:flex;align-items:center;gap:.35rem}.switch-label input{width:20px;min-height:auto}.switch-label span{font-size:.8rem}.toast{position:fixed;left:50%;bottom:6rem;transform:translate(-50%,20px);background:#26231f;color:#fff;border-radius:999px;padding:.7rem 1rem;opacity:0;pointer-events:none;transition:.2s;z-index:60;max-width:calc(100% - 2rem);text-align:center;font-size:.88rem}.toast.show{opacity:1;transform:translate(-50%,0)}.toast.error{background:#9d2929}
@media(max-width:760px){.app-header{padding-right:1rem}.brand span{display:none}.app-main{padding:.9rem .7rem 7rem}.score-card{grid-template-columns:auto 1fr}.score-card .pill{grid-column:1/-1;width:max-content}.rule-card{grid-template-columns:auto 1fr}.rule-actions{grid-column:1/-1;justify-content:flex-end;padding-left:3.35rem}.filters{grid-template-columns:1fr 1fr}.parent-grid{grid-template-columns:1fr}.settings-card.wide{grid-row:auto}.reward-grid{grid-template-columns:1fr 1fr}.reward-card.wide{grid-column:span 2}.row-actions{flex-direction:column}.two-col{grid-template-columns:1fr}.day-grid{grid-template-columns:repeat(5,1fr)}}
@media(max-width:410px){.brand strong{font-size:.9rem}.app-header .ghost{font-size:0;padding:.5rem;width:42px}.app-header .ghost::after{content:'↪';font-size:1rem}.rule-title-line{align-items:flex-start;flex-direction:column;gap:.25rem}.rule-actions{padding-left:0}.filters{grid-template-columns:1fr}.reward-grid{grid-template-columns:1fr}.reward-card.wide{grid-column:span 1}.day-grid{grid-template-columns:repeat(4,1fr)}.profile-row{align-items:flex-start;flex-direction:column}.row-actions{width:100%;flex-direction:row}.row-actions>*{flex:1}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
