:root{--bg:#f4f6fb;--card:#fff;--main:#172554;--accent:#16a34a;--muted:#64748b;--danger:#dc2626;--warn:#f59e0b;--line:#e2e8f0}
*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:#0f172a}a{text-decoration:none;color:inherit}.top{background:linear-gradient(135deg,#172554,#2563eb);color:white;padding:18px 24px;display:flex;justify-content:space-between;align-items:center}.brand{font-weight:800;font-size:20px}.btn{background:#2563eb;color:white;padding:10px 14px;border-radius:10px;border:0;cursor:pointer;font-weight:700;display:inline-block}.btn.green{background:var(--accent)}.btn.red{background:var(--danger)}.btn.gray{background:#475569}.hero{padding:55px 20px;text-align:center;background:linear-gradient(135deg,#dbeafe,#fff)}.hero h1{font-size:38px;margin:0 0 10px}.hero p{color:var(--muted);font-size:18px}.wrap{max-width:1150px;margin:25px auto;padding:0 16px}.card{background:var(--card);border-radius:16px;padding:20px;box-shadow:0 8px 25px #00000012;margin-bottom:18px}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.stat{background:#fff;border-left:5px solid #2563eb;border-radius:13px;padding:16px;box-shadow:0 4px 15px #0001}.stat b{font-size:22px;display:block;margin-top:6px}.layout{display:flex;min-height:100vh}.side{width:260px;background:#0f172a;color:white;padding:20px;position:fixed;top:0;bottom:0}.side h2{font-size:18px}.side a{display:block;padding:12px;border-radius:10px;color:#e2e8f0;margin:4px 0}.side a:hover,.side a.active{background:#1e293b}.main{margin-left:260px;width:calc(100% - 260px);padding:24px}.mobilebar{display:none;background:#0f172a;color:white;padding:12px 16px}.hamb{font-size:26px;cursor:pointer}.table{width:100%;border-collapse:collapse;background:white}.table th,.table td{padding:12px;border-bottom:1px solid var(--line);text-align:left}.form{display:grid;gap:12px}.form input,.form select,.form textarea{padding:12px;border:1px solid #cbd5e1;border-radius:10px;width:100%}.alert{padding:12px;border-radius:10px;margin-bottom:15px}.alert.ok{background:#dcfce7;color:#166534}.alert.err{background:#fee2e2;color:#991b1b}.goal-title{text-align:center;font-size:28px;font-weight:900;margin:15px}.squares{display:grid;grid-template-columns:repeat(10,1fr);gap:6px}.sq{background:white;border:1px solid #94a3b8;min-height:46px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-weight:700;cursor:pointer;position:relative}.sq.paid{background:#22c55e;color:white;border-color:#16a34a}.sq.pending{background:#fef9c3;border-color:#f59e0b}.sq small{font-size:10px;position:absolute;bottom:3px;right:5px}.progress{background:#e2e8f0;border-radius:999px;height:18px;overflow:hidden}.progress span{display:block;height:100%;background:#22c55e}.modal{display:none;position:fixed;inset:0;background:#0008;align-items:center;justify-content:center;padding:20px;z-index:10}.modal .box{background:white;border-radius:18px;max-width:460px;width:100%;padding:22px;text-align:center}.qr{margin:12px auto;max-width:220px}.copy{font-size:12px;background:#f1f5f9;padding:10px;border-radius:8px;word-break:break-all;text-align:left}.login{max-width:430px;margin:60px auto}.footer{text-align:center;color:#64748b;padding:30px}.badge{border-radius:99px;padding:5px 9px;font-size:12px;font-weight:700}.badge.ok{background:#dcfce7;color:#166534}.badge.wait{background:#fef3c7;color:#92400e}.badge.off{background:#fee2e2;color:#991b1b}@media(max-width:850px){.grid{grid-template-columns:1fr 1fr}.side{transform:translateX(-100%);transition:.2s;z-index:9}.side.open{transform:translateX(0)}.main{margin-left:0;width:100%;padding:16px}.mobilebar{display:flex;justify-content:space-between}.squares{grid-template-columns:repeat(5,1fr)}.hero h1{font-size:28px}}@media(max-width:520px){.grid{grid-template-columns:1fr}.squares{grid-template-columns:repeat(4,1fr)}}

.side-logo{max-width:160px;max-height:70px;object-fit:contain;background:white;border-radius:12px;padding:8px;margin-bottom:12px}.login-logo{max-width:180px;max-height:90px;object-fit:contain}.logo-preview{max-width:220px;max-height:110px;object-fit:contain;border:1px solid var(--line);border-radius:12px;padding:8px;background:#fff}
