*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.table{display:table}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}:root{--color-primary: #1d4ed8;--color-primary-hover: #1e40af;--color-on-primary: #ffffff;--color-bg: #ffffff;--color-surface: #ffffff;--color-surface-subtle: #f3f4f6;--color-border: #d1d5db;--color-text: #111827;--color-text-muted: #4b5563;--color-focus: #1d4ed8;--color-success: #15803d;--color-success-bg: #dcfce7;--color-warning: #a16207;--color-warning-bg: #fef9c3;--color-danger: #b91c1c;--color-danger-bg: #fee2e2;--color-info: #0369a1;--color-info-bg: #e0f2fe;--color-unsaved: #854d0e;--color-unsaved-bg: #fef3c7;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 2rem}*{box-sizing:border-box}html{min-width:360px;scroll-behavior:smooth}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:var(--font-size-base);letter-spacing:0;line-height:1.5}button,input,select,textarea{font:inherit}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}select:focus-visible,textarea:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.admin-auth-page{align-items:center;background:#eef2f7;display:flex;justify-content:center;min-height:100vh;padding:24px 16px}.admin-auth-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;max-width:480px;padding:28px;width:100%}.admin-auth-panel h1{font-size:var(--font-size-2xl);margin:0 0 24px}.admin-shell{background:#f8fafc;min-height:100vh}.admin-header{align-items:center;background:#17212b;color:#fff;display:flex;justify-content:space-between;min-height:68px;padding:10px 24px}.admin-header>div:first-child,.admin-header__account,.admin-header__account>span{align-items:center;display:flex;gap:12px}.admin-header__account>span{align-items:flex-end;flex-direction:column;gap:0}.admin-header__account small{color:#cbd5e1}.admin-header .button--secondary{background:#fff;border-color:#fff;color:#17212b}.admin-primary-nav{align-items:center;display:flex;flex-wrap:wrap;gap:4px}.admin-primary-nav button{background:transparent;border:1px solid transparent;border-radius:4px;color:#cbd5e1;cursor:pointer;min-height:40px;padding:8px 12px}.admin-primary-nav button:hover,.admin-primary-nav button[aria-current=page]{background:#fff;color:#17212b}.admin-account-panel{background:#fff;border-bottom:1px solid var(--color-border);padding:24px}.admin-inline-form{align-items:end;display:grid;gap:16px;grid-template-columns:repeat(2,minmax(220px,1fr)) auto;max-width:980px}.admin-workspace{display:grid;grid-template-columns:320px minmax(0,1fr);min-height:calc(100vh - 68px)}.admin-sidebar{background:#fff;border-right:1px solid var(--color-border);padding:20px 16px}.admin-sidebar__heading,.admin-section-heading{align-items:center;display:flex;gap:16px;justify-content:space-between}.admin-sidebar__heading h1,.admin-section-heading h1,.admin-section-heading h2{font-size:var(--font-size-xl);margin:0}.admin-tenant-list{display:grid;gap:4px;list-style:none;margin:20px 0 0;padding:0}.admin-tenant-list button{background:transparent;border:1px solid transparent;border-radius:6px;color:var(--color-text);cursor:pointer;display:grid;min-height:56px;padding:8px 10px;text-align:left;width:100%}.admin-tenant-list button:hover,.admin-tenant-list button[aria-current=page]{background:#e8eef7;border-color:#c7d2e1}.admin-tenant-list small{color:var(--color-text-muted)}.admin-main{min-width:0;padding:28px 32px 72px}.admin-audit,.admin-monitoring{margin:0 auto;max-width:1480px;padding:28px 32px 72px}.admin-billing{margin:0 auto;max-width:960px;padding:28px;width:100%}.admin-billing-form{border-top:1px solid var(--color-border);padding-top:24px}.admin-billing-form h2{font-size:1.05rem;margin:0 0 18px}.admin-billing-fields{display:grid;gap:16px;grid-template-columns:minmax(220px,1.5fr) repeat(2,minmax(170px,1fr))}.admin-billing-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.admin-segmented-control{background:#e2e8f0;border:1px solid #cbd5e1;border-radius:6px;display:flex;padding:2px}.admin-segmented-control button{background:transparent;border:0;border-radius:4px;color:#334155;cursor:pointer;min-height:36px;padding:6px 12px}.admin-segmented-control button[aria-pressed=true]{background:#fff;box-shadow:0 1px 2px #0f172a1f;color:#17212b;font-weight:700}.admin-monitoring-test{border-bottom:1px solid var(--color-border);border-top:1px solid var(--color-border);margin-top:24px;padding:20px 0}.admin-monitoring-test h2,.admin-monitoring-series h3,.admin-monitoring-alerts h3{font-size:var(--font-size-lg);margin:0}.admin-monitoring-test__form{align-items:end;display:grid;gap:14px;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) auto;margin-top:14px;max-width:860px}.admin-monitoring-tenants{display:grid;gap:40px;margin-top:28px}.admin-monitoring-tenant+.admin-monitoring-tenant{border-top:2px solid #94a3b8;padding-top:36px}.admin-monitoring-tenant__heading{align-items:flex-start;display:flex;gap:20px;justify-content:space-between}.admin-monitoring-tenant__heading h2{font-size:var(--font-size-xl);margin:0}.admin-monitoring-tenant__heading p{color:var(--color-text-muted);font-size:var(--font-size-sm);margin:3px 0 0}.admin-monitoring-health,.admin-monitoring-severity{border-left:4px solid #64748b;display:inline-block;font-size:var(--font-size-sm);font-weight:700;padding:4px 8px}.admin-monitoring-health--ok{border-color:#15803d;color:#166534}.admin-monitoring-health--stale,.admin-monitoring-severity--warning{border-color:#ca8a04;color:#854d0e}.admin-monitoring-health--error,.admin-monitoring-severity--p2{border-color:#dc2626;color:#991b1b}.admin-monitoring-health--missing{color:#475569}.admin-monitoring-health-state{align-items:flex-end;display:grid;gap:3px;justify-items:end}.admin-monitoring-health-state small{color:var(--color-text-muted);font-size:var(--font-size-xs)}.admin-monitoring-metrics{display:grid;gap:1px;grid-template-columns:repeat(4,minmax(0,1fr));margin:22px 0 0}.admin-monitoring-metric-group{background:#fff;border-bottom:1px solid var(--color-border);border-top:1px solid var(--color-border);margin:0;padding:14px}.admin-monitoring-metric-group dt{color:#334155;font-size:var(--font-size-sm);font-weight:750}.admin-monitoring-metric-group dd{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr));margin:12px 0 0}.admin-monitoring-metric-group dd span{display:grid;gap:1px}.admin-monitoring-metric-group small{color:var(--color-text-muted);font-size:var(--font-size-xs)}.admin-monitoring-series,.admin-monitoring-alerts{border-top:1px solid var(--color-border);margin-top:22px;padding-top:18px}.admin-monitoring-bars{align-items:end;display:flex;gap:2px;height:112px;margin-top:14px;overflow:hidden}.admin-monitoring-bars>span{background:#2563eb;flex:1 1 3px;max-width:14px;min-width:2px}.admin-monitoring-bars>span[data-error=true]{background:#dc2626}.admin-monitoring-alerts>p{color:var(--color-text-muted);margin:10px 0 0}.admin-monitoring-alerts ul{border-top:1px solid var(--color-border);list-style:none;margin:14px 0 0;padding:0}.admin-monitoring-alerts li{align-items:center;border-bottom:1px solid var(--color-border);display:grid;gap:12px;grid-template-columns:90px minmax(180px,1fr) minmax(140px,1fr) 180px;padding:10px 0}.admin-audit-retention{align-items:end;border-bottom:1px solid var(--color-border);border-top:1px solid var(--color-border);display:flex;gap:28px;justify-content:space-between;margin-top:24px;padding:20px 0}.admin-audit-retention h2,.admin-audit-filters h2,.admin-audit-detail h2{font-size:var(--font-size-lg);margin:0}.admin-audit-retention p{color:var(--color-text-muted);margin:6px 0 0}.admin-retention-form{align-items:end;display:flex;gap:12px}.admin-retention-form input{background:#fff;border:1px solid var(--color-border);border-radius:4px;min-height:44px;padding:8px 10px;width:88px}.admin-audit-filters{border-bottom:1px solid var(--color-border);margin-top:24px;padding-bottom:24px}.admin-audit-filter-grid{display:grid;gap:14px;grid-template-columns:repeat(4,minmax(160px,1fr));margin:16px 0}.admin-audit-filter-grid input,.admin-audit-filter-grid select{background:#fff;border:1px solid var(--color-border);border-radius:4px;min-height:42px;padding:8px 10px;width:100%}.admin-audit-state{color:var(--color-text-muted);padding:28px 0}.admin-audit-table-wrap{margin-top:22px;overflow-x:auto}.admin-audit-table{border-collapse:collapse;font-size:var(--font-size-sm);min-width:1120px;table-layout:fixed;width:100%}.admin-audit-table th,.admin-audit-table td{border-bottom:1px solid var(--color-border);overflow-wrap:anywhere;padding:10px 9px;text-align:left;vertical-align:top}.admin-audit-table th{background:#eef2f7;color:#334155;font-weight:700}.admin-audit-table tr[data-selected=true] td{background:#e8eef7}.admin-audit-table th:nth-child(1){width:150px}.admin-audit-table th:nth-child(2){width:150px}.admin-audit-table th:nth-child(3){width:190px}.admin-audit-table th:nth-child(4),.admin-audit-table th:nth-child(6){width:110px}.admin-audit-table th:nth-child(7){width:260px}.admin-audit-detail-link{background:transparent;border:0;color:var(--color-primary);cursor:pointer;font:inherit;font-weight:700;padding:0;text-align:left}.admin-audit-detail-link span,.admin-audit-detail-link small{display:block}.admin-audit-detail-link small{color:var(--color-text-muted);font-size:12px;font-weight:400;margin-top:2px}.admin-audit-class{border-left:3px solid #64748b;display:inline-block;padding-left:7px}.admin-audit-class--sicherheit{border-color:#b45309}.admin-audit-class--aktivitaet{border-color:#047857}.admin-audit-monospace{font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:12px}.admin-audit-pagination{display:flex;gap:10px;justify-content:flex-end;margin-top:18px}.admin-audit-detail{border-top:2px solid #17212b;margin-top:28px;padding-top:22px}.admin-audit-detail h3{font-size:var(--font-size-base);margin:22px 0 10px}.admin-audit-detail-grid{display:grid;gap:14px 28px;grid-template-columns:repeat(3,minmax(0,1fr));margin:18px 0 0}.admin-audit-detail-grid dt{color:var(--color-text-muted);font-size:var(--font-size-sm);font-weight:700}.admin-audit-detail-grid dd{margin:4px 0 0;overflow-wrap:anywhere}.admin-editor{margin:0 auto;max-width:1180px}.admin-form-section{border-top:1px solid var(--color-border);margin-top:28px;padding-top:24px}.admin-form-section h2{font-size:var(--font-size-lg);margin:0 0 18px}.admin-form-grid{display:grid;gap:18px;grid-template-columns:repeat(2,minmax(0,1fr))}.admin-form-grid input,.admin-form-grid select,.admin-editor textarea,.admin-inline-form input{background:#fff;border:1px solid var(--color-border);border-radius:4px;min-height:44px;padding:10px 12px;width:100%}.admin-editor input[type=color]{padding:4px}.admin-module-switches{display:flex;flex-wrap:wrap;gap:24px;margin-bottom:20px}.admin-module-switches label{align-items:center;display:flex;gap:10px;min-height:44px}.admin-module-switches input{height:22px;width:22px}.admin-secret-status{display:grid;gap:8px 24px;grid-template-columns:repeat(3,minmax(0,1fr));margin:0 0 18px}.admin-secret-status div{border-left:3px solid var(--color-primary);padding-left:12px}.admin-secret-status dt{font-size:var(--font-size-sm);font-weight:700}.admin-secret-status dd{color:var(--color-text-muted);margin:4px 0 0}.admin-json-field{margin-top:18px}.admin-json-field textarea,.admin-json-readonly{font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:var(--font-size-sm);overflow:auto;white-space:pre}.admin-json-readonly{background:#fff;border:1px solid var(--color-border);border-radius:4px;max-height:360px;padding:16px}.admin-loading,.admin-empty-selection{align-items:center;display:flex;justify-content:center;min-height:320px}@media(max-width:900px){.admin-header,.admin-header__account{align-items:flex-start}.admin-header{gap:12px}.admin-header__account{flex-wrap:wrap;justify-content:flex-end}.admin-primary-nav{order:3;width:100%}.admin-audit-filter-grid,.admin-monitoring-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-workspace{grid-template-columns:1fr}.admin-sidebar{border-bottom:1px solid var(--color-border);border-right:0}.admin-tenant-list{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-inline-form{grid-template-columns:1fr}}@media(max-width:620px){.admin-header,.admin-header>div:first-child,.admin-header__account{align-items:stretch;flex-direction:column}.admin-header__account>span{align-items:flex-start}.admin-primary-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.admin-primary-nav button{width:100%}.admin-main,.admin-audit,.admin-monitoring{padding:24px 16px 56px}.admin-billing{padding:20px}.admin-audit-retention,.admin-retention-form{align-items:stretch;flex-direction:column}.admin-audit-filter-grid,.admin-audit-detail-grid,.admin-monitoring-metrics,.admin-monitoring-test__form,.admin-billing-fields{grid-template-columns:1fr}.admin-monitoring-alerts li{align-items:start;grid-template-columns:1fr}.admin-tenant-list,.admin-form-grid,.admin-secret-status{grid-template-columns:1fr}.admin-section-heading{align-items:stretch;flex-direction:column}}.center-page{min-height:100vh;padding:24px 16px;align-items:center;background:var(--color-surface-subtle);display:flex;justify-content:center}.auth-panel__language{display:flex;justify-content:flex-end;margin-bottom:16px}.auth-panel h1,.page-heading h1{font-size:var(--font-size-2xl);line-height:1.25;margin:0}.page-heading--actions{align-items:flex-start;display:flex;gap:1rem;justify-content:space-between}.task-sections{display:grid;gap:2rem}.task-section>h2{font-size:1.125rem;margin:0 0 .75rem}.resource-card__context{color:var(--color-text-muted);margin:.25rem 0 0}.eyebrow{color:var(--color-primary);font-size:var(--font-size-sm);font-weight:700;margin:0 0 8px}.public-site{--public-amber: #a16207;--public-blue: #1d4ed8;--public-green: #0f766e;--public-ink: #161d23;background:#fff;color:var(--public-ink);min-height:100vh}.public-header{align-items:center;background:#fff;border-bottom:1px solid #d9dee5;display:flex;justify-content:space-between;min-height:68px;padding:10px max(20px,calc((100vw - 1200px)/2));position:relative;z-index:10}.public-header__brand{color:var(--public-ink);font-size:1.25rem;font-weight:800;text-decoration:none}.public-header__nav{align-items:center;display:flex;gap:24px}.public-header__nav>a{color:#344054;font-size:var(--font-size-sm);font-weight:650;text-decoration:none}.public-header__nav>a:hover{color:var(--public-blue)}.public-hero{align-items:center;background-color:#eef2f6;background-image:url(/t-api-portal-overview.png);background-position:center;background-repeat:no-repeat;background-size:cover;display:flex;height:clamp(540px,calc(100svh - 128px),650px);isolation:isolate;overflow:hidden;position:relative}.public-hero__veil{background:#ffffffd6;inset:0;position:absolute;z-index:-1}.public-hero__content{margin:0 auto;max-width:1200px;padding:56px 24px;width:100%}.public-kicker{color:var(--public-blue);font-size:var(--font-size-sm);font-weight:750;margin:0 0 12px}.public-hero h1{font-size:4.75rem;line-height:1;margin:0}.public-hero__lead{font-size:1.75rem;font-weight:650;line-height:1.25;margin:24px 0 0;max-width:26ch}.public-hero__body{color:#344054;font-size:var(--font-size-lg);margin:20px 0 0;max-width:62ch}.public-hero__facts{display:flex;flex-wrap:wrap;gap:18px 30px;list-style:none;margin:36px 0 0;padding:0}.public-hero__facts li{border-left:3px solid var(--public-blue);font-size:var(--font-size-sm);font-weight:700;padding-left:10px}.public-hero__facts li:nth-child(2){border-left-color:var(--public-green)}.public-hero__facts li:nth-child(3){border-left-color:var(--public-amber)}.public-section{padding:88px 24px}.public-section__inner{margin:0 auto;max-width:1200px}.public-section__heading{max-width:720px}.public-section__heading h2{font-size:2.25rem;line-height:1.2;margin:0}.public-section__heading>p:last-child{color:#475467;font-size:var(--font-size-lg);margin:18px 0 0}.public-module-grid{display:grid;gap:20px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:44px}.public-module{background:#fff;border:1px solid #d9dee5;border-radius:8px;border-top:4px solid var(--public-blue);padding:28px}.public-module--grades{border-top-color:var(--public-green)}.public-module>span{color:#475467;font-size:var(--font-size-sm);font-weight:700}.public-module h3{font-size:var(--font-size-xl);margin:10px 0 0}.public-module p{color:#344054;margin:14px 0 0}.public-module small{color:#667085;display:block;font-size:var(--font-size-sm);margin-top:20px}.public-product-shot{margin:64px 0 0}.public-product-shot img{border:1px solid #cbd2dc;border-radius:8px;box-shadow:0 24px 60px #161d231f;display:block;height:auto;width:100%}.public-product-shot figcaption{color:#667085;font-size:var(--font-size-sm);margin-top:12px}.public-principles{background:var(--public-ink);color:#fff;padding:88px 24px}.public-section__heading--inverse .public-kicker{color:#f4c95d}.public-section__heading--inverse h2{font-size:2.25rem;line-height:1.2;margin:0}.public-principle-grid{display:grid;gap:28px;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:48px}.public-principle-grid article{border-top:3px solid #7aa2f7;padding-top:20px}.public-principle-grid article:nth-child(2){border-top-color:#5cc8b9}.public-principle-grid article:nth-child(3){border-top-color:#f4c95d}.public-principle-grid h3{font-size:var(--font-size-lg);margin:0}.public-principle-grid p{color:#d0d5dd;margin:14px 0 0}.public-footer{align-items:baseline;background:#fff;display:flex;gap:24px;justify-content:space-between;margin:0 auto;max-width:1200px;padding:34px 24px}.public-footer p{color:#667085;font-size:var(--font-size-sm);margin:0;max-width:70ch;text-align:right}.auth-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;box-shadow:0 18px 50px #11182714;max-width:440px;padding:24px;width:100%}.form-stack{display:grid;gap:12px;margin-top:24px}.form-stack--code{border-top:1px solid var(--color-border);margin-top:24px;padding-top:24px}.field{display:grid;gap:6px}.field span{font-size:var(--font-size-sm);font-weight:650}.field input,.field select{background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;color:var(--color-text);min-height:44px;padding:10px 12px;width:100%}.field-help{color:var(--color-text-muted);font-size:var(--font-size-sm);margin:0}.language-select select{background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;color:var(--color-text);min-height:36px;padding:6px 28px 6px 10px}.button{align-items:center;border-radius:6px;border:1px solid transparent;cursor:pointer;display:inline-flex;font-weight:650;justify-content:center;min-height:44px;padding:10px 16px;text-decoration:none}.button:disabled{cursor:not-allowed;opacity:.55}.button--primary{background:var(--color-primary);color:var(--color-on-primary)}.button--primary:not(:disabled):hover{background:var(--color-primary-hover)}.button--secondary{background:transparent;border-color:var(--color-border);color:var(--color-text)}.button--secondary:not(:disabled):hover{background:var(--color-surface-subtle)}.button--danger{background:var(--color-danger);color:var(--color-on-primary)}.button--danger:not(:disabled):hover{filter:brightness(.95)}.banner{border-radius:8px;display:grid;gap:4px;margin:16px 0;padding:12px}.banner--error,.banner--danger{background:var(--color-danger-bg);color:var(--color-danger)}.banner--success{background:var(--color-success-bg);color:var(--color-success)}.banner--warning{background:var(--color-warning-bg);color:var(--color-warning)}.banner--info{background:var(--color-info-bg);color:var(--color-info)}.banner small{color:var(--color-text-muted);font-size:var(--font-size-xs)}.portal{background:var(--color-bg);min-height:100vh}.portal-header{align-items:center;background:var(--color-surface);border-bottom:1px solid var(--color-border);display:flex;gap:16px;justify-content:space-between;min-height:64px;padding:10px 16px;position:sticky;top:0;z-index:10}.portal-header__brand,.portal-header__user{align-items:center;display:flex;gap:12px;min-width:0}.portal-header__brand img{max-height:36px;max-width:160px;-o-object-fit:contain;object-fit:contain}.portal-header__logo-text{font-weight:750;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-header__title{color:var(--color-text-muted);font-size:var(--font-size-sm)}.portal-header__identity{display:grid;gap:1px;min-width:0;text-align:right}.portal-header__identity-label{color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:650}.portal-header__identity strong{color:var(--color-text);font-size:var(--font-size-sm);font-weight:650;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.connection-status{background:#fff7d6;border-bottom:1px solid #d6ad34;color:#5f4300;display:grid;gap:2px;padding:10px max(16px,calc((100vw - 1200px)/2))}.connection-status span,.connection-status small{font-size:var(--font-size-sm)}.connection-status small{color:#725511}.portal-main{margin:0 auto;max-width:1200px;padding:24px 16px}.page-heading{margin-bottom:20px}.page-heading p{color:var(--color-text-muted);font-size:var(--font-size-sm);margin:0 0 4px}.empty-state{background:var(--color-surface-subtle);border:1px solid var(--color-border);border-radius:8px;margin:0;padding:16px}.task-list{display:grid;gap:12px;list-style:none;margin:0;padding:0}.task-card{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;display:grid;gap:16px;grid-template-columns:1fr;padding:16px}.task-card h2{font-size:var(--font-size-lg);line-height:1.4;margin:8px 0 4px}.task-card p{color:var(--color-text-muted);margin:0}.noten-view{display:grid;gap:20px;min-width:0}.noten-view--editor{padding-bottom:112px}.resource-group{display:grid;gap:12px}.resource-group+.resource-group{border-top:1px solid var(--color-border);padding-top:20px}.resource-group>h2,.section-heading h2{font-size:var(--font-size-xl);margin:0}.noten-entry-card h3{font-size:var(--font-size-lg);line-height:1.4;margin:8px 0}.noten-entry-card__status,.noten-heading-status,.section-heading{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.noten-heading-status p{margin:0}.noten-progress{display:grid;font-size:var(--font-size-sm);gap:6px;margin-top:12px;max-width:360px}.noten-progress progress{accent-color:var(--color-primary);height:8px;width:100%}.noten-search{max-width:420px}.noten-summary{border-bottom:1px solid var(--color-border);border-top:1px solid var(--color-border);display:grid;gap:12px 24px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin:0;min-width:0;padding:16px 0}.noten-summary div,.noten-aggregates div{display:grid;gap:2px;min-width:0}.noten-summary dt,.noten-aggregates dt{color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:700;overflow-wrap:anywhere}.noten-summary dd,.noten-aggregates dd{margin:0;overflow-wrap:anywhere}.exam-structure{background:var(--color-surface-subtle);border-bottom:1px solid var(--color-border);border-top:1px solid var(--color-border);display:grid;gap:12px;margin:4px 0;padding:16px}.point-conversion{border-bottom:1px solid var(--color-border);display:grid;gap:12px;padding:16px 0}.point-conversion__metadata{display:grid;gap:12px 24px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin:0}.point-conversion__metadata div{display:grid;gap:2px}.point-conversion__metadata dt{color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:700}.point-conversion__metadata dd{margin:0}.point-conversion__table-wrap{max-width:520px;overflow-x:auto}.point-conversion__table{border-collapse:collapse;font-size:var(--font-size-sm);width:100%}.point-conversion__table th,.point-conversion__table td{border-bottom:1px solid var(--color-border);padding:8px;text-align:left}.point-conversion__table th{background:var(--color-surface-subtle)}.section-heading{justify-content:space-between}.exam-list{display:grid;gap:8px;list-style-position:inside;margin:0;padding:0}.exam-list li{display:grid;gap:2px;grid-template-columns:minmax(140px,1fr) minmax(0,2fr)}.exam-list li::marker{font-weight:700}.exam-list span{color:var(--color-text-muted);font-size:var(--font-size-sm)}.noten-table-wrap{display:none}.noten-table{border-collapse:collapse;font-size:var(--font-size-sm);min-width:1120px;width:100%}.noten-table--freitext{min-width:680px}.noten-free-text-field textarea{min-height:112px;min-width:min(420px,100%);resize:vertical;width:100%}.noten-free-text-count{text-align:right}.noten-free-text-value output{overflow-wrap:anywhere;white-space:pre-wrap}.noten-attempt{color:var(--color-text-muted);display:inline-block;font-size:var(--font-size-xs);font-weight:700;white-space:nowrap}.noten-drop-rule{margin:0;max-width:72ch}.noten-table th,.noten-table td{border-bottom:1px solid var(--color-border);padding:10px 8px;text-align:left;vertical-align:top}.noten-table thead th{background:var(--color-surface-subtle);min-width:132px}.noten-table thead th>span,.noten-table thead th>small{display:block}.noten-table thead th>small{color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:500;margin-top:3px}.noten-table thead th:first-child,.noten-table tbody th{min-width:190px}.noten-table tbody th{font-weight:700}.noten-field{display:grid;gap:4px;min-width:0}.noten-field input,.noten-field select{min-width:96px;width:100%}.noten-field--compact input,.noten-field--compact select{max-width:130px}.noten-choice-field select{min-width:180px}.noten-field.is-dirty-cell,.dispense-field.is-dirty-cell{background:var(--color-unsaved-bg);border-left:3px solid var(--color-warning);padding:6px}.noten-field .unsaved-marker,.dispense-field .unsaved-marker{margin-left:0}.noten-readonly-value,.dispense-readonly{display:grid;gap:4px;min-height:44px}.noten-readonly-value>span,.dispense-readonly>span{color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:700}.noten-readonly-value output,.dispense-readonly output{font-weight:650}.dispense-field{align-items:center;display:grid;gap:6px;grid-template-columns:auto 1fr;min-height:44px}.dispense-field input{height:20px;width:20px}.dispense-field .cell-feedback{grid-column:1 / -1}.cell-feedback{align-items:center;display:inline-flex;font-size:var(--font-size-xs);font-weight:700;gap:5px}.cell-feedback:before{border-radius:999px;content:"";height:7px;width:7px}.cell-feedback--gespeichert{color:var(--color-success)}.cell-feedback--gespeichert:before{background:var(--color-success)}.cell-feedback--fehler{color:var(--color-danger)}.cell-feedback--fehler:before{background:var(--color-danger)}.noten-cards{display:grid;gap:12px;min-width:0}.noten-participant-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;display:grid;gap:16px;min-width:0;padding:16px}.noten-participant-card h2{font-size:var(--font-size-lg);line-height:1.35;margin:0}.noten-mobile-fields{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));min-width:0}.noten-mobile-fields>*{min-width:0}.noten-aggregates{border-top:1px solid var(--color-border);display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));margin:0;padding-top:12px}.noten-correction-help{border-left:3px solid var(--color-info);margin:-8px 0 0;padding:8px 12px}.conflict-change-list{margin:6px 0 0;padding-left:20px}.close-progress{color:var(--color-text);font-weight:700}.dialog__content{color:var(--color-text-muted);display:grid;gap:14px}.dialog__content p{margin:0}.confirmation-option{align-items:flex-start;background:var(--color-warning-bg);border:1px solid var(--color-warning);border-radius:6px;color:var(--color-text);display:flex;gap:10px;padding:10px}.confirmation-option input{flex:0 0 auto;height:20px;margin-top:1px;width:20px}.praesenz-view{display:grid;gap:16px}.teilnehmer-praesenz-view{display:grid;gap:20px}.teilnehmer-praesenz-metadata{grid-template-columns:minmax(140px,max-content) minmax(0,1fr)}.teilnehmer-praesenz-summary{border-bottom:1px solid var(--color-border);border-top:1px solid var(--color-border);display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));margin:0;padding:16px 0}.termine-view{display:grid;gap:1.5rem}.termine-heading{align-items:end;display:flex;gap:1rem;justify-content:space-between}.termine-period{border:1px solid var(--color-border);display:inline-grid;grid-template-columns:repeat(2,minmax(7rem,1fr));min-height:2.75rem}.termine-period button{background:var(--color-surface);border:0;color:var(--color-text-muted);cursor:pointer;font:inherit;font-weight:700;padding:.65rem 1rem}.termine-period button[aria-pressed=true]{background:var(--color-primary);color:#fff}.calendar-subscription{align-items:end;background:#f5f8ff;border-left:4px solid var(--color-primary);display:grid;gap:1rem;grid-template-columns:minmax(12rem,1fr) minmax(14rem,1.2fr) auto;padding:1rem 1.25rem}.calendar-subscription h2,.calendar-subscription p{margin:0}.calendar-subscription p{color:var(--color-text-muted);margin-top:.35rem}.appointment-day{border-top:1px solid var(--color-border);padding-top:1rem}.appointment-day>h2{font-size:1rem;margin:0 0 .75rem;text-transform:capitalize}.appointment-list{display:grid;gap:.75rem;list-style:none;margin:0;padding:0}.appointment-item{align-items:start;border:1px solid var(--color-border);border-radius:6px;display:grid;gap:1rem;grid-template-columns:7rem minmax(0,1fr) auto;min-height:7rem;padding:1rem}.appointment-item>time{color:var(--color-primary);font-weight:800;white-space:nowrap}.appointment-item__content{min-width:0}.appointment-item h3,.appointment-item p{margin:0}.appointment-item h3{font-size:1rem}.appointment-item p,.appointment-item small{color:var(--color-text-muted);display:block;margin-top:.3rem}.appointment-location{color:var(--color-text)!important;font-weight:700}.appointment-load-more{justify-self:center}@media(max-width:720px){.termine-heading{align-items:stretch;flex-direction:column}.termine-period{width:100%}.calendar-subscription{align-items:stretch;grid-template-columns:1fr}.appointment-item{grid-template-columns:1fr}}.teilnehmer-praesenz-summary div{display:grid;gap:4px}.teilnehmer-praesenz-summary dt{color:var(--color-text-muted);font-size:var(--font-size-sm);font-weight:700}.teilnehmer-praesenz-summary dd{font-size:var(--font-size-xl);font-weight:700;margin:0}.attendance-list{display:grid;gap:12px;list-style:none;margin:0;padding:0}.attendance-list li{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;display:grid;gap:14px;padding:16px}.attendance-list h2{font-size:var(--font-size-lg);margin:8px 0 4px}.attendance-list p{color:var(--color-text-muted);margin:0}.attendance-list>li>strong{font-size:var(--font-size-xl)}.praesenz-view--matrix{padding-bottom:112px}.back-link{color:var(--color-primary);font-size:var(--font-size-sm);font-weight:700;text-decoration:none;width:-moz-fit-content;width:fit-content}.back-link:hover{text-decoration:underline}.page-heading--with-action{align-items:start;display:grid;gap:12px}.resource-list{display:grid;gap:12px;list-style:none;margin:0;padding:0}.resource-card{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;display:grid;gap:16px;padding:16px}.resource-card__body{min-width:0}.resource-card h2{font-size:var(--font-size-lg);line-height:1.4;margin:8px 0}.metadata-list{color:var(--color-text-muted);display:grid;font-size:var(--font-size-sm);gap:4px 12px;grid-template-columns:max-content 1fr;margin:0}.metadata-list dt{font-weight:700}.metadata-list dd{margin:0;min-width:0}.skeleton-list{display:grid;gap:12px}.skeleton-list span[aria-hidden=true]{animation:pulse 1.2s ease-in-out infinite;background:var(--color-surface-subtle);border-radius:8px;height:84px}.matrix-table-wrap{display:none}.matrix-table{border-collapse:collapse;font-size:var(--font-size-sm);min-width:980px;width:100%}.matrix-table th,.matrix-table td{border-bottom:1px solid var(--color-border);padding:12px 10px;text-align:left;vertical-align:top}.matrix-table thead th{background:var(--color-surface-subtle)}.matrix-table tbody th{font-weight:700;min-width:180px}.matrix-table__status{min-width:360px}.matrix-table__comment{min-width:240px}.matrix-cards{display:grid;gap:12px}.participant-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;display:grid;gap:14px;padding:16px}.participant-card__header{align-items:start;display:flex;gap:8px;justify-content:space-between}.participant-card h2{font-size:var(--font-size-lg);line-height:1.35;margin:0}.is-dirty{background:var(--color-unsaved-bg)}.unsaved-marker{align-items:center;color:var(--color-unsaved);display:inline-flex;font-size:var(--font-size-xs);font-weight:750;gap:4px;margin-left:8px;white-space:nowrap}.unsaved-marker:before{background:var(--color-unsaved);border-radius:999px;content:"";height:7px;width:7px}.status-group{border:0;display:grid;gap:8px;margin:0;min-width:0;padding:0}.status-group legend{font-size:var(--font-size-sm);font-weight:700;margin-bottom:4px}.status-option{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;display:flex;gap:8px;min-height:44px;padding:8px 10px}.status-option input{height:18px;width:18px}.matrix-field{min-width:120px}.matrix-field input{min-width:0}.matrix-field--comment{min-width:220px}.matrix-table .status-group{grid-template-columns:repeat(2,minmax(0,1fr))}.matrix-table .status-group legend,.matrix-table .matrix-field>span:first-child{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.inline-error{color:var(--color-danger);display:block;font-size:var(--font-size-xs);font-weight:650;margin-top:4px}.row-result{display:grid;gap:4px}.row-result small,.row-result--muted{color:var(--color-text-muted);font-size:var(--font-size-xs)}.save-bar{align-items:center;background:var(--color-surface);border-top:1px solid var(--color-border);bottom:0;box-shadow:0 -10px 30px #1118271a;display:grid;gap:8px;left:0;padding:12px 16px calc(12px + env(safe-area-inset-bottom));position:fixed;right:0;z-index:20}.save-bar>span:first-child{font-weight:750}.save-bar__error{color:var(--color-danger);font-size:var(--font-size-sm)}.save-bar__actions{display:grid;gap:8px;grid-template-columns:1fr 1fr}.dialog-backdrop{align-items:center;background:#1118277a;display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:30}.dialog{background:var(--color-surface);border-radius:8px;box-shadow:0 24px 60px #11182733;max-width:420px;padding:20px;width:100%}.dialog h2{font-size:var(--font-size-xl);margin:0 0 8px}.dialog p{color:var(--color-text-muted);margin:0}.dialog__actions{display:grid;gap:8px;grid-template-columns:1fr 1fr;margin-top:20px}.badge{align-items:center;border-radius:999px;display:inline-flex;font-size:var(--font-size-sm);font-weight:700;gap:6px;padding:4px 10px}.badge:before{content:"";border-radius:999px;height:8px;width:8px}.badge--info{background:var(--color-info-bg);color:var(--color-info)}.badge--info:before{background:var(--color-info)}.badge--success{background:var(--color-success-bg);color:var(--color-success)}.badge--success:before{background:var(--color-success)}.badge--warning{background:var(--color-warning-bg);color:var(--color-warning)}.badge--warning:before{background:var(--color-warning)}.loader{animation:spin .9s linear infinite;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:999px;height:36px;width:36px}.sr-only{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.pwa-update{align-items:center;background:#fff;border:1px solid #cbd5e1;bottom:1rem;box-shadow:0 10px 30px #0f172a2e;display:flex;gap:1rem;justify-content:space-between;left:50%;max-width:min(42rem,calc(100vw - 2rem));padding:.875rem 1rem;position:fixed;transform:translate(-50%);width:-moz-max-content;width:max-content;z-index:1000}.pwa-update__actions{display:flex;flex:0 0 auto;gap:.5rem}.pwa-update__copy{display:grid;gap:.25rem}.pwa-update__copy small{color:var(--color-text-muted)}@media(max-width:36rem){.pwa-update{align-items:stretch;flex-direction:column;width:calc(100vw - 2rem)}.pwa-update__actions>.button{flex:1}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:.55}50%{opacity:1}}@media(min-width:768px){.center-page{padding:24px}.page-heading h1{font-size:var(--font-size-3xl)}.auth-panel{padding:32px}.portal-header{padding:10px 24px}.portal-main{padding:24px}.task-card,.page-heading--with-action,.resource-card{grid-template-columns:1fr auto}.attendance-list li{grid-template-columns:minmax(0,1fr) auto}.matrix-table-wrap{display:block;overflow-x:auto}.matrix-cards{display:none}.noten-table-wrap{display:block;overflow-x:auto}.noten-cards{display:none}.save-bar{gap:16px;grid-template-columns:minmax(180px,1fr) auto auto;padding-left:max(24px,calc((100vw - 1200px)/2 + 24px));padding-right:max(24px,calc((100vw - 1200px)/2 + 24px))}.save-bar__actions{display:flex}}@media(max-width:520px){.public-header{padding:10px 20px}.public-header__nav{gap:12px}.public-header__nav>a{display:none}.public-hero__content{padding:40px 20px}.public-hero h1{font-size:3.25rem}.public-hero__lead{font-size:1.35rem}.public-hero__body{font-size:var(--font-size-base)}.public-hero__facts{display:grid;gap:12px;margin-top:28px}.public-section,.public-principles{padding:64px 20px}.public-section__heading h2,.public-section__heading--inverse h2{font-size:1.75rem}.public-section__heading>p:last-child{font-size:var(--font-size-base)}.public-module-grid,.public-principle-grid{grid-template-columns:1fr}.public-module{padding:22px}.public-product-shot{margin-top:48px}.public-footer{align-items:flex-start;display:grid;gap:10px;padding:28px 20px}.public-footer p{text-align:left}.page-heading--actions{align-items:stretch;flex-direction:column}.page-heading--actions .button{width:100%}.portal-header__title{display:none}.portal-header{align-items:flex-start;flex-direction:column}.portal-header__user{justify-content:space-between;width:100%}.portal-header__identity{text-align:left}}
