:root{
  --gold:#b88a2d;--gold-dark:#8d671d;--gold-soft:#ead7ad;--ivory:#fbf8f1;--cream:#f3ede1;--white:#fff;--ink:#3d382f;--muted:#857d70;--line:#e8dfcf;--rose:#ead9d2;--sage:#dfe6dc;--shadow:0 12px 36px rgba(83,65,34,.08);--radius:22px;
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--ivory)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}.app-shell{display:grid;grid-template-columns:270px 1fr;min-height:100vh}.sidebar{position:fixed;left:0;top:0;bottom:0;width:270px;background:#fffdfa;border-right:1px solid var(--line);padding:24px 18px;display:flex;flex-direction:column;z-index:20}.brand{padding:4px 8px 22px}.brand-logo{display:block;width:190px;height:190px;object-fit:contain;margin:auto}.sidebar nav{display:flex;flex-direction:column;gap:7px}.nav-item{border:0;background:transparent;border-radius:14px;padding:13px 15px;display:flex;align-items:center;gap:12px;text-align:left;color:#625a4d;font-weight:600}.nav-item:hover,.nav-item.active{background:linear-gradient(90deg,#f8f0dd,#fffaf0);color:var(--gold-dark)}.ico{width:22px;text-align:center;color:var(--gold)}.sidebar-quote{margin-top:auto;border-top:1px solid var(--line);padding:18px 10px 2px;color:var(--muted);font-family:Georgia,serif;font-style:italic;font-size:14px}.main{grid-column:2;padding:0 34px 50px;max-width:1600px;width:100%;margin:0 auto}.topbar{position:sticky;top:0;z-index:10;background:rgba(251,248,241,.92);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:space-between;padding:28px 0 18px;border-bottom:1px solid rgba(232,223,207,.7);gap:18px}.topbar h1{margin:0 0 4px;font-family:Georgia,serif;font-weight:500;font-size:31px}.topbar p{margin:0;color:var(--muted)}.top-actions{display:flex;gap:10px;align-items:center}.primary,.secondary{border-radius:12px;padding:11px 15px;border:1px solid transparent;font-weight:700}.primary{background:linear-gradient(135deg,#c39a47,#a87c24);color:white;box-shadow:0 8px 22px rgba(184,138,45,.2)}.secondary{background:white;border-color:var(--line);color:#5c5448}.import-label{display:inline-flex;align-items:center}.mobile-menu{display:none;border:0;background:white;border-radius:10px;padding:8px 10px}.view{display:none;padding-top:26px}.active-view{display:block}.hero{min-height:250px;border-radius:30px;background:linear-gradient(135deg,#fffaf1,#f5ead2);border:1px solid #ecdfc5;display:flex;align-items:center;justify-content:space-between;padding:35px 44px;overflow:hidden;position:relative;box-shadow:var(--shadow)}.hero-copy{max-width:700px;z-index:1}.eyebrow{letter-spacing:.22em;font-size:12px;color:var(--gold-dark);font-weight:800}.hero h2{font-family:Georgia,serif;font-weight:500;font-size:42px;margin:14px 0 10px}.hero p{color:var(--muted);font-size:17px;line-height:1.6}.hero-logo{height:230px;width:230px;object-fit:contain;opacity:.72}.cards{display:grid;gap:16px;margin:20px 0}.cards.four{grid-template-columns:repeat(4,1fr)}.cards.three{grid-template-columns:repeat(3,1fr)}.stat{background:white;border:1px solid var(--line);border-radius:20px;padding:21px;box-shadow:0 8px 24px rgba(83,65,34,.045)}.stat span,.stat small{display:block;color:var(--muted)}.stat strong{display:block;font-family:Georgia,serif;font-size:29px;font-weight:500;margin:8px 0}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}.panel{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:0 8px 28px rgba(83,65,34,.045)}.soft-panel{background:linear-gradient(135deg,#fff,#fbf5e9)}.panel-head,.section-actions{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.panel-head h3,.section-actions h2{margin:0 0 5px;font-family:Georgia,serif;font-weight:500}.section-actions{align-items:center;margin-bottom:18px}.section-actions h2{font-size:30px}.section-actions p{margin:0;color:var(--muted)}.link{border:0;background:transparent;color:var(--gold-dark);font-weight:700}.muted{color:var(--muted);margin:0}.timeline,.simple-list,.event-list,.expense-list{display:flex;flex-direction:column;gap:10px;margin-top:16px}.timeline-item,.simple-item,.event-card,.expense-card{border:1px solid var(--line);border-radius:15px;padding:14px 15px;background:#fffdfa}.timeline-item{display:grid;grid-template-columns:70px 1fr auto;gap:14px;align-items:center}.time{font-weight:800;color:var(--gold-dark)}.owner-pill,.category-pill{display:inline-block;padding:4px 9px;border-radius:999px;background:#f3ead5;color:#755a25;font-size:12px;font-weight:700;margin-right:5px}.owner-Leonor{background:#f2dfdc;color:#7c514a}.owner-Pedro{background:#dfe7e1;color:#536a58}.owner-Família{background:#e8e1f0;color:#625574}.empty{color:var(--muted);text-align:center;padding:24px 10px}.menu-preview strong{display:inline-block;min-width:85px;color:var(--gold-dark)}.filters-row{display:flex;gap:16px;align-items:end;flex-wrap:wrap;margin-bottom:18px}.filters-row label{display:grid;gap:6px;color:var(--muted);font-size:13px;font-weight:700}.filters-row input,.filters-row select,.modal input,.modal select,.modal textarea{border:1px solid var(--line);background:#fffefa;border-radius:11px;padding:10px 12px;min-height:42px}.event-card,.expense-card{display:grid;grid-template-columns:140px 1fr auto;gap:16px;align-items:center}.event-card h4,.expense-card h4{margin:0 0 5px}.event-card p,.expense-card p{margin:0;color:var(--muted);font-size:14px}.row-actions{display:flex;gap:6px}.icon-btn{border:1px solid var(--line);background:white;border-radius:10px;padding:7px 9px}.profile-tabs{display:flex;gap:9px;margin-bottom:18px}.profile-tab{border:1px solid var(--line);background:white;border-radius:999px;padding:10px 18px;font-weight:700}.profile-tab.active{background:#f1e5cb;border-color:#d9bd7d;color:var(--gold-dark)}.family-layout{display:grid;grid-template-columns:1.4fr .8fr;gap:18px}.timetable{overflow:auto}.timetable table{border-collapse:collapse;width:100%;min-width:680px}.timetable th,.timetable td{border:1px solid var(--line);padding:10px;vertical-align:top;text-align:left}.timetable th{background:#fbf6ea;color:#6e614f}.class-chip{background:#f7ecda;border-radius:10px;padding:7px 8px;margin:4px 0;font-size:13px}.family-actions{display:flex;gap:9px;flex-wrap:wrap}.week-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.menu-week{display:grid;grid-template-columns:repeat(7,minmax(150px,1fr));gap:12px;overflow-x:auto;padding-bottom:6px}.day-card{background:white;border:1px solid var(--line);border-radius:18px;padding:14px;min-height:225px}.day-card.today{border-color:#caa658;box-shadow:0 0 0 2px #f6ebd4 inset}.day-card h4{margin:0 0 4px}.day-card small{color:var(--muted)}.meal-slot{margin-top:12px}.meal-slot label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--gold-dark);font-weight:800;margin-bottom:4px}.meal-slot textarea{width:100%;resize:vertical;min-height:56px;border:1px solid var(--line);border-radius:10px;background:#fffefa;padding:8px}.menu-bottom{margin-top:18px}.shopping-item{display:flex;align-items:center;gap:9px;padding:9px 0;border-bottom:1px solid #f0e9de}.shopping-item.done span{text-decoration:line-through;color:#aaa}.notes-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.note-card{background:white;border:1px solid var(--line);border-radius:18px;padding:17px;position:relative}.note-card.important{border-color:#d6b76a;background:#fffaf0}.note-card.done{opacity:.6}.note-card h4{margin:0 0 9px}.note-card p{white-space:pre-wrap;color:#665f55;line-height:1.45}.note-meta{display:flex;justify-content:space-between;align-items:center;margin-top:14px;color:var(--muted);font-size:12px}.modal-backdrop{position:fixed;inset:0;background:rgba(42,36,26,.45);display:none;align-items:center;justify-content:center;padding:20px;z-index:100}.modal-backdrop.open{display:flex}.modal{width:min(650px,100%);max-height:90vh;overflow:auto;background:white;border-radius:24px;padding:26px;position:relative;box-shadow:0 30px 100px rgba(0,0,0,.2)}.modal-close{position:absolute;right:16px;top:14px;border:0;background:transparent;font-size:28px;color:#887f72}.modal h2{font-family:Georgia,serif;font-weight:500;margin-top:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.form-grid label{display:grid;gap:5px;font-size:13px;font-weight:700;color:#6e665a}.form-grid .full{grid-column:1/-1}.modal textarea{min-height:90px;resize:vertical}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}.toast{position:fixed;right:24px;bottom:24px;background:#3e382e;color:white;padding:12px 16px;border-radius:12px;opacity:0;pointer-events:none;transform:translateY(8px);transition:.25s;z-index:200}.toast.show{opacity:1;transform:none}@media(max-width:1100px){.cards.four{grid-template-columns:repeat(2,1fr)}.notes-grid{grid-template-columns:repeat(2,1fr)}.family-layout{grid-template-columns:1fr}.hero-logo{display:none}.menu-week{grid-template-columns:repeat(7,210px)}}@media(max-width:780px){.app-shell{display:block}.sidebar{transform:translateX(-105%);transition:.25s;box-shadow:var(--shadow)}.sidebar.open{transform:none}.main{padding:0 16px 35px}.mobile-menu{display:block}.topbar{align-items:flex-start}.topbar>div:nth-child(2){flex:1}.top-actions .secondary{display:none}.top-actions{margin-left:auto}.top-actions .primary{padding:10px 12px}.hero{padding:26px 22px;min-height:auto}.hero h2{font-size:32px}.cards.four,.cards.three,.grid-2,.notes-grid{grid-template-columns:1fr}.event-card,.expense-card{grid-template-columns:1fr}.timeline-item{grid-template-columns:58px 1fr}.timeline-item .row-actions{grid-column:2}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.brand-logo{width:170px;height:170px}}

/* v2 — identidade visual Sofia Jorge */
:root{
  --gold:#b98b2e;--gold-dark:#8c661e;--gold-pale:#efe2c6;--ivory:#fbf7ef;--cream:#f5eee2;
  --rose:#eadbd5;--sage:#dde6de;--lav:#e8e1ec;--ink:#332f29;--muted:#857c70;--line:#e9dfd0;
}
body{background:radial-gradient(circle at top right,#fffdf8 0,#fbf7ef 42%,#f7f1e7 100%);}
.main{padding-bottom:72px}
.brand-logo{filter:saturate(.9) contrast(1.02)}
.mobile-brand,.bottom-nav{display:none}
.hero{background:linear-gradient(135deg,#fffdf8 0%,#f8efdf 58%,#f1e2c5 100%);border-color:#e9d9b7;min-height:280px}
.hero:after{display:none}
.hero h2{letter-spacing:-.02em}
.hero-mantra{margin-top:18px;padding-top:14px;border-top:1px solid rgba(185,139,46,.22);font-family:Georgia,serif;font-style:italic;color:#6f6047;font-size:15px;max-width:520px}
.stat{transition:.2s transform,.2s box-shadow}.stat:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(83,65,34,.07)}
.panel,.stat,.day-card,.note-card{backdrop-filter:blur(8px)}
.profile-tab.active{box-shadow:0 5px 18px rgba(185,139,46,.12)}
.primary{background:linear-gradient(135deg,#c59b44,#a97820)}

@media(max-width:780px){
  body{background:#fbf7ef}
  .app-shell{padding-bottom:82px}
  .sidebar{display:none}
  .main{padding:0 14px 28px}
  .mobile-brand{display:flex;height:74px;align-items:center;justify-content:center;background:rgba(255,253,249,.96);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30}
  .mobile-brand img{width:118px;height:66px;object-fit:contain}
  .topbar{position:static;padding:14px 2px 12px;background:transparent;border-bottom:0;backdrop-filter:none}
  .mobile-menu{display:none}
  .topbar h1{font-size:26px}
  .topbar p{font-size:13px}
  .top-actions{position:fixed;right:18px;bottom:96px;z-index:35}
  .top-actions .primary{width:52px;height:52px;border-radius:50%;font-size:0;padding:0;box-shadow:0 8px 26px rgba(141,103,29,.28)}
  .top-actions .primary:before{content:"+";font-size:28px;line-height:1}
  .top-actions .secondary,.import-label{display:none!important}
  .view{padding-top:8px}
  .hero{min-height:auto;padding:22px 20px 20px;border-radius:23px}
  .hero h2{font-size:30px;margin:10px 0 7px}
  .hero p{font-size:14px;line-height:1.5;margin-bottom:0}
  .hero-logo{display:none}
  .hero-mantra{font-size:13px;margin-top:14px}
  .eyebrow{font-size:10px;letter-spacing:.18em}
  .cards{gap:10px;margin:12px 0}.cards.four{grid-template-columns:1fr 1fr}.cards.three{grid-template-columns:1fr}
  .stat{padding:15px;border-radius:16px}.stat strong{font-size:23px;margin:5px 0}.stat span,.stat small{font-size:11px}
  .grid-2{gap:12px;margin-top:12px}.panel{padding:16px;border-radius:18px}.panel-head h3{font-size:18px}
  .timeline-item{padding:12px;gap:9px;border-radius:13px}.simple-item{padding:12px}
  .section-actions{align-items:flex-start}.section-actions h2{font-size:25px}.section-actions p{font-size:13px}.section-actions .primary{padding:9px 11px;font-size:13px}
  .filters-row{padding:14px;gap:10px}.filters-row label{flex:1 1 130px}.filters-row input,.filters-row select{width:100%}
  .profile-tabs{overflow-x:auto;padding-bottom:2px}.profile-tab{white-space:nowrap}
  .menu-week{grid-template-columns:repeat(7,188px)}
  .notes-grid{grid-template-columns:1fr}
  .bottom-nav{display:grid;grid-template-columns:repeat(6,1fr);position:fixed;left:0;right:0;bottom:0;height:76px;background:rgba(255,253,249,.97);border-top:1px solid var(--line);z-index:40;padding:6px 6px max(7px,env(safe-area-inset-bottom));box-shadow:0 -10px 28px rgba(72,58,34,.06)}
  .bottom-nav .nav-item{display:flex;flex-direction:column;gap:2px;justify-content:center;align-items:center;padding:4px 1px;border-radius:12px;font-size:9px;font-weight:700;color:#766d60;min-width:0}
  .bottom-nav .nav-item.active{background:#f6ecd8;color:var(--gold-dark)}
  .bottom-ico{font-size:18px;line-height:1;color:var(--gold)}
  .toast{right:14px;left:14px;bottom:92px;text-align:center}
  .modal{border-radius:22px;padding:22px 18px}
}

/* v3 — correções de robustez/responsividade */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{overflow-x:hidden}
img{max-width:100%;height:auto}
button,input,select,textarea{max-width:100%}
.main,.panel,.hero,.stat,.day-card,.note-card{min-width:0}
@media(max-width:520px){
  .main{padding-left:10px;padding-right:10px}
  .mobile-brand{height:64px}
  .mobile-brand img{width:102px;height:56px}
  .topbar{padding-top:10px}
  .topbar h1{font-size:23px}
  .topbar p{font-size:12px}
  .hero{padding:18px 16px;border-radius:18px}
  .hero h2{font-size:26px}
  .hero p{font-size:13px}
  .cards.four{grid-template-columns:1fr 1fr}
  .stat{padding:13px 12px}
  .stat strong{font-size:21px}
  .panel{padding:14px}
  .section-actions{gap:8px}
  .section-actions h2{font-size:23px}
  .section-actions .primary{font-size:12px;padding:8px 10px}
  .profile-tab{padding:9px 14px}
  .bottom-nav{height:72px;padding-left:3px;padding-right:3px}
  .bottom-nav .nav-item{font-size:8px}
  .bottom-ico{font-size:17px}
}
@media(max-width:360px){
  .cards.four{grid-template-columns:1fr}
  .bottom-nav .nav-item{font-size:7px}
  .section-actions{flex-direction:column}
}


/* v4 — faturas, gráficos e despesas da Leonor */
.home-charts,.home-lists{align-items:start}.bar-chart{display:grid;gap:13px}.bar-row{display:grid;gap:6px}.bar-label{display:flex;justify-content:space-between;gap:12px;font-size:13px}.bar-label span{color:var(--muted)}.bar-label strong{font-size:12px}.bar-track{height:9px;background:#f2ece2;border-radius:999px;overflow:hidden}.bar-track span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#d9bd7d,#b98b2e)}.month-bars{height:210px;display:grid;grid-template-columns:repeat(6,1fr);gap:10px;align-items:end;padding-top:18px}.month-col{display:grid;grid-template-rows:30px 140px 22px;gap:5px;align-items:end;text-align:center;min-width:0}.month-value{font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.month-stick{height:140px;display:flex;align-items:flex-end;justify-content:center;background:linear-gradient(to top,#faf5eb,transparent);border-radius:10px;padding:0 5px}.month-stick span{width:min(34px,100%);display:block;background:linear-gradient(180deg,#d6ba79,#b18128);border-radius:9px 9px 3px 3px;min-height:2px}.month-col small{text-transform:capitalize;color:var(--muted)}.document-list{display:grid;gap:10px}.document-card{display:grid;grid-template-columns:44px 1fr auto;gap:11px;align-items:center;padding:11px;border:1px solid var(--line);border-radius:14px;background:#fffefa}.document-icon{width:44px;height:44px;border-radius:12px;background:#f4ead5;color:var(--gold-dark);display:grid;place-items:center;font-size:10px;font-weight:900;letter-spacing:.04em}.document-card strong{display:block;font-size:13px;overflow-wrap:anywhere}.document-card small{display:block;margin-top:3px;color:var(--muted);font-size:11px}.compact{padding:7px 9px!important;font-size:11px}.doc-link{border:0;background:transparent;padding:5px 0 0;color:var(--gold-dark);font-size:12px;cursor:pointer;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-field small{font-weight:400;color:var(--muted)}.status-open{color:#9b5c35;font-weight:700}.status-paid{color:#687a65}.leonor-stack{display:grid;gap:18px}.leonor-expenses-panel{grid-column:1/-1}.compact-stats{margin:12px 0}.compact-stats .stat{padding:14px}.compact-stats .stat strong{font-size:22px}.mini-filter{display:flex;justify-content:flex-end;margin:8px 0 14px}.mini-filter label{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:8px}.mini-filter input{border:1px solid var(--line);border-radius:9px;padding:7px 9px;background:white}.compact-chart{margin:8px 0 18px}.compact-empty{padding:12px}.leonor-expense-card{grid-template-columns:120px 1fr auto}
@media(max-width:780px){.home-charts,.home-lists{grid-template-columns:1fr}.month-bars{height:180px;gap:5px}.month-col{grid-template-rows:26px 110px 22px}.month-stick{height:110px}.document-card{grid-template-columns:40px 1fr auto}.leonor-expense-card{grid-template-columns:1fr}.compact-stats.cards.three{grid-template-columns:repeat(3,1fr)}.compact-stats .stat{padding:11px 8px}.compact-stats .stat strong{font-size:18px}.compact-stats .stat span,.compact-stats .stat small{font-size:9px}}
@media(max-width:420px){.month-value{font-size:8px}.document-card{grid-template-columns:36px 1fr}.document-card .secondary{grid-column:2;justify-self:start}.document-icon{width:36px;height:36px}.compact-stats.cards.three{grid-template-columns:1fr 1fr 1fr}}

.recipe-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:16px}.recipe-card{border:1px solid var(--line);border-radius:18px;padding:17px;background:#fffdfa}.recipe-card h4{margin:8px 0}.recipe-card p{color:var(--muted);font-size:13px}.recipe-card a{color:var(--gold-dark);font-weight:700;text-decoration:none}.sport-meta{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}@media(max-width:900px){.recipe-grid{grid-template-columns:1fr}}

/* v5.2 — ecrã de acesso */
body.auth-locked{overflow:hidden}
body.auth-locked .app-shell,body.auth-locked .modal-backdrop,body.auth-locked .toast{display:none!important}
.login-screen{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(circle at top right,#fffdf8 0,#fbf7ef 42%,#f3eadc 100%)}
body.auth-unlocked .login-screen{display:none}
.login-card{width:min(440px,100%);background:rgba(255,253,250,.96);border:1px solid #eadfcf;border-radius:30px;padding:30px 34px 32px;box-shadow:0 28px 80px rgba(83,65,34,.13);text-align:center}
.login-logo{width:155px;height:155px;object-fit:contain;margin:-8px auto 2px;display:block}
.login-eyebrow{display:block;letter-spacing:.18em;font-size:11px;font-weight:800;color:var(--gold-dark);margin-bottom:10px}
.login-card h1{font-family:Georgia,serif;font-size:32px;font-weight:500;margin:0 0 8px}
.login-card>p{color:var(--muted);margin:0 0 24px}
.login-card form{text-align:left}
.login-card label{display:block;font-size:13px;font-weight:700;color:#6e665a;margin-bottom:7px}
.password-wrap{display:flex;align-items:center;border:1px solid var(--line);background:#fffefa;border-radius:13px;overflow:hidden;transition:.2s}
.password-wrap:focus-within{border-color:#caa658;box-shadow:0 0 0 3px rgba(202,166,88,.12)}
.password-wrap input{flex:1;min-width:0;border:0;outline:0;background:transparent;padding:13px 14px;font-size:16px}
.show-password{border:0;background:transparent;color:var(--gold-dark);font-weight:700;padding:13px 14px}
.login-error{min-height:22px;color:#9b3f3f;font-size:13px;padding-top:7px}
.login-submit{width:100%;margin-top:5px;padding:13px 16px}
.login-card small{display:block;color:#91887b;line-height:1.45;margin-top:18px}
#lock-app{white-space:nowrap}
@media(max-width:780px){.login-card{padding:24px 22px 26px;border-radius:24px}.login-logo{width:135px;height:135px}.login-card h1{font-size:28px}}

/* v5.3 — Leonor: Horário + Notas escolares */
.leonor-subtabs{display:flex;gap:9px;flex-wrap:wrap;margin:2px 0 18px}.leonor-subtab{border:1px solid var(--line);background:white;border-radius:999px;padding:10px 18px;font-weight:800;color:#5f5649;cursor:pointer}.leonor-subtab.active{background:#f1e5cb;border-color:#d9bd7d;color:var(--gold-dark);box-shadow:0 5px 18px rgba(185,139,46,.12)}.leonor-section{min-width:0}.subject-type{display:inline-block;margin-left:7px;padding:2px 6px;border-radius:999px;font-size:9px;font-weight:900;letter-spacing:.03em;text-transform:uppercase;vertical-align:1px}.subject-type.curricular{background:#e7efe5;color:#5b7358}.subject-type.extra{background:#efe5f3;color:#71577b}.subject-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0}.subject-summary{border:1px solid var(--line);background:#fffdfa;border-radius:16px;padding:15px}.subject-summary h4{font-family:Georgia,serif;font-size:18px;font-weight:500;margin:0 0 12px}.subject-result{display:grid;gap:1px;margin-bottom:9px}.subject-result strong{font-family:Georgia,serif;font-size:24px;font-weight:500;color:#4d4439}.subject-result small,.subject-summary>small{color:var(--muted)}.grades-list{display:grid;gap:10px;margin-top:18px}.grade-card{display:grid;grid-template-columns:130px 1fr auto;gap:16px;align-items:center;border:1px solid var(--line);border-radius:15px;padding:14px 15px;background:#fffdfa}.grade-card h4{margin:6px 0 5px}.grade-card p{margin:0;color:var(--muted);font-size:14px}.grade-score{text-align:right;font-family:Georgia,serif;font-size:26px;color:var(--gold-dark);font-weight:600}.grade-score .row-actions{justify-content:flex-end;margin-top:8px;font-family:initial;font-size:initial}.primary:disabled{opacity:.5;cursor:not-allowed}.class-chip .link{padding:4px 0;cursor:pointer}
@media(max-width:1000px){.subject-summary-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:780px){.leonor-subtabs{overflow-x:auto;flex-wrap:nowrap;padding-bottom:2px}.leonor-subtab{white-space:nowrap}.subject-summary-grid{grid-template-columns:1fr}.grade-card{grid-template-columns:1fr}.grade-score{text-align:left}.grade-score .row-actions{justify-content:flex-start}}
/* Google Calendar — v5.4 base */
.agenda-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.google-calendar-status{display:flex;align-items:center;gap:8px;margin:-4px 0 14px;padding:10px 14px;border:1px solid var(--line,#e7dcc7);border-radius:14px;background:rgba(255,255,255,.62);font-size:.9rem;color:var(--muted,#82786b)}.google-calendar-status .status-dot{width:9px;height:9px;border-radius:50%;background:#aaa;box-shadow:0 0 0 3px rgba(0,0,0,.04)}.google-calendar-status.connected .status-dot{background:#4e9b67}.google-calendar-status.connected{color:#426b50}@media(max-width:760px){.agenda-actions{justify-content:flex-start}.agenda-actions button{flex:1 1 auto}.google-calendar-status{margin-top:0}}

/* v5.5 — calendário pessoal, múltiplos calendários Google e segurança */
.calendar-panel{margin-bottom:18px}.calendar-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.calendar-head h3{margin:0;text-align:center;text-transform:capitalize}.calendar-head>div{text-align:center}.calendar-today{border:0;background:none;color:var(--gold-dark);font-weight:800;cursor:pointer;padding:3px 8px}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.calendar-weekdays{margin-bottom:6px;color:var(--muted);font-size:12px;text-align:center;font-weight:800}.calendar-day{min-height:86px;border:1px solid var(--line);border-radius:12px;background:#fff;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;padding:8px;cursor:pointer;color:#5d5549}.calendar-day:hover{background:#fffaf0}.calendar-day.empty{border:0;background:transparent;cursor:default}.calendar-day.today{box-shadow:inset 0 0 0 2px #c39a47}.calendar-day.selected{background:#f8efdc;border-color:#c39a47}.calendar-number{font-weight:800;font-size:13px}.calendar-marks{display:flex;gap:4px;flex-wrap:wrap;align-items:center}.calendar-mark{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#f0e6d1;color:#765b27;font-size:10px;font-weight:900}.calendar-mark.google{background:#e6edf6;color:#52647c}.calendar-mark.work{background:#ece7f2;color:#655973}.calendar-mark.made{background:#f7e4e8;color:#8a5a65}.calendar-footer{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:10px}.calendar-selected-label{color:var(--muted);font-size:13px}.secondary.mini{padding:7px 11px;min-width:40px}.agenda-filters{margin-top:0}.source-pill{display:inline-block;padding:4px 9px;border-radius:999px;background:#e8eef7;color:#51657e;font-size:12px;font-weight:800;margin-right:5px}.source-pill.made{background:#f6e2e6;color:#875a64}.source-pill.work{background:#ece6f1;color:#665875}.event-card.read-only{background:#fcfbf8}.event-card .readonly-note{font-size:11px;color:var(--muted);margin-top:5px}.calendar-choice-list{display:grid;gap:10px;margin:16px 0}.calendar-choice{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start;padding:12px 13px;border:1px solid var(--line);border-radius:14px;background:#fffdfa}.calendar-choice input{margin-top:4px}.calendar-choice strong{display:block}.calendar-choice small{display:block;color:var(--muted);margin-top:3px}.settings-form{display:grid;gap:13px;margin-top:18px}.settings-form label{display:grid;gap:6px;color:#6e665a;font-size:13px;font-weight:700}.settings-form input{border:1px solid var(--line);background:#fffefa;border-radius:11px;padding:10px 12px;min-height:42px}.settings-form .primary{justify-self:start}.settings-form small{line-height:1.45}.settings-summary{color:var(--muted);line-height:1.55}.settings-grid{align-items:start}
@media(max-width:700px){.calendar-day{min-height:58px;padding:5px;border-radius:9px}.calendar-weekdays,.calendar-grid{gap:3px}.calendar-number{font-size:12px}.calendar-mark{min-width:14px;height:14px;padding:0 3px;font-size:8px}.calendar-footer{align-items:flex-start;flex-direction:column}.personal-calendar-panel{padding:13px}.agenda-filters{overflow-x:auto;flex-wrap:nowrap}.agenda-filters label{min-width:140px}}

/* v5.6 — ícones de eventos */
.event-leading-icon{display:inline-flex;align-items:center;justify-content:center;font-size:18px;margin-right:7px;vertical-align:middle}.calendar-event-icons{display:flex;gap:2px;flex-wrap:wrap;align-items:center;min-height:22px;margin:2px 0 3px}.calendar-event-icon{font-size:16px;line-height:1;filter:saturate(.9)}.calendar-icon-more{font-size:9px;font-weight:900;color:var(--muted);background:#f3eee5;border-radius:999px;padding:2px 4px}@media(max-width:700px){.calendar-event-icon{font-size:13px}.calendar-event-icons{gap:1px;min-height:16px}.calendar-day .calendar-event-icon:nth-child(n+4){display:none}}

/* v5.8 — calendário legível + categorias editáveis */
.calendar-event-lines{width:100%;display:grid;gap:3px;margin-top:5px;overflow:hidden}.calendar-event-line{display:flex;align-items:center;gap:4px;max-width:100%;font-size:10px;line-height:1.2;text-align:left;color:#5e5548}.calendar-event-line b{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-event-more{font-size:9px;color:var(--muted);font-weight:800;text-align:left}.calendar-day{justify-content:flex-start;gap:2px}.calendar-marks,.calendar-event-icons{display:none!important}.category-manager-list{display:grid;gap:8px;margin-top:16px}.category-manager-row{display:grid;grid-template-columns:42px 1fr auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:13px;padding:10px 12px;background:#fffdfa}.category-manager-icon{font-size:23px;text-align:center}.category-manager-row strong{font-size:14px}
@media(max-width:700px){.calendar-event-line{font-size:8px;gap:2px}.calendar-event-line b{max-width:62px}.calendar-event-lines{gap:2px;margin-top:2px}.calendar-event-line:nth-child(n+3){display:none}.calendar-event-more{font-size:8px}}


/* v5.9 — consolidação da Minha Agenda */
.agenda-main-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:12px;background:linear-gradient(135deg,#fffdfa,#fbf3e3)}
.agenda-toolbar-copy{display:grid;gap:4px;min-width:230px}.agenda-toolbar-copy strong{font-family:Georgia,serif;font-size:20px;font-weight:500}.agenda-toolbar-copy span{color:var(--muted);font-size:13px;line-height:1.4}
#agenda .personal-calendar-panel{display:block!important;visibility:visible!important;opacity:1!important}
#agenda #google-calendar-connect{display:inline-flex!important}
#agenda .google-calendar-status{display:flex!important}
.brand-logo,.hero-logo,.login-logo{mix-blend-mode:multiply}
.build-badge{display:inline-flex;margin:0 0 14px;padding:6px 10px;border-radius:999px;background:#f3ead5;color:#755a25;font-size:12px;font-weight:800}
@media(max-width:900px){.agenda-main-toolbar{align-items:flex-start;flex-direction:column}.agenda-actions{width:100%;justify-content:flex-start}}

/* v6.0 — calendário familiar + sincronização */
.family-calendar-panel{overflow:hidden}
.family-calendar-toolbar{display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:14px 0}
.family-calendar-nav,.family-calendar-filters,.sync-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.family-calendar-nav strong{text-transform:capitalize;min-width:170px;text-align:center}
.filter-chip{border:1px solid rgba(140,117,81,.25);background:#fffaf2;border-radius:999px;padding:8px 12px;cursor:pointer;color:inherit}
.filter-chip.active{background:#b79a68;color:white;border-color:#b79a68}
.timetable-toggle{display:flex!important;flex-direction:row!important;align-items:center;gap:8px;font-size:13px}.timetable-toggle input{width:auto!important}
.family-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid rgba(140,117,81,.16);border-left:1px solid rgba(140,117,81,.16)}
.family-cal-day{min-height:122px;padding:7px;border-right:1px solid rgba(140,117,81,.16);border-bottom:1px solid rgba(140,117,81,.16);background:rgba(255,255,255,.42);overflow:hidden}
.family-cal-empty{background:rgba(230,222,207,.18)}
.family-cal-number{font-weight:700;font-size:13px;margin-bottom:5px}
.family-cal-events{display:flex;flex-direction:column;gap:4px}.family-cal-events small{font-size:10px;color:#8d816e}
.family-cal-event{border:0;border-radius:7px;padding:4px 5px;text-align:left;font:inherit;font-size:10px;line-height:1.2;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:#f5efe4;color:#4f463b}
.family-cal-event.owner-Leonor{background:#f4e8ec}.family-cal-event.owner-Pedro{background:#e9eef3}.family-cal-event.owner-Família{background:#eee8dc}.family-cal-event:disabled{cursor:default;opacity:.85}
.family-calendar-legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:12px;font-size:11px;color:#8d816e}
.sync-panel{grid-column:1/-1}.sync-status{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:10px;background:#f5f1e8;margin:12px 0}.sync-dot{width:9px;height:9px;border-radius:50%;background:#aaa;display:inline-block}.sync-status.connected .sync-dot{background:#5d9b6c}.sync-status.syncing .sync-dot{background:#c99a38}
@media(max-width:760px){.family-calendar-grid{min-width:700px}.family-calendar-panel{overflow-x:auto}.family-calendar-toolbar{align-items:flex-start}.family-cal-day{min-height:105px}.family-calendar-panel .calendar-weekdays{min-width:700px}}
.login-card>form{display:grid;gap:10px}.login-card>form>input,.login-card>form label input{width:100%;margin-top:6px}.login-link{border:0;background:transparent;color:#8d6517;font-weight:700;cursor:pointer;padding:8px}.login-link:hover{text-decoration:underline}
/* v6.4 — Faturas e Pagamentos */
.today-bills-panel{margin:18px 0}.bill-alert-list{display:grid;gap:10px}.bill-alert{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:14px 16px;border:1px solid var(--line,#eadfce);border-radius:16px;background:#fffaf3}.bill-alert-icon{font-size:24px}.bill-alert-actions{display:flex;gap:8px;flex-wrap:wrap}.bill-tomorrow{background:#fff8e7}.bill-today,.bill-overdue{background:#fff1ef}.invoice-row{grid-template-columns:auto 1fr auto}.compact{padding:8px 12px!important;font-size:.86rem!important}@media(max-width:720px){.bill-alert{grid-template-columns:auto 1fr}.bill-alert-actions{grid-column:1/-1}.invoice-row{grid-template-columns:auto 1fr}.invoice-row>.row-actions{grid-column:1/-1;justify-content:flex-end}}
/* v6.5 Saúde */
.health-subtabs{margin:0 0 18px}.health-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;margin-top:16px}.health-card{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:start;padding:18px;border:1px solid var(--line,#eadfce);border-radius:18px;background:#fff}.health-card h4{margin:0 0 4px;font-size:18px}.health-card p{margin:4px 0}.health-avatar{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:#f7e9e7;font-size:23px}.health-people{border:1px solid var(--line,#eadfce);border-radius:14px;padding:12px}.health-people legend{padding:0 6px}.health-people label{display:inline-flex;gap:6px;align-items:center;margin-right:16px}.document-row{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:14px 4px;border-bottom:1px solid var(--line,#eadfce)}
@media(max-width:700px){.health-card{grid-template-columns:auto 1fr}.health-card>.row-actions{grid-column:2}.document-row{align-items:flex-start;flex-direction:column}}
