:root{--bg:#f4f6f8;--surface:#fff;--text:#1c2931;--muted:#71808c;--border:#e6eaed;--accent:#256d66;--accent-soft:#e8f4f1;--dark:#1c2a32;--shadow:0 5px 25px rgba(21,34,42,.035);--radius:14px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-size:14px;line-height:1.56}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4,p{margin-top:0}h1{font-size:26px;line-height:1.25;letter-spacing:-.8px}h2{font-size:16px;letter-spacing:-.25px}h3{font-size:15px}button,input,select,textarea{font:inherit}button{cursor:pointer}strong{font-weight:650}.icon{display:block;flex-shrink:0}.icon-inline{width:14px;height:14px}.icon-nav{width:18px;height:18px}.icon-brand{width:22px;height:22px}.icon-menu{width:20px;height:20px}.icon-empty{width:24px;height:24px}.icon-auth-mark{width:28px;height:28px}
.sidebar{position:fixed;inset:0 auto 0 0;width:258px;background:#1d2b33;color:#f8fafa;z-index:30;display:flex;flex-direction:column;box-shadow:5px 0 25px rgba(0,0,0,.04)}.brand{height:95px;display:flex;align-items:center;gap:11px;padding:16px 24px;color:#fff;border-bottom:1px solid #35454e;min-width:0}.brand:hover{text-decoration:none}.brand-symbol{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#326e67;color:#fff;flex-shrink:0}.brand-logo{width:42px;height:42px;object-fit:contain;border-radius:10px;flex-shrink:0}.brand-copy{display:flex;flex-direction:column;min-width:0;line-height:1.1}.brand-copy strong{font-size:14px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.brand-copy small{font-size:9px;letter-spacing:2px;margin-top:8px;color:#a8b7bd}.nav{padding:15px 11px;overflow:auto;flex:1;scrollbar-width:thin}.nav-group{margin:8px 0 17px}.nav-label{display:block;font-size:10px;font-weight:700;letter-spacing:1.5px;color:#788e99;margin:0 13px 8px}.nav-link{padding:11px 13px;border-radius:9px;margin:2px 0;color:#aebdc4;display:flex;align-items:center;gap:11px;font-size:13px;font-weight:500}.nav-link:hover{background:#293b43;color:#fff;text-decoration:none}.nav-link.active{background:#324c4c;color:#e4faf4}.nav-glyph{display:grid;place-items:center;width:21px;color:#9db4bb;flex-shrink:0}.side-footer{border-top:1px solid #34434a;padding:19px 20px;display:flex;align-items:center;gap:10px;min-width:0}.side-footer strong,.side-footer small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}.side-footer strong{font-size:12px}.side-footer small{color:#91a7b0;font-size:11px}.user-avatar,.topbar-avatar{background:#c8e5df;color:#1b5953;width:37px;height:37px;border-radius:10px;display:grid;place-items:center;font-weight:750;flex-shrink:0}
.main-shell{margin-left:258px;min-height:100vh;display:flex;flex-direction:column}.topbar{height:77px;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 35px;border-bottom:1px solid var(--border)}.topbar-location{font-size:12px;color:#819099}.topbar-location strong{color:#465b64}.slash{margin:0 10px;color:#d2dadd}.topbar-right{display:flex;align-items:center;gap:20px}.secure-mark{font-size:11px;line-height:1.25;color:#47847a;display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.secure-mark svg.icon-inline{display:block;width:12px;height:12px;min-width:12px;max-width:12px;max-height:12px;flex:0 0 12px}.notif-link{color:#596e77;position:relative;display:inline-flex;align-items:center;justify-content:center}.notif-icon{width:22px;height:22px}.notif-count{position:absolute;right:-9px;top:-4px;border-radius:12px;padding:0 5px;min-width:16px;background:#bd624e;color:#fff;font-size:10px;font-weight:750;text-align:center}.topbar-avatar{width:33px;height:33px;border-radius:50%;font-size:12px}.main-content{width:100%;max-width:1400px;margin:0 auto;flex:1;padding:36px 38px 75px}.page-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px}.page-heading h1{margin-bottom:4px}.page-sub{color:var(--muted);font-size:13px;margin:8px 0 0}.eyebrow{font-size:10px;color:#7d9792;letter-spacing:1.6px;text-transform:uppercase;font-weight:750;margin:0 0 8px}.app-footer{text-align:center;font-size:11px;color:#a2afb5;padding:22px}.mobile-menu{display:none;background:none;border:0;color:#39515b;padding:6px}.mobile-overlay{display:none}
.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px;margin-bottom:20px;min-width:0}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:0 0 21px}.panel-heading h2{margin:0}.panel-heading p{color:var(--muted);margin:3px 0 0;font-size:12px}.subtle{color:var(--muted)}.subtle-small{color:#82939c;font-size:12px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid transparent;border-radius:9px;padding:10px 15px;font-size:12px;font-weight:700;line-height:1.5;white-space:nowrap;text-decoration:none!important;min-height:40px}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:#1a5852}.btn-secondary{background:#fff;border-color:#dce5e8;color:#3b5961}.btn-secondary:hover{background:#f5f9f9}.btn-danger{background:#fef2ef;border-color:#f3dfd8;color:#a14d3c}.btn-sm{min-height:30px;padding:5px 10px;font-size:11px}.btn-block{width:100%}.action-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 21px}.field{display:flex;flex-direction:column;gap:7px;min-width:0;font-size:12px;font-weight:650;color:#42565e}.field input,.field select,.field textarea,.form-control{background:#fff;border:1px solid #dce4e8;border-radius:9px;color:var(--text);padding:11px 12px;outline:0;min-width:0;width:100%;resize:vertical}.field input:focus,.field textarea:focus,.field select:focus{border-color:#61a89e;box-shadow:0 0 0 3px #e7f5f2}.field textarea{line-height:1.65}.field-help{font-weight:400;color:var(--muted);font-size:11px}.colspan-2{grid-column:1/-1}.form-footer{display:flex;gap:10px;justify-content:flex-end;margin-top:24px;padding-top:19px;border-top:1px solid var(--border)}.check-row{display:flex;align-items:center;gap:9px;margin:12px 0;font-size:13px}.check-row input{accent-color:var(--accent)}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;margin-bottom:20px}.stat{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:22px 22px;box-shadow:var(--shadow)}.stat-label{display:block;font-size:11px;font-weight:650;color:#81929a;margin:0 0 17px}.stat-main{font-size:27px;font-weight:750;letter-spacing:-1px}.stat-foot{margin-top:12px;font-size:11px;color:#8ba29a}.split{display:grid;grid-template-columns:1.25fr 1fr;gap:19px}.table-wrap{width:100%;overflow-x:auto}.table{width:100%;border-collapse:collapse;text-align:left;font-size:12px;min-width:570px}.table th{background:#f8fafb;color:#7b8c95;font-size:10px;letter-spacing:.5px;text-transform:uppercase;font-weight:700}.table th,.table td{padding:14px 12px;border-bottom:1px solid #edf0f2;vertical-align:middle}.table tbody tr:hover{background:#fcfdfd}.table tbody tr:last-child td{border-bottom:0}.table td strong{font-size:12px}.table td .subtle-small{display:block;margin-top:2px}.tag{display:inline-flex;border-radius:7px;padding:4px 8px;font-size:10px;font-weight:750;white-space:nowrap;background:#eef2f3;color:#627882}.tag-green{background:#e2f3e8;color:#307353}.tag-amber{background:#fff3e3;color:#9b6720}.tag-red{background:#fbe9e7;color:#ab4e44}.tag-blue{background:#e8f1fb;color:#4876a3}.tag-neutral{background:#eff2f5;color:#677d85}.empty-state{text-align:center;padding:36px 20px;color:var(--muted)}.empty-state h2,.empty-state h3{color:var(--text);margin:10px 0 4px}.empty-icon{width:48px;height:48px;border-radius:14px;background:#eef6f4;margin:0 auto;display:grid;place-items:center;color:var(--accent)}.alert{padding:13px 17px;border-radius:10px;margin-bottom:19px;border:1px solid;font-size:12px}.alert-success{background:#e8f7ef;border-color:#cce9d9;color:#286746}.alert-error{background:#fff0ee;border-color:#f3d6d0;color:#a0483e}.alert-info{background:#f1f7fa;border-color:#d8e9ef;color:#436675}.tabs{display:flex;align-items:center;gap:5px;flex-wrap:wrap;overflow:visible;row-gap:4px;margin-bottom:19px;border-bottom:1px solid #dfe5e8;padding-bottom:0}.tab{display:inline-block;white-space:nowrap;font-size:12px;font-weight:650;color:#819199;padding:11px 18px;border-bottom:2px solid transparent}.tab.active{color:var(--accent);border-color:var(--accent)}.tab:hover{text-decoration:none;color:var(--accent)}.patient-banner{display:flex;align-items:center;gap:13px;margin-bottom:22px}.patient-initial{width:50px;height:50px;display:grid;place-items:center;border-radius:13px;background:#e7f3f0;color:#2e756b;font-size:20px;font-weight:750}.patient-banner h2{margin:0 0 3px;font-size:16px}.timeline{margin:0;padding:0 0 0 24px;list-style:none;border-left:2px solid #e1ebe9}.timeline li{position:relative;margin-bottom:22px;padding:0 0 0 8px}.timeline li:before{content:'';position:absolute;left:-30px;top:5px;height:10px;width:10px;background:var(--accent);border:4px solid #e1f1ee;border-radius:50%}.timeline small{color:var(--muted);display:block;margin-bottom:6px}.timeline p{white-space:pre-wrap;margin:0;line-height:1.7}.notice-item{border:1px solid #e7ebed;border-radius:11px;padding:18px;margin-bottom:12px;background:#fff}.notice-item.unread{border-left:3px solid var(--accent);background:#fbfefd}.notice-meta{display:flex;justify-content:space-between;gap:12px;font-size:11px;color:var(--muted)}.notice-item h3{margin:8px 0}.notice-item p{white-space:pre-wrap;font-size:13px;color:#566972}.link-muted{color:#77909b;font-size:12px}.version{font-size:31px;letter-spacing:-1px;font-weight:700}.callout{border-radius:10px;padding:15px 17px;background:#f2f7f6;border:1px solid #dfeeea;color:#4c6964;font-size:12px;margin:17px 0}.divider{height:1px;background:var(--border);margin:22px 0}.filter-form{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:21px}.filter-form input,.filter-form select{padding:9px 12px;border:1px solid var(--border);border-radius:9px;min-width:160px}.auth-shell{display:grid;grid-template-columns:43% 57%;min-height:100vh}.auth-side{background:#1c3436;color:#fff;padding:55px;display:flex;flex-direction:column;justify-content:space-between;min-height:100vh;position:relative;overflow:hidden}.auth-side:before{content:'';position:absolute;width:450px;height:450px;border:1px solid #426b65;border-radius:50%;bottom:-230px;left:-130px;box-shadow:0 0 0 55px rgba(255,255,255,.025),0 0 0 100px rgba(255,255,255,.02)}.auth-side-inner{max-width:420px;margin:auto 0;position:relative}.auth-mark{display:inline-flex;color:#c3e4dd}.auth-overline{font-size:11px;letter-spacing:2px;color:#abd1c6;font-weight:700;margin:24px 0}.auth-side h1{font-size:clamp(30px,3.2vw,53px);line-height:1.12;letter-spacing:-2px;margin-bottom:20px}.auth-side-inner>p:last-of-type{color:#a9c7c5;font-size:14px;line-height:1.85}.auth-decoration{display:flex;gap:7px;margin-top:44px}.auth-decoration span{width:28px;height:5px;border-radius:5px;background:#8bbbb0}.auth-decoration span:nth-child(n+2){background:#456763}.auth-footer{color:#8eaeaa;font-size:11px;position:relative}.auth-main{display:grid;place-items:center;padding:32px}.auth-card{width:100%;max-width:390px}.auth-mini-brand{display:flex;align-items:center;gap:12px;margin-bottom:50px;font-size:13px;font-weight:750;color:#395459}.auth-mini-brand .brand-symbol{background:#e8f3f0;color:#247065}.auth-card h2{font-size:26px;letter-spacing:-.7px;margin-bottom:9px}.auth-card>p{font-size:13px;color:var(--muted);margin-bottom:30px}.auth-card .field{margin-bottom:18px}.auth-card .field input{padding:14px}.auth-actions{display:flex;justify-content:space-between;align-items:center;margin:9px 0 27px;color:#597f78;font-size:12px}.auth-back{font-size:12px;margin-top:23px;text-align:center}.auth-card .btn{padding:13px}.brand-preview{max-height:90px;max-width:220px;object-fit:contain;background:#f4f7f7;padding:10px;border-radius:9px;border:1px solid var(--border)}.mobile-menu{border-radius:8px}
@media(max-width:1150px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.main-content{padding:27px 25px 60px}.split{grid-template-columns:1fr}.topbar{padding:0 26px}}
@media(max-width:820px){.sidebar{transform:translateX(-100%);transition:transform .2s;width:260px}.sidebar.open{transform:translateX(0)}.mobile-overlay.on{display:block;position:fixed;inset:0;background:rgba(13,29,38,.45);z-index:25}.main-shell{margin-left:0}.mobile-menu{display:block}.topbar{height:68px;padding:0 16px}.topbar-location{margin-right:auto;margin-left:12px}.secure-mark{display:none}.topbar-right{gap:16px}.main-content{padding:23px 15px 48px}.page-heading h1{font-size:23px}.panel{padding:18px 15px}.form-grid{grid-template-columns:1fr}.colspan-2{grid-column:auto}.auth-shell{grid-template-columns:1fr}.auth-side{display:none}.auth-main{min-height:100vh}.auth-mini-brand{margin-bottom:45px}}
@media(max-width:520px){.stats{grid-template-columns:1fr 1fr;gap:9px}.stat{padding:16px}.stat-main{font-size:22px}.panel-heading{flex-direction:column;align-items:start}.form-footer{flex-wrap:wrap}.topbar-location{font-size:11px}.topbar-avatar{display:none}.table{min-width:520px}.filter-form input,.filter-form select{width:100%}.filter-form .btn{width:100%}}

/* v1.0.5: todas as abas de prontuário visíveis, também em telas menores */
@media(max-width:600px){.tabs{gap:3px;row-gap:5px}.tabs .tab{padding:9px 10px;font-size:11px}}

/* v1.0.6: Cadastro de responsáveis legais e calendário de aniversários. */
.guardian-fields[hidden]{display:none!important}.guardian-fields{display:block;min-width:0;margin:4px 0 0;padding:21px;border:1px solid #d6e9e4;border-radius:13px;background:#f9fcfb}.guardian-heading{margin-bottom:18px}.guardian-heading h3{margin:0 0 5px;font-size:15px}.guardian-heading p{font-size:12px;margin:0;color:var(--muted)}.guardian-readonly{grid-column:1/-1;padding:14px 16px;border-radius:10px;background:#f4f8f7}.guardian-readonly h3{margin:0 0 5px}.guardian-readonly p{margin:0}
.birthday-top{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;flex-wrap:wrap}.birthday-top h3{font-size:18px;margin:0;text-transform:capitalize}.birthday-caption{font-size:11px;color:var(--muted);margin:0 0 4px}.birthday-controls{display:flex;align-items:center;gap:7px}.birthday-arrow,.birthday-today{display:inline-grid;place-items:center;height:32px;min-width:32px;border:1px solid var(--border);border-radius:8px;color:#41615d;background:white;font-size:20px;font-weight:600}.birthday-today{padding:0 12px;font-size:11px}.birthday-arrow:hover,.birthday-today:hover{text-decoration:none;background:var(--accent-soft)}.birthday-scroll{overflow-x:auto;max-width:100%;padding-bottom:4px}.birthday-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));min-width:665px;border-top:1px solid var(--border);border-left:1px solid var(--border);border-radius:8px;overflow:hidden}.birthday-weekday{text-align:center;padding:9px 4px;background:#f4f8f8;font-weight:700;color:#607b7b;font-size:11px;border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.birthday-day{position:relative;min-height:84px;padding:8px 7px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:white}.birthday-day.is-outside{background:#f8fafa}.birthday-day.has-events{background:#f8fbfa}.birthday-day.is-today{box-shadow:inset 0 0 0 2px #2f8276}.birthday-day-number{display:block;font-weight:750;color:#536973;font-size:11px;margin-bottom:7px}.birthday-event{display:block;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:3px 5px;margin:3px 0;background:#e7f4ee;color:#246a53;border-radius:5px;font-size:10px}.birthday-event:hover{background:#d1ecdf;text-decoration:none}.birthday-more{display:block;font-size:10px;color:#527e74;margin-top:4px}.birthday-roster{margin-top:23px}.birthday-roster h3{font-size:13px;margin-bottom:12px}.birthday-roster h3 span{color:var(--muted);font-weight:500}.birthday-roster-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.birthday-person{display:flex;align-items:center;gap:11px;min-width:0;padding:10px 12px;border:1px solid var(--border);border-radius:9px;color:var(--text);background:#fff;font-size:12px}.birthday-person:hover{background:#f6fbf9;text-decoration:none}.birthday-date{font-weight:750;color:var(--accent);flex-shrink:0}.birthday-person-name{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis}.birthday-person-name small{color:var(--muted)}.birthday-age{color:var(--muted);font-size:11px;white-space:nowrap}.birthday-note{margin-top:11px}@media(max-width:650px){.birthday-roster-list{grid-template-columns:1fr}.birthday-top h3{font-size:16px}.guardian-fields{padding:14px}}
