/* Explicit adapters for the existing working surfaces. Layout/state rules stay in each module. */
body.st-page{--ink:var(--st-text);--muted:var(--st-muted);--line:var(--st-line);--soft:var(--st-bg);--bg:var(--st-bg);--teal:var(--st-primary);--accent:var(--st-primary);--danger:var(--st-danger);--shadow:none;--navy:var(--st-header-bg)}
.st-page[data-st-tool=techniker]{--red:var(--st-primary);--red-dark:var(--st-primary-hover)}
.st-page [data-st-module-head]{background:var(--st-surface);color:var(--st-text);box-shadow:none;border-bottom:1px solid var(--st-line);min-height:0;height:auto;padding:12px 24px;gap:12px;flex-wrap:wrap}
/* Remove duplicate product/home navigation, never module actions or permission indicators. */
.st-page [data-st-module-head] :is(.portal-back[href="../"],.portal-home,.main-menu,.home,.back[href="../"],.main-menu-button[href="../"],.brand-mark,.logo,.mark),
.st-page[data-st-tool=einfuehrung] .portal-nav,.st-page[data-st-tool=e-tests] .portal-main-menu,
.st-page[data-st-tool=kalender] .header-left>a,.st-page[data-st-tool=kalender] .brand,
.st-page[data-st-tool=technikerkarte] header .brand,.st-page[data-st-tool=servicestand] .brand-line,
.st-page[data-st-tool=personalbedarf]>header,.st-page[data-st-tool=inventur]>header,
.st-page[data-st-tool=material] .header,.st-page[data-st-tool=servicestand]>header{display:none}
.st-page [data-st-module-head] h1{font-size:var(--st-title);margin:0}
.st-page [data-st-module-head] p{margin:4px 0 0;color:var(--st-muted);font-size:13px}
.st-page .portal-shell{width:min(1200px,calc(100% - 32px));margin:24px auto}
.st-page .portal-card,.st-page .setup-card,.st-page .users-card{border-radius:12px;box-shadow:none;border-color:var(--st-line);padding:24px}
.st-page .portal-head h1,.st-page .setup-card h1,.st-page .users-card h1{font-size:var(--st-title);margin:0 0 8px}
.st-page .portal-head .eyebrow{display:none}
.st-page .login-card{margin:32px auto;width:min(440px,calc(100% - 32px))}
.st-page .login-card h1{font-size:var(--st-title)}
.st-page .portal-head{align-items:center}
.st-page .area-card,.st-page .tool-card{background:var(--st-surface);border:1px solid var(--st-line);border-radius:12px;box-shadow:none;padding:20px;color:var(--st-text);transform:none}
.st-page .area-card:hover,.st-page .tool-card:hover{background:var(--st-bg);border-color:var(--st-control-border);box-shadow:none;transform:none}
.st-page .area-card:focus-visible,.st-page .tool-card:focus-visible{outline:3px solid var(--st-focus);outline-offset:3px}
.st-page .area-card h2,.st-page .tool-card h2{font-size:20px;color:var(--st-text)}
.st-page .area-card{gap:8px;padding:16px}
.st-page .area-card h3{font-size:20px}
.st-page .area-card p{min-height:3em;font-size:13px}
.st-page .area-icon{width:36px;height:36px}
.st-page .area-icon svg{width:24px;height:24px}
.st-page .area-heading{margin:16px 0 12px}
.st-page .area-card p,.st-page .tool-card p{font-size:14px;color:var(--st-muted)}
.st-page .area-card[data-area=planung]{border-top:4px solid var(--st-planung)}
.st-page .area-card[data-area=analyse]{border-top:4px solid var(--st-analyse)}
.st-page .area-card[data-area=ausbildung]{border-top:4px solid var(--st-ausbildung)}
.st-page .area-card[data-area=rapportierung]{border-top:4px solid var(--st-rapportierung)}
.st-page .area-card[data-area=verwaltung]{border-top:4px solid var(--st-verwaltung)}
.st-page .area-icon,.st-page .tool-icon{background:var(--st-bg);border-radius:8px;color:var(--st-primary)}
.st-page .area-tabs a[aria-current=page]{background:var(--st-primary);border-color:var(--st-primary);color:white}
.st-page .preview-controls{background:var(--st-bg);border:1px solid var(--st-line);border-radius:8px}
.st-page .preview-controls{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:16px 0;padding:12px}
.st-page .preview-controls select{max-width:100%}
.st-page .preview-grid a.tool-card{cursor:pointer}
.st-page .tools-grid[data-st-group=planung]{--st-group:var(--st-planung)}
.st-page .tools-grid[data-st-group=analyse]{--st-group:var(--st-analyse)}
.st-page .tools-grid[data-st-group=ausbildung]{--st-group:var(--st-ausbildung)}
.st-page .tools-grid[data-st-group=rapportierung]{--st-group:var(--st-rapportierung)}
.st-page .tools-grid[data-st-group=verwaltung]{--st-group:var(--st-verwaltung)}
.st-page .tools-grid .tool-icon{background:var(--st-bg);color:var(--st-group,var(--st-primary));border:1px solid var(--st-line)}
.st-page .tools-grid .tool-icon svg{width:24px;height:24px}
.st-page[data-st-tool=auftraege] :is(.editor,aside,fieldset),.st-page[data-st-tool=personalbedarf] :is(.panel,.context,.results article),.st-page[data-st-tool=inventur] .panel{border-radius:12px;box-shadow:none;border-color:var(--st-line)}
.st-page[data-st-tool=auftraege] main,.st-page[data-st-tool=personalbedarf] main,.st-page[data-st-tool=inventur] main{padding:16px 24px}
/* Calendar keeps its own horizontal grid scroll and remaining viewport height. */
.st-page[data-st-tool=kalender] .app{height:var(--st-work-height);min-height:360px}
.st-page[data-st-tool=kalender] .app>aside{height:100%;position:relative;top:auto;padding:16px;gap:16px}
.st-page[data-st-tool=kalender] .app>main{min-width:0}
.st-page[data-st-tool=kalender] .app>main>header{padding:12px 16px;gap:12px}
.st-page[data-st-tool=kalender] .app>main>header h1{font-size:20px}
.st-page[data-st-tool=kalender] .toolbar{gap:8px}
.st-page[data-st-tool=kalender] .toolbar .btn{min-height:34px}
.st-page[data-st-tool=kalender] :is(.calendar-wrap,.content){min-width:0}
/* Support's header remains owned by Support JS; the product shell is separate. */
.st-page[data-st-tool=support] #support-header{height:auto;min-height:64px;padding:8px 24px}
.st-page[data-st-tool=support] main{height:calc(var(--st-work-height) - 80px);min-height:400px;padding:12px 24px}
.st-page[data-st-tool=support] #support-header .heading,.st-page[data-st-tool=support] #support-header .editor-heading{min-height:44px;flex-wrap:wrap}
.st-page[data-st-tool=support] #support-header h1{font-size:20px}
.st-page[data-st-tool=support] :is(.panel,fieldset,.list-wrap,.overview-list){box-shadow:none;border-radius:12px}
/* Board keeps meeting mode, internal scroll, draggable split and mobile action bar. */
.st-page[data-st-tool=supportboard] .masthead{padding:8px 18px;background:var(--st-surface);color:var(--st-text)}
.st-page[data-st-tool=supportboard] .masthead h1{font-size:20px}
.st-page[data-st-tool=supportboard] .shared{color:var(--st-success);background:var(--st-bg)}
.st-page[data-st-tool=supportboard] th button{min-height:28px;padding:2px;font-size:13px;background:transparent;color:var(--st-text)}
.st-page[data-st-tool=supportboard] td :is(input,select){min-height:32px;padding:4px;font-size:13px}
.st-page[data-st-tool=supportboard].meeting .masthead{display:none}
/* React-owned DOM: integrate outside #root; no moving or rewriting managed nodes. */
.st-page[data-st-tool=pikett] .app-shell{min-height:var(--st-work-height);padding-top:8px}
.st-page[data-st-tool=pikett] .compact-header{position:relative;top:auto;box-shadow:none;background:var(--st-surface)}
.st-page[data-st-tool=pikett] .mini-brand,.st-page[data-st-tool=pikett] .portal-home{display:none}
.st-page[data-st-tool=pikett] .header-main-menu{display:none}
.st-page[data-st-tool=pikett] .compact-toolbar{top:var(--st-shell-height);background:var(--st-bg)}
.st-page[data-st-tool=pikett] .table-scroll{max-height:calc(var(--st-work-height) - 150px)}
.st-page[data-st-tool=pikett] .role-techniker .table-scroll{max-height:calc(var(--st-work-height) - 110px)}
.st-page[data-st-tool=pikett] .more-actions-menu{max-height:min(520px,calc(var(--st-work-height) - 100px));box-shadow:0 8px 24px #172c4033}
.st-page[data-st-tool=pikett] :is(.table-card,.summary-card){box-shadow:none;border-radius:12px}
.st-page[data-st-tool=pikett] .summary-heading{background:var(--st-bg)}
.st-page[data-st-tool=pikett] td :is(input,select){min-height:32px;font-size:13px;padding:4px}
.st-page[data-st-tool=techniker] .shell{min-height:var(--st-work-height)}
.st-page[data-st-tool=techniker] .sidebar{top:var(--st-top-height);bottom:0;overflow:auto}
.st-page[data-st-tool=techniker] .brand{font-family:var(--st-font)}
.st-page[data-st-tool=techniker] #root :is(a[href="../"],a[href="/"],.main-menu){display:none}
.st-page[data-st-tool=techniker] #root .account{display:none}
.st-page[data-st-tool=techniker] #root .topbar{background:var(--st-surface);border-color:var(--st-line)}
.st-page[data-st-tool=techniker] .sidebar :is(.portal-home,.portal-back){display:none}
.st-page[data-st-tool=techniker] :is(.card,.panel,.stat-card){box-shadow:none;border-radius:12px}
/* Map library controls retain their native style and resize handling. */
.st-page[data-st-tool=technikerkarte] main{height:calc(var(--st-work-height) - 64px);min-height:420px;position:relative;z-index:0}
.st-page[data-st-tool=technikerkarte] header{justify-content:flex-end}
.st-page[data-st-tool=technikerkarte] #summary{color:var(--st-muted)}
.st-page[data-st-tool=technikerkarte] .panel-heading{padding-top:16px}
.st-page[data-st-tool=technikerkarte] .panel-heading h1{font-size:24px}
.st-page[data-st-tool=technikerkarte] #map{min-width:0}
/* Training and learning pages keep module navigation below the common shell. */
.st-page[data-st-tool=e-tests]>.sidebar{top:var(--st-top-height);bottom:0;height:auto}
.st-page[data-st-tool=e-tests]>.sidebar .brand-icon{display:none}
.st-page[data-st-tool=e-tests]>.sidebar{background:var(--st-header-bg)}
.st-page[data-st-tool=e-tests] .sidebar :is(.nav.active,.subject-nav.active){background:#28475d;color:white;border-left:3px solid var(--st-ausbildung)}
.st-page[data-st-tool=e-tests] :is(.hero,.stat-icon){background:var(--st-surface);border:1px solid var(--st-line);color:var(--st-text)}
.st-page[data-st-tool=e-tests] .hero-art{display:none}
.st-page[data-st-tool=e-tests] .hero{padding:16px 24px;border-radius:12px}
.st-page[data-st-tool=e-tests] .stat span:not(.stat-icon){font-size:13px;color:var(--st-muted)}
.st-page[data-st-tool=e-tests] :is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]),select,textarea){border:1px solid var(--st-control-border)}
.st-page[data-st-tool=fehlerkatalog]>header{display:none}
.st-page[data-st-tool=fehlerkatalog] .intro p{color:var(--st-muted)}
.st-page[data-st-tool=fehlerkatalog] :is(.machine-type,.directory-panel,.favorites-panel,.analytics-panel){box-shadow:none;border-radius:12px;border-color:var(--st-line)}
.st-page :is(#delete,#resetButton,.st-danger){color:var(--st-danger);border-color:var(--st-danger)}
.st-page[data-st-tool=e-tests]>.sidebar nav a[href="../"]{display:none}
.st-page[data-st-tool=e-tests]>.shell{min-height:var(--st-work-height)}
.st-page[data-st-tool=e-tests] .topbar{top:var(--st-shell-height);min-height:56px}
.st-page[data-st-tool=e-tests] .selection-summary{top:calc(var(--st-shell-height) + 56px)}
.st-page[data-st-tool=e-tests] .shell>main{padding:24px;min-height:0}
.st-page[data-st-tool=e-tests] :is(.panel,.stat-card,.question-card){box-shadow:none;border-radius:12px}
.st-page[data-st-tool=einfuehrung] .shell{margin:16px auto}
.st-page[data-st-tool=einfuehrung] .brand-mark{display:none}
.st-page[data-st-tool=einfuehrung] :is(.overview,.person-card,.day-card){background:var(--st-surface);box-shadow:none;border:1px solid var(--st-line);border-radius:12px}
.st-page[data-st-tool=einfuehrung] .overview{color:var(--st-text);padding:16px 24px}
.st-page[data-st-tool=einfuehrung] .overview :is(.eyebrow,.intro,.stat span){color:var(--st-muted);font-size:var(--st-small)}
.st-page[data-st-tool=einfuehrung] .overview .stat{border-color:var(--st-line);background:var(--st-bg)}
.st-page[data-st-tool=servicestand] main{padding-top:20px}
.st-page[data-st-tool=servicestand] .hero{padding:0 0 20px;gap:24px}
.st-page[data-st-tool=servicestand] .hero h1{font-size:var(--st-title);line-height:1.25}
.st-page[data-st-tool=servicestand] .hero h1 span{color:var(--st-text)}
.st-page[data-st-tool=servicestand] .status-card{box-shadow:none;background:var(--st-surface)}
.st-page[data-st-tool=personal] .personnel-shell{margin:16px auto}
.st-page[data-st-tool=personal] .personnel-head{padding:12px 0}
.st-page[data-st-tool=material] .app{padding-top:16px}
.st-page[data-st-tool=material] .intro h1{font-size:var(--st-title)}
.st-page[data-st-tool=material] .intro{background:var(--st-surface);color:var(--st-text);border:1px solid var(--st-line);border-radius:12px;box-shadow:none;padding:16px 24px}
.st-page[data-st-tool=material] .intro :is(.kicker,p){color:var(--st-muted)}
.st-page[data-st-tool=material] .flow span{background:var(--st-bg)}
.st-page[data-st-tool=material] .flow small{font-size:12px}
.st-page[data-st-tool=material] .flow i{background:var(--st-control-border)}
.st-page[data-st-tool=material] :is(.panel,.stats article){border-radius:12px;box-shadow:none}
.st-page[data-st-tool=bde] :is(.card,.panel){box-shadow:none;border-radius:12px}
.st-page[data-st-tool=bde] header .brand{font-size:20px}
.st-page[data-st-tool=bde] .main-menu-button{display:none}
.st-page[data-st-tool=bde] .actions .primary{background:var(--st-primary);border-color:var(--st-primary);color:var(--st-surface)}
.st-page[data-st-tool=bde] .actions :is(.bali-button,.archive-button){background:var(--st-surface);border-color:var(--st-control-border);color:var(--st-text)}
.st-page[data-st-tool=bde] .actions .bali-button{font-size:var(--st-label)}
.st-page[data-st-tool=bde] .actions .bali-button::before{content:none}
.st-page[data-st-tool=bde] #exportButton{background:var(--st-surface);border-color:var(--st-control-border);color:var(--st-text)}
.st-page[data-st-tool=bde] #resetButton{color:var(--st-text);border-color:var(--st-control-border)}
.st-page[data-st-tool=support] .support-toolbar{background:var(--st-surface);border-color:var(--st-line)}
.st-page[data-st-tool=support] :is(.team-toolbar,.personal-toolbar){background:var(--st-surface);border-color:var(--st-line)}
.st-page[data-st-tool=supportboard] h1 small{color:var(--st-muted)}
.st-page .st-conflict table{width:100%;border-collapse:collapse;min-width:620px}
.st-page .st-conflict :is(th,td){padding:12px;border:1px solid var(--st-line);text-align:left;vertical-align:top;white-space:pre-wrap}
.st-page .st-conflict th{background:var(--st-bg)}
.st-page .st-conflict-scroll{overflow:auto;max-width:100%;margin:12px 0}
.st-page .st-conflict details{margin-top:12px}
.st-page .st-conflict :is(pre,dd){white-space:pre-wrap;overflow-wrap:anywhere}
.st-page .st-conflict dt{font-weight:650;margin-top:8px}
.st-page .st-conflict dd{margin:4px 0}
@media(min-width:900px) and (min-height:600px){.st-page[data-st-tool=supportboard]{display:flex;height:100dvh;min-height:0;flex-direction:column}.st-page[data-st-tool=supportboard]>.st-shell{flex:none}.st-page[data-st-tool=supportboard]>main{min-height:0}}
@media(max-width:850px){
 .st-page[data-st-tool=bde] .actions{flex-wrap:wrap;width:100%}.st-page[data-st-tool=bde] .actions>*{flex:1 1 140px}
 .st-page .portal-shell{width:calc(100% - 24px);margin:16px auto}.st-page .portal-card{padding:16px}
 .st-page [data-st-module-head]{padding:12px}
 .st-page[data-st-tool=auftraege] main,.st-page[data-st-tool=personalbedarf] main,.st-page[data-st-tool=inventur] main{padding:12px}
 .st-page[data-st-tool=support] main{height:auto;min-height:0;padding:12px}.st-page[data-st-tool=support] #support-header{padding:8px 12px}
 .st-page[data-st-tool=technikerkarte] main{height:auto;min-height:0}.st-page[data-st-tool=technikerkarte] #map{height:60dvh;min-height:360px}
 .st-page[data-st-tool=kalender] .app{min-height:450px}.st-page[data-st-tool=kalender] .app>main>header{padding:8px}
 .st-page[data-st-tool=e-tests] .shell>main{padding:16px}
 .st-page[data-st-tool=pikett] .more-actions-menu{top:calc(var(--st-shell-height) + 100px);max-height:calc(var(--st-work-height) - 115px)}
}
@media(max-width:600px){.st-page[data-st-tool=pikett] td :is(input,select){font-size:16px;min-height:44px}}
