:root{--navy:#0a2941;--blue:#0879b7;--sky:#eaf6fc;--line:#c7dce8;--text:#153247;--muted:#637d8e;--green:#14845a;--red:#bf3b3b;--amber:#c87a08;--white:#fff;--shadow:0 14px 36px rgba(8,45,69,.13)}
*{box-sizing:border-box}body{margin:0;background:linear-gradient(145deg,#e8f5fb,#f8fbfd);color:var(--text);font:16px/1.45 Inter,system-ui,Segoe UI,Arial,sans-serif}button,input{font:inherit}.hidden{display:none!important}.loading{position:fixed;inset:0;display:grid;place-items:center;background:var(--sky);font-weight:800;z-index:999}.btn{border:0;border-radius:10px;padding:.72rem 1rem;font-weight:800;cursor:pointer}.primary{background:var(--blue);color:#fff}.light{background:#e8f2f7;color:var(--navy);border:1px solid var(--line)}.success{background:var(--green);color:#fff}.danger{background:var(--red);color:#fff}.link{border:0;background:transparent;color:var(--blue);font-weight:800;cursor:pointer}.auth{min-height:100vh;display:grid;place-items:center;padding:1.5rem;background:radial-gradient(circle at 15% 10%,#2c8dc3 0,transparent 35%),linear-gradient(150deg,#061c2d,#12506f)}.auth-shell{width:min(980px,100%);display:grid;grid-template-columns:1fr 1fr;background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 24px 70px #0006}.auth-brand{padding:3rem;background:linear-gradient(160deg,#09283f,#126f9e);color:#fff;display:flex;flex-direction:column;justify-content:center;gap:1rem}.auth-brand h1{font-size:2.4rem;line-height:1.08;margin:0}.auth-brand p{color:#d8eef9}.auth-brand span{font-size:.78rem;font-weight:900;background:#f4d46d;color:#503900;padding:.35rem .55rem;border-radius:999px;width:max-content}.brand-mark,.mini-mark{display:grid;place-items:center;background:#fff;color:var(--blue);font-weight:900}.brand-mark{width:76px;height:76px;border-radius:22px;font-size:2.2rem}.auth-panel{padding:2.4rem}.tabs{display:flex;gap:.5rem;margin-bottom:1.5rem}.tabs button{flex:1;padding:.7rem;border:1px solid var(--line);border-radius:9px;background:#eef6fa;font-weight:800}.tabs button.active{background:var(--blue);color:#fff}.form{display:grid;gap:1rem}.form label{display:grid;gap:.35rem;font-size:.9rem;font-weight:800}.form input,.search,.period input{width:100%;padding:.72rem;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--text)}.form small{color:var(--muted)}.password{position:relative;display:block}.password input{padding-right:3rem}.password button{position:absolute;right:.25rem;top:.25rem;border:0;background:transparent;padding:.45rem;cursor:pointer}
header{height:72px;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 1.5rem;position:sticky;top:0;z-index:20}.header-brand,.header-user{display:flex;align-items:center;gap:.8rem}.header-brand small{display:block;color:#b8dbea}.mini-mark{width:43px;height:43px;border-radius:12px}.layout{display:grid;grid-template-columns:240px 1fr;min-height:calc(100vh - 72px)}aside{background:#102f48;padding:1rem .7rem}aside button{display:block;width:100%;text-align:left;border:0;border-radius:9px;background:transparent;color:#d9edf7;padding:.78rem;margin-bottom:.35rem;font-weight:800;cursor:pointer}aside button:hover,aside button.active{background:#1872a3;color:#fff}main{padding:1.5rem;overflow:hidden}.page{display:none}.page.active{display:block}.page-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.1rem}.page-head h2{margin:0;font-size:1.55rem}.page-head p{margin:.25rem 0 0;color:var(--muted)}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:.9rem;margin-bottom:1.1rem}.card,.panel,.month-card,.month-finance-card{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}.card{padding:1rem}.card span{display:block;color:var(--muted);font-size:.78rem;font-weight:900;text-transform:uppercase}.card strong{display:block;font-size:1.7rem;margin-top:.35rem}.panel{padding:1.1rem}.month-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem}.month-card{padding:1rem}.month-card h3{margin:0 0 .5rem}.month-card p{margin:.3rem 0;color:var(--muted)}.month-card .actions{margin-top:.7rem}.actions,.photo-actions,.period{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.period label{font-size:.8rem;font-weight:800}.period input{width:110px;display:block}.financial{display:grid;grid-template-columns:1fr 1fr;gap:.9rem;margin-bottom:1rem}.finance-card{color:#fff;border-radius:14px;padding:1rem;box-shadow:var(--shadow)}.finance-card.received{background:linear-gradient(135deg,#158158,#0d6040)}.finance-card.remaining{background:linear-gradient(135deg,#c64b43,#912f2a)}.finance-card span{display:block;font-size:.78rem;font-weight:900;text-transform:uppercase}.finance-card strong{font-size:1.65rem}.month-finance{display:grid;grid-template-columns:repeat(4,1fr);gap:.7rem;margin-bottom:1rem}.month-finance-card{padding:.8rem}.month-finance-card h3{font-size:1rem;margin:0 0 .4rem}.green-text{color:var(--green);font-weight:900}.red-text{color:var(--red);font-weight:900}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px;background:#fff}table{width:100%;border-collapse:collapse;min-width:800px}th,td{padding:.7rem;border-bottom:1px solid #e4edf2;text-align:left;font-size:.85rem;white-space:nowrap;vertical-align:middle}th{background:#eaf4f9;color:#315a72;font-size:.75rem;text-transform:uppercase;position:sticky;top:0}.badge{display:inline-block;padding:.3rem .5rem;border-radius:999px;font-size:.75rem;font-weight:900}.badge.paid{background:#d9f3e6;color:#116841}.badge.late{background:#fbdede;color:#9a2828}.badge.open{background:#fff0cb;color:#875705}.badge.pending{background:#e8e9f8;color:#53538a}.icon-btn{border:0;border-radius:8px;width:36px;height:36px;display:inline-grid;place-items:center;color:#fff;font-size:1rem;font-weight:900;cursor:pointer}.icon-btn.add,.icon-btn.blue{background:var(--blue)}.icon-btn.green{background:var(--green)}.icon-btn.red{background:var(--red)}.icon-btn.amber{background:var(--amber)}.member-photo{width:48px;height:48px;border-radius:50%;object-fit:cover;background:#e3eef4;border:2px solid #b8d3e1}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.qr-panel,.photo-editor{display:grid;grid-template-columns:180px 1fr;align-items:center;gap:1rem;padding:1rem;border:2px solid #5bb591;border-radius:13px;background:#e9faf3}.qr-panel img{width:165px;background:#fff;padding:.4rem}.photo-editor{grid-template-columns:110px 1fr;border-color:var(--line);background:#f3f9fc}.photo-editor img{width:100px;height:100px;object-fit:cover;border-radius:13px;background:#e4eff5}dialog{width:min(600px,calc(100% - 2rem));max-height:90vh;overflow:auto;border:0;border-radius:16px;padding:1.25rem;color:var(--text);box-shadow:0 25px 80px #0007}dialog.wide{width:min(900px,calc(100% - 2rem))}dialog::backdrop{background:#03131fcc}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.dialog-head h3{margin:0}.dialog-head button{border:0;background:#e9f2f7;border-radius:8px;padding:.45rem .65rem;cursor:pointer}.notice{padding:.7rem;border-radius:9px;background:#fff3d3;color:#74500d;border:1px solid #edd28a}.drop{padding:1rem!important;border:2px dashed #78a9c2;border-radius:12px;background:#f3faff}.proof-frame{width:100%;height:440px;border:1px solid var(--line);border-radius:10px;object-fit:contain;background:#edf4f7}.proof-details{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin-top:.8rem}.proof-details div{padding:.65rem;border:1px solid var(--line);border-radius:8px}.proof-details small{display:block;color:var(--muted)}#cameraVideo{width:100%;max-height:430px;border-radius:10px;background:#061c2d}#toast{position:fixed;right:1rem;bottom:1rem;max-width:380px;padding:.8rem 1rem;border-radius:10px;background:var(--navy);color:#fff;box-shadow:var(--shadow);opacity:0;transform:translateY(10px);pointer-events:none;transition:.2s;z-index:999}#toast.show{opacity:1;transform:none}#toast.error{background:var(--red)}
@media(max-width:900px){.auth-shell{grid-template-columns:1fr}.auth-brand{display:none}.layout{grid-template-columns:1fr}aside{display:flex;gap:.3rem;overflow:auto}aside button{min-width:max-content;margin:0}.cards{grid-template-columns:1fr 1fr}.month-grid{grid-template-columns:1fr 1fr}.month-finance{grid-template-columns:1fr 1fr}}@media(max-width:600px){main{padding:.85rem}.page-head{align-items:flex-start;flex-direction:column}.cards,.month-grid,.month-finance,.financial,.form-grid{grid-template-columns:1fr}.qr-panel,.photo-editor{grid-template-columns:1fr}.qr-panel img{margin:auto}.header-user b{display:none}.auth-panel{padding:1.3rem}.proof-details{grid-template-columns:1fr}}

/* Identidade visual Rotary Club de Frutal — Versão 8 */
.auth-brand{background:linear-gradient(160deg,#061d31,#0d4b75);gap:1rem}.login-logo{display:block;width:100%;max-width:430px;max-height:190px;object-fit:contain;object-position:left center;filter:drop-shadow(0 10px 24px #0005)}.auth-brand span{background:#f7a900;color:#332300}header{height:82px}.header-brand{gap:1rem}.header-logo{width:175px;height:68px;object-fit:contain;object-position:left center;filter:drop-shadow(0 5px 10px #0004)}.layout{min-height:calc(100vh - 82px)}
@media(max-width:900px){.auth-brand{display:flex;padding:1.4rem;align-items:center;text-align:center}.login-logo{max-width:380px;object-position:center}.auth-brand h1,.auth-brand p{display:none}}
@media(max-width:600px){header{height:76px;padding:0 .7rem}.header-logo{width:120px;height:58px}.header-brand>div{display:none}.layout{min-height:calc(100vh - 76px)}}
