:root{--ink:#243c36;--muted:#71817a;--green:#245c47;--bg:#f6f7f2;--line:#e5e9e1;--red:#a34438}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.55 'Segoe UI',Arial,sans-serif}a{color:var(--green);text-decoration:none;font-weight:600}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}button{cursor:pointer}.skip{position:absolute;top:-100px}.skip:focus{top:0;z-index:10;background:white;padding:15px}.sidebar{width:238px;position:fixed;inset:0 auto 0 0;padding:32px 22px;background:#183d30;color:#fff;display:flex;flex-direction:column}.brand{display:flex;align-items:center;font-size:29px;letter-spacing:-1.3px;font-weight:750;color:inherit}.brand-icon{font-size:20px;border:1px solid #6d8d74;border-radius:11px;padding:1px 10px;margin-right:9px}.brand-dot{color:#d1e4a6}.nav-label{font-size:10px;letter-spacing:1.7px;color:#a7bcaf;margin:48px 10px 15px}.sidebar nav{display:grid;gap:7px}.sidebar nav a{color:#c7d6cb;font-size:18px;display:flex;gap:15px;padding:12px 14px;border-radius:8px}.sidebar nav a span{font-size:14px}.sidebar nav a.active{background:#dceaba;color:#213e30}.sidebar nav a:hover{background:#335746;text-decoration:none;color:white}.sidebar-bottom{margin-top:auto;padding:24px 10px 0;color:#a7bcaf;font-size:13px}.sidebar-bottom a{display:block;color:#dceaba;font-size:12px;margin:10px 0}.logout{border:0;background:none;color:#d7e2d9;padding:10px 0}.main{margin-left:238px;padding:0 42px 25px;max-width:1800px}.topbar{height:84px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);font-size:10px;letter-spacing:1.5px;color:var(--muted)}.user{font-size:12px;letter-spacing:0}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:35px 0 25px}.eyebrow{text-transform:uppercase;letter-spacing:2px;font-size:10px;font-weight:750;color:var(--green);margin:0 0 9px}h1{font-size:35px;line-height:1.2;letter-spacing:-1.1px;margin:0 0 12px;font-weight:650}h2{font-size:19px;margin:0;font-weight:650}p{margin:8px 0 14px}.muted{color:var(--muted)}.small,small{font-size:12px}.button{display:inline-flex;justify-content:center;align-items:center;border:1px solid var(--green);background:var(--green);color:white;padding:11px 18px;border-radius:7px;font-weight:600;font-size:13px;white-space:nowrap}.button:hover{background:#153e2d;color:white;text-decoration:none}.secondary{background:transparent;color:var(--green);border-color:#cbd7cb}.period{display:flex;justify-content:space-between;color:var(--muted);font-size:12px;margin-bottom:15px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:26px}.metric{background:white;border:1px solid var(--line);border-radius:12px;padding:23px}.metric p{font-size:12px;margin:0 0 13px}.metric strong{font-size:27px;letter-spacing:-1px;display:block;white-space:nowrap}.metric small{display:block;color:var(--muted);margin-top:13px;font-size:11px}.featured{background:#e5eed1;border-color:#dbe6c2}.featured strong{color:#234d35}.panel{background:white;border:1px solid var(--line);border-radius:12px;margin-bottom:24px;overflow:hidden}.panel-heading{padding:22px 24px;display:flex;justify-content:space-between;align-items:center;gap:16px}.panel-heading a{font-size:12px}.panel-heading p{margin-bottom:0}.dashboard-grid{display:grid;grid-template-columns:1fr 310px;gap:24px}.quick{padding:28px;background:#edf0e7;display:flex;flex-direction:column;gap:12px}.quick h2{font-size:27px;line-height:1.25}.quick>a:last-child{font-size:12px;margin-top:5px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;color:var(--muted);background:#fafbf8;font-weight:600;font-size:11px}th,td{padding:15px 22px;border-bottom:1px solid var(--line)}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fafbf8}.number{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.cell-sub{display:block;color:var(--muted);margin-top:4px;font-size:11px}.badge{display:inline-block;background:#edf3e4;color:#466434;border-radius:20px;padding:4px 10px;font-size:10px}.off{background:#f3ece7;color:#865d4f}.empty{text-align:center;padding:45px;color:var(--muted)}.filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px;margin-bottom:24px;padding:20px;background:white;border:1px solid var(--line);border-radius:10px}.filters>.field{flex:1;min-width:150px;margin:0}.filters>a{padding:10px;font-size:12px}.field{margin:0 0 21px}.field label,form p label{display:block;font-size:13px;font-weight:600;margin-bottom:7px}input:not([type=checkbox]):not([type=hidden]),select,textarea{display:block;width:100%;padding:10px 12px;border:1px solid #cfd7cd;border-radius:6px;background:#fff;color:var(--ink)}input[type=checkbox]{width:20px;height:20px;accent-color:var(--green)}textarea{resize:vertical}.narrow{max-width:700px;padding:28px}.form-actions{display:flex;gap:20px;align-items:center;border-top:1px solid var(--line);padding-top:22px}.form-actions a{font-size:13px}.errorlist{padding:10px 15px;list-style:none;background:#fff0eb;color:#9d3027;border-radius:5px;font-size:13px}.invalid input{border-color:#bd6656!important}.notice{padding:14px 20px;margin:20px 0;background:#e8efde;border-left:3px solid var(--green);border-radius:5px}.danger{color:var(--red);font-size:12px}.actions{display:flex;align-items:center;gap:15px}.actions-cell{vertical-align:middle}.actions a{white-space:nowrap}.cancelled td{color:#849087}.pagination{padding:18px;display:flex;gap:25px;justify-content:center;font-size:12px}tfoot{font-weight:650;background:#eef2e8}footer{display:flex;justify-content:space-between;margin-top:36px;padding-top:20px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}.login-layout{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.login-story{background:#183d30;color:#eef5e6;padding:55px 65px;display:flex;flex-direction:column;justify-content:space-between}.login-story .eyebrow{color:#bed294}.login-story h1{font-size:66px;letter-spacing:-3px}.login-story p:not(.eyebrow){color:#b8ccbb;font-size:19px}.login-story small{letter-spacing:2px;font-size:9px}.login-form{max-width:440px;width:100%;margin:auto;padding:35px}.login-form h2{font-size:30px;letter-spacing:-1px}.login-form form{margin:30px 0}.wide{width:100%}.public{min-height:100vh}
@media(min-width:1550px){.main{padding-left:60px;padding-right:60px}.metric strong{font-size:33px}}
@media(max-width:1150px){.metrics{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.quick{display:none}.main{padding:0 24px 24px}.sidebar{width:205px}.main{margin-left:205px}}
@media(max-width:720px){.sidebar{position:static;width:100%;padding:16px}.sidebar .brand{font-size:24px}.nav-label,.sidebar-bottom p{display:none}.sidebar nav{display:flex;overflow:auto;margin-top:15px;gap:5px}.sidebar nav a{font-size:0;padding:9px 10px;gap:0;white-space:nowrap}.sidebar nav a span{font-size:12px}.sidebar-bottom{padding:0;display:flex;gap:16px;align-items:center}.sidebar-bottom a{font-size:10px}.sidebar-bottom form{margin-left:auto}.main{margin:0;padding:0 16px 20px}.topbar{height:55px}.topbar>span:first-child{font-size:8px;letter-spacing:.5px}.page-heading{align-items:flex-start;margin-top:25px}.page-heading h1{font-size:28px}.page-heading .button{padding:10px}.metrics{gap:10px}.metric{padding:17px}.metric strong{font-size:23px}.period{display:block}.period span{display:block}.panel-heading{padding:17px;align-items:flex-start}.panel-heading h2{font-size:17px}.panel-heading>span{font-size:11px}.login-layout{grid-template-columns:1fr}.login-story{padding:25px;min-height:260px}.login-story h1{font-size:42px}.login-story .brand{margin-bottom:25px}.login-story small,.login-story p:not(.eyebrow){display:none}.narrow{padding:20px}.filters{padding:15px}footer span{display:none}th,td{padding:13px 16px}}
@media print{body{background:white;font-size:11px}.sidebar,.topbar,footer,.print-button,.filters button,.skip{display:none!important}.main{margin:0;padding:0;max-width:none}.panel{border:0;border-radius:0}.table-wrap{overflow:visible}.filters{border:0;padding:0}.page-heading{margin:0 0 12px}h1{font-size:25px}th,td{padding:8px;border-bottom:1px solid #ddd}.panel-heading{padding:10px 0}thead{display:table-header-group}tr{break-inside:avoid}input,select{border:0!important}}
/* Acabamento visual: sem downloads de fontes ou bibliotecas externas. */
:root{--muted:#5f7168}
body{-webkit-font-smoothing:antialiased}
.sidebar{background:linear-gradient(165deg,#204c3a 0%,#16382b 70%);box-shadow:3px 0 18px #16382b08}
.main{background:radial-gradient(ellipse at 95% 0%,#eaf0e1 0,transparent 45%)}
.metric,.panel{box-shadow:0 3px 15px #243c3604}
.button{transition:background .16s,box-shadow .16s,transform .16s}
.button:hover{box-shadow:0 5px 14px #183d3020;transform:translateY(-1px)}
input:focus,select:focus,textarea:focus{outline:2px solid #8ba975;border-color:#245c47}
.login-layout{background:#f8f9f4}
.login-story{position:relative;overflow:hidden;background:radial-gradient(circle at 0% 10%,#365f44 0,transparent 50%),linear-gradient(145deg,#244b36,#142f26)}
.login-story>*{position:relative;z-index:1}
.login-story:before{content:'';position:absolute;width:480px;height:480px;border:1px solid #d7e8b52b;border-radius:50%;right:-245px;bottom:-80px;box-shadow:0 0 0 42px #d7e8b508,0 0 0 85px #d7e8b506,0 0 0 130px #d7e8b504}
.login-story:after{content:'';position:absolute;width:200px;height:200px;border-radius:50%;top:20%;right:-90px;background:#c7da9a08}
.login-story h1{font-family:Georgia,'Times New Roman',serif;font-weight:400;line-height:1.08;letter-spacing:-2px}
.login-form{max-width:465px;padding:45px}
.login-form input{padding:13px 14px;background:#ffffffc9}
.login-form .button{padding:14px;margin-top:8px}
.login-form .small{border-top:1px solid var(--line);padding-top:20px;line-height:1.7}
.metric p{font-weight:600}.metric strong{font-weight:650}
.featured{background:linear-gradient(120deg,#e5eed1,#dce9c0)}
.badge{font-weight:600;letter-spacing:.1px}
.narrow .field{max-width:580px}
@media(max-width:720px){.login-form{padding:30px 25px}.login-story:before{width:250px;height:250px;right:-150px;bottom:-150px}.login-story h1{font-size:43px}.login-story{min-height:280px}.form-actions{flex-wrap:wrap}.metrics .metric strong{font-size:clamp(18px,5.5vw,25px)}}
@media(prefers-reduced-motion:reduce){.button{transition:none}.button:hover{transform:none}}
@media print{.main{background:white}.panel,.metric{box-shadow:none}}

/* Marca oficial: preserve a proporção e as cores do arquivo original. */
.brand-logo{display:block;max-width:100%;height:auto;object-fit:contain;border-radius:50%;background:#fff}
.sidebar>.brand{justify-content:center;margin-bottom:28px;flex-shrink:0}
.sidebar .brand-logo{width:160px}
.login-story .brand-logo{width:230px}
@media(max-width:720px){.sidebar>.brand{justify-content:flex-start;margin-bottom:12px}.sidebar .brand-logo{width:90px}.login-story .brand-logo{width:140px}.login-story .brand{margin-bottom:20px}}

/* Listagens com altura limitada; relatórios continuam livres. */
.table-scroll {
    /* Cerca de 10–12 linhas usuais; observações longas podem ocupar mais espaço. */
    max-height: 44rem;
    overflow: auto;
    scrollbar-width: thin;
    scrollbar-color: #8a9f91 #f3f5ef;
}
.table-scroll thead th {
    position: sticky;
    top: 0;
    z-index: 1;
    background: #fafbf8;
    box-shadow: inset 0 -1px var(--line);
}
.table-scroll:focus-visible {
    outline: 2px solid var(--green);
    outline-offset: -2px;
}
/* Evita que o cartão de atalhos estique junto da tabela. */
.dashboard-grid { align-items: start; }
@media print {
    .table-scroll { max-height: none; overflow: visible; }
    .table-scroll thead th { position: static; }
}

/* Diferencia recebimentos no extrato, mantendo a identificação textual. */
tbody tr.linha-pagamento { background-color: #edf7ee; }
tbody tr.linha-pagamento:hover { background-color: #e2f1e4; }

.cliente-id-relatorio { opacity: 0.6; margin-left: 0.25rem; }

/* Seletores pesquisáveis. A lista fica fora dos painéis para não ser cortada. */
.search-select { position: relative; min-width: 0; }
.search-select input { padding-right: 42px !important; }
.search-select-toggle {
    position: absolute; right: 1px; top: 1px; bottom: 1px; width: 38px;
    border: 0; border-radius: 0 6px 6px 0; background: transparent; color: var(--green);
}
.search-select-popup {
    position: fixed; z-index: 1000; overflow-y: auto; overscroll-behavior: contain;
    max-height: 300px; padding: 5px; background: white; color: var(--ink);
    border: 1px solid #cfd7cd; border-radius: 8px; box-shadow: 0 8px 24px #183d3020;
    scrollbar-width: thin; scrollbar-color: #8a9f91 #f3f5ef;
}
.search-select-popup[hidden], select[hidden] { display: none !important; }
.search-select-option { padding: 9px 12px; border-radius: 4px; cursor: pointer; overflow-wrap: anywhere; }
.search-select-option[aria-selected="true"] { background: #edf3e4; font-weight: 600; }
.search-select-option:hover, .search-select-option.highlighted { background: #dfead7; }
.search-select-empty { padding: 12px; color: var(--muted); }
@media print { .search-select-toggle, .search-select-popup { display: none !important; } }

/* Data brasileira com botão de calendário independente da região do navegador. */
.date-control { position: relative; }
.date-control > input[data-date-br] { padding-right: 44px; }
.date-calendar-button {
    position: absolute; right: 1px; top: 1px; height: 42px; width: 40px;
    display: flex; align-items: center; justify-content: center;
    border: 0; border-radius: 0 6px 6px 0; color: var(--green); background: transparent;
}
.date-calendar-button:hover { background: #edf3e4; }
.date-control > input.date-native-picker {
    position: absolute; right: 0; top: 0; width: 1px; height: 1px;
    opacity: 0; padding: 0; border: 0; pointer-events: none;
}
.date-control > input.date-native-fallback {
    position: static; width: 100%; height: auto; opacity: 1; padding: 10px 12px;
    border: 1px solid #cfd7cd; pointer-events: auto; margin-top: 6px;
}
@media print { .date-calendar-button, .date-native-picker { display: none !important; } }

.report-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 24px}
.report-tabs a{padding:9px 13px;border:1px solid var(--line);border-radius:7px;background:white;font-size:12px}
.report-tabs a[aria-current=page]{background:var(--green);color:white;border-color:var(--green)}
.report-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:20px}
.report-analysis td{font-variant-numeric:tabular-nums}
@media print{.report-tabs{display:none}.report-metrics .metric{padding:10px}.report-metrics .metric strong{font-size:20px}}
