:root{font-family:Inter,Segoe UI,Arial,sans-serif;color:#17222d;background:#f3f6f8;line-height:1.5}*{box-sizing:border-box}body{margin:0}a{color:#0c766e;text-decoration:none}a:hover{text-decoration:underline}.topbar{height:64px;background:#123b3b;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1120px)/2));box-shadow:0 2px 10px #0002}.brand{font-size:1.35rem;font-weight:800;color:#fff}.topbar nav{display:flex;align-items:center;gap:22px}.topbar nav a,.link-button{color:#e9ffff}.topbar form{display:inline}.link-button{border:0;background:none;padding:0;font:inherit;cursor:pointer}.container{max-width:1120px;margin:0 auto;padding:36px 24px}.auth-container{min-height:100vh;display:grid;place-items:center}.card{background:#fff;border:1px solid #dce5e8;border-radius:12px;padding:24px;box-shadow:0 3px 14px #173b3b0b;margin-bottom:24px}.auth-card{width:min(440px,100%)}.auth-card.wide{width:min(760px,100%)}h1,h2{line-height:1.2;margin-top:0}h1{margin-bottom:6px}.muted{color:#667984;margin-top:0}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 22px}.form-grid.one-column{grid-template-columns:1fr}.form-grid label{font-weight:650;color:#344750}.form-grid input,.form-grid select,.form-grid textarea,.search input{display:block;width:100%;margin-top:6px;padding:11px 12px;border:1px solid #bccbd0;border-radius:7px;background:#fff;font:inherit}.form-grid textarea{min-height:100px;resize:vertical}.full{grid-column:1/-1}.actions,.section-heading,.page-heading{display:flex;align-items:center;gap:10px}.page-heading,.section-heading{justify-content:space-between}.page-heading{margin-bottom:24px}.page-heading h1{margin:0}.button,button{display:inline-block;border:1px solid #9babb0;border-radius:7px;background:#fff;color:#24363e;padding:9px 14px;font:inherit;font-weight:650;cursor:pointer}.primary{background:#0d786f;border-color:#0d786f;color:#fff}.danger{background:#fff2f1;border-color:#d9665d;color:#a22921}button:disabled{opacity:.5;cursor:not-allowed}.alert{padding:12px 16px;border-radius:8px;margin-bottom:18px}.alert.error{background:#fff0ef;color:#8d211a}.alert.success{background:#e7f8f1;color:#176045}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.stat{display:flex;flex-direction:column;color:inherit}.stat:hover{text-decoration:none;border-color:#7dbeb7}.stat strong{font-size:2.2rem;color:#0d786f}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;padding:13px 12px;border-bottom:1px solid #e1e8ea}th{color:#52656d;font-size:.85rem;text-transform:uppercase;letter-spacing:.04em}.empty{text-align:center;color:#75868d;padding:24px}.search{display:flex;gap:8px;margin-bottom:18px;max-width:560px}.search input{margin:0}.details{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}.details div{display:flex;flex-direction:column}.details span{font-size:.85rem;color:#687b83}.item-list{list-style:none;margin:0;padding:0}.item-list li{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid #e1e8ea}.item-list li:last-child{border:0}.item-list span{color:#687b83}@media(max-width:760px){.topbar{height:auto;align-items:flex-start;padding:16px 20px}.topbar nav{flex-wrap:wrap;gap:10px 16px;justify-content:flex-end}.form-grid,.details,.stats{grid-template-columns:1fr}.full{grid-column:auto}.page-heading{align-items:flex-start}.container{padding:24px 16px}}
.admin-stats{grid-template-columns:repeat(4,1fr)}.badge{display:inline-block;padding:2px 7px;border-radius:999px;background:#e4f5f2;color:#0b655e;font-size:.72rem;font-weight:750}.link-danger{border:0;background:none;color:#a22921;padding:0}.check{display:flex;align-items:center;gap:8px}.form-grid .check input{width:auto;margin:0}@media(max-width:900px){.admin-stats{grid-template-columns:repeat(2,1fr)}.topbar{height:auto;align-items:flex-start;padding:16px 20px;flex-direction:column;gap:14px}.topbar nav{flex-wrap:wrap;gap:10px 16px;justify-content:flex-start;width:100%}}
.user-link{display:flex;flex-direction:column}.user-link span{font-size:.82rem;color:#687b83;font-weight:400}.button.compact{padding:6px 10px}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:7px}.status-dot.active{background:#27a06d}.status-dot.inactive{background:#c6534d}.back-link{display:block;margin-bottom:8px;font-size:.9rem}.vet-heading{align-items:flex-end}.vet-heading h1{margin-top:6px}.account-status{padding:6px 10px;border-radius:999px;font-size:.82rem;font-weight:700}.account-status.active{background:#e5f7ef;color:#176045}.account-status.inactive{background:#fff0ef;color:#8d211a}.section-heading h2{margin-bottom:3px}.section-heading p{margin-bottom:0}.vet-stats{max-width:760px}@media(max-width:760px){.vet-heading{align-items:flex-start}.section-heading{align-items:flex-start;gap:16px}}
.stat small{margin-top:4px;color:#6a7d84}.overview-grid{display:grid;grid-template-columns:minmax(260px,.7fr) minmax(420px,1.3fr);gap:20px}.plan-list{display:grid;gap:12px}.plan-list div{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e1e8ea;padding:8px 0}.plan-list strong{font-size:1.35rem;color:#0d786f}@media(max-width:800px){.overview-grid{grid-template-columns:1fr}}
.filters{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;background:#fff;border:1px solid #dce5e8;border-radius:10px;padding:16px;margin-bottom:18px}.filters label{font-size:.82rem;font-weight:700;color:#4d6068;min-width:150px;flex:1}.filters input,.filters select{display:block;width:100%;margin-top:5px;padding:9px 10px;border:1px solid #bccbd0;border-radius:7px;background:#fff;font:inherit}.filter-actions{display:flex;gap:8px;align-items:center}.compact-filters{padding:10px 0;border:0;border-radius:0;margin:8px 0;background:transparent;max-width:520px}.pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 8px 2px;color:#65777f;font-size:.9rem}.pagination>a{font-weight:700}.pagination>span:first-child,.pagination>span:last-child{opacity:.45}.pagination.single{justify-content:flex-end}.role-guide{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.role-guide div{display:flex;flex-direction:column}.role-guide span{font-size:.84rem;color:#667984;margin-top:4px}@media(max-width:900px){.role-guide{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.role-guide{grid-template-columns:1fr}.pagination{flex-direction:column}}
.sort-link{color:inherit;display:inline-flex;gap:5px;white-space:nowrap}.page-jump{display:flex;align-items:center;justify-content:center;gap:7px;flex-wrap:wrap}.page-jump input{width:58px;padding:5px;border:1px solid #bccbd0;border-radius:6px}.date-pagination{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;margin:14px 0 20px}.date-pagination form label{font-size:.82rem;font-weight:700}.date-pagination input{display:block;padding:8px;border:1px solid #bccbd0;border-radius:7px}.plan-badge,.top-plan{display:inline-flex;align-items:center;border-radius:999px;padding:4px 10px;font-size:.78rem;font-weight:800}.plan-badge.free{background:#edf1f3;color:#465b64}.plan-badge.premium{background:#e3f4ff;color:#156080}.plan-badge.enterprise{background:#e8e4ff;color:#49369c}.top-plan{background:#ffffff1c;color:#fff;border:1px solid #ffffff45}.plan-usage .section-heading{margin-bottom:18px}.usage-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:20px}.usage-label{display:flex;justify-content:space-between;gap:10px;margin-bottom:7px}.usage-label span{color:#60747d}.usage-grid progress{width:100%;height:10px;accent-color:#0d786f}.unlimited-bar{height:10px;background:linear-gradient(90deg,#0d786f,#6bc7bd);border-radius:99px}.plan-catalog{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.plan-catalog>div{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:16px;border:1px solid #dce5e8;border-radius:10px}.plan-catalog span:last-child{color:#647780;font-size:.88rem}.animal-thumb{width:52px;height:52px;object-fit:cover;border-radius:9px}.photo-placeholder{font-size:.75rem;color:#788a91}.consultation-photo{display:block;width:min(420px,100%);max-height:360px;object-fit:cover;border-radius:12px;margin:0 0 24px}.form-grid input[type=file]{padding:8px}.agenda-list li>div{display:flex;flex-direction:column}
@media(max-width:760px){.topbar{flex-direction:column;gap:14px}.topbar nav{justify-content:flex-start;width:100%}.page-heading,.section-heading{flex-direction:column}.page-heading .actions,.section-heading .actions{width:100%;flex-wrap:wrap}.page-heading .button{width:auto}.usage-grid,.plan-catalog{grid-template-columns:1fr}.filters{display:grid;grid-template-columns:1fr 1fr}.filter-actions{grid-column:1/-1}.date-pagination{align-items:stretch}.date-pagination .button{text-align:center}.table-wrap{overflow:visible}.table-wrap table,.table-wrap thead,.table-wrap tbody,.table-wrap tr,.table-wrap th,.table-wrap td{display:block}.table-wrap thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.table-wrap tr{border:1px solid #dce5e8;border-radius:10px;padding:10px;margin-bottom:12px}.table-wrap td{display:grid;grid-template-columns:minmax(92px,35%) 1fr;gap:10px;border:0;padding:7px 4px}.table-wrap td::before{content:attr(data-label);font-weight:750;color:#52656d;font-size:.78rem;text-transform:uppercase}.table-wrap td.empty{display:block}.item-list li{flex-direction:column;gap:6px}.pagination{align-items:stretch}.page-jump{order:-1}}
@media(max-width:480px){.container{padding:20px 12px}.card{padding:16px}.filters{grid-template-columns:1fr}.filter-actions{grid-column:auto;flex-wrap:wrap}.topbar nav{gap:9px 13px;font-size:.92rem}.stats,.admin-stats{grid-template-columns:1fr}.actions{flex-wrap:wrap}.actions .button,.actions button{min-height:42px}}
.photo-field{display:flex;align-items:flex-start;gap:18px;padding:14px;border:1px dashed #b9cccf;border-radius:10px;background:#f8fbfb}.photo-field>label{flex:1}.current-photo{display:flex;align-items:center;gap:12px}.current-photo img,.profile-photo{width:76px;height:76px;border-radius:50%;object-fit:cover}.photo-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:24px}.photo-gallery .consultation-photo{width:100%;height:260px;margin:0}.edit-gallery label{display:flex;flex-direction:column;gap:8px}.edit-gallery img{width:100%;height:150px;object-fit:cover;border-radius:10px}.view-tabs{display:flex;gap:6px;border-bottom:1px solid #d8e2e5;margin:4px 0 20px}.view-tabs a{padding:11px 16px;color:#5b6e76;font-weight:700;border-bottom:3px solid transparent}.view-tabs a.active{color:#0d786f;border-color:#0d786f}.agenda-stats .stat{margin-bottom:8px}
.landing-container{max-width:none;padding:0;background:#fff}.public-nav{position:sticky;top:0;z-index:10}.public-nav .button{padding:7px 14px}.public-nav .ghost{border-color:#ffffff70;background:transparent}.public-nav .light{background:#fff;color:#123b3b}.hero{min-height:680px;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:70px;padding:80px max(32px,calc((100vw - 1180px)/2));background:radial-gradient(circle at 85% 10%,#bfeee530,transparent 32%),linear-gradient(145deg,#f7fbfa,#eaf5f3)}.hero h1{font-size:clamp(2.7rem,5vw,5rem);letter-spacing:-.055em;margin:14px 0 22px;color:#123332}.hero h1 em{font-style:normal;color:#0b8278}.hero>div>p{font-size:1.16rem;max-width:650px;color:#526a70}.eyebrow{display:inline-block;color:#0b766e;font-size:.78rem;font-weight:850;text-transform:uppercase;letter-spacing:.13em}.hero-actions{display:flex;gap:12px;margin:30px 0 0}.button.large{padding:13px 20px;font-size:1.02rem}.hero-preview{background:#fff;border:1px solid #cfdfdf;border-radius:18px;box-shadow:0 30px 70px #174e4930;overflow:hidden;transform:rotate(1deg)}.preview-bar{height:38px;background:#153f3e;padding:14px}.preview-bar span{display:inline-block;width:9px;height:9px;border-radius:50%;background:#75b8b2;margin-right:5px}.preview-header{display:flex;justify-content:space-between;padding:28px 30px 18px}.preview-header div{display:flex;flex-direction:column}.preview-header small{color:#708287}.preview-header strong{font-size:1.3rem}.preview-stats{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:0 30px 22px}.preview-stats div{padding:18px;border-radius:10px;background:#edf7f5;display:flex;flex-direction:column}.preview-stats strong{font-size:1.7rem;color:#0b766e}.preview-appointments{padding:0 30px 30px}.preview-appointments div{display:grid;grid-template-columns:55px 1fr auto;align-items:center;gap:10px;padding:14px 0;border-bottom:1px solid #e0e8e9}.preview-appointments time{font-weight:800}.preview-appointments b{font-size:.7rem;color:#0b766e;background:#e3f5f1;padding:4px 7px;border-radius:99px}.landing-section{padding:90px max(32px,calc((100vw - 1180px)/2))}.section-intro{text-align:center;max-width:700px;margin:0 auto 48px}.section-intro h2{font-size:2.5rem;margin:10px 0}.section-intro p{color:#62767c}.feature-grid,.landing-plans{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.feature-grid article,.landing-plans article{padding:30px;border:1px solid #dce6e7;border-radius:15px;background:#fff}.feature-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:10px;background:#e5f5f2;color:#0b766e;font-weight:900}.feature-grid h3{font-size:1.25rem}.feature-grid p,.landing-plans p{color:#64777d}.plans-section{background:#f3f8f7}.landing-plans article{display:flex;flex-direction:column;align-items:flex-start}.landing-plans article>span{font-size:.7rem;text-transform:uppercase;font-weight:900;color:#fff;background:#0b766e;padding:5px 9px;border-radius:99px}.landing-plans .featured{border:2px solid #0b766e;transform:translateY(-12px);box-shadow:0 15px 40px #164c4720}.landing-plans .button{margin-top:auto}.landing-cta{text-align:center;padding:80px 24px;background:#123b3b;color:#fff}.landing-cta h2{font-size:2.5rem;margin-bottom:8px}.landing-cta p{color:#c9dedd;margin-bottom:28px}
@media(max-width:900px){.hero{grid-template-columns:1fr;padding-top:60px}.hero-preview{transform:none}.feature-grid,.landing-plans{grid-template-columns:1fr}.landing-plans .featured{transform:none}.photo-gallery{grid-template-columns:1fr 1fr}.public-nav{position:static}}
@media(max-width:600px){.hero{padding:54px 18px}.hero h1{font-size:2.65rem}.hero-actions{flex-direction:column}.hero-actions .button{text-align:center}.preview-header,.preview-stats,.preview-appointments{padding-left:18px;padding-right:18px}.preview-appointments div{grid-template-columns:48px 1fr}.preview-appointments b{display:none}.landing-section{padding:64px 18px}.section-intro h2,.landing-cta h2{font-size:2rem}.photo-gallery{grid-template-columns:1fr}.photo-field{flex-direction:column}.view-tabs{overflow-x:auto}.view-tabs a{white-space:nowrap}}
.identity-heading{display:flex;align-items:center;gap:16px}.identity-heading h1{margin:0}
.auth-container{max-width:none;padding:0;background:#eef6f4}.auth-shell{width:min(1020px,calc(100vw - 32px));min-height:620px;display:grid;grid-template-columns:.9fr 1.1fr;background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 28px 70px #173f3b24}.auth-brand-panel{display:flex;flex-direction:column;justify-content:space-between;padding:42px;background:radial-gradient(circle at 85% 15%,#62b9ae44,transparent 35%),#123b3b;color:#fff}.auth-brand{font-size:1.35rem;font-weight:900;color:#fff}.auth-brand-panel h1{font-size:2.5rem;margin:14px 0}.auth-brand-panel p{color:#c7dcda}.auth-brand-panel .eyebrow{color:#8de0d4}.back-home{color:#d7ecea}.auth-form-panel{display:grid;place-items:center;padding:48px}.auth-form-panel>div{width:min(520px,100%)}.auth-form-panel h2{font-size:2rem;margin-bottom:7px}.auth-form-panel .form-grid{margin-top:28px}.auth-switch{text-align:center;margin-top:24px;color:#63767c}.signup-shell{width:min(1160px,calc(100vw - 32px))}
@media(max-width:760px){.auth-shell{grid-template-columns:1fr;margin:16px 0}.auth-brand-panel{min-height:250px;padding:28px}.auth-brand-panel h1{font-size:2rem}.auth-form-panel{padding:32px 22px}.auth-form-panel h2{font-size:1.7rem}}
.agenda-list li{align-items:center;gap:18px}.agenda-list li>div{display:flex;flex-direction:column}.agenda-list li>div span{margin-top:3px}
.form-section-title{border-top:1px solid #dce5e8;padding-top:20px;margin-top:4px}.form-section-title h2{margin-bottom:4px}.form-section-title p{margin-bottom:0}.professional-summary{display:flex;justify-content:space-between;gap:12px;padding:13px 15px;border-radius:9px;background:#edf7f5;color:#244b49}.professional-summary span{color:#58716f}.vitals-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.clinical-alert{color:#a22921}.clinical-record .section-heading{margin-bottom:16px}.soap-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.soap-grid article{border:1px solid #dce5e8;border-radius:10px;padding:16px;background:#fbfdfd}.soap-grid span{font-size:.78rem;font-weight:850;color:#0d786f;text-transform:uppercase;letter-spacing:.04em}.soap-grid p{margin:8px 0 0;white-space:pre-wrap}
.consultation-status{display:inline-flex;border-radius:999px;padding:3px 8px;font-size:.75rem;font-weight:800;background:#edf1f3;color:#465b64;white-space:nowrap}.consultation-status.in_progress{background:#fff3d9;color:#7a5500}.consultation-status.completed{background:#e5f7ef;color:#176045}.consultation-status.cancelled,.consultation-status.no_show{background:#fff0ef;color:#8d211a}
@media(max-width:760px){.professional-summary{flex-direction:column}.vitals-grid,.soap-grid{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.vitals-grid,.soap-grid{grid-template-columns:1fr}}
.stats{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.preventive-timeline{display:grid;gap:14px}.preventive-item{border:1px solid #dce5e8;border-left:4px solid #68aaa3;border-radius:10px;padding:17px;background:#fbfdfd}.preventive-item.overdue{border-left-color:#c6534d;background:#fffafa}.preventive-item-heading,.preventive-item footer{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.preventive-item h3{margin:3px 0 0}.preventive-item-heading p{margin:2px 0 0;color:#687b83}.preventive-type{font-size:.72rem;font-weight:850;color:#0d786f;text-transform:uppercase;letter-spacing:.07em}.preventive-status{display:inline-flex;border-radius:999px;padding:4px 9px;font-size:.74rem;font-weight:800;background:#edf1f3;color:#465b64;white-space:nowrap}.preventive-status.applied{background:#e5f7ef;color:#176045}.preventive-status.scheduled{background:#fff3d9;color:#7a5500}.preventive-status.cancelled{background:#fff0ef;color:#8d211a}.preventive-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:14px;margin:16px 0}.preventive-facts span{display:flex;flex-direction:column}.preventive-facts small,.preventive-item footer>span{color:#687b83}.preventive-notes{white-space:pre-wrap;color:#435961}.preventive-item footer{border-top:1px solid #e1e8ea;padding-top:12px;font-size:.84rem}.preventive-item footer .actions{margin-left:auto}.danger-link{color:#a22921}.preventive-due-list li{align-items:center}.preventive-due-list li>div{display:flex;flex-direction:column}.preventive-due-list li.overdue strong{color:#a22921}
@media(max-width:600px){.preventive-item-heading,.preventive-item footer{flex-direction:column}.preventive-item footer .actions{margin-left:0}.preventive-facts{grid-template-columns:1fr 1fr}}
.document-editor{min-height:280px!important;line-height:1.6}.attachment-current,.attachment-card{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px;border:1px solid #dce5e8;border-radius:9px;background:#f8fbfb}.attachment-current>div{display:flex;flex-direction:column}.attachment-current span{color:#687b83;font-size:.84rem}.clinical-document-content{font-size:1.02rem;line-height:1.7}.clinical-document-content p{white-space:pre-wrap;margin:0}.attachment-card h2{margin-bottom:3px}.attachment-card p{margin:0}.document-verification{text-align:center;color:#687b83;font-size:.82rem}.document-list li{align-items:center}.document-list li>div:first-child{display:flex;flex-direction:column}.document-list .actions{margin-left:auto}
@media(max-width:600px){.attachment-current,.attachment-card{align-items:flex-start;flex-direction:column}.document-list .actions{margin-left:0}}
/* Auditoria e versionamento clínico */
.audit-correction {
  padding: 1rem;
  border: 1px solid #e6b863;
  border-radius: var(--radius, 12px);
  background: #fff9ec;
}
.alert.info { background: #e8f3f7; color: #28566a; }
.audit-correction p { margin: .35rem 0 .8rem; color: var(--muted); }
.audit-correction label { display: grid; gap: .35rem; }
.audit-delete-form { display: flex; align-items: center; gap: .45rem; flex-wrap: wrap; }
.audit-delete-form input:not([type="hidden"]) { min-width: 12rem; }
.audit-filters { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
.integrity-status, .audit-action {
  display: inline-flex;
  align-items: center;
  width: max-content;
  padding: .3rem .65rem;
  border-radius: 999px;
  font-size: .78rem;
  font-weight: 700;
  white-space: nowrap;
}
.integrity-status.ok { color: #17633a; background: #e8f7ee; }
.integrity-status.error { color: #8f261f; background: #fdebea; }
.audit-action.create { color: #17633a; background: #e8f7ee; }
.audit-action.update { color: #7a4b00; background: #fff3d8; }
.audit-action.delete { color: #8f261f; background: #fdebea; }
.audit-action.restore { color: #2546a5; background: #eaf0ff; }
.audit-action.print, .audit-action.download { color: #425466; background: #edf1f4; }
.table-wrap td small { display: block; margin-top: .2rem; color: var(--muted); }
.hash-value code { overflow-wrap: anywhere; font-size: .78rem; }
.audit-value { max-width: 30rem; white-space: pre-wrap; overflow-wrap: anywhere; }
.revision-list { display: grid; gap: .75rem; }
.revision-item { border: 1px solid var(--border); border-radius: var(--radius, 12px); }
.revision-item summary { display: flex; justify-content: space-between; gap: 1rem; padding: 1rem; cursor: pointer; }
.revision-item summary span { display: grid; gap: .2rem; }
.revision-item summary small { color: var(--muted); }
.revision-content { padding: 0 1rem 1rem; border-top: 1px solid var(--border); }
.revision-content dl { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: .65rem; }
.revision-content dl div { min-width: 0; }
.revision-content dt { color: var(--muted); font-size: .78rem; }
.revision-content dd { margin: .15rem 0 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.revision-content form { display: grid; gap: .7rem; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--border); }
.revision-content form label { display: grid; gap: .35rem; }
.revision-content form button { width: max-content; }

@media (max-width: 700px) {
  .audit-delete-form { width: 100%; }
  .audit-delete-form input:not([type="hidden"]) { flex: 1; min-width: 100%; }
  .revision-item summary { flex-direction: column; }
}

/* Central de notificações e fila de comunicação */
.notification-nav { display: inline-flex; align-items: center; gap: .35rem; }
.notification-nav span { min-width: 1.35rem; height: 1.35rem; display: inline-grid; place-items: center; padding: 0 .3rem; border-radius: 999px; background: #f8cf62; color: #4b3600; font-size: .7rem; font-weight: 850; }
.notification-email-waiting { background: #fff8e8; color: #684900; }
.notification-list { display: grid; gap: .8rem; }
.notification-item { display: grid; grid-template-columns: 2.5rem minmax(0, 1fr) auto; align-items: center; gap: 1rem; margin-bottom: 0; border-left: 4px solid #75aaa6; }
.notification-item.warning { border-left-color: #daa73f; }
.notification-item.critical { border-left-color: #c6534d; background: #fffafa; }
.notification-item.read { opacity: .78; }
.notification-icon { width: 2.3rem; height: 2.3rem; display: grid; place-items: center; border-radius: 50%; background: #e7f3f1; color: #0d786f; font-weight: 900; }
.notification-item.warning .notification-icon { background: #fff3d8; color: #815700; }
.notification-item.critical .notification-icon { background: #fdebea; color: #9c2f27; }
.notification-copy h2 { margin: .25rem 0; font-size: 1.05rem; }
.notification-copy p { margin: 0 0 .25rem; color: #50646c; }
.notification-copy small { color: #6b7c83; }
.notification-category { color: #0d786f; font-size: .72rem; font-weight: 850; text-transform: uppercase; letter-spacing: .06em; }
.unread-dot { display: inline-flex; margin-left: .5rem; padding: .15rem .45rem; border-radius: 999px; background: #e5f7ef; color: #176045; font-size: .68rem; font-weight: 800; }
.notification-actions { display: flex; gap: .5rem; flex-wrap: wrap; justify-content: flex-end; }
.notification-toggle, .consent-field { align-items: flex-start; padding: .85rem; border: 1px solid #dce5e8; border-radius: 9px; background: #f9fbfb; }
.notification-toggle span, .consent-field span { display: grid; gap: .2rem; }
.notification-toggle small, .consent-field small { color: #65777f; font-weight: 400; }
.email-provider-status, .outbox-status { display: inline-flex; width: max-content; padding: .3rem .65rem; border-radius: 999px; font-size: .74rem; font-weight: 800; }
.email-provider-status.ready, .outbox-status.sent { background: #e5f7ef; color: #176045; }
.email-provider-status.waiting, .outbox-status.waiting_configuration { background: #fff3d8; color: #785100; }
.outbox-status.pending { background: #eaf0ff; color: #2546a5; }
.outbox-status.failed { background: #fdebea; color: #8f261f; }
.outbox-status.cancelled { background: #edf1f3; color: #52656d; }

@media (max-width: 760px) {
  .notification-item { grid-template-columns: 2.3rem minmax(0, 1fr); align-items: flex-start; }
  .notification-actions { grid-column: 1 / -1; justify-content: flex-start; }
}

/* Navegação responsiva e refinamentos gerais de interface */
:root {
  --border: #dce5e8;
  --muted: #667984;
  --radius: 12px;
  --focus: #f2c14f;
}

html { scroll-behavior: smooth; }
body { min-width: 0; background: #f3f6f8; }
img { max-width: 100%; }
main.container { width: 100%; }
h1 { font-size: clamp(1.75rem, 4vw, 2.35rem); overflow-wrap: anywhere; }
.card, td, dd, .notification-copy { overflow-wrap: anywhere; }

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 3px;
}

.topbar {
  position: sticky;
  top: 0;
  z-index: 30;
}
.topbar nav a {
  position: relative;
  padding: .45rem 0;
  font-weight: 650;
}
.topbar { padding-right: max(16px, calc((100vw - 1240px) / 2)); padding-left: max(16px, calc((100vw - 1240px) / 2)); }
.topbar .brand { flex: 0 0 auto; margin-right: 18px; white-space: nowrap; }
.topbar nav { gap: 12px; font-size: .93rem; }
.topbar nav a:hover { color: #fff; text-decoration: none; }
.topbar nav a.active::after {
  position: absolute;
  right: 0;
  bottom: -.15rem;
  left: 0;
  height: 2px;
  border-radius: 999px;
  background: #78d4c9;
  content: "";
}
.nav-divider { width: 1px; height: 22px; background: #ffffff38; }
.menu-toggle {
  display: none;
  width: 44px;
  height: 44px;
  padding: 10px;
  border-color: #ffffff55;
  background: transparent;
  place-content: center;
  gap: 5px;
}
.menu-toggle span {
  display: block;
  width: 22px;
  height: 2px;
  border-radius: 99px;
  background: #fff;
  transition: transform .2s ease, opacity .2s ease;
}

@media (max-width: 1100px) {
  .topbar,
  .topbar.public-nav {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 0;
    min-height: 68px;
    padding: 12px 16px;
  }
  .topbar .brand { min-width: 0; }
  .menu-toggle { display: grid; justify-self: end; }
  .topbar nav {
    grid-column: 1 / -1;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: stretch;
    justify-content: flex-start;
    gap: 2px;
    width: 100%;
    max-height: min(72vh, 620px);
    overflow-x: hidden;
    overflow-y: auto;
  }
  .topbar.menu-ready:not(.menu-open) nav { display: none; }
  .topbar.menu-open nav {
    display: flex;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid #ffffff2e;
    animation: menu-enter .18s ease-out;
  }
  .topbar nav a,
  .topbar nav .top-plan,
  .topbar nav form {
    width: 100%;
  }
  .topbar nav a,
  .topbar nav .link-button {
    display: flex;
    align-items: center;
    min-height: 44px;
    padding: 9px 11px;
    border-radius: 8px;
  }
  .topbar nav a:hover,
  .topbar nav a.active { background: #ffffff14; }
  .topbar nav a.active::after { display: none; }
  .topbar nav .link-button { width: 100%; }
  .topbar nav .top-plan {
    justify-content: center;
    min-height: 38px;
    margin: 4px 0;
  }
  .nav-divider { width: 100%; height: 1px; margin: 5px 0; }
  .public-nav .button { justify-content: center; }
  .topbar.menu-open .menu-toggle span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .topbar.menu-open .menu-toggle span:nth-child(2) { opacity: 0; }
  .topbar.menu-open .menu-toggle span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

  .page-heading,
  .section-heading { gap: 16px; }
  .page-heading > div,
  .section-heading > div { min-width: 0; }
  .page-heading > .button,
  .section-heading > .button { align-self: stretch; text-align: center; }
  .date-pagination form { width: 100%; }
  .date-pagination input { width: 100%; }
  .identity-heading { flex-wrap: wrap; }
}

@media (max-width: 600px) {
  .container { padding: 22px 14px; }
  .card { padding: 17px; }
  .page-heading .actions,
  .section-heading .actions {
    display: grid;
    grid-template-columns: 1fr;
  }
  .page-heading .actions > *,
  .section-heading .actions > * { width: 100%; }
  .page-heading .actions .button,
  .page-heading .actions button,
  .section-heading .actions .button,
  .section-heading .actions button { width: 100%; text-align: center; }
  .filter-actions { align-items: stretch; }
  .filter-actions > * { flex: 1; min-height: 44px; text-align: center; }
  .search { flex-direction: column; max-width: none; }
  .search .button,
  .search button { min-height: 44px; text-align: center; }
  .table-wrap td { grid-template-columns: minmax(88px, 38%) minmax(0, 1fr); }
  .notification-actions,
  .notification-actions form,
  .notification-actions button { width: 100%; }
}

@keyframes menu-enter {
  from { opacity: 0; transform: translateY(-6px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto!important; animation-duration: .01ms!important; transition-duration: .01ms!important; }
}

/* Prescrições estruturadas e fluxo laboratorial */
.clinical-status,.result-flag{display:inline-flex;width:max-content;padding:.28rem .62rem;border-radius:999px;background:#edf1f3;color:#465b64;font-size:.74rem;font-weight:800;white-space:nowrap}.clinical-status.issued,.clinical-status.completed,.clinical-status.collected,.result-flag.normal{background:#e5f7ef;color:#176045}.clinical-status.draft,.clinical-status.requested,.clinical-status.processing{background:#fff3d9;color:#7a5500}.clinical-status.cancelled,.result-flag.low,.result-flag.high,.result-flag.abnormal{background:#fff0ef;color:#8d211a}.structured-list{display:grid;gap:14px}.structured-row{padding:18px;border:1px solid #dce5e8;border-radius:11px;background:#fbfdfd}.structured-row .form-grid{margin-top:14px}.row-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.clinical-warning{margin-bottom:18px;padding:16px 18px;border-left:4px solid #d2a23e;border-radius:9px;background:#fff8e8;color:#684900}.clinical-warning p,.clinical-warning ul{margin:.4rem 0 0}.clinical-warning.critical{border-left-color:#c6534d;background:#fff0ef;color:#8d211a}.clinical-ack{padding:14px;border:1px solid #d2a23e;border-radius:9px;background:#fff8e8}.protocol-picker{display:flex;align-items:flex-end;gap:18px}.protocol-picker label{flex:1;font-weight:700}.protocol-picker select{display:block;width:100%;margin-top:6px;padding:10px;border:1px solid #bccbd0;border-radius:7px}.protocol-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.protocol-grid .card{margin-bottom:0}.prescription-items{display:grid;gap:12px}.prescription-items article{display:grid;grid-template-columns:36px 1fr;gap:14px;padding:16px;border:1px solid #dce5e8;border-radius:10px}.prescription-items h3,.prescription-items p{margin:0 0 5px}.prescription-items small{color:#687b83}.item-number{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#e4f5f2;color:#0b655e;font-weight:900}.general-instructions{margin-top:18px;padding-top:16px;border-top:1px solid #dce5e8}.general-instructions p{white-space:pre-wrap}.follow-up-form{margin:18px 0;padding:16px;border-radius:10px;background:#f7fafb}.clinical-timeline{position:relative;display:grid;gap:0;margin-top:14px}.clinical-timeline article{position:relative;display:grid;grid-template-columns:20px minmax(0,1fr);gap:12px;padding:0 0 20px}.clinical-timeline article:not(:last-child)::before{position:absolute;top:12px;bottom:0;left:5px;width:2px;background:#dce5e8;content:""}.clinical-timeline article>div{display:flex;flex-direction:column}.clinical-timeline small{color:#687b83}.clinical-timeline p{margin:5px 0 0}.timeline-dot{position:relative;z-index:1;width:12px;height:12px;margin-top:6px;border:2px solid #fff;border-radius:50%;background:#0d786f;box-shadow:0 0 0 2px #9ccbc6}.timeline-dot.cancelled{background:#c6534d;box-shadow:0 0 0 2px #e6aaa5}.result-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:14px}.result-grid label{font-weight:650;color:#344750}.result-grid input,.result-grid select{display:block;width:100%;margin-top:6px;padding:10px;border:1px solid #bccbd0;border-radius:7px;background:#fff;font:inherit}.results-table tr.result-low,.results-table tr.result-high,.results-table tr.result-abnormal{background:#fffafa}.attachment-list{display:grid;gap:4px;padding:14px;border:1px solid #dce5e8;border-radius:9px}.attachment-list span{color:#667984}.attachment-document-list li>div:first-child{display:flex;flex-direction:column}.danger-zone{border-color:#efc4c1;background:#fffafa}.danger-zone h2{color:#8d211a}
@media(max-width:900px){.result-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.protocol-grid{grid-template-columns:1fr}.topbar nav{gap:1px}}
@media(max-width:600px){.protocol-picker{align-items:stretch;flex-direction:column}.result-grid{grid-template-columns:1fr}.structured-row{padding:14px}.prescription-items article{grid-template-columns:30px 1fr}.attachment-document-list li{align-items:flex-start;flex-direction:column}.attachment-document-list .actions{width:100%}}

/* Sistema consistente de controles e barras de ação */
:root { --control-height: 42px; }

button,
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--control-height);
  padding: 0 15px;
  line-height: 1.15;
  text-align: center;
  white-space: nowrap;
  vertical-align: middle;
}
.button:hover { text-decoration: none; }
.button.compact,
button.compact { min-height: 34px; padding: 0 11px; font-size: .88rem; }
.link-button,
.link-danger,
.danger-link {
  display: inline-flex;
  min-height: 0;
  padding: 0;
  border: 0;
  background: transparent;
  line-height: inherit;
}

.actions,
.filter-actions {
  display: flex;
  align-items: center;
  gap: 9px;
  flex-wrap: wrap;
}
.actions > form,
.filter-actions > form { display: flex; margin: 0; }
.filters:not(.compact-filters) > .filter-actions {
  align-self: flex-end;
  margin-left: auto;
}

.page-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 24px;
}
.page-heading > .actions {
  justify-content: flex-end;
  max-width: 100%;
}
.section-heading > a:not(.button) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 0 12px;
  border: 1px solid #b8c6ca;
  border-radius: 7px;
  background: #fff;
  font-weight: 700;
  white-space: nowrap;
}
.section-heading > a:not(.button):hover { text-decoration: none; }

.filters input,
.filters select,
.form-grid input:not([type="checkbox"]):not([type="file"]),
.form-grid select,
.search input,
.audit-delete-form input:not([type="hidden"]),
.actions input:not([type="hidden"]) {
  min-height: var(--control-height);
}
.audit-delete-form input:not([type="hidden"]),
.actions input:not([type="hidden"]) {
  width: 100%;
  padding: 0 12px;
  border: 1px solid #bccbd0;
  border-radius: 7px;
  background: #fff;
  font: inherit;
}

.audit-delete-form {
  display: flex;
  align-items: flex-end;
  gap: 10px;
  flex-wrap: nowrap;
}
.audit-delete-form label {
  display: grid;
  flex: 1;
  gap: 6px;
  min-width: 0;
  color: #68423f;
  font-size: .82rem;
  font-weight: 750;
}
.audit-delete-form input:not([type="hidden"]) { min-width: 220px; }

.danger-zone {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 470px);
  align-items: end;
  gap: 24px;
  border-color: #efc4c1;
  background: #fffafa;
}
.danger-zone h2 { margin: 0 0 4px; color: #8d211a; font-size: 1.15rem; }
.danger-zone p { max-width: 620px; margin: 0; color: #765b59; }
.danger-zone > .audit-delete-form { width: 100%; }
.danger-zone > h2 + .audit-delete-form { grid-column: 2; }

.preventive-item footer .actions > a {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 0 9px;
  border: 1px solid #ccd7da;
  border-radius: 6px;
  background: #fff;
  font-weight: 700;
}
.preventive-item footer .actions > a:hover { text-decoration: none; }
.preventive-item footer .audit-delete-form input:not([type="hidden"]) {
  min-width: 170px;
  min-height: 32px;
  font-size: .84rem;
}
.attachment-document-list .actions form {
  display: flex;
  align-items: center;
  gap: 8px;
}

@media (max-width: 800px) {
  .filters:not(.compact-filters) > .filter-actions { margin-left: 0; }
  .page-heading { grid-template-columns: minmax(0, 1fr); align-items: start; }
  .page-heading > .actions { justify-content: flex-start; width: 100%; }
  .section-heading { align-items: flex-start; }
  .danger-zone { grid-template-columns: minmax(0, 1fr); align-items: stretch; }
  .danger-zone > h2 + .audit-delete-form { grid-column: auto; }
  .danger-zone > .audit-delete-form { max-width: 560px; }
}

@media (max-width: 600px) {
  :root { --control-height: 44px; }
  .page-heading > .actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .page-heading > .actions > *,
  .page-heading > .actions .button,
  .page-heading > .actions button { width: 100%; }
  .page-heading > .actions > form { display: contents; }
  .audit-delete-form { align-items: stretch; flex-direction: column; }
  .audit-delete-form input:not([type="hidden"]) { min-width: 0; }
  .danger-zone > .audit-delete-form { display: grid; }
  .preventive-item footer .actions { align-items: flex-start; }
  .preventive-item footer .audit-delete-form { width: 100%; }
  .attachment-document-list .actions form { align-items: stretch; flex-direction: column; }
}

@media (max-width: 480px) {
  .audit-filters { grid-template-columns: minmax(0, 1fr); }
}

/* Estoque e farmácia */
.stats-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  margin-bottom: 24px;
}
.stats-grid article {
  display: flex;
  flex-direction: column;
  gap: 5px;
  min-width: 0;
  padding: 20px;
  border: 1px solid #dce5e8;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 3px 14px #173b3b0b;
}
.stats-grid article.attention { border-color: #e7c979; background: #fffbf0; }
.stats-grid span { color: #65777f; font-size: .84rem; font-weight: 700; }
.stats-grid strong { color: #0d786f; font-size: 1.65rem; line-height: 1.2; }
.inventory-dashboard-grid,
.inventory-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}
.inventory-dashboard-grid > .card,
.inventory-form-grid > .card { min-width: 0; }
.stock-status,
.purchase-status,
.count-status {
  display: inline-flex;
  width: max-content;
  padding: .28rem .62rem;
  border-radius: 999px;
  background: #edf1f3;
  color: #465b64;
  font-size: .76rem;
  font-weight: 800;
  white-space: nowrap;
}
.stock-status.ok,
.purchase-status.received,
.count-status.completed { background: #e5f7ef; color: #176045; }
.stock-status.low,
.stock-status.expiring,
.purchase-status.ordered,
.purchase-status.partially_received,
.count-status.draft { background: #fff3d9; color: #7a5500; }
.stock-status.expired,
.purchase-status.cancelled,
.count-status.cancelled { background: #fff0ef; color: #8d211a; }
.stock-quantity { font-weight: 800; }
.stock-quantity.positive { color: #176045; }
.stock-quantity.negative { color: #8d211a; }
.inline-stock-adjustment,
.purchase-line,
.dispensing-list article,
.dispensing-list form {
  display: flex;
  align-items: center;
  gap: 9px;
}
.inline-stock-adjustment input,
.purchase-line input,
.purchase-line select,
.dispensing-list input,
.dispensing-list select,
table input {
  min-width: 0;
  min-height: var(--control-height);
  padding: 8px 10px;
  border: 1px solid #bccbd0;
  border-radius: 7px;
  background: #fff;
  font: inherit;
}
.inline-stock-adjustment input[type="number"] { width: 105px; }
.inline-stock-adjustment input[name="reason"] { width: 180px; }
.purchase-lines { display: grid; gap: 10px; }
.purchase-line { display: grid; grid-template-columns: minmax(220px, 1fr) 160px 160px; }
.purchase-line select,
.purchase-line input { width: 100%; }
.dispensing-list { display: grid; gap: 12px; }
.dispensing-list article {
  justify-content: space-between;
  padding: 14px;
  border: 1px solid #dce5e8;
  border-radius: 10px;
}
.dispensing-list article > div { display: flex; flex-direction: column; min-width: 180px; }
.dispensing-list small { color: #687b83; }
.dispensing-list select { max-width: 340px; }
.dispensing-list input { width: 125px; }

@media (max-width: 900px) {
  .stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .inventory-dashboard-grid,
  .inventory-form-grid { grid-template-columns: minmax(0, 1fr); }
  .dispensing-list article { align-items: stretch; flex-direction: column; }
  .dispensing-list form { flex-wrap: wrap; }
  .dispensing-list select { max-width: none; flex: 1 1 280px; }
}

@media (max-width: 760px) {
  .inline-stock-adjustment { align-items: stretch; flex-direction: column; }
  .inline-stock-adjustment input[type="number"],
  .inline-stock-adjustment input[name="reason"],
  .inline-stock-adjustment button { width: 100%; }
  .purchase-line { grid-template-columns: minmax(0, 1fr); padding: 12px; border: 1px solid #dce5e8; border-radius: 9px; }
  .table-wrap td input { width: 100%; }
}

@media (max-width: 480px) {
  .stats-grid { grid-template-columns: minmax(0, 1fr); }
  .dispensing-list form { align-items: stretch; flex-direction: column; }
  .dispensing-list input,
  .dispensing-list button { width: 100%; }
}
