/* Core styles for Gym Rutina Portal */
.grp-wrap{max-width:1100px;margin:24px auto;padding:10px}
.grp-header{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap}
.grp-title{font-size:28px;font-weight:800}
.grp-sub{color:#666}
.grp-bar{display:flex;gap:10px;align-items:center;margin:10px 0;flex-wrap:wrap}
.grp-select,.grp-input,.grp-btn{padding:10px 12px;border:1px solid #ddd;border-radius:10px;font-size:14px}
.grp-btn{background:#111;color:#fff;border:0;cursor:pointer;font-weight:700}
.grp-btn.secondary{background:#f0f0f0;color:#111}
details.grp-acc{background:#fff;border:1px solid #eaeaea;border-radius:14px;margin:10px 0;box-shadow:0 1px 8px rgba(0,0,0,.03)}
details.grp-acc summary{cursor:pointer;list-style:none;padding:12px 14px;font-weight:700;display:flex;align-items:center;gap:10px}
details.grp-acc summary::-webkit-details-marker{display:none}
.grp-acc-body{padding:8px 14px 14px 14px}
.grp-session{background:#fbfbfb;border:1px solid #eee;border-radius:12px;padding:10px;margin:10px 0}
.grp-session h5{margin:0 0 8px 0;font-size:15px}
.grp-wrap .grp-grid{display:grid !important;grid-template-columns:repeat(4, minmax(0,1fr)) !important;grid-auto-rows:auto;gap:14px}
@media (max-width:1200px){.grp-wrap .grp-grid{grid-template-columns:repeat(3,minmax(0,1fr)) !important;}}
@media (max-width:900px){.grp-wrap .grp-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}}
@media (max-width:620px){.grp-wrap .grp-grid{grid-template-columns:repeat(1,minmax(0,1fr)) !important;}}
.grp-card{background:#fff;border:1px solid #eee;border-radius:16px;overflow:hidden;box-shadow:0 2px 10px rgba(0,0,0,.04)}
.grp-card .media{height:180px;background:#f6f6f6;display:flex;align-items:center;justify-content:center;overflow:hidden}
.grp-card .media img{width:100%;height:100%;object-fit:cover}
.grp-card .body{padding:12px}
.grp-card h4{margin:0 0 6px 0;font-size:16px}
.grp-row{display:grid;grid-template-columns:1fr 120px 100px;gap:8px;align-items:center;margin:6px 0}
.grp-hint{font-size:12px;color:#888}
.grp-alert{padding:10px;border-radius:10px;margin:10px 0}
.grp-success{background:#e9fff1;color:#0f7a3b}
.grp-error{background:#ffecec;color:#b30000}
.grp-section{margin-top:18px}
.grp-cards3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media (max-width:900px){.grp-cards3{grid-template-columns:1fr}}
.grp-mini{background:#fff;border:1px solid #eee;border-radius:14px;padding:14px;box-shadow:0 1px 8px rgba(0,0,0,.04)}
.grp-big{font-size:26px;font-weight:800}
.grp-chart{width:100%;max-width:900px}
