:root {
  --g180-ink: #101110;
  --g180-charcoal: #4c4b4b;
  --g180-sage: #9dad9a;
  --g180-sage-text: #5d6d5a;
  --g180-lime: #b8bc19;
  --g180-paper: #f3f3ef;
  --g180-white: #fff;
  --g180-line: rgba(16,17,16,.13);
}

.page-main:has(.g180-app), .page-main:has(.g180-login) { padding: 90px 0 0; }
.page-main article:has(.g180-app), .page-main article:has(.g180-login) { width: 100%; max-width: none; }
.page-main article:has(.g180-app) > h1, .page-main article:has(.g180-login) > h1 { display: none; }
.page-main a:has(.g180-app), .g180-app a, .g180-login a { text-decoration: none; }
.page-main .g180-app article { width: auto; margin-inline: 0; }

.g180-app { min-height: calc(100vh - 90px); display: grid; grid-template-columns: 250px minmax(0,1fr); color: var(--g180-ink); background: #ebece7; }
.g180-sidebar { position: sticky; top: 90px; height: calc(100vh - 90px); padding: 34px 24px 26px; display: flex; flex-direction: column; color: var(--g180-white); background: var(--g180-ink); }
.g180-user { padding-bottom: 30px; display: flex; gap: 13px; align-items: center; border-bottom: 1px solid rgba(255,255,255,.14); }
.g180-user strong, .g180-user small { display: block; line-height: 1.3; }
.g180-user strong { max-width: 140px; overflow: hidden; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.g180-user small { margin-top: 4px; color: rgba(255,255,255,.55); font-family: var(--font-accent); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
.g180-avatar { width: 42px; height: 42px; flex: 0 0 auto; display: grid; place-items: center; color: var(--g180-ink); background: var(--g180-lime); border-radius: 50%; font-family: var(--font-accent); font-size: 18px; }
.g180-avatar img { width: 100%; height: 100%; display: block; object-fit: cover; border-radius: inherit; }
.g180-mobile-account { display: none; }
@media (max-width: 980px) {
  body.menu-open .site-header.is-scrolled { background: transparent; border-color: transparent; backdrop-filter: none; }
}
.g180-nav { margin-top: 32px; display: grid; gap: 5px; }
.g180-nav a { position: relative; padding: 11px 13px; display: flex; gap: 10px; align-items: center; color: rgba(255,255,255,.62); border: 0 !important; border-radius: 9px; text-decoration: none !important; font-family: var(--font-accent); font-size: 13px; letter-spacing: .09em; text-transform: uppercase; transition: color .25s, background .25s, transform .25s; }
.g180-nav a::before { width: 5px; height: 5px; flex: 0 0 auto; background: var(--g180-lime); border-radius: 50%; opacity: 0; transform: scale(.4); transition: opacity .25s, transform .25s; content: ""; }
.g180-nav a.is-active { color: var(--g180-white); background: linear-gradient(90deg,rgba(184,188,25,.16),rgba(255,255,255,.06)); transform: translateX(3px); }
.g180-nav a.is-active::before { opacity: 1; transform: scale(1); }
@media (hover: hover) and (pointer: fine) {
  .g180-nav a:hover { color: var(--g180-white); background: linear-gradient(90deg,rgba(184,188,25,.16),rgba(255,255,255,.06)); transform: translateX(3px); }
  .g180-nav a:hover::before { opacity: 1; transform: scale(1); }
}
.g180-nav a:focus-visible { outline: 2px solid var(--g180-lime); outline-offset: 2px; }
.g180-logout { margin-top: auto; color: rgba(255,255,255,.55); font-size: 12px; }
.g180-logout:hover { color: var(--g180-white); }
.g180-content { min-width: 0; padding: 0 clamp(24px,5vw,72px) 100px; }
.g180-section { max-width: 1120px; margin: 0 auto; padding: 80px 0; border-bottom: 1px solid var(--g180-line); scroll-margin-top: 80px; }
.g180-hero { padding-top: 70px; }
.g180-kicker { margin: 0 0 15px; color: var(--g180-charcoal); font-family: var(--font-accent); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; }
.g180-hero > h1, .g180-section h2 { margin: 0; color: var(--g180-ink); font-size: clamp(46px,6vw,82px); font-weight: 400; line-height: .98; letter-spacing: -.055em; }
.g180-lead { max-width: 620px; margin: 20px 0 0; color: var(--g180-charcoal); font-size: clamp(17px,1.5vw,21px); }
.g180-stats { margin-top: 58px; display: grid; grid-template-columns: .62fr 1.38fr; gap: 18px; }
.g180-stats article { min-height: 180px; padding: 28px; background: var(--g180-white); border-radius: 12px; }
.g180-stats article:first-child { color: var(--g180-ink); background: var(--g180-sage); }
.g180-stats article > span { display: block; font-family: var(--font-accent); font-size: 64px; font-weight: 300; line-height: 1; }
.g180-stats article > p { margin: 20px 0 0; font-family: var(--font-accent); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; }
.g180-next { display: flex; flex-direction: column; justify-content: flex-end; }
.g180-next > p { margin: 0 0 auto !important; color: var(--g180-charcoal); }
.g180-next strong { font-size: clamp(20px,2.2vw,30px); font-weight: 400; }
.g180-next small { margin-top: 5px; color: var(--g180-charcoal); }
.g180-section-head { margin-bottom: 38px; display: flex; gap: 30px; align-items: end; justify-content: space-between; }
.g180-section-head > .g180-primary { flex: 0 0 auto; display: inline-flex; align-items: center; }
.g180-section h2 { font-size: clamp(40px,5vw,65px); }
.g180-inline-create { margin: -12px 0 30px; padding: clamp(22px,4vw,34px); background: rgba(255,255,255,.72); border: 1px solid var(--g180-line); border-radius: 14px; }
.g180-inline-create[hidden] { display: none; }
.g180-inline-create-head { margin-bottom: 20px; display: flex; align-items: start; justify-content: space-between; }
.g180-inline-create-head h3 { margin: 0 !important; font-size: clamp(28px,4vw,42px) !important; font-weight: 400; }
.g180-entity-tabs { margin-bottom: 26px; padding-bottom: 12px; display: flex; gap: 8px; border-bottom: 1px solid var(--g180-line); }
.g180-entity-tabs a { min-height: 40px; padding: 0 16px; display: inline-flex; align-items: center; color: var(--g180-charcoal); border-radius: 100px; font-family: var(--font-accent); font-size: 11px; letter-spacing: .09em; text-transform: uppercase; }
.g180-entity-tabs a.is-active { color: var(--g180-ink); background: var(--g180-lime); }
.g180-series-index { display: grid; gap: 10px; }
.g180-series-card { padding: 22px; display: grid; grid-template-columns: minmax(0,1fr) auto auto; gap: 22px; align-items: center; background: var(--g180-white); border-radius: 10px; }
.g180-series-card h3 { margin: 8px 0 4px !important; font-size: 21px !important; font-weight: 400; }
.g180-series-card p, .g180-series-card small { margin: 0; color: var(--g180-charcoal); }
.g180-series-card small { font-size: 11px; }
.g180-series-count { text-align: center; }
.g180-series-count strong, .g180-series-count span { display: block; }
.g180-series-count strong { font-family: var(--font-accent); font-size: 28px; font-weight: 400; }
.g180-series-count span { color: var(--g180-charcoal); font-size: 9px; text-transform: uppercase; }
.g180-agenda-toolbar { margin-bottom: 26px; display: flex; gap: 16px; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.g180-agenda-filter { margin: 0 0 18px; display: flex; gap: 10px; align-items: end; }
.g180-agenda-filter label { min-width: min(100%,280px); display: grid; gap: 6px; color: var(--g180-charcoal); font-family: var(--font-accent); font-size: 10px; letter-spacing: .09em; text-transform: uppercase; }
.g180-agenda-filter select { min-height: 42px; padding: 0 12px; color: var(--g180-ink); background: var(--g180-white); border: 1px solid var(--g180-line); border-radius: 7px; }
.g180-view-switch, .g180-date-nav { display: flex; gap: 6px; align-items: center; }
.g180-view-switch a, .g180-date-nav a { min-height: 38px; padding: 0 13px; display: inline-flex; align-items: center; color: var(--g180-charcoal); background: rgba(255,255,255,.55); border-radius: 100px; font-family: var(--font-accent); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.g180-view-switch a.is-active { color: var(--g180-ink); background: var(--g180-lime); }
.g180-date-nav strong { min-width: 150px; text-align: center; font-size: 13px; font-weight: 400; }
.g180-calendar-scroll { margin-bottom: 30px; overflow-x: auto; overscroll-behavior-inline: contain; border: 1px solid var(--g180-line); border-radius: 12px; background: rgba(255,255,255,.56); }
.g180-calendar-scroll--month { overflow-x: hidden; }
.g180-month-calendar { width: 100%; min-width: 0; }
.g180-month-weekdays { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); background: var(--g180-ink); color: var(--g180-white); }
.g180-month-weekdays span { padding: 11px; text-align: center; font-family: var(--font-accent); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.g180-month-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); }
.g180-month-day { min-width: 0; min-height: clamp(92px,10vw,128px); padding: clamp(5px,.7vw,9px); border-right: 1px solid var(--g180-line); border-bottom: 1px solid var(--g180-line); background: rgba(255,255,255,.72); }
.g180-month-day:nth-child(7n) { border-right: 0; }
.g180-month-day.is-outside { background: rgba(235,236,231,.55); }
.g180-month-day > time { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; font-family: var(--font-accent); font-size: 12px; }
.g180-month-day.is-today > time { background: var(--g180-lime); }
.g180-month-day.is-outside > time { opacity: .38; }
.g180-month-day > div { margin-top: 5px; display: grid; gap: 4px; }
.g180-calendar-event { min-width: 0; padding: 6px 7px; display: block; overflow: hidden; color: var(--g180-ink); background: #dfe4d9; border-left: 3px solid var(--g180-sage-text); border-radius: 5px; line-height: 1.2; }
.g180-calendar-event:hover, .g180-calendar-event:focus-visible { background: var(--g180-lime); }
.g180-calendar-event.is-booked { background: #d8dfb1; border-left-color: var(--g180-lime); }
.g180-calendar-event.is-past { opacity: .52; filter: grayscale(.45); }
.g180-calendar-event.is-past strong { text-decoration: line-through; text-decoration-thickness: 1px; }
.g180-calendar-meta { display: flex; gap: 6px; align-items: center; }
.g180-calendar-meta time { margin-right: auto; }
.g180-calendar-occupancy { font-family: var(--font-accent); font-size: 9px; font-weight: 500; white-space: nowrap; }
.g180-calendar-booked { width: 16px; height: 16px; flex: 0 0 auto; display: grid; place-items: center; color: #fff; background: #3f7b45; border-radius: 50%; font-size: 11px; font-weight: 700; line-height: 1; }
.g180-calendar-event time, .g180-calendar-event strong, .g180-calendar-event small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.g180-calendar-event time { font-family: var(--font-accent); font-size: 9px; }
.g180-calendar-event strong { margin-top: 2px; font-size: 11px; font-weight: 500; }
.g180-calendar-event small { margin-top: 2px; color: var(--g180-charcoal); font-size: 9px; }
.g180-calendar-scroll--time { max-height: min(72vh,760px); overflow: auto; }
.g180-time-calendar { width: 100%; min-width: 0; }
.g180-time-head { position: sticky; z-index: 8; top: 0; height: 54px; display: grid; grid-template-columns: 58px repeat(var(--calendar-days),minmax(0,1fr)); background: var(--g180-ink); color: var(--g180-white); }
.g180-time-head > span { position: sticky; z-index: 10; left: 0; background: var(--g180-ink); }
.g180-time-head strong { display: grid; place-items: center; border-left: 1px solid rgba(255,255,255,.13); font-family: var(--font-accent); font-size: 11px; font-weight: 400; letter-spacing: .07em; text-transform: uppercase; }
.g180-time-head strong.is-today { color: var(--g180-lime); }
.g180-time-body { height: 900px; display: grid; grid-template-columns: 58px 1fr; }
.g180-time-labels { position: sticky; z-index: 6; left: 0; color: var(--g180-charcoal); background: var(--g180-paper); box-shadow: 1px 0 var(--g180-line); }
.g180-time-labels span { position: absolute; right: 8px; transform: translateY(-50%); font-size: 9px; }
.g180-time-days { display: grid; grid-template-columns: repeat(var(--calendar-days),minmax(0,1fr)); }
.g180-time-day { position: relative; border-left: 1px solid var(--g180-line); background: repeating-linear-gradient(to bottom,transparent 0,transparent calc(6.666% - 1px),var(--g180-line) calc(6.666% - 1px),var(--g180-line) 6.666%); }
.g180-time-day.is-today { background-color: rgba(184,188,25,.06); }
.g180-time-day .g180-calendar-event { position: absolute; z-index: 1; right: 5px; left: 5px; min-height: 25px; }
.g180-subtitle { margin: 46px 0 18px !important; font-family: var(--font-accent); font-size: 14px !important; font-weight: 500; letter-spacing: .11em; text-transform: uppercase; }
.g180-session-list { display: grid; gap: 10px; }
.g180-session { min-height: 112px; padding: 18px 20px; display: grid; grid-template-columns: 62px minmax(0,1fr) auto; gap: 20px; align-items: center; background: var(--g180-white); border-radius: 10px; }
.g180-date { height: 62px; display: grid; place-content: center; text-align: center; background: var(--g180-paper); border-radius: 7px; }
.g180-date strong, .g180-date span { display: block; font-family: var(--font-accent); line-height: 1; }
.g180-date strong { font-size: 24px; font-weight: 400; }
.g180-date span { margin-top: 5px; color: var(--g180-charcoal); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.g180-session-info h3 { margin: 0 0 4px !important; font-size: 18px !important; font-weight: 400; }
.g180-session-info p, .g180-session-info small { margin: 0; color: var(--g180-charcoal); font-size: 13px; }
.g180-session-info small { color: var(--g180-sage-text); }
.g180-series-badge { width: fit-content; margin-top: 7px; padding: 4px 8px; display: block; color: var(--g180-sage-text); background: #e7eadf; border-radius: 100px; font-size: 9px; letter-spacing: .07em; text-transform: uppercase; }
.g180-capacity { min-width: 60px; text-align: right; }
.g180-capacity strong, .g180-capacity span { display: block; }
.g180-capacity strong { font-family: var(--font-accent); font-size: 22px; font-weight: 400; }
.g180-capacity span { color: var(--g180-charcoal); font-size: 10px; text-transform: uppercase; }
.g180-class-operations { grid-column: 1 / -1; border-top: 1px solid var(--g180-line); }
.g180-class-operations details { padding-top: 12px; }
.g180-class-operations summary { width: fit-content; color: var(--g180-sage-text); cursor: pointer; font-family: var(--font-accent); font-size: 11px; letter-spacing: .1em; list-style: none; text-transform: uppercase; }
.g180-class-operations summary::-webkit-details-marker { display: none; }
.g180-class-operations summary::after { margin-left: 8px; content: "+"; }
.g180-class-operations details[open] summary::after { content: "−"; }
.g180-class-panel { margin-top: 18px; padding: 22px; display: grid; gap: 20px; background: var(--g180-paper); border-radius: 10px; }
.g180-participants > strong { font-family: var(--font-accent); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
.g180-participants ul { margin: 10px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 7px; list-style: none; }
.g180-participants li { padding: 7px 11px; background: var(--g180-white); border-radius: 100px; font-size: 12px; }
.g180-participants p { margin: 8px 0 0; color: var(--g180-charcoal); font-size: 13px; }
.g180-class-edit { padding: 22px; }
.g180-class-cancel { padding-top: 18px; border-top: 1px solid var(--g180-line); }
.g180-class-cancel { display: flex; gap: 12px; align-items: end; justify-content: space-between; }
.g180-class-cancel label { display: grid; gap: 6px; color: var(--g180-charcoal); font-family: var(--font-accent); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.g180-class-cancel select { min-height: 42px; padding: 0 12px; background: var(--g180-white); border: 1px solid var(--g180-line); border-radius: 7px; }
.g180-scope, .g180-recurrence { padding: 16px; display: flex; gap: 14px 20px; align-items: center; flex-wrap: wrap; background: var(--g180-paper); border: 1px solid var(--g180-line); border-radius: 9px; }
.g180-scope legend, .g180-recurrence legend { padding: 0 6px; font-family: var(--font-accent); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.g180-scope label, .g180-recurrence label { display: flex; grid-template-columns: none; flex-direction: row; gap: 8px; align-items: center; }
.g180-scope input, .g180-recurrence input[type="checkbox"] { width: 17px; min-height: 17px; padding: 0; accent-color: var(--g180-lime); }
.g180-recurrence p { flex-basis: 100%; margin: 0; color: var(--g180-charcoal); font-size: 12px; }
.g180-danger { min-height: 42px; padding: 0 18px; color: #7a2923; background: transparent; border: 1px solid rgba(122,41,35,.34); border-radius: 100px; cursor: pointer; font-family: var(--font-accent); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.g180-danger:hover, .g180-danger:focus-visible { color: var(--g180-white); background: #7a2923; border-color: #7a2923; }
.g180-book { display: flex; gap: 18px; align-items: center; }
.g180-book small { color: var(--g180-charcoal); white-space: nowrap; }
.g180-primary, .g180-quiet { min-height: 48px; padding: 0 22px; border: 1px solid var(--g180-ink); border-radius: 100px; cursor: pointer; font-family: var(--font-accent); font-size: 12px; letter-spacing: .09em; text-transform: uppercase; transition: color .2s, background .2s, transform .2s; }
.g180-primary { color: var(--g180-white); background: var(--g180-ink); }
.g180-primary:hover, .g180-primary:focus-visible { color: var(--g180-ink); background: var(--g180-lime); border-color: var(--g180-lime); transform: translateY(-1px); }
.g180-primary--small { min-height: 40px; padding-inline: 17px; }
.g180-quiet { min-height: 40px; padding-inline: 15px; color: var(--g180-charcoal); background: transparent; border-color: var(--g180-line); }
.g180-quiet:hover { color: var(--g180-ink); border-color: var(--g180-ink); }
.g180-empty { padding: 30px; color: var(--g180-charcoal); background: rgba(255,255,255,.52); border: 1px dashed rgba(16,17,16,.2); border-radius: 10px; }
.g180-thread { max-height: 520px; padding: 24px; display: flex; flex-direction: column; gap: 13px; overflow-y: auto; background: rgba(255,255,255,.48); border-radius: 12px; }
.g180-message { max-width: min(76%,620px); padding: 14px 17px; display: grid; grid-template-columns: 38px minmax(0,1fr); gap: 10px; align-items: start; align-self: flex-start; background: var(--g180-white); border-radius: 4px 12px 12px 12px; }
.g180-message.is-mine { align-self: flex-end; background: #dfe4d9; border-radius: 12px 4px 12px 12px; }
.g180-message-avatar, .g180-message-avatar img { width: 38px; height: 38px; display: grid; place-items: center; object-fit: cover; color: var(--g180-ink); background: var(--g180-sage); border-radius: 50%; font-family: var(--font-accent); font-size: 15px; }
.g180-message strong { font-family: var(--font-accent); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.g180-message p { margin: 5px 0 3px; line-height: 1.5; }
.g180-message small { color: var(--g180-charcoal); font-size: 10px; }
.g180-message-form { margin-top: 16px; display: grid; gap: 10px; }
.g180-message-form label { font-family: var(--font-accent); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
.g180-message-form textarea { width: 100%; padding: 16px; resize: vertical; background: var(--g180-white); border: 1px solid transparent; border-radius: 8px; }
.g180-message-form textarea:focus { border-color: var(--g180-sage); outline: none; }
.g180-message-form .g180-primary { justify-self: end; }
.g180-client-picker { margin: -12px 0 20px; }
.g180-client-picker label { display: flex; gap: 12px; align-items: center; font-family: var(--font-accent); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
.g180-form { padding: 30px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; background: var(--g180-white); border-radius: 12px; }
.g180-form label, .g180-login-form label { display: grid; gap: 8px; color: var(--g180-charcoal); font-family: var(--font-accent); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
.g180-form input, .g180-form select, .g180-client-picker select, .g180-login-form input { width: 100%; min-height: 48px; padding: 0 13px; color: var(--g180-ink); background: var(--g180-paper); border: 1px solid transparent; border-radius: 6px; font-family: var(--font-body); font-size: 14px; letter-spacing: 0; text-transform: none; }
.g180-form input:focus, .g180-form select:focus, .g180-client-picker select:focus, .g180-login-form input:focus { background: var(--g180-white); border-color: var(--g180-sage); outline: none; }
.g180-span-2 { grid-column: 1 / -1; }
.g180-form-action { display: flex; align-items: end; }
.g180-profile-fields { padding: 0; display: contents; border: 0; }
.g180-profile-fields:disabled input, .g180-profile-fields:disabled textarea { color: var(--g180-ink); opacity: 1; -webkit-text-fill-color: var(--g180-ink); }
.g180-readonly-note { margin: 0; padding: 14px 16px; color: var(--g180-charcoal); background: #e7eadf; border-radius: 8px; font-size: 13px; }
.g180-form-heading { margin: 8px 0 -4px !important; padding-top: 18px; border-top: 1px solid var(--g180-line); font-family: var(--font-accent); font-size: 14px !important; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; }
.g180-role-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.g180-role-fields[hidden] { display: none; }
.g180-management-toggle { padding: 16px !important; display: flex !important; grid-template-columns: none !important; flex-direction: row; gap: 12px !important; align-items: flex-start; color: var(--g180-ink) !important; background: #e7eadf; border-radius: 9px; letter-spacing: 0 !important; text-transform: none !important; }
.g180-management-toggle input { width: 18px !important; min-height: 18px !important; flex: 0 0 auto; accent-color: var(--g180-lime); }
.g180-management-toggle strong { display: block; font-family: var(--font-accent); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.g180-trainer-options { margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; border: 0; }
.g180-trainer-options legend { margin-bottom: 8px; color: var(--g180-charcoal); font-family: var(--font-accent); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
.g180-trainer-options label { min-height: 48px; padding: 0 14px; display: flex; grid-template-columns: none; flex-direction: row; gap: 9px; align-items: center; color: var(--g180-ink); background: var(--g180-paper); border: 1px solid transparent; border-radius: 8px; cursor: pointer; text-transform: none; letter-spacing: 0; }
.g180-trainer-options input { width: 17px; min-height: 17px; padding: 0; accent-color: var(--g180-lime); }
.g180-counts { display: flex; gap: 8px; }
.g180-counts span { padding: 7px 12px; background: rgba(255,255,255,.65); border-radius: 100px; font-size: 11px; }
.g180-notice { max-width: 1120px; margin: 24px auto -12px; padding: 14px 18px; border-radius: 7px; font-size: 14px; }
.g180-notice--success { color: #31422f; background: #dfe9d9; }
.g180-notice--error { color: #6b2925; background: #f1dcd8; }

.g180-login { min-height: calc(100vh - 90px); padding: clamp(50px,7vw,100px) max(24px,calc((100vw - 1240px)/2)); display: grid; grid-template-columns: 1.2fr .8fr; gap: clamp(50px,9vw,140px); align-items: center; background: var(--g180-paper); }
.g180-login-copy h1 { max-width: 700px; margin: 0; font-size: clamp(56px,7.5vw,112px); font-weight: 400; line-height: .9; letter-spacing: -.065em; }
.g180-login-copy h1 em { color: var(--g180-sage-text); font-family: var(--font-accent); font-style: normal; font-weight: 300; }
.g180-login-copy > p:last-child { max-width: 560px; margin-top: 28px; color: var(--g180-charcoal); font-size: 18px; }
.g180-login-form { padding: clamp(28px,4vw,50px); display: grid; gap: 20px; color: var(--g180-white); background: var(--g180-ink); border-radius: 14px; }
.g180-login-form h2 { margin: 0 0 10px !important; color: var(--g180-white); font-size: 28px !important; font-weight: 400; }
.g180-login-form label { color: rgba(255,255,255,.62); }
.g180-login-form input { background: rgba(255,255,255,.1); color: var(--g180-white); border-color: rgba(255,255,255,.08); }
.g180-login-form input:focus { background: rgba(255,255,255,.14); color: var(--g180-white); border-color: var(--g180-lime); }
.g180-login-form .g180-check { grid-template-columns: 18px 1fr; align-items: center; text-transform: none; letter-spacing: 0; }
.g180-login-form .g180-check input { width: 16px; min-height: 16px; accent-color: var(--g180-lime); }
.g180-login-form .g180-primary { color: var(--g180-ink); background: var(--g180-lime); border-color: var(--g180-lime); }
.g180-reset { color: rgba(255,255,255,.65); font-size: 12px; text-align: center; }

@media (max-width: 900px) {
  body.menu-open .g180-mobile-account { visibility: hidden; opacity: 0; pointer-events: none; }
  body.menu-open .g180-nav { visibility: hidden; opacity: 0; pointer-events: none; }
  .g180-time-calendar { min-width: calc(58px + var(--calendar-days) * 125px); }
  .g180-time-head { grid-template-columns: 58px repeat(var(--calendar-days),125px); }
  .g180-time-days { grid-template-columns: repeat(var(--calendar-days),125px); }
  .g180-app { grid-template-columns: 1fr; }
  .g180-sidebar { position: static; z-index: auto; top: auto; height: 0; padding: 0; display: block; overflow: visible; background: transparent; }
  .g180-sidebar > .g180-user, .g180-sidebar > .g180-logout { display: none; }
  .g180-user { padding: 0; border: 0; }
  .g180-avatar { width: 36px; height: 36px; }
  .g180-mobile-account { position: relative; z-index: 103; margin-left: auto; display: block; transition: opacity .2s, visibility .2s; }
  .g180-mobile-account-button { padding: 0; display: flex; align-items: center; color: var(--g180-ink); background: transparent; border: 0; cursor: pointer; text-align: left; }
  .g180-mobile-account-button { gap: 9px; }
  .g180-mobile-account-button > div { min-width: 0; }
  .g180-mobile-account-button strong, .g180-mobile-account-button small { display: block; max-width: 92px; overflow: hidden; color: var(--g180-ink); line-height: 1.15; text-overflow: ellipsis; white-space: nowrap; }
  .g180-mobile-account-button strong { font-size: 11px; }
  .g180-mobile-account-button small { margin-top: 3px; color: var(--g180-charcoal); font-family: var(--font-accent); font-size: 8px; letter-spacing: .06em; text-transform: uppercase; }
  .g180-mobile-account-menu { position: absolute; top: calc(100% + 10px); right: 0; width: max-content; min-width: 180px; padding: 8px; color: var(--g180-white); background: var(--g180-ink); border-radius: 10px; box-shadow: 0 16px 45px rgba(0,0,0,.22); }
  .g180-mobile-account-menu[hidden] { display: none; }
  .g180-mobile-account-menu a { min-height: 42px; padding: 0 12px; display: flex; align-items: center; color: rgba(255,255,255,.78); border-radius: 7px; font-size: 11px; text-decoration: none; }
  .g180-mobile-account-menu a:hover, .g180-mobile-account-menu a:focus-visible { color: var(--g180-white); background: rgba(255,255,255,.08); }
  .g180-nav { position: fixed; z-index: 30; bottom: 0; left: 0; right: 0; margin: 0; padding: 8px 10px max(8px,env(safe-area-inset-bottom)); display: flex; overflow-x: auto; background: var(--g180-ink); border-top: 1px solid rgba(255,255,255,.12); transition: opacity .2s, visibility .2s; }
  .g180-nav a { min-width: max-content; padding: 9px 12px; font-size: 10px; }
  .g180-nav a.is-active { transform: none; }
  .g180-content { padding-bottom: 100px; }
  .g180-login { grid-template-columns: 1fr; }
  .g180-login-copy h1 { max-width: 760px; }
}

@media (max-width: 620px) {
  .g180-calendar-scroll--month { overflow-x: auto; }
  .g180-month-calendar { min-width: 700px; }
  .g180-section-head { align-items: flex-start; flex-direction: column; }
  .g180-section-head > .g180-primary { width: 100%; justify-content: center; }
  .g180-series-card { grid-template-columns: 1fr auto; }
  .g180-series-card > .g180-quiet { grid-column: 1 / -1; justify-content: center; }
  .g180-role-grid { grid-template-columns: 1fr; }
  .g180-role-grid .g180-span-2 { grid-column: auto; }
  .g180-agenda-filter { align-items: stretch; flex-direction: column; }
  .g180-agenda-filter label { width: 100%; }
  .g180-trainer-options { grid-template-columns: 1fr; }
  .page-main:has(.g180-app), .page-main:has(.g180-login) { padding-top: 72px; }
  .g180-app { min-height: calc(100vh - 72px); }
  .g180-user strong { max-width: 150px; }
  .g180-content { padding-inline: 14px; }
  .g180-section { padding: 58px 0; }
  .g180-hero { padding-top: 48px; }
  .g180-stats { margin-top: 38px; grid-template-columns: 1fr; }
  .g180-stats article { min-height: 150px; padding: 22px; }
  .g180-session { padding: 15px; grid-template-columns: 54px 1fr; gap: 13px; }
  .g180-date { width: 54px; height: 58px; }
  .g180-book, .g180-capacity, .g180-session > form { grid-column: 2; justify-self: start; text-align: left; }
  .g180-class-operations { grid-column: 1 / -1; }
  .g180-class-panel { padding: 14px; }
  .g180-class-edit { padding: 16px; }
  .g180-book { width: 100%; justify-content: space-between; }
  .g180-section-head { align-items: flex-start; flex-direction: column; }
  .g180-agenda-toolbar { align-items: stretch; flex-direction: column; }
  .g180-view-switch, .g180-date-nav { overflow-x: auto; }
  .g180-class-cancel { align-items: stretch; flex-direction: column; }
  .g180-message { max-width: 90%; }
  .g180-form { padding: 20px; grid-template-columns: 1fr; }
  .g180-span-2 { grid-column: auto; }
  .g180-login { min-height: calc(100vh - 72px); padding: 52px 18px 70px; gap: 44px; }
  .g180-login-copy h1 { font-size: clamp(52px,17vw,80px); }
}

/* Fase 2: entrenamiento y seguimiento */
.g180-context { margin: 0 0 18px; color: var(--g180-charcoal); }
.g180-plan-head { margin-bottom: 18px; padding: 28px 30px; display: flex; gap: 30px; justify-content: space-between; color: var(--g180-white); background: var(--g180-ink); border-radius: 12px; }
.g180-plan-head span { color: var(--g180-lime); font-family: var(--font-accent); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }
.g180-plan-head h3 { margin: 7px 0 4px !important; font-size: clamp(23px,2.3vw,32px) !important; font-weight: 400; }
.g180-plan-head p { max-width: 700px; margin: 0; color: rgba(255,255,255,.68); }
.g180-plan-head small { align-self: flex-end; color: rgba(255,255,255,.5); white-space: nowrap; }
.g180-exercise-list { display: grid; gap: 12px; }
.g180-exercise-card { position: relative; padding: 24px; display: grid; grid-template-columns: 52px minmax(220px,1.2fr) minmax(280px,.9fr); gap: 20px; align-items: start; background: var(--g180-white); border-radius: 11px; }
.g180-exercise-number { color: var(--g180-sage-text); font-family: var(--font-accent); font-size: 24px; font-weight: 300; }
.g180-exercise-main > small { color: var(--g180-sage-text); font-family: var(--font-accent); font-size: 10px; letter-spacing: .11em; text-transform: uppercase; }
.g180-exercise-main h3 { margin: 3px 0 8px !important; font-size: 21px !important; font-weight: 400; }
.g180-exercise-main p { margin: 0; color: var(--g180-charcoal); font-size: 13px; line-height: 1.55; }
.g180-exercise-main a { margin-top: 9px; display: inline-block; color: var(--g180-charcoal); border-bottom: 1px solid; font-family: var(--font-accent); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.g180-prescription { margin: 0; display: grid; grid-template-columns: repeat(2,1fr); gap: 9px; }
.g180-prescription div { padding: 10px 12px; background: var(--g180-paper); border-radius: 6px; }
.g180-prescription dt { color: var(--g180-charcoal); font-family: var(--font-accent); font-size: 9px; letter-spacing: .1em; text-transform: uppercase; }
.g180-prescription dd { margin: 2px 0 0; font-size: 14px; }
.g180-exercise-note { grid-column: 2 / -1; margin: -5px 0 0; padding: 11px 14px; color: var(--g180-charcoal); background: #eef0e8; border-radius: 6px; font-size: 12px; }
.g180-item-delete { position: absolute; top: 15px; right: 15px; }
.g180-item-delete .g180-quiet { min-height: 30px; padding-inline: 10px; background: var(--g180-white); font-size: 9px; }
.g180-tools-grid { margin-top: 25px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; align-items: start; }
.g180-tool { overflow: hidden; background: rgba(255,255,255,.65); border: 1px solid var(--g180-line); border-radius: 10px; }
.g180-tool summary { padding: 18px 20px; cursor: pointer; font-family: var(--font-accent); font-size: 13px; letter-spacing: .08em; text-transform: uppercase; }
.g180-tool[open] summary { border-bottom: 1px solid var(--g180-line); }
.g180-tool .g180-form { border-radius: 0; }
.g180-tool--standalone { margin-top: 22px; }
.g180-form--compact { padding: 20px; gap: 14px; }
.g180-form textarea, .g180-feedback textarea { width: 100%; padding: 12px 13px; resize: vertical; color: var(--g180-ink); background: var(--g180-paper); border: 1px solid transparent; border-radius: 6px; font-family: var(--font-body); font-size: 14px; letter-spacing: 0; text-transform: none; }
.g180-form textarea:focus, .g180-feedback textarea:focus { background: var(--g180-white); border-color: var(--g180-sage); outline: none; }
.g180-feedback { margin-top: 26px; padding: 28px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; background: #dfe4d9; border-radius: 12px; }
.g180-feedback > div { grid-column: 1 / -1; }
.g180-feedback h3 { margin: 0 !important; font-size: 26px !important; font-weight: 400; }
.g180-feedback label { display: grid; gap: 7px; color: var(--g180-charcoal); font-family: var(--font-accent); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.g180-feedback input, .g180-feedback select { width: 100%; min-height: 46px; padding: 0 12px; background: var(--g180-white); border: 1px solid transparent; border-radius: 6px; }
.g180-feedback .g180-primary { justify-self: start; }
.g180-metric-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.g180-metric-grid article { min-height: 145px; padding: 21px; display: flex; flex-direction: column; background: var(--g180-white); border-radius: 10px; }
.g180-metric-grid small { color: var(--g180-charcoal); font-family: var(--font-accent); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.g180-metric-grid strong { margin-top: auto; font-family: var(--font-accent); font-size: 38px; font-weight: 300; line-height: 1; }
.g180-metric-grid strong em { margin-left: 4px; color: var(--g180-charcoal); font-size: 14px; font-style: normal; }
.g180-metric-grid span { margin-top: 8px; color: var(--g180-charcoal); font-size: 10px; }
.g180-log-list { display: grid; gap: 9px; }
.g180-log-list article { padding: 17px 20px; display: grid; grid-template-columns: minmax(160px,1fr) auto; gap: 20px; align-items: center; background: var(--g180-white); border-radius: 8px; }
.g180-log-list article > div strong, .g180-log-list article > div span { display: block; }
.g180-log-list article > div strong { font-family: var(--font-accent); font-size: 17px; font-weight: 400; }
.g180-log-list article > div span { color: var(--g180-charcoal); font-size: 12px; }
.g180-log-list dl { margin: 0; display: flex; gap: 10px; }
.g180-log-list dl div { min-width: 78px; padding: 8px 10px; background: var(--g180-paper); border-radius: 5px; }
.g180-log-list dt { color: var(--g180-charcoal); font-size: 9px; text-transform: uppercase; }
.g180-log-list dd { margin: 1px 0 0; font-family: var(--font-accent); }
.g180-log-list article > p { grid-column: 1 / -1; margin: -8px 0 0; color: var(--g180-charcoal); font-size: 13px; }
.g180-document-list { display: grid; gap: 9px; }
.g180-document-row { padding: 10px 12px 10px 18px; display: flex; gap: 14px; align-items: center; justify-content: space-between; background: var(--g180-white); border-radius: 8px; }
.g180-document-row > a { min-width: 0; display: flex; gap: 14px; align-items: center; transition: transform .2s; }
.g180-document-row > a:hover { transform: translateX(3px); }
.g180-file-icon { width: 38px; height: 38px; display: grid; place-items: center; color: var(--g180-white); background: var(--g180-charcoal); border-radius: 50%; }
.g180-document-list strong, .g180-document-list small { display: block; }
.g180-document-list strong { font-size: 14px; font-weight: 400; }
.g180-document-list small { color: var(--g180-charcoal); font-size: 10px; }
.g180-upload { margin-top: 20px; padding: 20px; display: grid; grid-template-columns: minmax(180px,1fr) auto auto; gap: 18px; align-items: center; background: #dfe4d9; border-radius: 10px; }
.g180-upload strong, .g180-upload small { display: block; }
.g180-upload small { margin-top: 3px; color: var(--g180-charcoal); font-size: 10px; }
.g180-upload label { min-height: 42px; padding: 0 16px; display: flex; align-items: center; cursor: pointer; background: var(--g180-white); border-radius: 100px; font-family: var(--font-accent); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.g180-upload input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.g180-profile-head { margin: 22px 0; padding: 20px; display: grid; grid-template-columns: 92px 1fr auto; gap: 20px; align-items: center; background: var(--g180-white); border-radius: 10px; }
.g180-profile-preview, .g180-profile-head img, .g180-profile-placeholder { width: 92px; height: 92px; display: grid; place-items: center; object-fit: cover; color: var(--g180-ink); background: var(--g180-sage); border-radius: 50%; font-family: var(--font-accent); font-size: 34px; }
.g180-profile-head h3, .g180-profile-head p { margin: 0; }
.g180-profile-head p { margin-top: 5px; color: var(--g180-charcoal); font-size: 12px; }
.g180-profile-head form { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.g180-profile-head input[type=file] { position: absolute; width: 1px; height: 1px; opacity: 0; }
.g180-photo-pick { min-height: 42px; padding: 0 16px; display: inline-flex; align-items: center; color: var(--g180-ink); background: var(--g180-white); border: 1px solid var(--g180-line); border-radius: 100px; cursor: pointer; font-family: var(--font-accent); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.g180-photo-pick:hover, .g180-photo-pick:focus-within { border-color: var(--g180-ink); }
.g180-photo-status { flex-basis: 100%; color: var(--g180-charcoal); font-size: 11px; }
.g180-photo-form button:disabled { cursor: not-allowed; opacity: .42; transform: none; }
.g180-create-photo { padding: 16px; display: grid; grid-template-columns: 72px 1fr; gap: 16px; align-items: center; background: var(--g180-white); border-radius: 10px; }
.g180-create-photo .g180-profile-preview, .g180-create-photo .g180-profile-placeholder, .g180-create-photo .g180-profile-preview img { width: 72px; height: 72px; display: grid; place-items: center; object-fit: cover; border-radius: 50%; }
.g180-create-photo-controls > div { display: flex; gap: 8px; flex-wrap: wrap; }
.g180-create-photo input[type=file] { position: absolute; width: 1px; height: 1px; opacity: 0; }
.g180-crop-modal[hidden] { display: none; }
.g180-crop-modal { position: fixed; z-index: 10000; inset: 0; padding: 22px; display: grid; place-items: center; }
.g180-crop-backdrop { position: absolute; inset: 0; background: rgba(16,17,16,.78); backdrop-filter: blur(4px); }
.g180-crop-panel { position: relative; width: min(100%,560px); max-height: calc(100vh - 44px); padding: clamp(22px,4vw,34px); overflow-y: auto; color: var(--g180-ink); background: var(--g180-paper); border-radius: 16px; box-shadow: 0 28px 80px rgba(0,0,0,.28); }
.g180-crop-head { display: flex; gap: 20px; align-items: flex-start; justify-content: space-between; }
.g180-crop-head h3 { margin: 0; font-size: clamp(28px,5vw,42px); font-weight: 400; }
.g180-crop-head .g180-kicker { margin-bottom: 8px; }
.g180-crop-panel > p { margin: 12px 0 20px; color: var(--g180-charcoal); font-size: 14px; }
.g180-crop-view > p, .g180-camera-view > p { margin: 12px 0 20px; color: var(--g180-charcoal); font-size: 14px; }
.g180-camera-view video { width: min(100%,400px); margin: 0 auto; display: block; background: #101110; border-radius: 12px; aspect-ratio: 1; object-fit: cover; transform: scaleX(-1); }
.g180-crop-close { width: 40px; height: 40px; flex: 0 0 auto; color: var(--g180-ink); background: transparent; border: 1px solid var(--g180-line); border-radius: 50%; cursor: pointer; font-size: 26px; line-height: 1; }
.g180-crop-stage { position: relative; width: min(100%,400px); margin: 0 auto; overflow: hidden; background: #d9dbd3; border-radius: 12px; aspect-ratio: 1; touch-action: none; }
.g180-crop-stage canvas { width: 100%; height: 100%; display: block; cursor: grab; touch-action: none; }
.g180-crop-stage canvas:active { cursor: grabbing; }
.g180-crop-stage > span { position: absolute; inset: 7%; border: 2px solid rgba(255,255,255,.92); border-radius: 50%; box-shadow: 0 0 0 999px rgba(16,17,16,.36); pointer-events: none; }
.g180-zoom-label { margin-top: 20px; display: grid; grid-template-columns: auto 1fr; gap: 14px; align-items: center; font-family: var(--font-accent); font-size: 11px; letter-spacing: .09em; text-transform: uppercase; }
.g180-zoom-label input { width: 100%; accent-color: var(--g180-lime); }
.g180-crop-actions { margin-top: 22px; display: flex; gap: 10px; justify-content: flex-end; }
body.g180-crop-open { overflow: hidden; }

@media (max-width: 900px) {
  .g180-exercise-card { grid-template-columns: 46px 1fr; }
  .g180-prescription { grid-column: 2; }
  .g180-tools-grid { grid-template-columns: 1fr; }
  .g180-metric-grid { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 620px) {
  .g180-profile-head { grid-template-columns: 72px 1fr; }
  .g180-profile-preview, .g180-profile-head img, .g180-profile-placeholder { width: 72px; height: 72px; }
  .g180-profile-head form { grid-column: 1 / -1; flex-wrap: wrap; }
  .g180-photo-form { align-items: stretch !important; flex-direction: column; }
  .g180-photo-pick, .g180-photo-form > button { justify-content: center; }
  .g180-create-photo { grid-template-columns: 58px 1fr; }
  .g180-create-photo .g180-profile-preview, .g180-create-photo .g180-profile-placeholder, .g180-create-photo .g180-profile-preview img { width: 58px; height: 58px; }
  .g180-crop-modal { padding: 10px; }
  .g180-crop-panel { max-height: calc(100vh - 20px); padding: 20px; }
  .g180-plan-head { padding: 22px; flex-direction: column; }
  .g180-plan-head small { align-self: flex-start; }
  .g180-exercise-card { padding: 18px; grid-template-columns: 36px 1fr; gap: 12px; }
  .g180-prescription { grid-column: 1 / -1; }
  .g180-exercise-note { grid-column: 1 / -1; }
  .g180-item-delete { position: static; grid-column: 1 / -1; }
  .g180-feedback { padding: 20px; grid-template-columns: 1fr; }
  .g180-feedback > div, .g180-feedback .g180-span-2 { grid-column: auto; }
  .g180-metric-grid { grid-template-columns: 1fr 1fr; }
  .g180-log-list article { grid-template-columns: 1fr; }
  .g180-log-list article > p { grid-column: auto; }
  .g180-upload { grid-template-columns: 1fr; align-items: stretch; }
  .g180-upload label, .g180-upload .g180-primary { justify-content: center; }
}
