:root{--dark:#111827;--dark2:#172033;--muted:#5b6b85;--bg:#f3f6fa;--card:#fff;--line:#dbe3ef;--blue:#2445ff;--gold:#d6a84f;--green:#16a34a;--red:#dc2626}*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:#071328}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(120deg,rgba(17,24,39,.94),rgba(23,32,51,.92)),url('/obra-bg.svg');background-size:cover;background-position:center}.login-card{width:min(92%,520px);background:#fff;border-radius:26px;padding:40px;box-shadow:0 40px 100px rgba(0,0,0,.25)}.login-card h1{font-size:44px;margin:0 0 8px}.login-card p{font-size:20px;color:var(--muted);margin:0 0 28px}.login-card label{font-weight:800;display:block;margin:18px 0 8px}.login-card input,.input,select,textarea{width:100%;border:1px solid #cbd6e5;border-radius:15px;padding:14px 16px;font-size:16px;background:#fff}.login-card button,.btn{border:0;background:var(--dark);color:#fff;border-radius:16px;padding:15px 22px;font-weight:900;font-size:16px;cursor:pointer}.login-card button{width:100%;font-size:22px;margin:22px 0}.login-card small{color:var(--muted)}#err{color:var(--red);font-weight:800;margin-top:15px}.hero{background:linear-gradient(110deg,rgba(17,24,39,.92),rgba(17,24,39,.72)),url('/obra-bg.svg');background-size:cover;background-position:center;color:#fff;padding:42px 36px 88px;position:relative}.top{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.brand h1{font-size:46px;margin:0}.brand p{font-size:25px;margin:10px 0 0;max-width:850px}.hero-actions{display:flex;gap:12px;align-items:center}.btn.light{background:#fff;color:#071328}.btn.gray{background:#334155}.container{max-width:1500px;margin:-54px auto 60px;padding:0 22px;position:relative}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-bottom:28px}.card,.project,.panel{background:rgba(255,255,255,.96);border:1px solid var(--line);border-radius:22px;padding:26px;box-shadow:0 22px 50px rgba(15,23,42,.08)}.card span{color:var(--muted);font-size:19px}.card strong{display:block;font-size:32px;margin-top:8px}.project{margin-top:22px}.project h2{font-size:30px;margin:0 0 8px}.muted{color:var(--muted)}.chips{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}.chip{background:#eef4ff;border-radius:18px;padding:9px 14px;font-weight:800}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0}.metric{background:#f6f8fb;border-radius:16px;padding:16px}.metric span{color:var(--muted)}.metric strong{display:block;font-size:22px}.progress{height:14px;background:#e5eaf2;border-radius:99px;overflow:hidden}.progress b{height:100%;background:linear-gradient(90deg,var(--gold),#f59e0b);display:block}.modal{position:fixed;inset:0;background:rgba(0,0,0,.55);display:none;align-items:flex-start;justify-content:center;padding:42px 14px;z-index:9;overflow:auto}.modal.show{display:flex}.modal-box{background:#fff;width:min(1320px,96vw);max-height:90vh;overflow:auto;border-radius:24px;padding:28px}.close{float:right;border:0;border-radius:99px;padding:10px 14px;cursor:pointer}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.section{border-top:1px solid var(--line);padding-top:24px;margin-top:24px}.full{grid-column:1/-1}table{width:100%;border-collapse:collapse}th,td{text-align:left;border-bottom:1px solid var(--line);padding:12px}.danger{background:var(--red)}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.tab{background:#e9eef6;color:#071328}.tab.active{background:var(--dark);color:#fff}.admin-only{display:none}.role-admin .admin-only{display:inline-flex}.photo{max-width:180px;max-height:110px;border-radius:12px}.notice{background:#fff7ed;border:1px solid #fed7aa;border-radius:16px;padding:14px;margin:12px 0}@media(max-width:900px){.cards,.metrics,.grid,.grid3{grid-template-columns:1fr}.brand h1{font-size:34px}.brand p{font-size:18px}.top{flex-direction:column}.hero{padding:28px 18px 86px}.container{padding:0 12px}.card,.project,.panel{padding:18px}.hero-actions{flex-wrap:wrap}.modal-box{padding:18px}.login-card{padding:28px}.login-card h1{font-size:34px}}
