/* Shared primitives. Keep feature layout rules in their existing feature assets. */
body { background:var(--gk-bg-page); color:var(--gk-text-primary); font-family:var(--gk-font-body); }
.ui-icon { width:20px; height:20px; flex:none; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
h1,h2,h3,h4 { font-family:var(--gk-font-display); }
p { color:var(--gk-text-secondary); }
::selection { background:var(--gk-bg-soft); color:var(--gk-text-primary); }
:focus-visible { outline:2px solid var(--gk-focus); outline-offset:4px; }
.skip-link { background:var(--gk-action-primary); color:var(--gk-on-action); border-radius:var(--gk-radius-sm); }
.button,.studio-button { min-height:44px; border-radius:var(--gk-radius-sm); background:var(--gk-action-primary); color:var(--gk-on-action); border:1px solid var(--gk-action-primary); font-family:var(--gk-font-body); font-weight:600; box-shadow:none; transition:background .2s,border-color .2s,transform .2s; }
.button:hover,.studio-button:hover { background:var(--gk-action-primary-hover); border-color:var(--gk-action-primary-hover); color:var(--gk-on-action); }
.button-secondary { background:var(--gk-bg-surface); color:var(--gk-text-primary); border-color:var(--gk-border-strong); }
.button-secondary:hover { background:var(--gk-bg-soft); color:var(--gk-action-primary); border-color:var(--gk-action-primary); }
.button:disabled { opacity:.65; cursor:wait; }
.button-small { min-height:40px; }
/* Public actions: a shared pill silhouette and a quiet, inset icon. */
.public-shell :is(a,button):is(.button,.studio-button) {
    display:inline-flex; align-items:center; justify-content:space-between;
    gap:20px; min-height:52px; max-width:100%; padding:8px 9px 8px 22px;
    border-radius:var(--gk-radius-action); font-size:13px; line-height:1.5;
    text-align:left; text-decoration:none; box-shadow:var(--gk-action-shadow);
    transition:background .2s,border-color .2s,box-shadow .2s,transform .2s var(--gk-ease);
}
.public-shell .action-icon {
    display:inline-flex; align-items:center; justify-content:center; flex:0 0 34px;
    width:34px; height:34px; border-radius:var(--gk-radius-action);
    background:var(--gk-action-icon-surface); line-height:1;
    transition:background .2s,color .2s;
}
.public-shell .action-icon .ui-icon { width:18px; height:18px; transition:transform .2s var(--gk-ease); }
.public-shell :is(.p-link,.studio-link) {
    display:inline-flex; align-items:center; gap:12px; min-height:44px; max-width:100%;
    padding:4px 0; border-bottom:0; color:var(--gk-action-primary);
    font-size:13px; line-height:1.5; white-space:normal; text-decoration:none;
}
.public-shell :is(.p-link,.studio-link,.button-secondary)>.action-icon { background:var(--gk-bg-soft); }
.public-shell :is(.button-secondary,.button-light) { box-shadow:none; }
.public-shell :is(.button,.studio-button,.p-link,.studio-link):hover>.action-icon { transform:none; }
.public-shell :is(a,button):is(.button,.studio-button):active { transform:translateY(0); box-shadow:none; }
.public-shell :is(button.button,button.studio-button):disabled { opacity:.65; cursor:wait; transform:none; box-shadow:none; }
@media(hover:hover) and (pointer:fine) {
    .public-shell :is(a,button):is(.button,.studio-button):not(:disabled):hover { transform:translateY(-2px); box-shadow:var(--gk-shadow-soft); }
    .public-shell :is(.p-link,.studio-link):hover>.action-icon { background:var(--gk-action-primary); color:var(--gk-on-action); }
    .public-shell :is(.button,.studio-button,.p-link,.studio-link):not(:disabled):hover>.action-icon .ui-icon { transform:translateX(2px); }
}
@media(prefers-reduced-motion:reduce) {
    .public-shell :is(a,button):is(.button,.studio-button):hover,
    .public-shell .action-icon .ui-icon { transform:none!important; }
}
.text-link { color:var(--gk-action-primary); border-color:var(--gk-border-strong); }
.text-link:hover { color:var(--gk-action-primary-hover); }
:is(.public-shell,.admin-body,.picker-body) .field label { color:var(--gk-text-primary); font-family:var(--gk-font-body); font-size:13px; font-weight:600; }
:is(.public-shell,.admin-body,.picker-body) :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea) { background:var(--gk-bg-surface); color:var(--gk-text-primary); border:1px solid var(--gk-border-strong); border-radius:var(--gk-radius-sm); font-family:var(--gk-font-body); font-size:14px; min-height:44px; padding:11px 13px; max-width:100%; }
:is(.public-shell,.admin-body,.picker-body) :is(input,textarea)::placeholder { color:var(--gk-text-secondary); opacity:1; }
:is(.public-shell,.admin-body,.picker-body) :is(input,select,textarea):focus-visible { border-color:var(--gk-focus); outline:2px solid var(--gk-focus); outline-offset:2px; }
input[type=checkbox],input[type=radio] { accent-color:var(--gk-action-primary); width:18px; height:18px; flex-shrink:0; }
.field-validation-error,.validation-summary-errors,.validation-summary { color:var(--gk-danger-text); }
.validation-summary-errors { background:var(--gk-danger-bg); border:1px solid var(--gk-danger-text); border-radius:var(--gk-radius-sm); padding:16px 20px; }
.validation-summary-valid { display:none; }
.input-validation-error { border-color:var(--gk-danger-text)!important; }
.badge,.status-badge { display:inline-flex; align-items:center; gap:6px; background:var(--gk-bg-soft); color:var(--gk-action-primary); border:1px solid var(--gk-border); border-radius:100px; padding:4px 9px; font:500 11px/1.5 var(--gk-font-body); white-space:nowrap; }
.status-published,.status-active,.status-completed { background:var(--gk-success-bg); color:var(--gk-success-text); }
.status-draft,.status-inactive { background:var(--gk-bg-page); color:var(--gk-text-secondary); }
.status-new { background:var(--gk-bg-soft); color:var(--gk-action-primary); }
.status-inprogress { background:var(--gk-warning-bg); color:var(--gk-warning-text); }
.status-error { background:var(--gk-danger-bg); color:var(--gk-danger-text); }
.notice { color:var(--gk-success-text); background:var(--gk-success-bg); border:1px solid var(--gk-border); border-left:3px solid var(--gk-success-text); border-radius:var(--gk-radius-sm); }
.gk-logo,.gk-logo--light { --gk-accent:var(--gk-color-cobalt); --gk-ink:var(--gk-color-navy); --gk-muted:var(--gk-text-secondary); --gk-ring-outer:color-mix(in srgb,var(--gk-color-navy) 28%,transparent); --gk-ring-middle:color-mix(in srgb,var(--gk-color-navy) 62%,transparent); }
dialog { background:var(--gk-bg-surface); color:var(--gk-text-primary); border:1px solid var(--gk-border); border-radius:var(--gk-radius-lg); box-shadow:var(--gk-shadow-raised); }
dialog::backdrop { background:var(--gk-overlay); }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; animation:none!important; transition:none!important; } }
