*{box-sizing:border-box}
:root{
  --kv-green:#18a957;--kv-green-dark:#108345;--kv-green-deep:#0b5f37;--kv-green-soft:#eaf8f0;
  --kv-graphite:#27313a;--kv-ink:#172129;--kv-text:#4c5963;--kv-muted:#6d7a83;
  --kv-border:#dfe8e3;--kv-bg:#f6f8f7;--kv-white:#fff;
}
body{margin:0;background:var(--kv-bg);color:var(--kv-ink);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif}
a{color:var(--kv-green-dark);text-decoration:none}.shell{min-height:100vh;display:flex}
aside{width:235px;background:var(--kv-graphite);color:#fff;padding:22px 15px;position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column}
.brand{display:flex;gap:11px;align-items:center;margin:0 8px 25px}.brand strong{font-size:18px}.brand small{display:block;color:#c7d1d5}
.brand-icon{width:42px;height:42px;border-radius:11px;background:var(--kv-green);color:#fff;display:grid;place-items:center;font-weight:900;font-size:21px}
nav{display:grid;gap:5px}nav a{padding:11px 12px;color:#dbe3e6;border-radius:9px;border-left:3px solid transparent}
nav a.active,nav a:hover{background:rgba(24,169,87,.14);color:#fff;border-left-color:var(--kv-green)}
.logout{margin-top:auto;color:#d1dcdf;padding:10px 12px}
main{margin-left:235px;flex:1}header{height:74px;background:#fff;border-bottom:1px solid var(--kv-border);display:flex;align-items:center;justify-content:space-between;padding:0 27px}
header h1{font-size:22px;margin:0;color:var(--kv-ink)}header span{font-size:14px;color:var(--kv-text)}
section{padding:24px;max-width:1540px;margin:auto}.cards{display:grid;grid-template-columns:repeat(5,1fr);gap:13px}
.card{background:#fff;border:1px solid var(--kv-border);border-radius:15px;padding:20px;margin-bottom:18px;overflow:auto;box-shadow:0 10px 32px rgba(28,48,39,.04)}
.metric{border-top:3px solid var(--kv-green)}.metric span{color:var(--kv-muted);font-size:13px}.metric strong{display:block;font-size:24px;margin-top:8px;color:var(--kv-ink)}
.grid{display:grid;grid-template-columns:410px 1fr;gap:18px;align-items:start}h2{font-size:18px;margin-top:0}h3{font-size:15px;color:var(--kv-graphite)}
form{display:grid;gap:12px}label{display:grid;gap:5px;font-size:13px;font-weight:700;color:var(--kv-graphite)}
input,select,textarea{width:100%;padding:10px 11px;border:1px solid #cfdad4;border-radius:9px;font:inherit;color:var(--kv-ink);background:#fff}
input:focus,select:focus,textarea:focus{outline:3px solid rgba(24,169,87,.12);border-color:var(--kv-green)}
.check{display:flex;align-items:center;gap:8px}.check input{width:auto}.annual-check{padding:12px;border-radius:10px;background:var(--kv-green-soft);color:var(--kv-green-deep)}
button{background:var(--kv-green);color:white;border:0;border-radius:9px;padding:10px 14px;font-weight:750;cursor:pointer}
button:hover{background:var(--kv-green-dark)}.inline,.month{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.inline label,.month label{min-width:150px}
.generation-bar{display:grid;grid-template-columns:1fr 1fr;gap:14px}.generator h3{margin:0 0 10px}.helper{margin:0;color:var(--kv-muted);font-size:12px;line-height:1.55}
.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:11px 9px;border-bottom:1px solid #edf2ef;vertical-align:top}
th{color:var(--kv-muted);font-weight:750}tr:hover td{background:#fbfdfc}.status{padding:5px 8px;border-radius:999px;font-size:11px;font-weight:750}
.paid{background:#dcfce7;color:#166534}.open{background:#eaf8f0;color:#0b5f37}.overdue{background:#fee2e2;color:#991b1b}.partial{background:#fef3c7;color:#92400e}.cancelled{background:#f3f4f6;color:#6b7280}
.alert{padding:12px;border-radius:9px;margin-bottom:15px}.alert-success{background:#dcfce7;color:#166534}.alert-error{background:#fee2e2;color:#991b1b}
.client-summary{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:13px;border:1px solid #bfe4cf;background:#f7fcf9;border-radius:11px}
.client-summary.hidden{display:none}.client-summary div{min-width:0}.client-summary span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--kv-muted)}
.client-summary strong{display:block;margin-top:2px;font-size:12px;color:var(--kv-graphite);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.description-preview{padding:12px 13px;border-left:4px solid var(--kv-green);background:var(--kv-green-soft);border-radius:9px}.description-preview span{display:block;font-size:11px;color:var(--kv-muted)}.description-preview strong{display:block;margin-top:4px;font-size:13px;color:var(--kv-green-deep)}
.auth-page{min-height:100vh;display:grid;place-items:center;padding:25px;background:var(--kv-bg)}.auth-card{width:min(430px,100%);background:#fff;padding:28px;border:1px solid var(--kv-border);border-radius:16px;box-shadow:0 20px 55px rgba(25,59,43,.09)}
.setup-card{width:min(560px,100%)}.auth-card .logo{background:var(--kv-green);color:#fff}.auth-card form{margin-top:20px}
.receipt-page{background:#e9efec;padding:25px}.receipt-actions{max-width:820px;margin:0 auto 12px}.receipt-actions button{min-width:170px}
.receipt{max-width:820px;min-height:560px;background:#fff;margin:auto;padding:55px 70px;font-size:17px;line-height:1.75;border-top:6px solid var(--kv-green);box-shadow:0 14px 45px rgba(25,59,43,.10)}
.receipt-logo{text-align:left;margin-bottom:38px}.receipt-logo img{width:190px;height:auto}.receipt-title-row{display:flex;justify-content:space-between;align-items:end;border-bottom:1px solid var(--kv-border);padding-bottom:12px;margin-bottom:40px}
.receipt h1{margin:0;color:var(--kv-graphite);letter-spacing:2px;font-size:27px}.number{color:var(--kv-muted);font-size:13px}.receipt p{color:var(--kv-text)}
.receipt-signature{margin:80px auto 10px;text-align:center;width:min(360px,100%);line-height:1.4}.signature-line{border-top:1px solid #9ba9a2;margin-bottom:10px}
.receipt-signature strong{display:block;color:var(--kv-ink)}.receipt-signature span{display:block;color:var(--kv-muted);font-size:13px;margin-top:2px}
@media(max-width:1100px){.cards{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:1fr}.generation-bar{grid-template-columns:1fr}}
@media(max-width:760px){aside{position:static;width:100%}.shell{display:block}main{margin-left:0}.cards{grid-template-columns:1fr}nav{grid-template-columns:1fr 1fr}section{padding:14px}.receipt{padding:35px 25px}.client-summary{grid-template-columns:1fr}.receipt-title-row{display:block}.number{margin-top:5px}}
@media print{.receipt-actions{display:none}.receipt-page{background:#fff;padding:0}.receipt{max-width:none;padding:20mm 18mm;min-height:0;box-shadow:none}}

.auth-logo{margin-bottom:25px}
.auth-logo img{display:block;width:205px;max-width:75%;height:auto}
.auth-logo span{display:block;margin-top:7px;color:var(--kv-muted);font-size:12px}
.auth-card h1{margin:0 0 7px;color:var(--kv-ink);font-size:27px}
.auth-muted{margin:0;color:var(--kv-muted);font-size:14px}


/* Dashboard por período - V1.2 */
.dashboard-period{display:flex;justify-content:space-between;gap:14px;align-items:end;flex-wrap:wrap;margin-bottom:16px}
.period-shortcuts{display:flex;gap:8px;flex-wrap:wrap}
.period-shortcuts a{display:inline-flex;padding:8px 11px;border:1px solid var(--kv-border);background:#fff;border-radius:9px;color:var(--kv-graphite);font-size:12px;font-weight:750}
.period-shortcuts a:hover{border-color:var(--kv-green);color:var(--kv-green-deep);background:var(--kv-green-soft)}
.period-form{display:flex;gap:9px;align-items:end;flex-wrap:wrap}
.period-form label{min-width:155px}.period-form button{height:40px}
.dashboard-cards{grid-template-columns:repeat(6,1fr);margin-bottom:18px}
.revenue-chart-card{padding:20px 22px 12px}
.chart-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:8px}
.chart-heading h2{margin-bottom:5px}.chart-heading p{margin:0;color:var(--kv-muted);font-size:12px}
.chart-heading>strong{font-size:23px;color:var(--kv-green-deep);white-space:nowrap}
.revenue-chart-wrap{width:100%;overflow:hidden}.revenue-chart{display:block;width:100%;height:auto;min-height:245px}
.chart-grid-line{stroke:#e8efeb;stroke-width:1}.chart-y-label,.chart-x-label{fill:#75827b;font-size:11px;font-family:inherit}.chart-x-label{font-size:10px}
.chart-area{fill:rgba(24,169,87,.10)}.chart-line{fill:none;stroke:var(--kv-green);stroke-width:3;stroke-linejoin:round;stroke-linecap:round}.chart-point{fill:#fff;stroke:var(--kv-green);stroke-width:3}.chart-empty{fill:#7a8780;font-size:13px;font-family:inherit}
@media(max-width:1280px){.dashboard-cards{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.dashboard-period,.chart-heading{display:block}.period-shortcuts{margin-bottom:12px}.period-form{display:grid;grid-template-columns:1fr 1fr}.period-form button{grid-column:1/-1}.dashboard-cards{grid-template-columns:1fr 1fr}.chart-heading>strong{display:block;margin-top:10px}.revenue-chart{min-width:760px}.revenue-chart-wrap{overflow:auto}}
