
:root{--blue:#173f67;--light:#f4f7fa;--green:#1f8f55;--gray:#667085}
*{box-sizing:border-box}body{margin:0;font-family:Arial,sans-serif;background:var(--light);color:#17202a}
header{background:var(--blue);color:#fff;padding:12px 24px;display:flex;justify-content:space-between;align-items:center}
.brand-logo{height:58px;width:auto;object-fit:contain;background:#fff;border-radius:8px;padding:4px}
header strong{font-size:20px}.badge{background:#fff2;color:#fff;padding:8px 12px;border-radius:20px;font-size:12px}
.small-btn{padding:8px 12px;font-size:13px}
.logo-area{display:flex;justify-content:center;margin-bottom:14px}
.logo-area img{height:72px;max-width:260px;object-fit:contain;background:#fff;border-radius:8px;padding:5px}
.list{margin-top:14px}
.chip{display:inline-block;padding:5px 9px;border-radius:14px;background:#eef2f6;color:var(--blue);margin:3px;font-size:12px}
.container{max-width:1100px;margin:24px auto;padding:0 16px}
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.tabs button{border:0;padding:12px 16px;border-radius:8px;background:#fff;color:var(--blue);cursor:pointer}.tabs button.active{background:var(--blue);color:#fff}
.card{background:#fff;border-radius:12px;padding:20px;margin-bottom:18px;box-shadow:0 2px 10px #0000000d}
h2{margin-top:0;color:var(--blue)}label{display:block;font-size:13px;font-weight:bold;margin:12px 0 6px}
input,select{width:100%;padding:11px;border:1px solid #d0d5dd;border-radius:8px;font-size:15px}
.password-wrap{position:relative}
.password-wrap input{padding-right:46px}
.eye-btn{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:0;background:transparent;cursor:pointer;font-size:19px;padding:7px;color:#475467}
.eye-btn:hover{color:var(--blue)}
.app-logo{display:block;height:76px;max-width:280px;object-fit:contain;margin:0 auto 12px;background:#fff;border-radius:10px;padding:5px}
.login-card .app-logo{height:90px}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.btn{border:0;border-radius:8px;padding:11px 16px;cursor:pointer;font-weight:bold}.primary{background:var(--blue);color:#fff}.green{background:var(--green);color:#fff}.secondary{background:#eef2f6;color:var(--blue)}
table{width:100%;border-collapse:collapse}th,td{padding:11px;border-bottom:1px solid #eaecf0;text-align:left;font-size:14px}th{color:#475467}
.status{padding:5px 9px;border-radius:15px;font-size:12px;background:#e9f7ef;color:var(--green)}.pending{background:#fff4d6;color:#8a6200}
.photo{border:2px dashed #cbd5e1;border-radius:10px;padding:22px;text-align:center;color:var(--gray);margin-top:8px}
.hidden{display:none}.notice{background:#eef6ff;border-left:4px solid var(--blue);padding:12px;margin:12px 0;font-size:13px}
.login-wrap{max-width:460px;margin:35px auto}
.login-card{background:#fff;border-radius:14px;padding:28px;box-shadow:0 3px 16px #00000012}
.login-card h1{font-size:22px;color:var(--blue);text-align:center}
.login-card .btn{width:100%;margin-top:12px}
.login-help{font-size:12px;color:var(--gray);text-align:center;margin-top:12px}.remember-row{display:flex;align-items:center;font-size:12px;color:var(--gray);margin-top:10px;font-weight:normal}
.user-chip{background:#eef6ff;color:var(--blue);padding:8px 12px;border-radius:20px;font-size:12px;display:inline-block}.master-banner{background:#fff4d6;border-left:4px solid #d99a00;padding:10px 12px;border-radius:8px;margin:12px 0;font-size:13px}.master-btn{background:#eef6ff;color:var(--blue);border:1px solid #c7d9ee;padding:7px 10px;border-radius:7px;cursor:pointer;font-weight:bold;font-size:12px}
.locked-period{background:#fff1f1!important;border-left-color:#c62828!important}.photo-preview{max-width:260px;max-height:220px;border-radius:10px;margin-top:10px;display:block;object-fit:contain;border:1px solid #d0d5dd}.month-bar{display:flex;gap:8px;align-items:end;flex-wrap:wrap;background:#f8fafc;border:1px solid #eaecf0;padding:12px;border-radius:10px;margin-bottom:14px}.month-bar>div{min-width:180px}.photo-thumb{width:58px;height:44px;object-fit:cover;border-radius:6px;border:1px solid #d0d5dd;vertical-align:middle}.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:12px 0 14px}.summary-card{background:#f8fafc;border:1px solid #eaecf0;border-radius:10px;padding:12px}.summary-card .num{font-size:22px;font-weight:bold;color:var(--blue);margin-top:4px}.summary-card .lbl{font-size:12px;color:#667085}.summary-progress{height:8px;background:#e9eef3;border-radius:99px;overflow:hidden;margin-top:8px}.summary-progress span{display:block;height:100%;background:var(--green);width:0}.filter-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px}.filter-row select{width:auto;min-width:180px}.resident-name{font-size:12px;color:#475467}.photo-btn{border:0;background:#eef6ff;color:var(--blue);padding:7px 9px;border-radius:7px;cursor:pointer;font-weight:bold;font-size:12px}.muted{color:#667085;font-size:12px}
@media(max-width:750px){
.grid{grid-template-columns:1fr}.summary-grid{grid-template-columns:repeat(2,1fr)}.container{margin:12px auto;padding:0 10px}header{padding:10px 12px}.brand-logo{height:48px}header strong{font-size:16px}.tabs{gap:5px}.tabs button{flex:1;padding:10px 8px;font-size:12px}.card{padding:14px;margin-bottom:12px}.login-wrap{margin:15px auto;padding:0 10px}.login-card{padding:20px}.login-card .app-logo{height:78px;max-width:230px}.login-card h1{font-size:20px}table{min-width:720px}th,td{padding:9px;font-size:13px}.grid input,.grid select{font-size:16px}.btn{min-height:44px}.master-btn{min-height:40px}
}

.kr-preview-note{font-size:12px;color:#667085;text-align:center;margin-top:14px}.error{color:#b42318}.ok{color:#1f8f55}

/* Painel administrativo — homologação visual KR */
.heading-card{text-align:center;padding:24px}.heading-card h3{color:#173f67;margin:6px 0 0}.app-logo.small{height:66px}.table-scroll{max-height:475px;overflow:auto} .table-scroll th{position:sticky;top:0;background:#fff;z-index:1}.table-scroll td{vertical-align:middle}.locked-period{background:#fff1f1;border-left:4px solid #c62828;padding:14px}.master-btn:hover,.btn:hover{filter:brightness(.96)}
