.gc-modal-layer { position: fixed; inset: 0; z-index: 80; display: grid; place-items: center; padding: 18px; background: rgba(1,6,5,.72); backdrop-filter: blur(14px); }
.gc-modal { width: min(560px,100%); max-height: min(760px,90vh); overflow: auto; border: 1px solid var(--border-strong); border-radius: var(--radius-xl); background: linear-gradient(160deg, rgba(25,43,38,.98), rgba(8,18,15,.98)); box-shadow: var(--shadow-lg); }
.gc-modal [hidden] { display: none !important; }
.gc-exercise-modal { display: flex; flex-direction: column; max-height: min(780px, calc(100dvh - 36px)); overflow: hidden; }
.gc-exercise-modal .gc-modal__head { flex: 0 0 auto; }
.gc-exercise-modal .gc-form { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
.gc-exercise-modal .gc-modal__actions { position: sticky; bottom: 0; z-index: 2; margin: 8px -24px -24px; padding: 14px 24px 18px; background: #0b1714; border-top: 1px solid rgba(255,255,255,.06); }
.gc-choice-row--two { grid-template-columns: 1fr 1fr; }
.gc-modal__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 24px 24px 0; }
.gc-modal__title { margin: 0; font-size: 30px; letter-spacing: -.04em; }
.gc-modal__sub { color: var(--text-2); margin-top: 5px; font-size: 14px; }
.gc-form { padding: 22px 24px 24px; display: grid; gap: 15px; }
.gc-field { display: grid; gap: 7px; }
.gc-field label { color: var(--text-2); font-size: 12px; font-weight: 750; letter-spacing: .04em; }
.gc-field input,.gc-field select { width: 100%; min-height: 48px; border-radius: 14px; border: 1px solid var(--border); background: rgba(255,255,255,.04); color: var(--text); padding: 0 13px; outline: none; }
.gc-field input:focus,.gc-field select:focus { border-color: var(--border-strong); box-shadow: 0 0 0 3px rgba(89,225,176,.08); }
.gc-field select option { background: #0d1a17; color: var(--text); }
.gc-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.gc-choice-row { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; }
.gc-choice { min-height: 45px; border-radius: 13px; border: 1px solid var(--border); background: rgba(255,255,255,.03); color: var(--text-2); cursor: pointer; }
.gc-choice.is-active { color: #062118; background: var(--accent); border-color: transparent; font-weight: 800; }
.gc-modal__actions { display: flex; gap: 9px; justify-content: flex-end; padding-top: 5px; }
.gc-modal__actions .gc-primary { width: auto; margin: 0; padding-inline: 22px; }
.gc-empty { padding: 42px 20px; text-align: center; color: var(--text-2); }
.gc-signin-layer{place-items:center}.gc-signin-modal{width:min(520px,calc(100vw - 32px))}.gc-signin-form{max-width:460px;width:100%;margin:0 auto}
@media(max-width:620px){
  .gc-modal-layer{align-items:end;padding:0}
  .gc-modal{width:100%;max-height:88vh;border-radius:26px 26px 0 0}
  .gc-form-grid{grid-template-columns:1fr}
  .gc-modal__head{padding-top:20px}
  .gc-modal__actions{position:sticky;bottom:0;background:linear-gradient(transparent,#0a1512 28%);padding-top:30px}
  .gc-modal__actions .gc-primary{flex:1}
  .gc-signin-layer{align-items:center;justify-items:center;padding:16px}
  .gc-signin-modal{width:min(100%,520px);max-height:min(720px,calc(100dvh - 32px));border-radius:24px}
  .gc-signin-modal .gc-modal__head{padding:22px 22px 0}
  .gc-signin-form{padding:22px}
  .gc-signin-form .gc-modal__actions{position:static;background:none;padding-top:8px}
  .gc-exercise-modal-layer{align-items:stretch;justify-items:stretch;padding:0}
  .gc-exercise-modal{height:100dvh;max-height:100dvh;border-radius:0;display:flex;flex-direction:column;overflow:hidden}
  .gc-exercise-modal .gc-modal__head{flex:0 0 auto;padding:max(18px,env(safe-area-inset-top)) 20px 14px;background:#0b1714;border-bottom:1px solid var(--border);z-index:2}
  .gc-exercise-modal .gc-modal__title{font-size:26px}
  .gc-exercise-modal .gc-form{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:18px 20px calc(20px + env(safe-area-inset-bottom));overscroll-behavior:contain}
  .gc-exercise-modal .gc-modal__actions{bottom:calc(-20px - env(safe-area-inset-bottom));margin:8px -20px calc(-20px - env(safe-area-inset-bottom));padding:14px 20px calc(16px + env(safe-area-inset-bottom));background:#0b1714;border-top:1px solid rgba(255,255,255,.06)}
}


.gc-manual-practice-modal{width:min(760px,100%);display:flex;flex-direction:column;max-height:min(760px,calc(100dvh - 36px));overflow:hidden}
.gc-manual-practice-modal>.gc-modal__head{flex:0 0 auto}
.gc-manual-practice-modal>.gc-form{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain}
.gc-manual-practice-modal .gc-modal__actions{position:sticky;bottom:0;z-index:2;margin:4px -24px -24px;padding:14px 24px 18px;background:#0b1714;border-top:1px solid rgba(255,255,255,.06)}
.gc-manual-parts{display:grid;gap:12px}
.gc-manual-part{padding:14px 16px 16px;border:1px solid var(--border);border-radius:16px;background:rgba(255,255,255,.025)}
.gc-manual-part__head{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.gc-part-badge{flex:0 0 22px;width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(135deg,#62e7b7,#31c492);color:#0b1714;font-size:12px;font-weight:700;line-height:1}
.gc-manual-part__id{flex:1;min-width:0}
.gc-manual-part__id strong{display:block;font-size:15px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gc-manual-part__id span{display:block;margin-top:2px;font-size:12px;color:rgba(255,255,255,.55)}
.gc-part-remove{flex:0 0 auto;color:rgba(255,255,255,.45);font-size:12px}
.gc-part-remove:hover{color:#ffc0c0}
.gc-manual-part__values .gc-field label{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.5)}
.gc-manual-part__values .gc-field label .gc-muted{text-transform:none;letter-spacing:0;font-weight:600}
.gc-manual-practice-modal .gc-manual-part__values input{text-align:center;font-size:16px;font-weight:700;font-variant-numeric:tabular-nums;min-height:52px;border-radius:12px}
.gc-manual-practice-modal .gc-manual-add-part{width:100%;min-height:52px;border:1.5px dashed rgba(98,231,183,.35);border-radius:14px;background:rgba(98,231,183,.04);color:var(--accent);font-weight:700}
.gc-manual-practice-modal .gc-manual-add-part:hover{border-color:rgba(98,231,183,.55);background:rgba(98,231,183,.07)}
.gc-manual-part__pickers{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.gc-manual-part__values{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
.gc-manual-part__values--free{grid-template-columns:1fr}
.gc-when-chip{display:flex;align-items:center;gap:8px;min-height:50px;width:100%;padding:0 14px;border:1px solid var(--border);border-radius:14px;background:rgba(255,255,255,.035);color:var(--text);font:inherit;font-weight:700;cursor:pointer;text-align:left}
.gc-when-chip:hover{border-color:var(--border-strong)}
.gc-when-chip__edit{margin-left:auto;color:var(--text-3);font-size:13px}
.gc-manual-name-toggle{justify-self:start;text-align:left;margin-bottom:2px}
.gc-manual-practice-modal [data-name-field]{margin-bottom:10px}
.gc-instrument-chips{display:flex;gap:8px;flex-wrap:wrap}
.gc-instrument-chips button{min-height:44px;padding:0 16px;border:1px solid var(--border);border-radius:999px;background:rgba(255,255,255,.03);color:var(--text-2);font:inherit;font-weight:700;cursor:pointer}
.gc-instrument-chips button.is-selected{border-color:rgba(98,231,183,.5);background:rgba(98,231,183,.1);color:var(--accent)}
.gc-manual-add-part{justify-self:start}
.gc-quick-start-modal{width:min(590px,100%)}
@media(max-width:620px){
  .gc-manual-practice-layer{align-items:stretch}
  .gc-manual-practice-modal{height:100dvh;max-height:100dvh;border-radius:0;display:flex;flex-direction:column}
  .gc-manual-practice-modal>.gc-modal__head{flex:0 0 auto}
  .gc-manual-practice-modal>.gc-form{flex:1;min-height:0;overflow:auto;padding-bottom:max(20px,env(safe-area-inset-bottom))}
  .gc-manual-part__pickers{grid-template-columns:1fr}
  .gc-manual-part__values{grid-template-columns:1fr 1fr 1fr;gap:8px}
  .gc-manual-part__values--free{grid-template-columns:1fr}
  .gc-manual-add-part{width:100%}
  .gc-manual-practice-modal .gc-modal__actions{bottom:calc(0px - max(20px,env(safe-area-inset-bottom)));margin:4px -16px calc(0px - max(20px,env(safe-area-inset-bottom)));padding:14px 16px calc(14px + env(safe-area-inset-bottom));background:#0b1714;border-top:1px solid rgba(255,255,255,.06)}
}


/* Session builder + centered mobile dialogs */
.gc-session-builder{display:grid;gap:12px}
.gc-session-step{padding:16px;border:1px solid var(--border);border-radius:18px;background:rgba(255,255,255,.025)}
.gc-session-step__head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.gc-session-step__head strong{font-size:15px}
.gc-session-step__pickers{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.gc-session-add{justify-self:start}
.gc-exercise-modal-layer{z-index:100}

@media(max-width:620px){
  .gc-legal-layer,
  [data-instrument-modal]{
    align-items:center!important;
    justify-items:center!important;
    padding:16px!important;
  }
  .gc-legal-layer .gc-modal,
  [data-instrument-modal] .gc-modal{
    width:min(100%,560px)!important;
    max-height:calc(100dvh - 32px)!important;
    border-radius:24px!important;
  }
  .gc-legal-layer .gc-modal__actions{position:static!important;background:none!important;padding-top:8px!important}
  .gc-quick-start-modal .gc-modal__actions{
    position:static!important;
    background:none!important;
    padding-top:8px!important;
  }
  .gc-session-step__pickers{grid-template-columns:1fr}
  .gc-session-add{width:100%}
}


/* P0 legal + privacy */
.gc-legal-modal{width:min(520px,100%)}
.gc-legal-modal .gc-modal__actions{padding:14px 24px 24px;gap:10px}
.gc-legal-modal .gc-modal__actions button{min-height:48px;border-radius:14px;padding-inline:20px}
.gc-legal-copy{padding:4px 24px 8px;color:var(--text-2);font-size:14px;line-height:1.6}
.gc-legal-copy a{color:var(--accent);text-underline-offset:3px}
.gc-analytics-choice{
  position:fixed;z-index:140;right:18px;bottom:18px;width:min(430px,calc(100vw - 36px));
  display:grid;gap:14px;padding:16px;border:1px solid var(--border-strong);border-radius:18px;
  background:rgba(8,25,21,.98);box-shadow:0 20px 60px rgba(0,0,0,.42);backdrop-filter:blur(16px)
}
.gc-analytics-choice>div:first-child{display:grid;gap:4px}
.gc-analytics-choice strong{font-size:14px}
.gc-analytics-choice span{color:var(--text-2);font-size:12px;line-height:1.5}
.gc-analytics-choice a{color:var(--accent);text-underline-offset:3px}
.gc-analytics-choice__actions{display:flex;align-items:center;justify-content:flex-end;gap:14px}
.gc-analytics-choice [data-analytics-allow]{min-height:46px;padding:0 20px;border:0;border-radius:13px;background:linear-gradient(135deg,#6df0c0,#39c999);color:#052018;font-weight:800;font-size:14px;cursor:pointer;box-shadow:0 10px 26px rgba(42,191,142,.22)}
.gc-analytics-choice [data-analytics-allow]:hover{filter:brightness(1.04)}
.gc-analytics-choice [data-analytics-deny]{min-height:46px;padding:0 10px;border:0;background:none;color:var(--text-3);font-weight:600;font-size:13px;text-decoration:none;cursor:pointer}
.gc-analytics-choice [data-analytics-deny]:hover{color:var(--text-2)}
@media(max-width:620px){
  .gc-analytics-choice{left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));width:auto}
  .gc-analytics-choice__actions{justify-content:space-between}
}

.gc-auth-utility{display:flex;justify-content:flex-end;margin-top:-5px}
.gc-auth-link,.gc-auth-back{border:0;background:none;color:var(--accent);font:inherit;font-size:13px;font-weight:750;padding:3px 0;cursor:pointer;text-decoration:none}
.gc-auth-link:hover,.gc-auth-back:hover{text-decoration:underline}
.gc-auth-back{justify-self:start;color:var(--text-2);margin-top:-4px}
.gc-auth-note{color:var(--text-2);font-size:13px;line-height:1.5}
.gc-auth-error{padding:11px 13px;border:1px solid rgba(255,120,110,.35);border-radius:13px;background:rgba(120,34,30,.18);color:#ffc3bd;font-size:13px;line-height:1.45}
.gc-summary{display:grid;gap:13px;padding:8px 0 2px;text-align:left}
.gc-summary__check{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:rgba(83,228,199,.13);color:var(--accent);font-size:21px;font-weight:900}
.gc-summary h3{margin:0;font-size:24px;letter-spacing:-.03em}
.gc-summary .gc-subtitle{color:var(--text-2);font-size:14px;line-height:1.55}
.gc-summary .gc-primary{justify-self:start;margin-top:4px}

.gc-signin-modal [hidden]{display:none!important}


/* One-tap practice picker */
.gc-picker{width:min(560px,100%);max-height:min(720px,calc(100dvh - 36px));display:flex;flex-direction:column;overflow:hidden}
.gc-picker__head{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 22px 0}
.gc-picker__search{flex:0 0 auto;padding:14px 22px 4px}
.gc-picker__search input{width:100%;min-height:48px;border-radius:14px;border:1px solid var(--border);background:rgba(255,255,255,.04);color:var(--text);padding:0 14px;outline:none;font:inherit}
.gc-picker__search input:focus{border-color:var(--border-strong);box-shadow:0 0 0 3px rgba(89,225,176,.08)}
.gc-picker__chips{flex:0 0 auto;display:flex;gap:8px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding:10px 22px;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 24px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 24px),transparent)}
.gc-picker__chips::-webkit-scrollbar{display:none}
.gc-picker__chips .gc-pill{flex:0 0 auto}
.gc-picker__body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:2px 16px 12px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.16) transparent}
.gc-picker__body::-webkit-scrollbar,.gc-modal ::-webkit-scrollbar{width:8px}
.gc-picker__body::-webkit-scrollbar-thumb,.gc-modal ::-webkit-scrollbar-thumb{background:rgba(255,255,255,.14);border-radius:8px}
.gc-picker__body::-webkit-scrollbar-track,.gc-modal ::-webkit-scrollbar-track{background:transparent}
.gc-picker__label{margin:18px 4px 8px;color:rgba(255,255,255,.45);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.gc-routine-rail{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;scroll-snap-type:x proximity;padding:4px 2px 10px;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 24px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 24px),transparent)}
.gc-routine-rail::-webkit-scrollbar{display:none}
.gc-routine-pick{flex:0 0 248px;scroll-snap-align:start;min-height:140px;display:flex;flex-direction:column;align-items:stretch;gap:9px;padding:12px;border-radius:14px;border:1px solid rgba(98,231,183,.3);background:linear-gradient(135deg,rgba(98,231,183,.14),rgba(49,196,146,.06));color:var(--text);font:inherit;text-align:left;cursor:pointer}
.gc-routine-pick:hover{border-color:rgba(98,231,183,.5)}
.gc-routine-pick__head{display:flex;align-items:center;gap:10px;min-width:0}
.gc-routine-pick__play{flex:0 0 28px;width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(135deg,#62e7b7,#31c492);color:#0b1714;font-size:12px}
.gc-routine-pick__name{flex:1;min-width:0;font-size:14px;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gc-routine-pick__steps{list-style:none;margin:0;padding:0;display:grid;gap:4px;flex:1;align-content:start}
.gc-routine-pick__steps li{display:flex;align-items:center;gap:7px;height:18px;min-width:0}
.gc-routine-pick__steps i{flex:0 0 16px;width:16px;height:16px;display:grid;place-items:center;border:1px solid rgba(98,231,183,.35);border-radius:50%;font-style:normal;font-size:10px;line-height:1;color:var(--accent)}
.gc-routine-pick__steps li span{flex:1;min-width:0;font-size:12.5px;color:rgba(255,255,255,.85);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gc-routine-pick__steps em{font-style:normal;font-size:11px;color:rgba(255,255,255,.5);white-space:nowrap}
.gc-routine-pick__more span{color:rgba(255,255,255,.55)!important}
.gc-routine-pick__meta{font-size:12px;color:rgba(255,255,255,.65)}
@media(min-width:720px){
  .gc-routine-rail{display:grid;grid-template-columns:repeat(auto-fill,minmax(232px,1fr));gap:10px;overflow:visible;-webkit-mask-image:none;mask-image:none}
  .gc-routine-pick{width:auto;flex:none}
}
.gc-picker-row{display:flex;align-items:center;gap:12px;width:100%;min-height:56px;padding:8px 12px;border:0;border-radius:12px;background:transparent;color:var(--text);text-align:left;cursor:pointer}
.gc-picker-row:hover{background:rgba(255,255,255,.04)}
.gc-picker-row>div{flex:1;min-width:0}
.gc-picker-row strong{display:block;font-size:15px;font-weight:600;color:rgba(255,255,255,.95);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gc-picker-row>div>span{display:block;margin-top:2px;color:rgba(255,255,255,.55);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gc-picker-row--create strong{color:var(--accent)}
.gc-pick-badge{flex:0 0 22px;width:22px;height:22px;display:grid;place-items:center;border:1.5px solid rgba(255,255,255,.18);border-radius:50%;color:#0b1714;font-size:12px;font-weight:700;line-height:1}
.gc-picker-row.is-selected{background:rgba(98,231,183,.08);box-shadow:inset 2px 0 0 #59e1b0}
.gc-picker-row.is-selected .gc-pick-badge{background:linear-gradient(135deg,#62e7b7,#31c492);border-color:transparent}
.gc-picker-row--create .gc-pick-badge{color:var(--accent)}
.gc-picker-start{width:100%;min-height:52px;border:0;border-radius:15px;background:linear-gradient(135deg,#62e7b7,#31c492);color:#0b1714;font:inherit;font-weight:700;font-size:15px;cursor:pointer;box-shadow:0 10px 26px rgba(42,191,142,.2)}
.gc-picker-start:hover{filter:brightness(1.03)}
.gc-picker__foot{flex:0 0 auto;display:flex;align-items:center;min-height:76px;padding:12px 22px calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:rgba(8,18,15,.9)}
.gc-picker-foot__stack{flex:1;display:grid;gap:6px}
.gc-picker-foot__meta{font-size:12px;color:rgba(255,255,255,.55);text-align:center}
.gc-picker-foot-btn{flex:1;min-height:48px;border:1px solid rgba(255,255,255,.14);border-radius:14px;background:transparent;color:rgba(255,255,255,.85);font:inherit;font-weight:700;cursor:pointer}
.gc-picker-foot-btn:hover{border-color:var(--border-strong);color:var(--text)}
@media(max-width:620px){
  .gc-quick-start-layer{align-items:end;padding:0}
  .gc-picker{width:100%;height:min(92dvh,100%);max-height:92dvh;border-radius:26px 26px 0 0;border-bottom:0}
}
