/* Shared foundation for every surface rendered before or outside the panel shell. */
*{box-sizing:border-box}
html{min-height:100%;background:var(--gk-color-canvas);color:var(--gk-color-text);font-family:var(--gk-font-ui)}
body.gk-session-page{
  margin:0;
  min-height:100dvh;
  background:
    radial-gradient(circle at 12% 18%,rgba(103,61,230,.055),transparent 31%),
    radial-gradient(circle at 86% 82%,rgba(103,61,230,.035),transparent 30%),
    var(--gk-color-canvas);
  color:var(--gk-color-text);
  font-family:var(--gk-font-ui);
  font-size:var(--gk-font-size-base);
  line-height:var(--gk-line-height-base);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body.gk-session-page :is(button,input,select,textarea){font:inherit}
body.gk-session-page :is(a,button,input[type="button"],input[type="submit"]){-webkit-tap-highlight-color:transparent}
body.gk-session-page :is(a,button,input,select,textarea):focus-visible{
  outline:0;
  box-shadow:var(--gk-focus-ring);
}
.gk-session-layout{
  width:100%;
  min-height:100dvh;
  display:grid;
  place-items:center;
  padding:var(--gk-session-screen-gap);
}
.gk-session-card{
  width:min(var(--gk-session-card-width),calc(100vw - (var(--gk-session-screen-gap) * 2)));
  min-width:0;
  margin:0;
  padding:var(--gk-session-card-padding);
  border:1px solid var(--gk-color-border);
  border-radius:var(--gk-card-radius);
  background:var(--gk-color-surface);
  box-shadow:var(--gk-card-shadow);
  color:var(--gk-color-text);
  direction:inherit;
  text-align:start;
}
.gk-session-card-wide{width:min(var(--gk-session-card-width-wide),calc(100vw - (var(--gk-session-screen-gap) * 2)))}
.gk-session-heading{margin:0;color:var(--gk-color-heading);font-size:var(--gk-type-page);font-weight:var(--gk-weight-heading);line-height:var(--gk-heading-line-height)}
.gk-session-copy{margin:var(--gk-space-2) 0 0;color:var(--gk-color-muted);font-size:var(--gk-font-size-sm);line-height:var(--gk-line-height-base);overflow-wrap:anywhere}
.gk-session-form{display:grid;gap:var(--gk-session-inner-gap);margin:0}
.gk-session-form label{display:grid;gap:var(--gk-label-gap);min-width:0;margin:0}
.gk-session-form label>span{color:var(--gk-color-text);font-size:var(--gk-font-size-sm);font-weight:700;line-height:1.5}
.gk-session-control{
  width:100%;
  min-width:0;
  height:var(--gk-form-control-height);
  min-height:var(--gk-form-control-height);
  margin:0;
  padding:0 var(--gk-control-padding-inline);
  border:var(--gk-control-border-width) solid var(--gk-color-field-border);
  border-radius:var(--gk-form-control-radius);
  background:var(--gk-color-field-bg);
  color:var(--gk-color-field-text);
  font-size:var(--gk-font-size-md);
  outline:0;
  box-shadow:none;
  transition:var(--gk-interaction-transition);
}
textarea.gk-session-control{height:auto;min-height:var(--gk-textarea-min-height);padding-block:11px;resize:vertical}
.gk-session-control:hover{border-color:var(--gk-color-field-border-hover)}
.gk-session-control:focus{border-color:var(--gk-color-primary);box-shadow:var(--gk-focus-ring)}
.gk-session-control::placeholder{color:var(--gk-color-field-placeholder);opacity:1}
.gk-session-control:is(:disabled,[readonly]){border-color:var(--gk-color-disabled-border);background:var(--gk-color-disabled-bg);color:var(--gk-color-disabled-text)}
.gk-session-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:var(--gk-action-gap);margin-top:var(--gk-session-section-gap)}
.gk-session-primary,.gk-session-secondary{
  min-width:var(--gk-action-standard-min-width);
  height:var(--gk-button-height);
  min-height:var(--gk-button-height);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:var(--gk-space-2);
  margin:0;
  padding:0 var(--gk-space-5);
  border:1px solid transparent;
  border-radius:var(--gk-control-radius);
  font-size:var(--gk-font-size-sm);
  font-weight:800;
  line-height:1;
  text-align:center;
  text-decoration:none;
  white-space:normal;
  cursor:pointer;
  transition:var(--gk-interaction-transition);
}
.gk-session-primary{border-color:var(--gk-color-primary);background:var(--gk-color-primary);color:var(--gk-color-on-primary);box-shadow:0 5px 14px rgba(103,61,230,.12)}
.gk-session-primary:hover{border-color:var(--gk-color-primary-hover);background:var(--gk-color-primary-hover);color:var(--gk-color-on-primary)}
.gk-session-primary:active:not(:disabled){border-color:var(--gk-color-primary-active);background:var(--gk-color-primary-active);color:var(--gk-color-on-primary);box-shadow:var(--gk-interaction-pressed-shadow);transform:translateY(1px)}
.gk-session-secondary{border-color:var(--gk-color-button-secondary-border);background:var(--gk-color-button-secondary-bg);color:var(--gk-color-button-secondary-text)}
.gk-session-secondary:hover{border-color:var(--gk-color-button-secondary-hover-border);background:var(--gk-color-button-secondary-hover-bg);color:var(--gk-color-button-secondary-hover-text)}
.gk-session-secondary:active:not(:disabled){border-color:var(--gk-color-button-secondary-active-border);background:var(--gk-color-button-secondary-active-bg);color:var(--gk-color-button-secondary-active-text);box-shadow:var(--gk-interaction-pressed-shadow);transform:translateY(1px)}
.gk-session-primary:is(:disabled,[aria-disabled="true"]),.gk-session-secondary:is(:disabled,[aria-disabled="true"]){border-color:var(--gk-color-disabled-border);background:var(--gk-color-disabled-bg);color:var(--gk-color-disabled-text);box-shadow:none;cursor:not-allowed}
.gk-session-primary[aria-busy="true"]{border-color:var(--gk-color-primary)!important;background:var(--gk-color-primary)!important;color:var(--gk-color-on-primary)!important;box-shadow:0 5px 14px rgba(103,61,230,.12)!important;transform:none!important;cursor:wait}
.gk-session-notice{
  display:flex;
  align-items:flex-start;
  gap:var(--gk-space-2);
  margin:0;
  padding:var(--gk-note-space-block) var(--gk-note-space-inline);
  border:1px solid var(--gk-color-border);
  border-radius:var(--gk-control-radius);
  background:var(--gk-color-surface-subtle);
  font-size:var(--gk-font-size-sm);
  line-height:1.7;
  overflow-wrap:anywhere;
}
.gk-session-notice p{margin:0}
.gk-session-notice.is-error{border-color:var(--gk-color-button-danger-border);background:var(--gk-color-danger-soft);color:var(--gk-color-danger)}
.gk-session-notice.is-success{border-color:var(--gk-color-success-border);background:var(--gk-color-success-soft);color:var(--gk-color-success)}
.gk-session-notice.is-warning{border-color:var(--gk-color-button-warning-border);background:var(--gk-color-warning-soft);color:var(--gk-color-warning)}
.gk-session-muted{margin:0;color:var(--gk-color-muted);font-size:var(--gk-font-size-xs);line-height:1.75;overflow-wrap:anywhere}
.gk-session-code{padding:2px 5px;border-radius:var(--gk-radius-sm);background:var(--gk-color-surface-muted);direction:ltr;unicode-bidi:embed;overflow-wrap:anywhere}
[hidden]{display:none!important}
@media(max-width:760px){
  :root{--gk-session-screen-gap:12px;--gk-session-card-padding:16px}
  .gk-session-layout{place-items:safe center;padding-block:var(--gk-session-screen-gap) max(24px,env(safe-area-inset-bottom,0px))}
  .gk-session-card,.gk-session-card-wide{width:100%;max-width:620px}
  .gk-session-control{height:var(--gk-ui-control-height-mobile);min-height:var(--gk-ui-control-height-mobile);font-size:16px}
  .gk-session-primary,.gk-session-secondary{width:100%;min-width:0;height:var(--gk-action-height-mobile);min-height:var(--gk-action-height-mobile)}
  .gk-session-actions{display:grid;grid-template-columns:minmax(0,1fr);width:100%}
}
@media(max-width:430px){
  :root{--gk-session-screen-gap:9px;--gk-session-card-padding:14px}
  .gk-session-card,.gk-session-card-wide{border-radius:var(--gk-card-radius)}
  .gk-session-heading{font-size:20px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  body.gk-session-page *,body.gk-session-page *::before,body.gk-session-page *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
