:root{--color-primary:#a92224;--color-primary-hover:#851b1e;--color-bg:#f7f3ed;--color-surface:#ffffff;--color-text-main:#282626;--color-text-muted:#6b6563;--color-border:#e7ded4;--shadow-sm:0 2px 5px rgb(91 65 45/0.06);--shadow-md:0 12px 30px rgb(91 65 45/0.1);--radius:8px;--font-family:"Inter",system-ui,-apple-system,sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background-color:var(--color-bg);color:var(--color-text-main);line-height:1.5;-webkit-font-smoothing:antialiased}.layout-container{display:flex;min-height:100vh;background:var(--color-bg)}.main-content{flex:1 1;min-width:0;padding:2.4rem clamp(1.25rem,4vw,3.5rem);overflow-y:auto}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1.5rem;border-radius:var(--radius);font-weight:500;cursor:pointer;transition:all .2s;border:none;font-size:.95rem;gap:.5rem}.btn-primary{background-color:var(--color-primary);color:white}.btn-primary:hover{background-color:var(--color-primary-hover)}.card{background-color:var(--color-surface);border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow-sm);border:1px solid var(--color-border)}.input-group{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.input-group label{font-size:.875rem;font-weight:500;color:var(--color-text-main)}.input-field{padding:.75rem;border:1px solid var(--color-border);border-radius:var(--radius);font-size:1rem;outline:none;transition:border-color .2s;width:100%}.input-field:focus{box-shadow:0 0 0 2px rgba(138,28,28,.1)}.table-container{position:relative;width:100%;overflow-x:auto;background:white;border-radius:12px;border:1px solid var(--color-border);box-shadow:var(--shadow-sm)}table{width:100%;border-collapse:collapse;text-align:left}th{background-color:#fbf9f6;padding:.75rem 1rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}td,th{border-bottom:1px solid var(--color-border)}td{padding:1rem;color:var(--color-text-main)}.text-h1{font-size:1.875rem;font-weight:700;color:var(--color-primary);margin-bottom:1.5rem}.text-h2{font-size:1.5rem;font-weight:600;margin-bottom:1rem}.text-muted{color:var(--color-text-muted)}.flex-between{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.badge{padding:4px 8px;border-radius:12px;font-size:.75rem;font-weight:600}.badge-success{background-color:#dcfce7;color:#166534}.badge-warning{background-color:#fef9c3;color:#854d0e}.bg-green-50{background-color:#f0fdf4;color:#166534}.bg-red-50{background-color:#fef2f2;color:#991b1b}.bg-blue-50{background-color:#eff6ff;color:#1d4ed8}.toast-viewport{position:fixed;top:1rem;left:50%;z-index:1000;display:flex;width:min(480px,calc(100vw - 2rem));flex-direction:column;gap:.65rem;transform:translateX(-50%);pointer-events:none}.system-toast{display:flex;align-items:flex-start;gap:.7rem;padding:.9rem 1rem;border:1px solid;border-radius:10px;box-shadow:0 12px 28px rgb(40 38 38/.16);font-size:.9rem;font-weight:600;animation:toast-enter .25s ease both;pointer-events:auto}.system-toast span{flex:1 1}.system-toast-success{border-color:#bbf7d0;background:#f0fdf4;color:#166534}.system-toast-error{border-color:#fecaca;background:#fef2f2;color:#991b1b}.system-toast-warning{border-color:#fed7aa;background:#fff7ed;color:#9a3412}.system-toast-info{border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8}.toast-close{display:grid;flex:0 0 auto;place-items:center;padding:.1rem;border:0;background:transparent;color:currentColor;cursor:pointer;opacity:.7}.toast-close:hover{opacity:1}.confirmation-backdrop{position:fixed;inset:0;z-index:1100;display:grid;place-items:center;padding:1rem;background:rgb(40 38 38/.35)}.confirmation-dialog{width:min(100%,390px);padding:1.5rem;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface);box-shadow:var(--shadow-md);color:var(--color-text-main)}.confirmation-dialog>svg{color:#c2410c}.confirmation-dialog h2{margin-top:.65rem;font-size:1.15rem}.confirmation-dialog p{margin-top:.55rem;color:var(--color-text-muted)}.confirmation-actions{display:flex;justify-content:flex-end;gap:.65rem;margin-top:1.35rem}@keyframes toast-enter{0%{opacity:0;transform:translateY(-.6rem)}to{opacity:1;transform:translateY(0)}}.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(380px,.92fr) minmax(460px,1.08fr);background:#f7f9f8}.login-brand-panel{position:relative;display:flex;flex-direction:column;justify-content:center;min-height:100vh;padding:4rem clamp(3rem,7vw,7rem);overflow:hidden;color:#fff;background:linear-gradient(145deg,#7f171b,#a91f24 53%,#d6413d)}.login-brand-panel:after,.login-brand-panel:before{content:"";position:absolute;border:1px solid rgb(255 255 255/.2);border-radius:50%;pointer-events:none}.login-brand-panel:before{width:31rem;height:31rem;right:-14rem;top:-8rem}.login-brand-panel:after{width:23rem;height:23rem;left:-13rem;bottom:-10rem}.brand-copy,.brand-image,.brand-kicker,.brand-stat{position:relative;z-index:1}.brand-kicker{display:flex;align-items:center;gap:.65rem;margin-bottom:2.8rem;font-size:.76rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;opacity:.8}.brand-kicker span{width:1.7rem;height:2px;background:#ffb2a8}.brand-image{align-self:flex-start;width:min(22rem,75%);height:auto;margin:0 0 1.8rem 1rem;filter:drop-shadow(0 1.5rem 1.3rem rgb(70 0 0/.23))}.brand-copy{max-width:31rem}.brand-eyebrow,.login-overline{margin-bottom:.75rem;color:#ffb2a8;font-size:.75rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.brand-copy h1{margin-bottom:1rem;font-size:clamp(2rem,3.4vw,3.45rem);line-height:1.05;letter-spacing:-.04em}.brand-copy>p:last-child{max-width:24rem;color:rgb(255 255 255/.8);font-size:1.03rem}.brand-stat{display:flex;align-items:baseline;gap:.7rem;margin-top:3rem;color:rgb(255 255 255/.67);font-size:.82rem}.brand-stat strong{color:#fff;font-size:1.3rem}.login-form-area{display:flex;align-items:center;justify-content:flex-end;padding:3rem clamp(2rem,7vw,8rem) 3rem clamp(2rem,6vw,6rem)}.login-card{width:min(100%,29rem);padding:clamp(2rem,4vw,3.4rem);background:#fff;border:1px solid #e8ece9;border-radius:18px;box-shadow:0 1.5rem 4rem rgb(38 58 48/.1);animation:login-reveal .65s ease both}.login-heading{display:flex;align-items:center;gap:1rem;margin-bottom:.8rem}.login-mark{display:grid;width:3rem;height:3rem;place-items:center;border-radius:11px;background:#fff0ef;color:#c6302e;font-size:1.7rem;font-weight:500}.login-heading h2{color:#1d2924;font-size:1.65rem;letter-spacing:-.03em}.login-overline{margin-bottom:.2rem;color:#c6302e;font-size:.68rem}.login-intro{margin-bottom:2rem;color:#5f6b64;font-size:.92rem}.login-input-wrap{display:flex;align-items:center;gap:.65rem;padding:0 .85rem;border:1px solid #dfe6e1;border-radius:9px;color:#9aa7a0;transition:border-color .2s,box-shadow .2s}.login-input-wrap:focus-within{border-color:#c6302e;box-shadow:0 0 0 3px rgb(198 48 46/.1)}.login-input-wrap .input-field{padding:.82rem 0;border:0;box-shadow:none}.login-input-wrap .input-field:focus{border:0;box-shadow:none}.login-submit{display:flex;align-items:center;justify-content:center;gap:.65rem;width:100%;height:3.2rem;margin-top:1.5rem;border:0;border-radius:9px;background:#c6302e;color:#fff;font-size:.95rem;font-weight:700;cursor:pointer;transition:background .2s,transform .2s}.login-submit:hover{background:#a92224;transform:translateY(-1px)}.login-submit:disabled{cursor:wait;opacity:.7;transform:none}.login-error{margin-bottom:1.2rem;padding:.75rem;border:1px solid #fecaca;border-radius:8px;background:#fef2f2;color:#991b1b;font-size:.82rem;text-align:center}.login-footer{display:flex;align-items:center;justify-content:center;gap:.6rem;margin-top:2rem;color:#5f6b64;font-size:.7rem;text-align:center}.login-footer span{width:3px;height:3px;border-radius:50%;background:#cbd5cf}@keyframes login-reveal{0%{opacity:0;transform:translateX(1.2rem)}to{opacity:1;transform:translateX(0)}}.app-sidebar{width:248px;flex:0 0 248px;background:#fbf8f3;border-right:1px solid var(--color-border);display:flex;flex-direction:column;position:-webkit-sticky;position:sticky;top:0;height:100vh}.app-brand{padding:1.8rem 1.5rem;border-bottom:1px solid var(--color-border)}.app-brand h2{color:var(--color-primary);font-size:1.02rem;letter-spacing:-.02em}.app-brand p{margin-top:.35rem;font-size:.72rem;color:var(--color-text-muted)}.app-nav{flex:1 1;padding:1.4rem .85rem}.app-nav ul{list-style:none}.app-nav li{margin-bottom:.35rem}.app-nav a{color:var(--color-text-muted);font-size:.88rem}.app-nav a:hover{background:#f4ebe4!important;color:var(--color-primary)!important}.app-nav a[aria-current=page]{color:var(--color-primary)!important;background:#fff!important;box-shadow:0 3px 12px rgb(91 65 45/.08)}.app-user{padding:1.25rem 1.35rem;border-top:1px solid var(--color-border);background:#f8f3ed}.app-user button{color:var(--color-primary)!important}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:2rem}.page-header .text-h1{margin-bottom:.35rem!important;color:#312d2d;font-size:clamp(1.55rem,2.3vw,2rem);letter-spacing:-.04em}.page-header .text-muted{font-size:.88rem}.btn{border-radius:9px;box-shadow:0 3px 8px rgb(91 65 45/.08)}.btn-primary{background:var(--color-primary)}.btn-primary:hover{background:var(--color-primary-hover)}.input-field{border-color:var(--color-border);background:#fffdfa;border-radius:9px}.input-field:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgb(169 34 36/.1)}.table-container tbody tr{transition:background .2s}.table-container tbody tr:hover{background:#fffaf6}.table-container td,.table-container th{white-space:nowrap}.table-container td.cell-wrap{white-space:normal;min-width:11rem}.table-container .cell-note{display:inline-block;max-width:10rem;white-space:normal;line-height:1.35}.main-content>div>.card{border-radius:12px}.main-content form{color:var(--color-text-main)}.main-content form label{color:#514b49;font-size:.78rem;font-weight:700;letter-spacing:.01em}.main-content form>div[style*=grid-template-columns]{gap:1.15rem!important}.main-content form>div[style*=grid-template-columns]+div{border-color:var(--color-border)!important;background:#fbf9f6!important}.main-content button[title],.main-content td button{transition:color .2s,background .2s}.main-content td button{border-radius:7px!important;padding:.45rem!important}.main-content td button:hover{background:#f8eee8!important}.dashboard-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:1rem;gap:1rem}.stat-card{min-height:176px;padding:1.25rem;transition:transform .2s,box-shadow .2s}.stat-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.stat-icon{display:grid;width:2.6rem;height:2.6rem;place-items:center;border-radius:10px}.dashboard-lower{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,.8fr);grid-gap:1rem;gap:1rem;margin-top:1rem}.panel-title{display:flex;align-items:center;gap:.55rem;margin-bottom:1rem;font-size:1rem;font-weight:700}@media (max-width:1050px){.dashboard-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:760px){.layout-container{display:block}.app-sidebar{width:100%;height:auto;position:relative;border-right:0;border-bottom:1px solid var(--color-border)}.app-brand{padding:1rem 1.25rem}.app-nav{padding:.6rem .75rem;overflow-x:auto}.app-nav ul{display:flex;gap:.35rem;min-width:max-content}.app-nav li{margin:0}.app-nav a{padding:.65rem .75rem!important}.app-user{display:none}.main-content{padding:1.5rem 1rem 2rem}.page-header{align-items:stretch;flex-direction:column;margin-bottom:1.5rem}.page-header .btn{align-self:flex-start}.dashboard-lower,.dashboard-stats{grid-template-columns:1fr}.main-content form>div[style*=grid-template-columns]{grid-template-columns:1fr!important}.main-content form[style*="align-items: flex-end"]{align-items:stretch!important;flex-direction:column}.main-content form[style*="align-items: flex-end"] .input-group{flex:1 1 auto!important;width:100%}.main-content form[style*="align-items: flex-end"] button{width:100%}.table-container{margin-inline:-.1rem}}@media (max-width:800px){.login-page{display:block}.login-brand-panel{min-height:auto;padding:2.5rem 1.5rem 2rem}.brand-kicker{margin-bottom:1.2rem}.brand-image{width:8rem;margin:0 auto .5rem}.brand-copy{text-align:center}.brand-copy h1{font-size:2rem}.brand-copy>p:last-child,.brand-stat{display:none}.login-form-area{justify-content:center;padding:1.5rem}.login-card{padding:2rem 1.5rem}}.btn-secondary{background:var(--color-surface);color:var(--color-text-main);border:1px solid #d6cbc0}.btn-secondary:hover{background:#f4ebe4}.icon-btn{display:inline-grid;place-items:center;padding:.45rem;border:0;border-radius:7px;background:none;color:var(--color-text-muted);cursor:pointer;transition:color .2s,background .2s}.icon-btn:hover{background:#f8eee8}.icon-btn-edit{color:#2563eb}.icon-btn-warning{color:#b45309}.icon-btn-danger{color:#dc2626}.icon-btn-action{color:var(--color-primary)}.row-actions{display:flex;gap:.5rem;justify-content:flex-start}.form-card{margin-bottom:2rem;border-left:4px solid var(--color-primary)}.form-card-editing{border-left-color:#d97706}.form-card-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}.form-card-header h2{display:flex;align-items:center;gap:.55rem;font-size:1.25rem;font-weight:600}.form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:1.15rem;gap:1.15rem}.form-grid-wide{grid-template-columns:2fr 1fr}.form-actions{display:flex;gap:.65rem;margin-top:1.5rem}.form-section{margin-top:1.25rem;padding:1rem;border:1px solid var(--color-border);border-radius:8px;background:#fbf9f6}.form-section h3{margin-bottom:.5rem;font-size:1rem;font-weight:600}.form-section-lgpd{background:#fff7ed;border-color:#fed7aa}.form-section-error{border-color:#dc2626;box-shadow:inset 0 0 0 1px #dc2626}.check-row{display:flex;align-items:center;gap:10px;margin-top:.5rem;font-size:.9rem}.field-error{margin-top:.1rem;color:#b91c1c;font-size:.82rem;font-weight:600}.field-error:before{content:"⚠ "}.field-success{color:#15803d;font-size:.82rem}.field-hint{color:var(--color-text-muted);font-size:.8rem}.input-field.input-error{border-color:#dc2626;background:#fef2f2}.filter-bar{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1.5rem;padding:1rem}.blood-type-chip{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 .4rem;border-radius:999px;background:#fee2e2;color:#991b1b;font-size:.85rem;font-weight:700}.badge-danger{background-color:#fee2e2;color:#991b1b}.badge-neutral{background-color:#f3f4f6;color:#4b5563}.stat-card-link{display:block;height:100%;text-decoration:none;color:inherit}.stat-card-link .stat-card{height:100%}.stat-title{margin-bottom:.25rem;color:var(--color-text-muted);font-size:.875rem}.stat-value{color:var(--color-text-main);font-size:2rem;font-weight:700}.stat-desc{margin-top:.5rem;color:var(--color-text-muted);font-size:.75rem}.notice-card p{margin-top:.5rem;font-size:.9rem;line-height:1.6}.notice-warning{background-color:#fff7ed;border-color:#fed7aa;color:#9a3412}.notice-ok{background-color:#f0fdf4;border-color:#bbf7d0;color:#166534}.notice-list{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.75rem;list-style:none}.notice-list li{display:inline-flex;gap:.35rem;padding:.25rem .6rem;border:1px solid #fed7aa;border-radius:999px;background:#fff;font-size:.82rem}.notice-action{width:100%;margin-top:1rem;font-size:.85rem;text-decoration:none;color:#9a3412;border-color:#fed7aa}@media (max-width:760px){.form-grid,.form-grid-wide{grid-template-columns:1fr}.form-actions{flex-direction:column}.filter-bar .field-hint{margin-left:0!important}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.header-actions{display:flex;flex-wrap:wrap;gap:.65rem}.btn:disabled{cursor:not-allowed;opacity:.55}.link-button{padding:0;border:0;background:none;color:var(--color-primary);font:inherit;font-weight:600;text-decoration:underline;cursor:pointer}.form-card-exit{border-left-color:#1d4ed8}.choice-group{display:grid;grid-template-columns:1fr 1fr;grid-gap:.75rem;gap:.75rem;margin-bottom:1.15rem;padding:0;border:0}.choice-group legend{margin-bottom:.5rem;color:#514b49;font-size:.78rem;font-weight:700}.main-content form label.choice{display:flex;align-items:flex-start;gap:.65rem;padding:.85rem 1rem;border:1px solid var(--color-border);border-radius:9px;background:#fffdfa;color:var(--color-text-main);font-size:.9rem;font-weight:400;cursor:pointer}.main-content form label.choice strong{display:block;font-weight:700}.main-content form label.choice small{display:block;margin-top:.15rem;color:var(--color-text-muted);font-size:.8rem}.main-content form label.choice-selected{border-color:var(--color-primary);background:#fff5f4;box-shadow:0 0 0 1px var(--color-primary) inset}.choice input{margin-top:.2rem}.panel-header{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}.panel-link{color:var(--color-primary);font-size:.85rem;font-weight:600}.movements-card{margin-top:1.5rem}.movements-empty{padding:1.5rem 0;color:var(--color-text-muted);text-align:center}.movements-list{list-style:none;border-top:1px solid var(--color-border)}.movement-item{display:flex;align-items:center;gap:.85rem;padding:.75rem 0;border-bottom:1px solid var(--color-border)}.movement-item:last-child{border-bottom:0}.movement-icon{display:grid;flex:0 0 auto;width:2.1rem;height:2.1rem;place-items:center;border-radius:9px}.movement-in .movement-icon{background:#dcfce7;color:#166534}.movement-out .movement-icon{background:#dbeafe;color:#1d4ed8}.movement-discard .movement-icon{background:#fee2e2;color:#991b1b}.movement-body{flex:1 1;min-width:0;font-size:.9rem}.movement-note{overflow-wrap:anywhere}.movement-note,.movement-time{color:var(--color-text-muted);font-size:.8rem}.movement-time{flex:0 0 auto}.search-bar{display:grid;grid-template-columns:minmax(220px,2fr) minmax(130px,1fr) minmax(150px,1fr) auto;align-items:end;grid-gap:1rem;gap:1rem;margin-bottom:1.25rem;padding:1rem 1.25rem}.search-field{display:flex;flex-direction:column;gap:.35rem}.search-field label{color:#514b49;font-size:.78rem;font-weight:700}.search-input-wrap{display:flex;align-items:center;gap:.5rem;padding-left:.75rem;border:1px solid var(--color-border);border-radius:9px;background:#fffdfa;color:var(--color-text-muted)}.search-input-wrap:focus-within{border-color:var(--color-primary)}.search-input-wrap .input-field{border:0;background:transparent;box-shadow:none}.search-clear{height:46px}.search-result{grid-column:1/-1;color:var(--color-text-muted);font-size:.82rem}@media (max-width:900px){.search-bar{grid-template-columns:1fr 1fr}.search-field:first-child{grid-column:1/-1}}@media (max-width:760px){.choice-group,.search-bar{grid-template-columns:1fr}.header-actions{flex-direction:column;align-items:stretch}}:focus-visible{outline:3px solid #1d4ed8;outline-offset:2px}.input-field:focus-visible{outline:3px solid #1d4ed8;outline-offset:1px}.login-input-wrap .input-field:focus-visible,.search-input-wrap .input-field:focus-visible{outline:none}.login-input-wrap:focus-within,.search-input-wrap:focus-within{outline:3px solid #1d4ed8;outline-offset:1px}.main-content:focus{outline:none}.skip-link{position:absolute;top:.75rem;left:.75rem;z-index:2000;padding:.75rem 1rem;border-radius:8px;background:#1d4ed8;color:#fff;font-weight:700;text-decoration:none;transform:translateY(-200%);transition:transform .15s}.skip-link:focus{transform:translateY(0)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}