@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700;800&display=swap');

:root{
  --mint:#14A38C; --mint-deep:#0E7A69; --mint-pale:#E9F7F3;
  --navy:#16283D; --navy-soft:#55677C; --navy-faint:#93A1B0;
  --orange:#E8642C; --orange-soft:#FDECE3;
  --green:#1F9E6E; --green-soft:#E4F6EC;
  --amber:#E0A63A; --amber-soft:#FBF1DD;
  --red:#E15C4E; --red-soft:#FBE7E4;
  --gray-bg:#F6F8F9; --border:rgba(22,40,61,0.09);
  --shadow-sm:0 2px 10px rgba(22,40,61,0.06); --shadow-md:0 10px 28px rgba(22,40,61,0.10);
  --radius:16px;
}
*{box-sizing:border-box;margin:0;padding:0;}
body{font-family:'Poppins',sans-serif;color:var(--navy);background:var(--gray-bg);-webkit-font-smoothing:antialiased;}
a{color:inherit;text-decoration:none;}
input,select,textarea,button{font-family:inherit;font-size:14px;}

/* --- Auth --- */
.auth-body{background:linear-gradient(135deg,var(--mint-pale),#fff);min-height:100vh;display:flex;align-items:center;justify-content:center;}
.auth-card{width:100%;max-width:380px;background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:36px;}
.auth-card h1{font-size:24px;font-weight:800;color:var(--navy);margin-bottom:6px;}
.auth-sub{font-size:13.5px;color:var(--navy-soft);margin-bottom:22px;}
.auth-card form{display:flex;flex-direction:column;gap:12px;}
.auth-card input{padding:12px 16px;border-radius:12px;border:1px solid var(--border);background:var(--gray-bg);}
.auth-card input:focus{outline:2px solid var(--mint);}
.auth-erro{background:var(--red-soft);color:var(--red);font-size:13px;padding:10px 14px;border-radius:10px;margin-bottom:14px;}
.auth-info{font-size:13px;color:var(--navy-soft);margin-bottom:4px;}
.auth-footer{font-size:13px;color:var(--navy-soft);margin-top:20px;text-align:center;}
.auth-footer a{color:var(--mint-deep);font-weight:600;}

.btn-primary{background:linear-gradient(135deg,var(--mint),var(--mint-deep));color:#fff;border:none;padding:12px 22px;border-radius:100px;font-weight:600;cursor:pointer;transition:transform .15s;}
.btn-primary:hover{transform:translateY(-1px);}
.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none;}
.btn-ghost{background:#fff;border:1px solid var(--border);color:var(--mint-deep);padding:11px 20px;border-radius:100px;font-weight:600;cursor:pointer;box-shadow:var(--shadow-sm);}
.btn-text{background:none;border:none;color:var(--navy-soft);font-weight:600;cursor:pointer;padding:11px 14px;}

/* --- Backoffice shell --- */
.bo-shell{display:flex;min-height:100vh;}
.bo-sidebar{width:250px;flex-shrink:0;background:var(--navy);color:#fff;display:flex;flex-direction:column;}
.bo-brand{display:flex;align-items:center;gap:10px;padding:22px;font-weight:800;}
.bo-nav{flex:1;padding:0 12px;display:flex;flex-direction:column;gap:2px;}
.bo-nav a{padding:10px 12px;border-radius:10px;font-size:14px;color:rgba(255,255,255,.7);}
.bo-nav a:hover{background:rgba(255,255,255,.08);color:#fff;}
.bo-nav-sep{border-top:1px solid rgba(255,255,255,.12);margin:10px 0;}
.bo-user{padding:22px;border-top:1px solid rgba(255,255,255,.1);font-size:13px;}
.bo-user p{color:rgba(255,255,255,.6);margin-bottom:8px;}
.bo-user button{background:none;border:none;color:#fff;font-weight:600;cursor:pointer;}
.bo-main{flex:1;padding:40px 48px;max-width:900px;}

.bo-header{display:flex;align-items:center;gap:14px;margin-bottom:6px;}
.bo-header h1{font-size:24px;font-weight:800;color:var(--navy);}
.bo-lead{color:var(--navy-soft);font-size:14px;margin-bottom:24px;}

.bo-filtros{display:flex;gap:10px;margin-bottom:18px;}
.bo-filtros select,.bo-filtros input{padding:10px 14px;border-radius:100px;border:1px solid var(--border);background:#fff;}
.bo-filtros input{flex:1;}

.bo-list{background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);}
.bo-list-item{display:flex;align-items:center;justify-content:space-between;padding:16px 22px;border-bottom:1px solid rgba(22,40,61,.05);}
.bo-list-item:last-child{border-bottom:none;}
.bo-list-item:hover{background:var(--gray-bg);}
.bo-list-titulo{font-weight:600;font-size:14px;}
.bo-list-sub{font-size:12px;color:var(--navy-faint);}
.bo-list-meta{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--navy-faint);}
.bo-vazio{padding:24px;color:var(--navy-soft);font-size:14px;}

.bo-badge{font-size:10.5px;font-weight:700;text-transform:uppercase;padding:4px 10px;border-radius:100px;}
.bo-badge-rascunho{background:var(--gray-bg);color:var(--navy-faint);}
.bo-badge-em_revisao{background:var(--orange-soft);color:var(--orange);}
.bo-badge-aprovado{background:var(--green-soft);color:var(--green);}
.bo-badge-arquivado{background:var(--gray-bg);color:var(--navy-faint);}

.bo-form{display:flex;flex-direction:column;gap:12px;}
.bo-form input,.bo-form select,.bo-form textarea{padding:12px 16px;border-radius:12px;border:1px solid var(--border);background:var(--gray-bg);}
.bo-form textarea{resize:vertical;}
.bo-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:24px;margin-top:16px;}
.bo-card-titulo{font-size:11px;font-weight:700;text-transform:uppercase;color:var(--navy-faint);margin-bottom:12px;}
.bo-acoes{display:flex;gap:10px;flex-wrap:wrap;}
.bo-versao-linha{display:flex;justify-content:space-between;font-size:13px;color:var(--navy-soft);padding:6px 0;}
.bo-aviso{background:var(--orange-soft);color:#B85F1F;font-size:13px;padding:12px 16px;border-radius:12px;margin-bottom:14px;}
.bo-erro{background:var(--red-soft);color:var(--red);font-size:13px;padding:12px 16px;border-radius:12px;margin-bottom:14px;}

.bo-cards{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.bo-card-label{font-size:11px;font-weight:700;text-transform:uppercase;color:var(--navy-faint);margin-bottom:6px;}
.bo-card-num{font-size:30px;font-weight:800;margin-bottom:8px;}
.bo-card-num-red{color:var(--red);}

/* --- Family app --- */
.fam-header{display:flex;align-items:center;justify-content:space-between;padding:16px 32px;background:#fff;border-bottom:1px solid var(--border);}
.fam-brand{display:flex;align-items:center;gap:8px;font-weight:800;color:var(--navy);}
.fam-nav{display:flex;align-items:center;gap:18px;font-size:13.5px;color:var(--navy-soft);}
.fam-nav form{display:inline;}
.fam-nav button{background:none;border:none;color:var(--mint-deep);font-weight:600;cursor:pointer;font-size:13.5px;}
.fam-main{max-width:760px;margin:0 auto;padding:40px 24px;}
.fam-lead{color:var(--navy-soft);font-size:14px;margin-bottom:24px;}
.fam-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:22px;margin-bottom:18px;}
.fam-card h3{font-size:15px;font-weight:700;margin-bottom:14px;}
.fam-center{text-align:center;}
.fam-center .btn-primary{margin-top:12px;}
.fam-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.fam-crianca h3{margin-bottom:4px;}
.fam-crianca p{font-size:12px;color:var(--navy-faint);}
.fam-add{display:flex;align-items:center;justify-content:center;border:2px dashed var(--border);color:var(--navy-soft);font-weight:600;background:none;box-shadow:none;}
.fam-consulta-linha{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid rgba(22,40,61,.05);font-size:13.5px;}
.fam-consulta-linha:last-child{border-bottom:none;}
.fam-inline-form{display:flex;gap:10px;}
.fam-inline-form input{flex:1;padding:12px 16px;border-radius:12px;border:1px solid var(--border);background:var(--gray-bg);}
.fam-nota{font-size:12px;color:var(--navy-faint);margin-top:8px;}

.fam-chat{min-height:160px;display:flex;flex-direction:column;gap:10px;}
.chat-bolha{max-width:85%;padding:11px 15px;border-radius:16px;font-size:13.5px;line-height:1.5;}
.chat-utilizador{align-self:flex-end;background:linear-gradient(135deg,var(--mint),var(--mint-deep));color:#fff;border-bottom-right-radius:4px;}
.chat-ia{align-self:flex-start;background:var(--gray-bg);border:1px solid var(--border);border-bottom-left-radius:4px;}

.urgente-overlay{position:fixed;inset:0;background:rgba(22,40,61,.95);display:flex;align-items:center;justify-content:center;z-index:100;padding:24px;}
.urgente-card{background:#fff;border-radius:20px;padding:32px;max-width:400px;width:100%;text-align:center;}
.urgente-icone{width:52px;height:52px;border-radius:50%;background:var(--red-soft);color:var(--red);font-size:26px;font-weight:800;display:flex;align-items:center;justify-content:center;margin:0 auto 16px;}
.urgente-card h2{font-size:19px;font-weight:800;margin-bottom:10px;}
.urgente-card p{font-size:13.5px;color:var(--navy-soft);margin-bottom:20px;line-height:1.55;}
.urgente-ligar{display:block;background:var(--red);color:#fff;font-weight:700;font-size:16px;padding:15px;border-radius:100px;margin-bottom:12px;}
