/* Shared, installation-neutral application shell. Presets use the same workflows. */
:root{--paper:#f8fafc;--white:#fff;--ink:#0f172a;--muted:#526277;--line:#e2e8f0;--primary:#2563eb;--link-light:#2563eb;--link:var(--link-light);--brown:var(--link);--gold:var(--primary);--tint:#eff6ff;--success:#166534;--success-bg:#edf8f1;--danger:#b42318;--danger-bg:#fff1f0;--field:#fff;--sidebar:#0f172a;--sidebar-text:#e2e8f0;--sidebar-muted:#a7b7cd;--radius:12px;--shadow:0 6px 24px rgb(15 23 42 / 5%);color-scheme:light}
html[data-brand="haus-cramer"]{--paper:#faf7f2;--ink:#3a2e20;--muted:#6b5e4f;--line:#e5ded3;--tint:#f3eee5;--sidebar:#352b20;--sidebar-text:#fbf6ee;--sidebar-muted:#d2c4b1}
html[data-brand="neutral"]{--tint:#f1f5f9;--sidebar:#17212e}
body{font-family:"Plus Jakarta Sans","Open Sans",Arial,sans-serif;font-size:15px;line-height:1.6;background:var(--paper);color:var(--ink)}a{color:var(--link)}button,input,select,textarea{font:inherit}h1{font-size:32px;letter-spacing:-.8px;margin:4px 0 12px;line-height:1.2}h2{font-size:21px;letter-spacing:-.3px}h3{font-size:17px}h4{font-size:15px}.eyebrow{color:var(--muted);font-size:11px;letter-spacing:1.3px}.section-caption,.muted,small,.helptext{color:var(--muted)}small{font-size:12px}.gold-rule{display:none}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{z-index:200;background:var(--white);color:var(--link)}:focus-visible{outline:3px solid var(--primary);outline-offset:3px}
.app-sidebar{position:fixed;top:0;left:0;bottom:0;width:248px;background:var(--sidebar);color:var(--sidebar-text);padding:28px 18px 20px;overflow-y:auto;z-index:30;display:flex;flex-direction:column;gap:12px}.brand{border:0;padding:0;display:flex;align-items:center;gap:10px;min-width:0;flex-shrink:1;color:var(--ink)}.brand>span:last-child{min-width:0;overflow-wrap:anywhere}.brand:hover{text-decoration:none}.brand-mark{width:42px;height:42px;object-fit:contain;flex-shrink:0}.brand-symbol{width:38px;height:38px;border-radius:10px;background:var(--primary);color:white;display:grid;place-items:center;font-weight:700;flex-shrink:0}.brand-name{font-family:"Plus Jakarta Sans","Open Sans",Arial,sans-serif;font-size:18px;font-weight:700;line-height:1.3;overflow-wrap:anywhere;letter-spacing:-.4px}.brand-product{font-size:10px;letter-spacing:.2px;text-transform:none;margin-top:3px;font-weight:400;line-height:1.45}.app-sidebar .brand{color:white}.app-sidebar .brand-product{color:var(--sidebar-muted)}.company-label{border:1px solid #475569;border-radius:8px;padding:10px 12px;font-size:12px;color:var(--sidebar-text);margin:4px 0;overflow-wrap:anywhere}.nav-group{margin:20px 0 0}.nav-group-title{font-size:10px;text-transform:uppercase;letter-spacing:1.5px;color:var(--sidebar-muted);padding:0 12px;margin:0 0 8px}.nav-link{display:flex;align-items:center;gap:12px;min-height:44px;padding:9px 12px;margin:3px 0;border-radius:8px;color:var(--sidebar-text);font-size:13px}.nav-link:hover{background:#263449;text-decoration:none;color:white}.nav-link.nav-current{background:var(--primary);color:#fff;font-weight:600}.nav-dot{width:8px;height:8px;border:1.5px solid currentColor;border-radius:3px;flex-shrink:0}.nav-current .nav-dot{background:currentColor}.sidebar-note{margin-top:auto;padding:26px 12px 0;color:var(--sidebar-muted);font-size:11px}.authenticated .app-shell{margin-left:248px;min-width:0}.app-topbar{min-height:82px;padding:16px 32px;background:var(--white);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:24px;position:relative;z-index:40}.section-label{font-size:13px;font-weight:600;color:var(--muted);flex-shrink:0}.global-search{display:flex;align-items:center;gap:8px;max-width:490px;flex:1;margin:0 auto 0 0}.global-search input{background:var(--paper);height:42px;min-height:42px;font-size:13px}.global-search button{padding:8px 12px;min-height:42px;font-size:12px}.account-menu{margin:0 0 0 auto;position:relative;max-width:260px}.account-menu>summary{font-size:13px;padding:10px 0;overflow-wrap:anywhere;min-height:44px}.account-panel{position:absolute;right:0;top:100%;width:285px;max-width:85vw;background:var(--white);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;padding:20px}.account-panel p{margin:0 0 12px}.account-panel form{margin:16px 0 0}.account-panel select{margin-bottom:10px}.account-panel label{font-size:12px}.mobile-menu{display:none}.public-page .app-topbar{padding:24px max(24px,calc((100vw - 1200px)/2));border:0}.public-page .app-topbar .brand-name{font-size:21px}
main{max-width:1440px;margin:0 auto;padding:30px 32px 24px;min-width:0}.heading{margin-bottom:20px;align-items:center;gap:18px}.heading h1{margin-top:0}.heading p{max-width:760px;margin-bottom:0}.heading.page-intro{padding:0;border:0}.card{border:1px solid var(--line);border-radius:12px;background:var(--white);padding:24px;margin:20px 0;box-shadow:var(--shadow);min-width:0}.formcard{max-width:880px;padding:28px}.actions{gap:12px}.button,button{background:var(--primary);color:#fff;border-radius:8px;padding:10px 16px;min-height:44px;font-size:13px;font-weight:600;max-width:100%;white-space:normal;overflow-wrap:anywhere}.button:hover,button:hover{background:var(--primary);color:#fff;filter:brightness(.9)}.secondary{background:var(--white);color:var(--ink);border:1px solid var(--line)}.secondary:hover{background:var(--tint);color:var(--ink);filter:none}.quiet{background:transparent;color:var(--link);border:0;padding:8px 0}.quiet:hover{background:transparent;color:var(--link);filter:none}.danger-link{color:var(--danger)}input,select,textarea{border:1px solid #a9b5c5;border-radius:8px;background:var(--field);color:var(--ink);padding:10px 12px;min-height:44px;font-size:14px}input[type=checkbox]{width:19px;height:19px;vertical-align:middle;margin:0 8px 0 0}input[type=file]{font-size:12px}label{font-size:13px;color:var(--ink);margin-bottom:6px}textarea{resize:vertical}form p{margin:0 0 22px}form ul.errorlist{margin-top:8px}.form-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:22px 0}.form-error-summary{border:1px solid var(--danger);border-left:4px solid var(--danger);background:var(--danger-bg);padding:20px;border-radius:8px;margin:18px 0;color:var(--danger)}.form-error-summary h2{font-size:18px;color:var(--danger)}.form-error-summary a{color:var(--danger)}.notice{background:var(--success-bg);color:var(--success);border-left-color:var(--success);border-radius:8px}.notice-error,.errorlist{background:var(--danger-bg);color:var(--danger);border-left-color:var(--danger)}.error{color:var(--danger)}.helptext{line-height:1.5;margin-top:7px}details{margin:16px 0}summary{color:var(--ink)}details:not([open])>:not(summary){display:none}.card>summary{padding:0;font-size:16px}.card[open]>summary{margin-bottom:20px}
.scroll{border-radius:8px;max-width:100%;overflow-x:auto}.scroll:focus{outline-offset:2px}table{font-size:13px}td,th{padding:14px 12px;border-bottom:1px solid var(--line)}th{font-size:11px;letter-spacing:.5px;color:var(--muted);background:var(--paper)}td:first-child{min-width:160px}tbody tr:hover{background:var(--tint)}.badge{background:var(--tint);color:var(--ink);border:1px solid var(--line);border-radius:6px;font-size:11px;padding:4px 8px}.badge-approved{background:var(--success-bg);color:var(--success);border-color:var(--success)}.risk1{background:var(--success-bg);color:var(--success)}.risk2{background:#fff3cf;color:#694900}.risk3{background:var(--danger-bg);color:var(--danger)}.riskunknown{background:var(--paper);color:var(--muted)}.table-card{padding:24px}.table-card>h2,.table-card>.section-caption{margin-left:0}.pagination{display:flex;justify-content:space-between;margin-top:20px}.empty-state{padding:25px 0;color:var(--muted)}.empty-state b{color:var(--ink)}.empty-state p{margin-bottom:0}.filter-grid{align-items:end}.dashboard-filter{padding:18px 24px;grid-template-columns:minmax(200px,2fr) minmax(130px,1fr) auto}.dashboard-filter label{font-size:12px}.dashboard-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:22px 0}.metric{border:1px solid var(--line);padding:20px;margin:0;gap:8px;position:relative}.metric>span{font-size:12px;color:var(--muted)}.metric strong{font-size:32px;color:var(--ink);font-weight:700}.metric-alert strong{color:var(--danger)}.metric:hover{border-color:var(--primary);background:var(--white)}.metric small{font-size:11px}.dashboard-grid{gap:20px;align-items:start}.dashboard-grid>.card{margin:0 0 20px}.dashboard-item{padding:14px 0;gap:15px}.dashboard-item>span{min-width:82px;font-size:12px}.dashboard-summary strong{font-size:24px;color:var(--ink)}.dashboard-summary p{font-size:13px}.compact-stats{display:flex;gap:24px;flex-wrap:wrap}.compact-stats p{margin:0}.compact-stats strong{display:block;font-size:22px}.quick-links{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.quick-links a{background:var(--white);border:1px solid var(--line);border-radius:8px;padding:9px 14px;font-size:13px}.system-banner{display:flex;justify-content:space-between;gap:16px;padding:16px 20px;background:var(--white);border:1px solid var(--line);border-radius:10px;margin-bottom:22px}.system-banner p{margin:0}.system-banner small{margin-top:4px}.setup-banner{background:var(--tint);border:1px solid var(--line);border-radius:10px;padding:20px 24px;display:flex;justify-content:space-between;align-items:center;gap:20px;margin:20px 0}.setup-banner h2{font-size:17px;margin-bottom:6px}.setup-banner p{margin:0}.settings-layout{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(260px,1fr);gap:24px;align-items:start}.settings-layout .formcard{max-width:none}.setup-help{position:sticky;top:20px}.setup-list{padding-left:20px}.setup-list li{padding-left:8px;margin:18px 0}.setup-list p{font-size:13px}.settings-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:20px 0}.settings-tile{border:1px solid var(--line);border-radius:10px;background:var(--white);padding:18px;color:var(--ink)}.settings-tile strong{display:block;font-size:15px}.settings-tile small{margin-top:6px}.settings-tile:hover{border-color:var(--primary);text-decoration:none}.next-step{display:flex;justify-content:space-between;gap:24px;align-items:center;border-left:4px solid var(--primary);background:var(--tint);padding:22px 24px;border-radius:10px;margin:22px 0}.next-step h2{margin-bottom:8px;font-size:20px}.next-step p{margin:0;max-width:700px}.next-step .button{flex-shrink:0}.section-nav{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0 28px}.section-nav a{padding:8px 12px;border:1px solid var(--line);border-radius:8px;font-size:12px;background:var(--white);color:var(--ink)}.measure{background:var(--paper);border-left-color:var(--primary);border-radius:8px}.method-picker{background:var(--paper);border-color:var(--line)}.stat{background:var(--white);border-color:var(--line)}.stat strong{color:var(--ink)}.site-footer{padding:22px 32px;margin:30px 32px 0;border-color:var(--line);max-width:none;font-size:10px;color:var(--muted)}.site-footer strong{color:var(--muted)}.login-layout{gap:70px;min-height:620px;grid-template-columns:minmax(0,1.05fr) minmax(340px,.95fr)}.login-intro{position:relative;padding:35px 0}.login-intro:before{content:"";position:absolute;z-index:-1;inset:-45px -25px;background:radial-gradient(ellipse at 15% 20%,#14b8a61c,transparent 60%),radial-gradient(ellipse at 80% 65%,#8b5cf624,transparent 65%);border-radius:28px}.login-intro h1{font-size:44px;line-height:1.15;letter-spacing:-1.4px;max-width:520px}.login-intro .lead{font-size:16px;max-width:440px}.login{border-top:0;box-shadow:var(--shadow);padding:34px}.login h2{font-size:27px}.login-stage span{color:var(--link)}.login-stage{border-color:var(--line)}.login .intro{line-height:1.6;color:var(--muted)}.login .login-help{line-height:1.75}.sso-option{border-color:var(--line)}html[data-brand="haus-cramer"] .brand-name{font-family:Georgia,serif}html[data-brand="haus-cramer"] .login-intro:before,html[data-brand="neutral"] .login-intro:before{background:none}
@media(max-width:1150px){.app-sidebar{width:218px;padding-left:14px;padding-right:14px}.authenticated .app-shell{margin-left:218px}.app-topbar{padding:16px 24px;gap:16px}.section-label{display:none}main{padding:26px 24px}.dashboard-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-layout{grid-template-columns:1fr}.setup-help{position:static}.settings-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.login-layout{gap:35px}.login-intro h1{font-size:38px}}
@media(max-width:850px){.app-sidebar{display:none}.authenticated .app-shell{margin:0}.mobile-menu{display:block;margin:0}.mobile-menu>summary{min-height:44px;padding:10px 4px;color:var(--ink)}.mobile-menu nav{position:absolute;left:0;top:100%;width:min(330px,100vw);max-height:80vh;overflow:auto;background:var(--sidebar);color:var(--sidebar-text);padding:24px;box-shadow:var(--shadow)}.mobile-menu .brand{color:white}.mobile-menu .nav-group-title{color:var(--sidebar-muted)}.app-topbar{padding:12px 18px;gap:12px;flex-wrap:wrap}.global-search{order:3;flex-basis:100%;max-width:none}.account-menu{max-width:65%}.dashboard-grid{grid-template-columns:1fr}.dashboard-filter{display:flex;flex-direction:column;align-items:stretch}.dashboard-filter button{grid-column:1/-1}.filter-grid{display:flex;flex-direction:column;align-items:stretch}.heading{align-items:flex-start;flex-direction:column;gap:16px}.next-step,.system-banner,.setup-banner{align-items:flex-start;flex-direction:column;gap:16px}.next-step .button{flex-shrink:1}.section-nav{gap:6px}.section-nav a{padding:8px 10px}.login-layout{display:flex;flex-direction:column;align-items:stretch;min-height:0;gap:24px;padding:0}.login-intro{padding:10px 0}.login-intro h1{font-size:33px;max-width:none}.login-intro .lead{max-width:none;margin-bottom:0}.login-stages{display:none}.public-page .app-topbar{padding:20px 18px}.public-page .brand-product{font-size:10px}.public-page .brand-name{font-size:18px}.public-page .brand-mark{width:34px;height:34px}.public-page .app-topbar .brand{flex:1}.public-page .account-menu{max-width:100px}main{padding:24px 18px}.site-footer{margin:20px 18px 0;padding:20px 0;flex-direction:column;gap:8px}.card,.formcard{padding:20px}.table-card{padding:18px 12px}.settings-tiles{grid-template-columns:1fr}.form-actions{align-items:stretch}.form-actions button{flex:1}.steps{display:none}h1{font-size:28px}.dashboard-stats{gap:12px}.metric{padding:17px}.metric strong{font-size:30px}.metric>span{font-size:11px}dl{grid-template-columns:1fr;gap:5px}dd{margin-bottom:10px}}
@media(max-width:380px){.dashboard-stats{grid-template-columns:1fr}.dashboard-filter{grid-template-columns:1fr}.public-page .app-topbar .brand-name{font-size:15px}}
@media print{.app-sidebar,.app-topbar,.section-nav,.next-step,.form-actions,.site-footer{display:none!important}.authenticated .app-shell{margin:0}.card{box-shadow:none}body,main{background:#fff;color:#000}a{color:#000}.print-brand{color:#000}.scroll{overflow:visible}.public-page .login-intro:before{display:none}}

html[data-appearance="dark"]{--paper:#07111f;--white:#0f172a;--ink:#f1f5f9;--muted:#adbbcf;--line:#334155;--link:#93c5fd;--brown:var(--link);--tint:#172b46;--success:#86efac;--success-bg:#123228;--danger:#fda4af;--danger-bg:#3b1723;--field:#172033;--shadow:none;color-scheme:dark}
@media(prefers-color-scheme:dark){html[data-appearance="system"]{--paper:#07111f;--white:#0f172a;--ink:#f1f5f9;--muted:#adbbcf;--line:#334155;--link:#93c5fd;--brown:var(--link);--tint:#172b46;--success:#86efac;--success-bg:#123228;--danger:#fda4af;--danger-bg:#3b1723;--field:#172033;--shadow:none;color-scheme:dark}}

/* SSO setup contains long certificates and exact callback URLs. */
.sso-workbench>section,.sso-workbench>aside{min-width:0;width:100%}.sso-workbench label,.sso-workbench .helptext{overflow-wrap:anywhere}.sso-workbench input,.sso-workbench textarea{min-width:0;max-width:100%}.sso-workbench dl{display:block}.sso-workbench dt{margin-top:16px}.sso-workbench dd{margin:4px 0 16px;overflow-wrap:anywhere}
@media(max-width:1150px){.sso-workbench{grid-template-columns:minmax(0,1fr)}}

.calendar-deadline{display:grid;grid-template-columns:125px minmax(0,1fr) 170px;gap:20px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line)}.calendar-deadline:last-child{border-bottom:0}.calendar-deadline small{display:block;color:var(--muted);font-size:12px;margin-bottom:4px}.calendar-deadline a{overflow-wrap:anywhere}@media(max-width:650px){.calendar-deadline{grid-template-columns:minmax(0,1fr);gap:10px;align-items:start}}
