/* Shared appearance; domain grids and access remain local. */
.ui-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:var(--control-height);padding:12px 19px;border:1px solid var(--color-action-border);background:var(--brand-gradient);color:var(--color-on-action);font-size:var(--text-sm);font-weight:600;border-radius:var(--radius-control);transition:background var(--state-transition),border-color var(--state-transition),box-shadow var(--state-transition)}
.ui-button:hover{background:var(--brand-gradient);box-shadow:0 0 0 1px var(--brand-cyan),0 4px 18px #35a2ef20}
.ui-button:not(:disabled):active{box-shadow:inset 0 1px 3px #0004;border-color:var(--color-accent)}
.ui-button.secondary{background:var(--color-secondary);color:var(--color-secondary-text);border-color:var(--color-secondary-border)}
.ui-button.secondary:hover{background:var(--color-secondary-hover)}
.ui-button:disabled{opacity:var(--state-disabled-opacity);cursor:not-allowed}
.ui-button svg{width:16px;height:16px}
:where(button,a,input,select,textarea,summary,[tabindex]):focus-visible{outline:var(--focus-width) solid var(--color-focus);outline-offset:var(--focus-offset)}
:where(button,input,select,textarea):disabled{opacity:var(--state-disabled-opacity);cursor:not-allowed}
:where(button,[role="button"])[aria-busy="true"]{cursor:progress}
:where(input,select,textarea){font:inherit;accent-color:var(--color-accent)}
:where(input[type="checkbox"]){min-width:16px;min-height:16px}
.ui-field{min-width:0;max-width:100%;padding:12px 15px;border:1px solid var(--color-field-border);background:var(--color-field);color:var(--color-field-text);border-radius:var(--radius-control)}
.ui-field:hover{border-color:var(--color-accent)}
.ui-field[aria-invalid="true"]{border-color:var(--color-error)}
.ui-icon-button{display:inline-flex;align-items:center;justify-content:center;min-width:var(--control-height);min-height:var(--control-height)}
.ui-card,.ui-panel{background:var(--color-card);border:1px solid var(--color-border);color:var(--color-text)}
.ui-card:hover:where(a,button){border-color:var(--color-accent)}
.ui-badge{display:inline-block;padding:7px 10px;border:1px solid var(--color-border);font-size:var(--text-xs);line-height:1.5}
.ui-badge[data-tone="warning"]{color:var(--color-warning);background:var(--color-warning-surface);border-color:var(--color-warning-border)}
.ui-state{padding:var(--space-10) var(--space-6);border:1px dashed var(--color-border);color:var(--color-muted);text-align:center}
.ui-state[data-state="error"]{color:var(--color-error)}
.ui-state[data-state="loading"]{cursor:progress}
.breadcrumbs{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:26px;font:var(--text-xs) var(--font-mono);color:var(--color-muted)}
.breadcrumbs button{background:none;border:0;padding:0;color:var(--color-muted);font:inherit}
.breadcrumbs button:hover{color:var(--color-text)}
.ui-local-nav{display:flex;flex-wrap:wrap;gap:var(--space-2)}
.ui-local-nav a{color:var(--color-muted)}
.ui-local-nav a:hover{color:var(--color-text)}
.ui-local-nav [aria-current="page"]{color:var(--color-accent)}
.ui-section-heading{line-height:var(--leading-heading)}
.ui-dialog{color:var(--color-text);background:var(--color-panel);border:1px solid var(--color-border);border-radius:var(--radius-control);max-width:calc(100vw - 32px);max-height:calc(100dvh - 40px);overflow:auto;box-shadow:var(--shadow-panel)}
.ui-dialog::backdrop{background:var(--overlay-dialog)}
/* Opt-in layout. Workspace owners decide overflow and responsive tool placement. */
.page-container{width:100%;margin-inline:auto;padding-inline:var(--page-padding,var(--page-gutter));max-width:var(--page-width,var(--page-content))}
.page-container[data-layout="wide"]{--page-width:var(--page-wide)}
.page-container[data-layout="workspace"]{max-width:none;--page-padding:0}
.page-layout[data-layout="sidebars"]{display:grid;grid-template-columns:var(--sidebar-width,240px) minmax(0,1fr);gap:var(--layout-gap,28px)}
.page-layout>*{min-width:0}
@media(max-width:850px){.page-layout[data-layout="sidebars"]:not([data-responsive="manual"]){grid-template-columns:1fr}}
/* Per-page height, crop and fade. No image supplied by the shared layer. */
.visual-shell{position:relative;isolation:isolate;overflow:clip}
.visual-artwork{position:absolute;z-index:var(--z-artwork);pointer-events:none;user-select:none;border:0;border-radius:0}
.visual-artwork img{display:block;width:100%;height:auto;object-fit:var(--hero-fit,contain);object-position:var(--hero-position,center)}
.visual-readability{position:absolute;inset:0;pointer-events:none;background:var(--hero-overlay,none)}
.visual-foreground{position:relative;z-index:var(--z-content)}
.visual-heading{min-height:var(--hero-height,auto)}
.visual-shell[data-hero="presentation"]{--hero-height:570px}
.visual-shell[data-hero="compact"]{--hero-height:180px}
.visual-shell[data-hero="none"] .visual-artwork{display:none}
@media(prefers-reduced-motion:reduce){.ui-button{transition:none}}

/* Variants share the same geometry, focus and state contract. */
.ui-button.outline{background:transparent;color:var(--color-text);border-color:var(--color-secondary-border)}
.ui-button.outline:hover{background:var(--color-nav-hover);border-color:var(--brand-cyan)}
.ui-button.ghost{background:transparent;color:var(--color-muted);border-color:transparent;box-shadow:none}
.ui-button.ghost:hover{color:var(--brand-cyan);background:var(--color-nav-hover)}
.ui-button.navigation{background:var(--color-panel);color:var(--color-text);border-color:var(--color-border)}
.ui-button.navigation[aria-current="page"]{border-color:var(--brand-cyan);color:var(--brand-cyan)}
.ui-icon-button{border-radius:var(--radius-control)}
.ui-card,.ui-panel{border-radius:var(--radius-control)}
.ui-card:where(a,button):hover,.ui-panel:focus-within{border-color:var(--color-secondary-border)}
/* The shared footer keeps its links and actions on every route. */
.site-footer{position:relative;border-top:1px solid var(--color-border);background:var(--color-footer);padding-top:48px}
.site-footer::before{content:"";position:absolute;top:-1px;left:0;width:100%;height:1px;background:var(--brand-gradient);opacity:.65}
.site-footer .brand-mark{background:none;border:0;padding:0;transform:none;width:44px;height:44px}
.site-footer .brand-mark img{width:44px;height:44px;object-fit:contain}
.site-footer .brand-word{color:var(--color-text)}
.site-footer .brand-word small{color:var(--color-muted)}
.site-footer .footer-links{gap:12px 24px;align-items:center}
.site-footer .footer-links button,.site-footer .footer-links a{color:var(--color-muted);min-height:44px;padding:12px 0;font-size:13px}
.site-footer .footer-links button:hover,.site-footer .footer-links a:hover{color:var(--brand-cyan)}
.site-footer .footer-small{color:var(--color-muted)}
@media(max-width:560px){.site-footer{padding-top:36px}.site-footer .footer-row{gap:28px}.site-footer .footer-links{gap:4px 20px}}
