/* Shared visual primitives for App, Portal and Operations. */
:root{--pw-bg:#f6f8fa;--pw-surface:#ffffff;--pw-text:#172b3a;--pw-muted:#506271;--pw-border:#cbd5df;--pw-brand:#08766c;--pw-on-brand:#ffffff;--pw-radius:12px;--pw-space:16px;--pw-focus:var(--pw-brand);color-scheme:light}
:root.dark,:root[data-theme="dark"]{--pw-bg:#10191e;--pw-surface:#19252c;--pw-text:#edf4f7;--pw-muted:#b7c7d0;--pw-border:#405661;--pw-brand:#5ee0c9;--pw-on-brand:#09251f;color-scheme:dark}
:root[data-accent="blue"]{--pw-brand:#2456b8;--pw-on-brand:#fff}
:root[data-accent="violet"]{--pw-brand:#7044ad;--pw-on-brand:#fff}
:root.dark[data-accent="blue"]{--pw-brand:#9cbfff;--pw-on-brand:#102344}
:root.dark[data-accent="violet"]{--pw-brand:#ccb4f6;--pw-on-brand:#29113d}
:root[data-text-size="large"]{font-size:18px}
*{box-sizing:border-box}body{overflow-wrap:break-word}button,input,select,textarea{font:inherit}
@layer base{:focus-visible{outline:2px solid var(--pw-focus);outline-offset:2px}}
/* Route headings keep screen-reader focus without a decorative rectangle. */
:where(h1,h2,h3,h4,h5,h6,[role=heading])[tabindex="-1"]:focus{outline:none}
.pw-surface{background:var(--pw-surface);color:var(--pw-text);border:1px solid var(--pw-border);border-radius:var(--pw-radius)}
@media(max-width:767px){button,[role="button"],select{min-height:48px}input:not([type="checkbox"]):not([type="radio"]),textarea{font-size:16px;min-height:48px}input[type="checkbox"],input[type="radio"]{width:22px;height:22px}header,main{min-width:0}dialog{max-width:calc(100vw - 24px)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
