@charset "UTF-8";
:root{--ink:#17302c;--muted:#657570;--green:#127667;--green-dark:#09584d;--green-light:#e8f4ee;--line:#dfe8e3;--paper:#fff;--background:#f4f7f4;--danger:#b33d3d;--shadow:0 4px 20px #17302c06;font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--background);font-size:14px;font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}a{color:var(--green)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #72b8aa;outline-offset:2px}input,select{min-width:0;max-width:100%;width:100%;height:40px;border:1px solid #ccd9d2;border-radius:8px;background:white;color:var(--ink);padding:8px 11px}input[type=color]{width:54px;padding:4px}input[type=checkbox]{width:17px;height:17px;accent-color:var(--green)}input:focus,select:focus{border-color:var(--green)}input::placeholder{color:#929d98}label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:650;color:#425c52}h1,h2,h3,p{margin:0}h1{font-size:25px;font-weight:650;letter-spacing:-.8px}h2{font-size:16px;font-weight:650;letter-spacing:-.25px}h3{font-size:14px;font-weight:650}small,.small{font-size:12px}svg.icon{width:19px;height:19px;stroke:currentColor;stroke-width:1.7;fill:none;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}button .icon{width:17px;height:17px}.muted{color:var(--muted)}.mono{font-variant-numeric:tabular-nums}.nowrap{white-space:nowrap}.hidden{display:none!important}.skip-link{position:absolute;left:20px;top:-60px;z-index:100;background:white;padding:12px}.skip-link:focus{top:10px}.boot{min-height:100vh;display:grid;place-content:center;justify-items:center;gap:20px}.brand-mark{display:inline-grid;place-content:center;width:36px;height:36px;border-radius:10px;color:white;background:var(--green);font-weight:550;font-size:31px;line-height:1}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px 14px;min-height:38px;border:1px solid var(--line);border-radius:8px;background:white;color:var(--ink);font-weight:600;font-size:12px;text-decoration:none;white-space:nowrap}.btn:hover{background:#f0f5f2;border-color:#bad0c4}.btn.primary{background:var(--green);color:#fff;border-color:var(--green)}.btn.primary:hover{background:var(--green-dark)}.btn.soft{color:var(--green);background:var(--green-light);border-color:transparent}.btn.danger{color:var(--danger);border-color:#eecaca}.btn.danger:hover{background:#fff1f1}.btn.icon-only{padding:8px;min-width:35px;min-height:35px}.btn.tiny{padding:5px 9px;min-height:29px;font-size:11px}.btn.ghost{background:transparent;border-color:transparent}.button-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.button-row.end{justify-content:flex-end}.pill{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;font-size:11px;border-radius:20px;padding:4px 9px;color:#376551;background:#edf5ef;font-weight:600}.pill.neutral{background:#f0f2f1;color:#758078}.pill.warning{color:#915916;background:#fff4df}.pill .dot{width:6px;height:6px;border-radius:50%;background:currentColor}.tag{font-size:11px;font-weight:600;color:#738578;letter-spacing:1.4px;text-transform:uppercase}.hint{font-size:12px;color:var(--muted);line-height:1.5}.notice{background:#eef6f1;border:1px solid #dceae1;border-radius:8px;padding:11px 14px;line-height:1.5;font-size:12px}.error{color:#9b2929;background:#fff0f0;border:1px solid #efd4d4;border-radius:8px;padding:11px 13px;font-size:13px;line-height:1.5}.error:empty{display:none}
/* Navegação compacta */
.shell{display:grid;grid-template-columns:214px minmax(0,1fr);min-height:100vh}.sidebar{background:#fff;border-right:1px solid var(--line);padding:24px 16px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:30px}.brand{display:flex;align-items:center;gap:10px;padding:0 8px}.brand strong{display:block;font-size:18px;font-weight:700;letter-spacing:-.5px}.brand small{color:var(--muted);display:block;font-size:10px;margin-top:2px;letter-spacing:.45px}.nav{display:flex;flex-direction:column;gap:6px}.nav button{display:flex;align-items:center;gap:11px;text-align:left;padding:12px 13px;background:transparent;color:var(--muted);border:0;border-radius:8px;font-size:13px;font-weight:550}.nav button.active{color:var(--green-dark);background:var(--green-light);font-weight:650}.nav button:hover{background:#f0f6f2}.sidebar-bottom{margin-top:auto;padding:15px 8px 0;border-top:1px solid var(--line);display:grid;gap:14px}.clinic-label{font-size:12px;line-height:1.4;overflow-wrap:anywhere}.sidebar-bottom .btn{justify-content:flex-start;padding-left:0}.version{font-size:10px;color:#8a9790}.workspace{min-width:0}.topbar{height:53px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 30px;border-bottom:1px solid var(--line);background:#fafcf9;font-size:12px}.topbar-left{display:flex;align-items:center;gap:9px;min-width:0;color:#5e766a}.topbar-left span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.connection{font-size:11px;white-space:nowrap;display:flex;align-items:center;gap:6px;color:var(--muted)}.connection i{display:block;width:6px;height:6px;background:#509a73;border-radius:100%}.connection.offline{color:#a16920}.connection.offline i{background:#c38124}main{padding:25px 30px 35px;max-width:1720px;margin:auto}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:22px}.page-heading p{font-size:12px;color:var(--muted);margin-top:6px;line-height:1.4}.card{background:var(--paper);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);overflow:hidden}.card-pad{padding:21px}.card-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:17px}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:18px}.stat{padding:17px 19px;display:flex;justify-content:space-between;align-items:center;gap:12px}.stat-label{font-size:12px;color:var(--muted);font-weight:500}.stat strong{display:block;font-size:28px;letter-spacing:-1px;font-weight:650;margin-top:8px;font-variant-numeric:tabular-nums}.stat-icon{display:grid;place-content:center;width:41px;height:41px;border-radius:11px;background:#f0f5f1;color:#628676}.stat:first-child .stat-icon{background:#e8f4ee;color:var(--green)}.stat-detail{font-size:11px;color:#8a9690;margin-top:4px}
/* Registo e listas */
.entry-card{border-left:3px solid var(--green);margin-bottom:22px;padding:19px 22px}.entry-grid{display:grid;grid-template-columns:155px minmax(175px,1.5fr) 116px minmax(145px,1fr) auto;gap:13px;align-items:end}.entry-grid .btn.primary{height:40px;padding:8px 19px}.field-with-action{display:flex;gap:7px}.field-with-action select{flex:1;width:50px}.age-help{margin-top:12px}.entry-card .error{margin-top:13px}.list-panel .panel-top{padding:18px 20px 14px;display:flex;justify-content:space-between;align-items:center;gap:10px}.filters{padding:0 20px 16px;display:grid;grid-template-columns:130px 130px minmax(125px,1fr) minmax(105px,.8fr) auto auto;gap:10px;align-items:end}.filters input,.filters select{height:35px;padding:6px 9px;font-size:12px}.filters .btn{min-height:35px}.date-range{display:flex;gap:8px;align-items:end}.quick-dates{display:flex;gap:5px;flex-wrap:wrap}.quick-dates button{border:0;background:transparent;padding:6px 8px;border-radius:5px;font-size:11px;font-weight:550;color:var(--muted)}.quick-dates button:hover,.quick-dates button.selected{background:var(--green-light);color:var(--green-dark)}.table-wrap{max-width:100%;overflow:auto;scrollbar-gutter:stable}.table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}.table th{font-size:10px;letter-spacing:.7px;text-transform:uppercase;font-weight:650;background:#f7f9f6;color:#778479;padding:11px 16px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);white-space:nowrap}.table td{padding:12px 16px;border-bottom:1px solid #eef2ee;vertical-align:middle}.table tbody tr:last-child td{border-bottom:0}.table tbody tr:hover{background:#fcfdfb}.table .numeric{text-align:right;font-variant-numeric:tabular-nums}.table tfoot td{font-weight:700;background:#f0f6f0;border-top:1px solid var(--line)}.table .actions{width:86px;text-align:right;white-space:nowrap}.row-action{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:0;border-radius:5px;padding:6px;color:#6a8273}.row-action:hover{background:#eaf3ec;color:var(--green)}.row-action.delete:hover{background:#fff0f0;color:var(--danger)}.row-action .icon{width:16px;height:16px}.service-dot{display:inline-block;width:7px;height:7px;min-width:7px;border-radius:100%;margin-right:8px}.service-name{font-weight:550}.record-number{font-size:10px;color:#8c9b92;margin-top:4px}.empty{padding:40px 24px;text-align:center;color:var(--muted)}.empty .empty-icon{display:inline-flex;padding:12px;border-radius:14px;background:#f1f6f1;color:#7a9a85;margin-bottom:12px}.empty strong{display:block;color:#405f4e;font-size:14px;font-weight:600}.empty p{font-size:12px;line-height:1.5;margin:8px auto 16px;max-width:400px}.pagination{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;border-top:1px solid var(--line);font-size:11px;color:var(--muted);gap:10px}.skeleton{padding:40px;color:var(--muted);text-align:center}.footnote{font-size:11px;color:#87968b;margin-top:14px;line-height:1.5}
/* Relatórios */
.report-filters{padding:16px 19px;margin-bottom:18px}.report-filters .quick-dates{margin-bottom:15px}.report-filter-grid{display:grid;grid-template-columns:128px 128px minmax(150px,1.3fr) minmax(120px,1fr) minmax(130px,1fr) 74px 74px auto;gap:9px;align-items:end}.report-filter-grid input,.report-filter-grid select{height:37px;font-size:12px;padding:7px 8px}.report-filter-grid .btn{min-height:37px}.report-filters .error{margin-top:12px}.report-info{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;font-size:11px;color:var(--muted);line-height:1.6}.report-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:18px;margin-bottom:18px}.report-grid .card{min-width:0}.chart-card{padding:20px}.bar-list{display:grid;gap:15px}.bar-row{display:grid;grid-template-columns:minmax(90px,1fr) minmax(90px,1.8fr) 42px;gap:12px;align-items:center;font-size:12px}.bar-row .bar-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-track{height:9px;background:#edf3ee;border-radius:20px;overflow:hidden}.bar-fill{height:100%;border-radius:20px;background:var(--green);min-width:0}.bar-value{text-align:right;font-weight:650;font-variant-numeric:tabular-nums}.sex-legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin-bottom:18px}.sex-item{display:flex;justify-content:space-between;align-items:center;font-size:12px;gap:9px}.sex-item strong{font-size:15px;font-weight:650}.sex-bar{display:flex;height:14px;border-radius:10px;overflow:hidden;background:#edf3ee}.sex-bar div{height:100%}.sex-caption{margin-top:14px;font-size:11px;color:var(--muted);line-height:1.6}.section-title{padding:18px 20px 15px;display:flex;justify-content:space-between;align-items:center;gap:12px}.report-tables{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}.matrix-panel{margin-bottom:18px}.matrix-panel .table{min-width:650px}.matrix-panel .table th{white-space:normal;font-size:9px;line-height:1.4;letter-spacing:.3px}.matrix-panel .table td{padding:12px}.report-grid .table td,.report-tables .table td{padding:11px 14px}.report-grid .table th,.report-tables .table th{padding:10px 14px}.report-trend{padding:0 20px 20px}.trend-bars{height:130px;display:flex;gap:5px;align-items:end;border-bottom:1px solid var(--line);padding:10px 0 0}.trend-column{flex:1;min-width:3px;max-width:70px;display:flex;justify-content:center;height:100%;align-items:end}.trend-column span{display:block;width:75%;min-width:3px;background:#7eaa94;border-radius:4px 4px 0 0}.trend-labels{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin-top:8px}.report-period-list{max-height:360px;overflow:auto}.total-accent{font-weight:700;color:var(--green-dark)}
/* Serviços e definições */
.services-summary{display:flex;gap:12px;align-items:center;font-size:12px;color:var(--muted);margin-bottom:16px}.settings-grid{display:grid;grid-template-columns:minmax(260px,.85fr) minmax(420px,1.4fr);gap:20px;align-items:start}.settings-stack{display:grid;gap:18px}.form-stack{display:grid;gap:16px}.bands-editor{display:grid;gap:8px}.band-editor-row{display:grid;grid-template-columns:minmax(140px,1fr) 72px 72px 34px;gap:8px;align-items:center}.band-editor-row input{height:35px;font-size:12px;padding:7px}.band-editor-head{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.settings-save{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}.settings-save .hint{max-width:650px}.backup-card p{margin:11px 0 15px}.definition-note{background:#f7f9f5;padding:12px;border-radius:7px;font-size:11px;line-height:1.7;color:var(--muted);margin-top:15px}
/* Acesso e caixas de diálogo */
.auth{min-height:100vh;display:grid;grid-template-columns:minmax(280px,.85fr) minmax(360px,1fr);background:#fff}.auth-art{background:#e7f0e8;padding:9vh 10%;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}.auth-art:before,.auth-art:after{content:"";position:absolute;border:1px solid #ceddd0;border-radius:50%;width:490px;height:490px;bottom:-300px;right:-180px}.auth-art:after{width:650px;height:650px;bottom:-380px;right:-230px}.auth-art h1{font-size:40px;line-height:1.12;letter-spacing:-1.8px;margin-top:34px;max-width:380px;color:#235e49}.auth-art p{font-size:14px;line-height:1.75;margin-top:20px;max-width:340px;color:#658270}.auth-art .tag{margin-top:26px;color:#6f8e7a;font-size:10px}.auth-content{display:flex;align-items:center;justify-content:center;padding:36px}.auth-form{width:100%;max-width:370px}.auth-form h2{font-size:25px;margin:14px 0 12px}.auth-form>p{color:var(--muted);font-size:13px;line-height:1.65;margin-bottom:25px}.auth-form .btn.primary{width:100%;margin-top:17px;height:43px}.auth-form .error{margin-top:15px}.auth-foot{font-size:11px;color:#8a978c;line-height:1.6;margin-top:23px}.setup-list{padding:14px 17px;background:#f6f8f4;border:1px solid var(--line);border-radius:9px;font-size:12px;line-height:1.6;display:grid;gap:12px;margin:20px 0}.setup-line{display:flex;align-items:flex-start;gap:9px}.setup-line b{font-weight:650}.setup-bullet{font-weight:700;color:#af7632;width:14px;flex-shrink:0}.setup-bullet.ready{color:var(--green)}code{font-size:.94em;background:#eef3ee;padding:2px 4px;border-radius:3px}dialog{border:1px solid var(--line);border-radius:14px;box-shadow:0 25px 90px #17302c35;padding:0;width:min(510px,calc(100% - 28px));max-height:90vh;color:var(--ink);overflow:auto}dialog::backdrop{background:#17302c65;backdrop-filter:blur(2px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;padding:21px 23px 17px;border-bottom:1px solid var(--line)}.dialog-content{padding:21px 23px}.dialog-content p{font-size:13px;line-height:1.65;margin-bottom:16px}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;padding:17px 23px;border-top:1px solid var(--line);background:#fafcf8}.dialog-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.dialog-grid .full{grid-column:1/-1}.dialog-content .error{margin-top:15px}.toasts{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);z-index:50;display:grid;gap:8px;max-width:calc(100% - 30px);pointer-events:none}.toast{padding:13px 20px;border-radius:10px;background:#1a4e3d;color:#fff;font-size:13px;box-shadow:0 10px 35px #0002;line-height:1.5}.toast.bad{background:#963e35}#print-area{display:none}
@media(min-width:1600px){main{padding:30px 40px}.entry-grid{grid-template-columns:180px minmax(220px,1.7fr) 140px minmax(160px,1fr) auto}}
@media(max-width:1250px){.report-filter-grid{grid-template-columns:repeat(4,minmax(100px,1fr))}.report-tables{grid-template-columns:1fr}.entry-grid{grid-template-columns:140px minmax(165px,1.5fr) 98px minmax(132px,1fr)}.entry-grid .btn.primary{grid-column:4;justify-self:stretch}.entry-grid label:last-of-type{grid-column:4;grid-row:1}.filters{grid-template-columns:110px 110px minmax(120px,1fr) minmax(110px,.8fr)}.filters .btn{grid-row:2}.settings-grid{grid-template-columns:1fr}.settings-stack{grid-template-columns:1fr 1fr}.report-grid{grid-template-columns:1fr 1fr}.shell{grid-template-columns:195px minmax(0,1fr)}main{padding:22px}.topbar{padding:0 22px}}
@media(max-width:950px){.shell{grid-template-columns:1fr}.sidebar{position:sticky;top:0;z-index:20;height:auto;border-right:0;border-bottom:1px solid var(--line);padding:10px 18px;display:flex;flex-direction:row;gap:15px;align-items:center}.brand{padding:0}.brand-mark{width:30px;height:30px;font-size:26px;border-radius:8px}.brand strong{font-size:16px}.brand small{display:none}.nav{flex-direction:row;margin-left:auto;gap:3px}.nav button{padding:9px 11px;font-size:12px;gap:7px}.sidebar-bottom{display:none}.topbar{height:43px}.topbar .mobile-logout{display:inline-flex}.report-grid{grid-template-columns:1fr 1fr}.entry-grid{grid-template-columns:135px minmax(150px,1fr) 90px 130px auto}.entry-grid .btn.primary{grid-column:auto}.entry-grid label:last-of-type{grid-column:auto;grid-row:auto}.stat{padding:15px}.stat strong{font-size:26px}.auth-art h1{font-size:34px}.auth-art{padding:50px 30px}}
@media(min-width:951px){.mobile-logout{display:none!important}}
@media(max-width:760px){.entry-grid{grid-template-columns:1fr 1fr}.entry-grid .service-field{grid-column:2;grid-row:1}.entry-grid .btn.primary{grid-column:1/-1}.entry-grid label:last-of-type{grid-column:2}.stats{gap:9px}.stat{padding:14px 12px}.stat-icon{display:none}.stat strong{font-size:24px}.stat-label{font-size:11px}.stat-detail{font-size:10px}.report-grid{grid-template-columns:1fr}.settings-stack{grid-template-columns:1fr}.filters{grid-template-columns:1fr 1fr}.filters .btn{grid-row:auto}.report-filter-grid{grid-template-columns:1fr 1fr}.report-filter-grid>.btn{height:37px}.page-heading{margin-bottom:18px}.page-heading .button-row{justify-content:flex-end}.page-heading .btn{font-size:11px;padding:8px 10px}.topbar{padding:0 17px}.connection span{display:none}.auth{grid-template-columns:1fr}.auth-art{padding:28px 30px}.auth-art h1{font-size:28px;margin-top:20px;max-width:100%}.auth-art p{display:none}.auth-art .tag{margin-top:14px}.auth-content{padding:30px}.auth-form{max-width:460px}.table td,.table th{padding-left:12px;padding-right:12px}.entry-card{padding:17px}.table-records{min-width:580px}.service-table{min-width:600px}.report-info{align-items:flex-start}.band-editor-row{grid-template-columns:minmax(90px,1fr) 63px 63px 30px}}
@media(max-width:520px){.sidebar{padding:9px 10px;gap:9px}.brand strong{display:none}.nav{flex:1;justify-content:space-around}.nav button{font-size:10px;gap:4px;flex-direction:column;padding:5px 7px;min-width:57px}.nav .icon{width:18px;height:18px}.sidebar .brand-mark{width:27px;height:27px;font-size:25px}.topbar{font-size:11px}.topbar-left{max-width:70%}main{padding:20px 13px 30px}h1{font-size:23px}.page-heading{align-items:flex-start}.page-heading>div:first-child{min-width:0}.page-heading .button-row{gap:5px;max-width:48%}.page-heading p{font-size:11px}.entry-card{padding:15px}.entry-card .card-header .pill{font-size:9px;padding:4px 7px}.entry-grid{gap:12px}.card-header{margin-bottom:16px}.list-panel .panel-top,.filters{padding-left:13px;padding-right:13px}.panel-top{flex-wrap:wrap}.stats{margin-bottom:14px}.stat-label{font-size:10px}.stat strong{font-size:25px}.stat-detail{font-size:9px}.report-filters{padding:14px}.report-tables .table th,.report-tables .table td{padding:10px;font-size:10px}.report-tables .table th{font-size:9px}.settings-save{align-items:flex-start;flex-direction:column}.settings-save .btn{width:100%}.card-pad,.chart-card{padding:17px}.auth-content{padding:25px}.sex-legend{gap:13px}.pagination{padding:12px}.table .actions{position:sticky;right:0;background:#fff;box-shadow:-6px 0 12px #fff8}.table th.actions{background:#f7f9f6}input,select{font-size:16px}.entry-grid select{font-size:14px}}
@media print{
  @page{size:A4 portrait;margin:12mm}html,body{background:white;color:#17271e;font-family:Arial,sans-serif;font-size:9pt}#root,#toasts,dialog,.skip-link,noscript{display:none!important}#print-area{display:block!important}.print-header{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:2px solid #127667;padding-bottom:12px;margin-bottom:13px}.print-header h1{font-size:19pt;letter-spacing:-.5px}.print-header p{font-size:9pt;margin-top:5px}.print-meta{font-size:8pt;line-height:1.6;margin-bottom:13px}.print-summary{display:flex;gap:25px;margin:14px 0 20px;font-size:10pt}.print-summary strong{font-size:16pt;display:block;margin-top:4px}.print-section{margin-bottom:17px}.print-section h2{font-size:11pt;margin-bottom:8px;break-after:avoid}.print-table{width:100%;border-collapse:collapse;font-size:8pt;table-layout:auto}.print-table th{background:#eaf1ea!important;font-weight:bold;text-align:left}.print-table th,.print-table td{border:1px solid #d4ded6;padding:5px 6px;overflow-wrap:anywhere}.print-table th:not(:first-child),.print-table td:not(:first-child){text-align:right}.print-table tfoot td{font-weight:bold;background:#f1f5f0!important}.print-table thead{display:table-header-group}.print-table tfoot{display:table-row-group}tr{break-inside:avoid}.print-note{font-size:8pt;line-height:1.5;margin-top:14px;color:#526656}.print-detail h3{margin:14px 0 7px;font-size:10pt;break-after:avoid}.print-detail{break-inside:auto}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}.print-matrix{font-size:7pt}
}
