:root { color-scheme: light; font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; background: #f6f7f9; color: #202b33; }
* { box-sizing: border-box; }
body { margin: 0; min-height: 100svh; }
main { width: min(100%, 1160px); margin: auto; padding: 0 40px; }
a { color: inherit; }
button, input { font: inherit; }
svg { width: 24px; height: 24px; display: block; }
a:focus-visible, button:focus-visible { outline: 3px solid #34856e; outline-offset: 5px; }
.wordmark { display: flex; align-items: center; gap: 12px; font-size: 18px; font-weight: 700; letter-spacing: .06em; text-decoration: none; width: fit-content; }
.brand-symbol { display: grid; grid-template-columns: repeat(2, 5px); gap: 3px; margin-right: 2px; transform: rotate(-12deg); }
.brand-symbol i { width: 5px; height: 9px; background: currentColor; }
.brand-symbol i:nth-child(2), .brand-symbol i:nth-child(3) { opacity: .4; }
.workspace-page main { min-height: 100svh; display: flex; flex-direction: column; }
.workspace-header { min-height: 104px; display: flex; justify-content: space-between; align-items: center; gap: 24px; border-bottom: 1px solid #e1e5e8; }
.user-menu { display: flex; align-items: center; gap: 12px; }
.user-avatar { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: #e3ece7; color: #38604b; font-size: 14px; font-weight: 650; }
.user-details { display: grid; gap: 3px; }
.user-details strong { font-size: 12px; font-weight: 600; }
.user-details > span { font-size: 11px; color: #64727c; }
.logout { margin-left: 16px; min-height: 36px; padding: 8px 16px; font-size: 12px; color: #45525b; background: white; border: 1px solid #dce2e6; border-radius: 8px; cursor: pointer; }
.logout:hover { background: #eef1f3; }
.workspace-content { padding: 52px 0 72px; flex: 1; }
.eyebrow { color: #74808a; font-size: 10px; font-weight: 650; letter-spacing: .16em; }
.page-heading h1 { font-size: clamp(28px, 4vw, 38px); line-height: 1.2; font-weight: 600; letter-spacing: -.045em; margin: 12px 0 10px; }
.page-heading p { color: #6e7b84; font-size: 14px; line-height: 1.7; margin: 0; }
.pages-section { margin-top: 42px; }
.section-heading { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-bottom: 20px; }
.section-heading h2 { font-size: 15px; font-weight: 600; margin: 0; }
.section-heading > span { color: #75808a; font-size: 11px; }
.pages-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.page-card { padding: 24px; background: #fff; border: 1px solid #e0e5e8; border-radius: 16px; text-decoration: none; transition: border-color .18s, box-shadow .18s, transform .18s; }
.page-card-top { display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.card-icon { display: grid; place-items: center; width: 46px; height: 46px; border: 1px solid #e4e8eb; border-radius: 12px; color: #8b96a0; background: #f4f6f8; }
.gym-icon { color: #2e765c; background: #eaf3ed; border-color: #d7e8dc; }
.availability { display: inline-flex; padding: 5px 9px; border-radius: 6px; background: #f2f4f6; color: #71808b; font-size: 10px; font-weight: 500; }
.available { background: #edf5ef; color: #3c7255; }
.page-card h3 { font-size: 21px; font-weight: 600; letter-spacing: -.03em; margin: 24px 0 7px; }
.page-card > p { font-size: 13px; color: #73818b; margin: 0; line-height: 1.7; }
.page-card-bottom { display: flex; align-items: center; justify-content: space-between; margin-top: 26px; padding-top: 17px; border-top: 1px solid #edf0f2; font-size: 11px; color: #74808a; }
.card-arrow { display: grid; place-items: center; width: 27px; height: 27px; border-radius: 50%; background: #f5f7f8; }
.card-arrow svg { width: 16px; height: 16px; }
.active-card .page-card-bottom { color: #2e765c; }
.active-card:hover { border-color: #8fb8a4; box-shadow: 0 8px 28px rgb(32 64 48 / 7%); transform: translateY(-3px); }
.active-card:hover .card-arrow { background: #eaf3ed; }
.inactive-card { background: #fbfcfd; cursor: default; }
.inactive-card h3 { color: #74808a; }
.inactive-card > p, .inactive-card .page-card-bottom { color: #85919b; }
.workspace-footer { min-height: 64px; border-top: 1px solid #e1e5e8; display: flex; align-items: center; justify-content: space-between; gap: 20px; color: #7a858e; font-size: 10px; }
.breadcrumb { display: flex; align-items: center; gap: 12px; font-size: 12px; color: #72808a; margin-bottom: 32px; }
.breadcrumb a { text-decoration: none; }
.breadcrumb a:hover { color: #2e765c; }
.breadcrumb [aria-current] { color: #34434c; }
.gym-empty { margin-top: 36px; min-height: 320px; padding: 48px 24px; border: 1px solid #e0e5e8; border-radius: 16px; background: white; text-align: center; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.empty-icon { display: grid; place-items: center; width: 58px; height: 58px; border-radius: 16px; background: #edf5ef; color: #2e765c; margin-bottom: 24px; }
.empty-icon svg { width: 28px; height: 28px; }
.gym-empty h2 { font-size: 19px; font-weight: 550; letter-spacing: -.02em; margin: 0 0 10px; }
.gym-empty p { font-size: 13px; color: #72808a; margin: 0; line-height: 1.7; }
.back-link { display: flex; align-items: center; gap: 8px; color: #2e765c; font-size: 12px; text-decoration: none; margin-top: 28px; }
.back-link svg { width: 16px; height: 16px; }
.back-link:hover { text-decoration: underline; }

.login-page { background: linear-gradient(rgb(247 248 245 / 94%), rgb(247 248 245 / 94%)), url('/assets/fundo.jpg') center / cover fixed; color: #28322b; }
.login-page main { width: min(100%, 1240px); min-height: 100svh; padding: 38px 64px 24px; display: flex; flex-direction: column; }
.login-header { display: flex; align-items: center; justify-content: space-between; }
.login-grid { display: grid; grid-template-columns: 1fr 400px; gap: 64px; align-items: center; flex: 1; padding: 24px 0; }
.login-intro h1 { font-size: clamp(64px, 7.8vw, 102px); font-weight: 450; line-height: .98; letter-spacing: -.065em; margin: 30px 0 28px; }
.login-intro h1 em { font-family: Georgia, 'Times New Roman', serif; font-weight: 400; letter-spacing: -.055em; color: #73816b; }
.login-card { border: 1px solid #dce1d7; background: rgb(255 255 255 / 88%); backdrop-filter: blur(16px); border-radius: 16px; padding: 32px; box-shadow: 0 24px 80px rgb(55 66 44 / 5%); }
.login-card h2 { font-weight: 500; font-size: 29px; letter-spacing: -.035em; margin: 0 0 30px; }
.field-group { margin-bottom: 20px; }
.field-group label { display: block; font-size: 11px; color: #54604f; margin-bottom: 9px; }
.field-group input { display: block; width: 100%; min-height: 48px; padding: 14px; border: 1px solid #d4dbce; border-radius: 7px; background: #fafbf8; color: #28322b; font-size: 12px; }
.field-group input::placeholder { color: #879181; }
.field-group input:focus { outline: 2px solid #7b9271; outline-offset: 2px; border-color: #7b9271; }
.password-help { display: block; width: fit-content; margin: -5px 0 25px auto; background: none; border: none; padding: 4px 0; color: #76816f; font-size: 10px; cursor: pointer; }
.password-help:hover { color: #34442e; }
.login-submit { display: flex; justify-content: space-between; align-items: center; width: 100%; min-height: 48px; padding: 14px 18px; background: #3c5035; color: #fff; border: 1px solid #3c5035; border-radius: 7px; font-size: 12px; font-weight: 650; cursor: pointer; }
.login-submit:hover { background: #2b3e25; }
.login-submit > span:last-child { font-size: 19px; line-height: 1; font-weight: 400; }
.login-feedback { display: none; color: #926d32; font-size: 11px; line-height: 1.7; margin: 16px 0 0; }
.login-feedback.is-visible { display: block; }
.login-footer { display: flex; align-items: center; color: #929b8b; font-size: 9px; letter-spacing: .08em; }
.login-footer > span { display: flex; align-items: baseline; }
.stealth-access { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 30px; margin-left: -5px; color: #929b8b; text-decoration: none; font-size: 10px; cursor: default; }
.stealth-access:hover { color: #3c5035; }
@media (prefers-reduced-motion: reduce) { .page-card { transition: none; } .active-card:hover { transform: none; } }
@media (max-width: 1000px) { .pages-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .login-page main { padding: 32px 40px 20px; } .login-grid { grid-template-columns: 1fr 360px; gap: 36px; } .login-intro h1 { font-size: 76px; } .login-card { padding: 28px; } }
@media (max-width: 760px) { main { padding: 0 24px; } .workspace-header { min-height: 88px; } .user-details { display: none; } .logout { margin-left: 0; } .workspace-content { padding: 36px 0 48px; } .pages-grid { gap: 16px; } .page-card { padding: 22px; } .login-page main { padding: 24px; } .login-grid { grid-template-columns: minmax(0, 400px); justify-content: center; gap: 32px; padding: 36px 0; } .login-intro { text-align: center; } .login-intro h1 { font-size: 60px; line-height: 1; margin: 20px 0 16px; } }
@media (max-width: 520px) { main { padding: 0 20px; } .pages-grid { grid-template-columns: 1fr; } .section-heading > span { font-size: 10px; } .page-card { padding: 24px; } .page-heading h1 { font-size: 30px; } .workspace-header .wordmark { font-size: 16px; } }
@media (max-width: 400px) { .login-page main { padding: 20px; } .login-card { padding: 24px; } .login-intro h1 { font-size: 52px; } }
