@import './tokens.css';
.pg-scope { font-family:var(--pg-font); color:var(--pg-ink); line-height:1.5; }
.pg-visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.pg-object-badges { margin-bottom:var(--pg-space-4); }
.pg-scope *, .pg-button, .pg-input, .pg-select, .pg-textarea { box-sizing:border-box; }
.pg-scope [hidden] { display:none!important; }
.pg-scope :focus-visible, .pg-button:focus-visible, .pg-input:focus-visible, .pg-select:focus-visible, .pg-textarea:focus-visible, .pg-nav-link:focus-visible { outline:var(--pg-focus); outline-offset:var(--pg-focus-offset); }
.pg-shell { background:var(--pg-canvas); min-height:100vh; }
.pg-shell-header { background:var(--pg-surface); border-bottom:1px solid var(--pg-border); }
.pg-shell-bar { max-width:var(--pg-content); min-height:var(--pg-header); margin:auto; padding:var(--pg-space-4) var(--pg-space-8); display:flex; align-items:center; gap:var(--pg-space-6); flex-wrap:wrap; }
.pg-shell-main { max-width:var(--pg-content); margin:auto; padding:var(--pg-space-8); min-width:0; }
.pg-page-header { display:flex; align-items:flex-end; justify-content:space-between; gap:var(--pg-space-6); flex-wrap:wrap; margin-bottom:var(--pg-space-6); }
.pg-page-header > div { min-width:0; }
.pg-title { margin:0; font-size:var(--pg-text-title); font-weight:700; line-height:1.25; letter-spacing:-.025em; overflow-wrap:anywhere; }
.pg-description { margin:.5rem 0 0; color:var(--pg-muted); font-size:var(--pg-text-sm); }
.pg-eyebrow { color:var(--pg-brand); font-size:var(--pg-text-xs); letter-spacing:.12em; text-transform:uppercase; font-weight:700; margin:0 0 .5rem; }
.pg-actions, .pg-row { display:flex; align-items:center; gap:var(--pg-space-2); flex-wrap:wrap; }
.pg-stack { display:grid; gap:var(--pg-space-6); min-width:0; }
.pg-grid { display:grid; gap:var(--pg-space-6); min-width:0; }
.pg-card { background:var(--pg-surface); border:1px solid var(--pg-border); border-radius:var(--pg-radius); box-shadow:var(--pg-shadow); min-width:0; }
.pg-card-body { padding:var(--pg-space-6); }
.pg-section-title { margin:0 0 var(--pg-space-4); font-size:1rem; font-weight:650; }
.pg-button { display:inline-flex; align-items:center; justify-content:center; gap:var(--pg-space-2); min-height:var(--pg-control); border:1px solid transparent; border-radius:var(--pg-radius-sm); padding:.625rem 1rem; font:600 var(--pg-text-sm)/1.3 var(--pg-font); cursor:pointer; text-decoration:none; background:var(--pg-brand); color:#fff; }
.pg-button:hover { background:var(--pg-brand-hover); }
.pg-button--secondary, .pg-button--ghost { background:var(--pg-surface); color:var(--pg-ink); border-color:var(--pg-border); }
.pg-button--ghost { background:transparent; border-color:transparent; }
.pg-button--secondary:hover, .pg-button--ghost:hover { background:var(--pg-canvas); }
.pg-button--danger { background:var(--pg-danger); } .pg-button--danger:hover { background:var(--pg-danger-hover); }
.pg-button--success { background:var(--pg-success); } .pg-button--success:hover { background:var(--pg-success-hover); }
.pg-button:disabled, .pg-button[aria-disabled=true] { opacity:.55; cursor:not-allowed; }
.pg-icon-button { width:var(--pg-control); padding:var(--pg-space-2); flex-shrink:0; }
.pg-icon { display:inline-block; width:var(--pg-icon-md); height:var(--pg-icon-md); flex:none; vertical-align:middle; }
.pg-icon--xs { width:var(--pg-icon-xs); height:var(--pg-icon-xs); }
.pg-icon--sm { width:var(--pg-icon-sm); height:var(--pg-icon-sm); }
.pg-icon--md { width:var(--pg-icon-md); height:var(--pg-icon-md); }
.pg-icon--lg { width:var(--pg-icon-lg); height:var(--pg-icon-lg); }
.pg-icon--xl { width:var(--pg-icon-xl); height:var(--pg-icon-xl); }
.pg-icon--brand { color:var(--pg-brand); }
.pg-icon--muted { color:var(--pg-muted); }
.pg-icon--success { color:var(--pg-success); }
.pg-icon--warning { color:var(--pg-warning); }
.pg-icon--danger { color:var(--pg-danger); }
.pg-icon--info { color:var(--pg-info); }
.pg-inline-icon { margin-inline-end:var(--pg-space-2); }
.pg-empty-icon { margin:0 auto var(--pg-space-3); }
.pg-resource-label { display:inline-flex; align-items:center; gap:var(--pg-space-2); min-width:0; }
.pg-icon-catalogue { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr)); gap:var(--pg-space-3); list-style:none; padding:0; }
.pg-icon-catalogue li { display:flex; gap:var(--pg-space-3); align-items:center; padding:var(--pg-space-3); border:1px solid var(--pg-border); border-radius:var(--pg-radius-sm); }
.pg-icon-catalogue code { overflow-wrap:anywhere; font-size:var(--pg-text-xs); }
.pg-badge { display:inline-flex; align-items:center; gap:.3rem; border-radius:var(--pg-radius-pill); background:var(--pg-neutral-soft); color:var(--pg-neutral); padding:.15rem .65rem; font-size:var(--pg-text-xs); font-weight:600; line-height:1.5; }
.pg-badge--brand { background:var(--pg-brand-soft); color:var(--pg-brand); }
.pg-badge--success { background:var(--pg-success-soft); color:var(--pg-success); }
.pg-badge--warning { background:var(--pg-warning-soft); color:var(--pg-warning); }
.pg-badge--danger { background:var(--pg-danger-soft); color:var(--pg-danger); }
.pg-badge--info { background:var(--pg-info-soft); color:var(--pg-info); }
.pg-field { display:grid; gap:var(--pg-space-2); min-width:0; }
.pg-label { color:var(--pg-muted); font-size:var(--pg-text-sm); font-weight:600; }
.pg-input, .pg-select, .pg-textarea { width:100%; min-width:0; min-height:var(--pg-control); border:1px solid var(--pg-border); border-radius:var(--pg-radius-sm); background:var(--pg-surface); color:var(--pg-ink); padding:.625rem .75rem; font:400 var(--pg-text-sm)/1.5 var(--pg-font); }
.pg-textarea { min-height:7rem; resize:vertical; }
.pg-input:disabled, .pg-select:disabled, .pg-textarea:disabled { background:var(--pg-canvas); color:var(--pg-muted); }
.pg-input[aria-invalid=true], .pg-select[aria-invalid=true], .pg-textarea[aria-invalid=true] { border-color:var(--pg-danger); }
.pg-error { margin:0; color:var(--pg-danger); font-size:var(--pg-text-sm); }
.pg-hint { margin:0; color:var(--pg-muted); font-size:var(--pg-text-xs); }
.pg-checkbox { display:flex; align-items:center; gap:var(--pg-space-3); min-height:var(--pg-control); font-size:var(--pg-text-sm); }
.pg-checkbox input { accent-color:var(--pg-brand); width:1.125rem; height:1.125rem; min-height:0; padding:0; }
.pg-filters { display:flex; align-items:flex-end; flex-wrap:wrap; gap:var(--pg-space-3); padding:var(--pg-space-4); }
.pg-filters .pg-field { flex:1 1 10rem; }
.pg-table-scroll { max-width:100%; overflow:auto; border-radius:var(--pg-radius); }
.pg-table { width:100%; border-collapse:collapse; text-align:left; font-size:var(--pg-text-sm); }
.pg-table caption { text-align:left; padding:var(--pg-space-4); font-weight:600; }
.pg-table th { background:var(--pg-canvas); color:var(--pg-muted); font-size:var(--pg-text-xs); font-weight:650; }
.pg-table th, .pg-table td { border-bottom:1px solid var(--pg-border-soft); padding:var(--pg-table-cell-y) var(--pg-space-4); vertical-align:middle; }
.pg-table tbody tr:last-child td { border-bottom:0; } .pg-table tbody tr:hover { background:var(--pg-row-hover); }
.pg-pagination { padding:var(--pg-space-4) 0; }
.pg-kpis { display:grid; gap:var(--pg-space-4); grid-template-columns:repeat(auto-fit,minmax(min(100%,9rem),1fr)); }
.pg-kpi { padding:var(--pg-space-5); }
.pg-kpi-label { margin:0; color:var(--pg-muted); font-size:var(--pg-text-sm); }
.pg-kpi-value { margin:.5rem 0; font-size:1.75rem; font-weight:700; }
.pg-progress { width:100%; height:.5rem; display:block; appearance:none; border:0; border-radius:var(--pg-radius-pill); overflow:hidden; background:var(--pg-border-soft); accent-color:var(--pg-brand); }
.pg-progress::-webkit-progress-bar { background:var(--pg-border-soft); } .pg-progress::-webkit-progress-value { background:var(--pg-brand); border-radius:var(--pg-radius-pill); } .pg-progress::-moz-progress-bar { background:var(--pg-brand); }
.pg-progress-label { display:flex; justify-content:space-between; gap:1rem; margin-bottom:.5rem; font-size:var(--pg-text-sm); }
.pg-empty { padding:var(--pg-space-8); text-align:center; color:var(--pg-muted); }
.pg-empty strong { display:block; color:var(--pg-ink); } .pg-empty p { margin:.5rem 0 1rem; }
.pg-nav, .pg-tabs, .pg-breadcrumbs { display:flex; align-items:center; gap:var(--pg-space-2); flex-wrap:wrap; }
.pg-nav-link { display:inline-flex; align-items:center; gap:.4rem; min-height:var(--pg-control); padding:.5rem .75rem; border-radius:var(--pg-radius-sm); color:var(--pg-muted); text-decoration:none; font-size:var(--pg-text-sm); }
.pg-nav-link:hover { background:var(--pg-canvas); } .pg-nav-link[aria-current=page] { color:var(--pg-brand); background:var(--pg-brand-soft); font-weight:650; }
.pg-tabs { flex-wrap:nowrap; overflow-x:auto; border-bottom:1px solid var(--pg-border); margin:var(--pg-space-6) 0; }
.pg-tabs .pg-nav-link { white-space:nowrap; border-radius:0; border-bottom:2px solid transparent; }
.pg-tabs .pg-nav-link[aria-current=page] { background:transparent; border-bottom-color:var(--pg-brand); }
.pg-breadcrumbs { list-style:none; padding:0; margin:0 0 1.5rem; color:var(--pg-muted); font-size:var(--pg-text-sm); overflow-wrap:anywhere; }
.pg-breadcrumbs li+li::before { content:'/'; margin-right:.5rem; } .pg-breadcrumbs a, .pg-link { color:var(--pg-brand); text-decoration:none; } .pg-link:hover { text-decoration:underline; }
.pg-detail-row { display:grid; grid-template-columns:minmax(6rem,.8fr) minmax(0,1.2fr); gap:var(--pg-space-4); border-bottom:1px solid var(--pg-border-soft); padding:.8rem 0; margin:0; font-size:var(--pg-text-sm); }
.pg-detail-row:last-child { border:0; } .pg-detail-row dt { color:var(--pg-muted); } .pg-detail-row dd { margin:0; overflow-wrap:anywhere; }
.pg-sidebar { min-width:0; display:grid; align-content:start; gap:var(--pg-space-6); }
.pg-timeline { list-style:none; padding:0; margin:0; } .pg-timeline li { border-left:2px solid var(--pg-border); padding:0 0 var(--pg-space-5) var(--pg-space-4); font-size:var(--pg-text-sm); } .pg-timeline time { display:block; color:var(--pg-muted); font-size:var(--pg-text-xs); }
.pg-document { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:var(--pg-space-3); padding:var(--pg-space-4); border:1px solid var(--pg-border); border-radius:var(--pg-radius-sm); overflow-wrap:anywhere; }
.pg-preview { display:block; border:1px solid var(--pg-border); border-radius:var(--pg-radius-sm); width:100%; min-height:15rem; }
.pg-chart { min-width:0; } .pg-chart-body { position:relative; height:18rem; } .pg-chart canvas { max-width:100%; }
.pg-legend { list-style:none; margin:0; padding:0; display:flex; gap:var(--pg-space-4); flex-wrap:wrap; font-size:var(--pg-text-sm); color:var(--pg-muted); }
.pg-collapse > summary, .pg-menu > summary { cursor:pointer; min-height:var(--pg-control); display:flex; align-items:center; gap:.5rem; font-weight:600; }
.pg-menu { position:relative; } .pg-menu-panel { border:1px solid var(--pg-border); border-radius:var(--pg-radius-sm); padding:var(--pg-space-3); background:var(--pg-surface); margin-top:var(--pg-space-2); }
.pg-alert { padding:var(--pg-space-4); border-radius:var(--pg-radius-sm); background:var(--pg-info-soft); color:var(--pg-info); font-size:var(--pg-text-sm); }
.pg-alert--success { background:var(--pg-success-soft); color:var(--pg-success); } .pg-alert--danger { background:var(--pg-danger-soft); color:var(--pg-danger); } .pg-alert--warning { background:var(--pg-warning-soft); color:var(--pg-warning); }
.pg-spinner { display:inline-block; width:1rem; height:1rem; border:2px solid currentColor; border-right-color:transparent; border-radius:50%; animation:pg-spin .7s linear infinite; }
.pg-board { display:flex; overflow:auto; gap:var(--pg-space-4); padding-bottom:var(--pg-space-4); } .pg-board-column { flex:0 0 min(20rem,85vw); background:var(--pg-canvas); border-radius:var(--pg-radius); padding:var(--pg-space-4); }
.pg-mobile-nav { display:none; }
@keyframes pg-spin { to { transform:rotate(360deg); } }
@media(min-width:80rem) { .pg-show { display:grid; grid-template-columns:minmax(0,1.9fr) minmax(18rem,1fr); gap:var(--pg-space-6); align-items:start; } .pg-grid--two { grid-template-columns:repeat(2,minmax(0,1fr)); } .pg-grid--three { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:79.999rem) { .pg-desktop-nav { display:none; } .pg-mobile-nav { display:block; width:100%; } .pg-show { display:grid; gap:var(--pg-space-6); } .pg-shell-bar { min-height:4rem; } }
@media(max-width:47.999rem) { .pg-shell-main, .pg-shell-bar { padding:var(--pg-space-4); } .pg-title { font-size:1.5rem; } .pg-actions { width:100%; } .pg-filters .pg-field { flex-basis:100%; } .pg-card-body { padding:var(--pg-space-4); } }
@media(prefers-reduced-motion:reduce) { .pg-spinner { animation:none; } }

.pg-menu-item { width:100%; justify-content:flex-start; text-align:start; }

/* CORE-03: additive primitives, scoped to pg-* components. */
.pg-container { width:100%; min-width:0; margin-inline:auto; }
.pg-container--form { max-width:var(--pg-form-width); }
.pg-container--reading { max-width:var(--pg-reading-width); }
.pg-form-section { min-width:0; margin:0; padding:var(--pg-space-6); border:1px solid var(--pg-border); border-radius:var(--pg-radius); background:var(--pg-surface); }
.pg-form-section > legend { padding-inline:var(--pg-space-2); margin:0; }
.pg-form-section > .pg-description { margin:0 0 var(--pg-space-4); }
.pg-table--compact th, .pg-table--compact td { padding-block:var(--pg-table-compact-y); }
.pg-board-heading { display:flex; align-items:baseline; justify-content:space-between; gap:var(--pg-space-3); }
.pg-board-card { overflow-wrap:anywhere; display:grid; gap:var(--pg-space-3); }
.pg-board-card .pg-section-title { margin:0; }
.pg-stepper { display:flex; flex-wrap:wrap; gap:var(--pg-space-4); list-style:none; margin:0; padding:var(--pg-space-4); border:1px solid var(--pg-border); border-radius:var(--pg-radius); background:var(--pg-surface); }
.pg-stepper-item { display:flex; align-items:center; gap:var(--pg-space-3); min-width:0; overflow-wrap:anywhere; color:var(--pg-muted); font-size:var(--pg-text-sm); }
.pg-stepper-item--current { color:var(--pg-brand); font-weight:600; }
.pg-stepper-item--complete { color:var(--pg-success); }
.pg-stepper-number { display:grid; place-items:center; width:var(--pg-control); height:var(--pg-control); border:1px solid currentColor; border-radius:var(--pg-radius-pill); flex:none; }
.pg-settings { display:grid; gap:var(--pg-space-6); min-width:0; }
.pg-settings > * { min-width:0; }
.pg-example { white-space:pre-wrap; overflow-wrap:anywhere; padding:var(--pg-space-4); border:1px solid var(--pg-border); border-radius:var(--pg-radius-sm); background:var(--pg-canvas); font-size:var(--pg-text-xs); }
@media(min-width:80rem) { .pg-settings { grid-template-columns:minmax(12rem,1fr) minmax(0,3fr); align-items:start; } }
@media(max-width:47.999rem) { .pg-form-section { padding:var(--pg-space-4); } .pg-stepper { flex-direction:column; } }

/* PROGITAL COMPACT DENSITY — canonical source; consumer snapshots are generated from this block. */
:root {
    --pg-control:2.375rem;
    --pg-control-pad-y:.375rem;
    --pg-control-pad-x:.625rem;
    --pg-table-cell-y:.5rem;
    --pg-table-compact-y:.375rem;
    --pg-scrollbar-size:5px;
    scrollbar-width:thin;
    scrollbar-color:var(--pg-border) transparent;
}
:where(.pg-scope, .pg-scope *) { scrollbar-width:thin; scrollbar-color:var(--pg-muted) transparent; }
:root::-webkit-scrollbar, .pg-scope::-webkit-scrollbar, .pg-scope *::-webkit-scrollbar { width:var(--pg-scrollbar-size); height:var(--pg-scrollbar-size); }
:root::-webkit-scrollbar-thumb, .pg-scope::-webkit-scrollbar-thumb, .pg-scope *::-webkit-scrollbar-thumb { background:var(--pg-muted); border-radius:var(--pg-radius-pill); }
:root::-webkit-scrollbar-track, .pg-scope::-webkit-scrollbar-track, .pg-scope *::-webkit-scrollbar-track { background:transparent; }
.pg-scope :is(input:not([type=hidden]):not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]):not([type=submit]):not([type=button]), select:not([multiple])) {
    box-sizing:border-box; min-width:0; max-width:100%; min-height:var(--pg-control);
    padding-block:var(--pg-control-pad-y); font-size:var(--pg-text-sm); line-height:1.5;
}
.pg-scope :is(.pg-input,.pg-select) { padding-inline:var(--pg-control-pad-x); }
.pg-scope :is(select,.pg-select) { padding-inline-end:2rem; }
.pg-scope input[type=file] { min-width:0; width:100%; max-width:100%; }
.pg-scope textarea { min-height:6rem; padding-block:var(--pg-control-pad-y); font-size:var(--pg-text-sm); line-height:1.5; }
.pg-scope .pg-button { min-height:var(--pg-control); padding-block:var(--pg-control-pad-y); padding-inline:var(--pg-space-3); }
.pg-scope .pg-icon-button { width:var(--pg-control); padding:var(--pg-space-2); }
.pg-scope :is(.pg-card-body,.pg-form-section,.pg-kpi) { padding:var(--pg-space-4); }
.pg-scope :is(.pg-stack,.pg-grid) { gap:var(--pg-space-4); }
.pg-scope .pg-page-header { gap:var(--pg-space-4); margin-bottom:var(--pg-space-4); }
.pg-scope .pg-filters { padding:var(--pg-space-3); gap:var(--pg-space-3); }
.pg-scope .pg-field { gap:var(--pg-space-1); align-content:start; }
/* Preserve touch targets and avoid automatic zoom when focusing a phone input. */
@media (max-width:47.999rem), (pointer:coarse) {
    :root { --pg-control:2.75rem; --pg-control-pad-y:.5rem; }
    .pg-scope :is(input:not([type=checkbox]):not([type=radio]),select,textarea) { font-size:1rem; }
}
@media (forced-colors:active) {
    :root, :where(.pg-scope,.pg-scope *) { scrollbar-color:auto; }
}
