/* Swibble Admin – Komponenten-Styles. Nur Tokens (var(--…)), keine Literale außer den Mascot-Farben. */
.sw-icon{flex:none;display:inline-block;vertical-align:middle}
.sw-swibbly-mark{display:inline-flex;align-items:center;justify-content:center;flex:none;border-radius:var(--radius-pill);background:#fff}
.sw-spinner{width:16px;height:16px;border-radius:var(--radius-pill);border:2px solid currentColor;border-right-color:transparent;opacity:.7;animation:sw-spin .8s linear infinite}
@keyframes sw-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.sw-spinner{animation:none}}
:where(.sw-btn,.sw-tab,.sw-toggle,.sw-check,.sw-page,.sw-nav,.sw-toast__action,.sw-toast__close,.sw-chip__remove,.sw-listhead__action):focus-visible{outline:none;box-shadow:var(--shadow-focus)}

.sw-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-8);font-family:var(--font-sans);font-weight:600;border:0;border-radius:var(--radius-lg);cursor:pointer;white-space:nowrap;transition:background-color .15s}
.sw-btn--md{padding:var(--space-10) var(--space-16);font-size:14px;line-height:22px}
.sw-btn--lg{padding:var(--space-12) var(--space-16);font-size:14px;line-height:22px}
.sw-btn--sm{padding:var(--space-6) var(--space-12);font-size:12px;line-height:18px}
.sw-btn--icon.sw-btn--md{padding:var(--space-10) var(--space-12)}
.sw-btn--primary{background:var(--brand-primary);color:var(--text-inverse)}
.sw-btn--primary:hover:not(:disabled){background:var(--brand-primary-hover)}
.sw-btn--secondary{background:var(--bg-surface);color:var(--text-primary);box-shadow:inset 0 0 0 1px var(--border-strong)}
.sw-btn--secondary:hover:not(:disabled){background:var(--bg-surface-2)}
.sw-btn--secondary:focus-visible{box-shadow:inset 0 0 0 1px var(--border-strong),var(--shadow-focus)}
.sw-btn--soft{background:var(--brand-soft);color:var(--brand-soft-text)}
.sw-btn--danger{background:var(--status-danger-soft);color:var(--status-danger)}
.sw-btn--dark{background:var(--bg-inverse);color:var(--text-on-inverse)}
.sw-btn--success{background:var(--status-success);color:var(--text-on-inverse)}
.sw-btn:disabled{opacity:.45;cursor:not-allowed}
.sw-btn.is-loading{opacity:1;cursor:progress}
.sw-btn--swibbly{padding-left:var(--space-10)}
.sw-btn--sm.sw-btn--swibbly{padding-left:var(--space-6)}

.sw-badge{display:inline-flex;align-items:center;gap:var(--space-6);padding:var(--space-3) var(--space-10);border-radius:var(--radius-pill);font:500 12px/18px var(--font-sans);white-space:nowrap}
.sw-badge__dot{width:6px;height:6px;border-radius:var(--radius-pill);background:currentColor}
.sw-badge--neutral{background:var(--bg-surface-2);color:var(--text-secondary)}
.sw-badge--brand{background:var(--brand-soft);color:var(--brand-soft-text)}
.sw-badge--success{background:var(--status-success-soft);color:var(--status-success)}
.sw-badge--warning{background:var(--status-warning-soft);color:var(--status-warning)}
.sw-badge--danger{background:var(--status-danger-soft);color:var(--status-danger)}
.sw-badge--info{background:var(--status-info-soft);color:var(--status-info)}
.sw-badge--dark{background:var(--bg-inverse);color:var(--text-on-inverse)}

.sw-toggle-wrap,.sw-check-wrap{display:inline-flex;align-items:center;gap:var(--space-10);font:400 14px/22px var(--font-sans);color:var(--text-primary)}
.sw-toggle-wrap.is-disabled,.sw-check-wrap.is-disabled{opacity:.45}
.sw-toggle{width:40px;height:22px;padding:var(--space-3);border:0;border-radius:var(--radius-pill);background:var(--border-strong);cursor:pointer;display:inline-flex;transition:background-color .15s}
.sw-toggle__knob{width:16px;height:16px;border-radius:var(--radius-pill);background:var(--text-inverse);transition:transform .15s}
.sw-toggle.is-on{background:var(--brand-primary)}
.sw-toggle.is-on .sw-toggle__knob{transform:translateX(18px)}
.sw-check{width:20px;height:20px;padding:0;border:0;border-radius:var(--radius-sm);background:var(--bg-surface);box-shadow:inset 0 0 0 1.5px var(--border-strong);color:var(--text-inverse);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.sw-check.is-on{background:var(--brand-primary);box-shadow:none}
.sw-check__dash{width:10px;height:2px;border-radius:1px;background:var(--text-inverse)}

.sw-tabs{display:inline-flex;gap:var(--space-4);padding:var(--space-4);border-radius:var(--radius-xl);background:var(--bg-surface-2)}
.sw-tab{display:inline-flex;align-items:center;gap:var(--space-6);padding:var(--space-8) var(--space-14);border:0;border-radius:var(--radius-lg);background:transparent;color:var(--text-secondary);font:600 12px/18px var(--font-sans);cursor:pointer}
.sw-tab.is-active{background:var(--bg-surface);color:var(--text-primary);box-shadow:var(--shadow-tab)}
.sw-tab__count{padding:1px var(--space-6);border-radius:var(--radius-pill);background:var(--bg-surface);font:500 10px/14px var(--font-sans);color:var(--text-secondary)}
.sw-tab.is-active .sw-tab__count{background:var(--brand-soft);color:var(--brand-soft-text)}

.sw-chip{display:inline-flex;align-items:center;gap:var(--space-6);padding:var(--space-6) var(--space-12);border-radius:var(--radius-pill);background:var(--bg-surface);box-shadow:inset 0 0 0 1px var(--border-default);color:var(--text-secondary);font:500 12px/18px var(--font-sans)}
.sw-chip.is-active{background:var(--brand-soft);color:var(--brand-soft-text);box-shadow:none}
.sw-chip__remove{display:inline-flex;padding:0;border:0;background:none;color:inherit;cursor:pointer;border-radius:var(--radius-pill)}

.sw-avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-pill);font-family:var(--font-sans);flex:none}
.sw-avatar--sm{width:22px;height:22px;font-size:10px;font-weight:500}
.sw-avatar--md{width:32px;height:32px;font-size:12px;font-weight:600}
.sw-avatar--lg{width:40px;height:40px;font-size:14px;font-weight:600}
.sw-avatar--brand{background:var(--brand-soft);color:var(--brand-soft-text)}
.sw-avatar--neutral{background:var(--bg-surface-2);color:var(--text-secondary)}
.sw-avatar--dark{background:var(--bg-inverse);color:var(--text-on-inverse)}
.sw-avatar--sidebar{background:var(--bg-sidebar-hover);color:var(--text-on-sidebar)}

.sw-input{display:flex;flex-direction:column;gap:var(--space-6);font-family:var(--font-sans);min-width:0}
.sw-input__label{font:500 12px/18px var(--font-sans);color:var(--text-secondary)}
.sw-input__field{display:flex;align-items:flex-start;gap:var(--space-8);padding:var(--space-10) var(--space-14);border-radius:var(--radius-lg);background:var(--bg-surface);box-shadow:inset 0 0 0 1px var(--border-strong);color:var(--text-tertiary)}
.sw-input__field:focus-within{box-shadow:inset 0 0 0 1.5px var(--brand-primary),var(--shadow-focus-input)}
.sw-input__field > .sw-icon{margin-top:3px}
.sw-input__control{flex:1;min-width:0;border:0;outline:0;background:transparent;padding:0;font:400 14px/22px var(--font-sans);color:var(--text-primary)}
.sw-input__control::placeholder{color:var(--text-tertiary)}
.sw-input__control--area{resize:none;overflow-y:auto;field-sizing:content;min-height:44px}
.sw-input__help{display:flex;gap:var(--space-8);font:400 12px/18px var(--font-sans);color:var(--text-tertiary)}
.sw-input__help > span:first-child{flex:1}
.sw-input__count{font-variant-numeric:tabular-nums;white-space:nowrap}
.sw-input.is-error .sw-input__field{box-shadow:inset 0 0 0 1.5px var(--status-danger)}
.sw-input.is-error .sw-input__help{color:var(--status-danger)}
.sw-input.is-disabled{opacity:.5}

.sw-kpi{display:flex;flex-direction:column;gap:var(--space-6);padding:var(--space-18);border-radius:var(--radius-2xl);background:var(--bg-surface);box-shadow:inset 0 0 0 1px var(--border-default);font-family:var(--font-sans);min-width:0}
.sw-kpi__title{font:400 12px/18px var(--font-sans);color:var(--text-secondary)}
.sw-kpi__value{font:600 30px/36px var(--font-sans);letter-spacing:-.5px;font-variant-numeric:tabular-nums;color:var(--text-primary)}
.sw-kpi__sub{font:400 12px/18px var(--font-sans);color:var(--text-tertiary)}
.sw-kpi--brand .sw-kpi__value{color:var(--text-brand)}
.sw-kpi--success .sw-kpi__value{color:var(--status-success)}
.sw-kpi--warning .sw-kpi__value{color:var(--status-warning)}
.sw-kpi--danger .sw-kpi__value{color:var(--status-danger)}

.sw-stepper{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-8);margin:0;padding:0;list-style:none;font-family:var(--font-sans)}
.sw-step{display:inline-flex;align-items:center;gap:var(--space-8)}
.sw-step + .sw-step::before{content:"";width:24px;height:2px;border-radius:1px;background:var(--border-default)}
.sw-step--done + .sw-step::before,.sw-step--active::before{background:var(--brand-primary)}
.sw-step__dot{width:24px;height:24px;border-radius:var(--radius-pill);display:inline-flex;align-items:center;justify-content:center;font:500 10px/14px var(--font-sans)}
.sw-step--done .sw-step__dot,.sw-step--active .sw-step__dot{background:var(--brand-primary);color:var(--text-inverse)}
.sw-step--active .sw-step__dot{box-shadow:0 0 0 4px var(--brand-soft)}
.sw-step--open .sw-step__dot{background:var(--bg-surface);box-shadow:inset 0 0 0 1.5px var(--border-strong);color:var(--text-secondary)}
.sw-step__label{font:600 12px/18px var(--font-sans);color:var(--text-primary)}
.sw-step--open .sw-step__label{color:var(--text-tertiary)}

.sw-nav{display:flex;align-items:center;gap:var(--space-12);padding:9px var(--space-12);border-radius:var(--radius-lg);color:var(--text-on-sidebar);font:500 12px/18px var(--font-sans);text-decoration:none}
.sw-nav:hover{background:var(--bg-sidebar-hover)}
.sw-nav.is-active{background:var(--brand-primary);color:var(--text-inverse);font-weight:600}
.sw-nav__label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sw-nav__count{padding:1px 7px;border-radius:var(--radius-pill);background:var(--bg-sidebar-hover);font:500 10px/14px var(--font-sans);font-variant-numeric:tabular-nums}
.sw-nav.is-active .sw-nav__count{background:var(--text-inverse);color:var(--brand-primary)}

.sw-listcard{display:flex;align-items:center;gap:var(--space-12);padding:var(--space-14) var(--space-16);border-radius:var(--radius-2xl);background:var(--bg-surface);box-shadow:inset 0 0 0 1px var(--border-default);font-family:var(--font-sans);min-width:0}
.sw-listcard.is-dense{padding:var(--space-10) var(--space-12)}
.sw-listcard__thumb{width:56px;height:56px;flex:none;border-radius:var(--radius-lg);background:var(--bg-surface-2);color:var(--text-tertiary);display:flex;align-items:center;justify-content:center}
.sw-listcard.is-dense .sw-listcard__thumb{width:40px;height:40px}
.sw-listcard__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-4)}
.sw-listcard__top{display:flex;align-items:center;gap:var(--space-8);min-width:0}
.sw-listcard__customer{font:400 12px/18px var(--font-sans);color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sw-listcard__title{font:600 14px/22px var(--font-sans);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sw-listcard__meta{font:400 12px/18px var(--font-sans);color:var(--text-tertiary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sw-listcard__chev{color:var(--text-tertiary)}

.sw-listhead{display:flex;align-items:center;gap:var(--space-10);font-family:var(--font-sans);min-width:0}
.sw-listhead__title{margin:0;font:600 16px/24px var(--font-sans);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sw-listhead__count{padding:2px var(--space-8);border-radius:var(--radius-pill);background:var(--bg-surface-2);font:500 10px/14px var(--font-sans);color:var(--text-secondary);font-variant-numeric:tabular-nums}
.sw-listhead__spacer{flex:1}
.sw-listhead__action{display:inline-flex;align-items:center;gap:var(--space-4);font:600 12px/18px var(--font-sans);color:var(--text-brand);text-decoration:none;white-space:nowrap;border-radius:var(--radius-sm)}

.sw-pager{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-12);font:400 12px/18px var(--font-sans);color:var(--text-secondary)}
.sw-pager__range{font-variant-numeric:tabular-nums}
.sw-pager__spacer{flex:1}
.sw-pager__pages{display:flex;align-items:center;gap:var(--space-4)}
.sw-pager__gap{padding:0 var(--space-4);color:var(--text-tertiary)}
.sw-page{min-width:32px;height:32px;padding:0 var(--space-8);border:0;border-radius:var(--radius-md);background:var(--bg-surface);box-shadow:inset 0 0 0 1px var(--border-default);color:var(--text-primary);font:500 12px/18px var(--font-sans);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-variant-numeric:tabular-nums}
.sw-page.is-active{background:var(--brand-primary);color:var(--text-inverse);box-shadow:none}
.sw-page:disabled{opacity:.45;cursor:not-allowed}
.sw-pager__per select{height:32px;padding:0 var(--space-8) 0 var(--space-12);border:0;border-radius:var(--radius-md);background:var(--bg-surface);box-shadow:inset 0 0 0 1px var(--border-default);color:var(--text-primary);font:500 12px/18px var(--font-sans)}
.sw-pager--more{flex-direction:column;align-items:center;gap:var(--space-8)}
.sw-pager--more .sw-pager__range{font:500 10px/14px var(--font-sans);color:var(--text-tertiary)}
.sw-pager--compact{justify-content:space-between}

.sw-toast{width:var(--toast-width);max-width:100%;border-radius:var(--radius-2xl);background:var(--bg-inverse);color:var(--text-on-inverse);box-shadow:var(--shadow-toast);overflow:hidden;font-family:var(--font-sans)}
.sw-toast__body{display:flex;align-items:flex-start;gap:var(--space-12);padding:var(--space-12) var(--space-12) var(--space-12) var(--space-14)}
.sw-toast__icon{width:28px;height:28px;flex:none;border-radius:var(--radius-pill);display:flex;align-items:center;justify-content:center;color:var(--text-inverse)}
.sw-toast--info .sw-toast__icon{background:var(--status-info)}
.sw-toast--success .sw-toast__icon{background:var(--status-success)}
.sw-toast--warning .sw-toast__icon{background:var(--status-warning)}
.sw-toast--danger .sw-toast__icon{background:var(--status-danger)}
.sw-toast__text{flex:1;min-width:0}
.sw-toast__title{font:600 12px/18px var(--font-sans)}
.sw-toast__msg{font:400 12px/18px var(--font-sans);opacity:.85}
.sw-toast__time{margin-top:var(--space-4);font:500 10px/14px var(--font-sans);opacity:.7}
.sw-toast__action{display:inline-flex;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-8);border:0;border-radius:var(--radius-md);background:transparent;color:inherit;font:600 12px/18px var(--font-sans);cursor:pointer;white-space:nowrap}
.sw-toast__action:hover{background:rgba(255,255,255,.1)}
.sw-toast__close{display:inline-flex;padding:var(--space-4);border:0;border-radius:var(--radius-md);background:transparent;color:inherit;opacity:.7;cursor:pointer}
.sw-toast__track{height:3px;background:rgba(127,127,127,.3)}
.sw-toast__bar{height:3px}
.sw-toast--info .sw-toast__bar{background:var(--status-info)}
.sw-toast--success .sw-toast__bar{background:var(--status-success)}
.sw-toast--warning .sw-toast__bar{background:var(--status-warning)}
.sw-toast--danger .sw-toast__bar{background:var(--status-danger)}

.sw-kicker{font:600 11px/16px var(--font-sans);letter-spacing:.8px;text-transform:uppercase;color:var(--text-secondary)}
.sw-dialog{width:var(--dialog-width);max-width:100%;max-height:min(90vh,1100px);display:flex;flex-direction:column;border-radius:var(--radius-dialog);background:var(--bg-surface);box-shadow:var(--shadow-dialog);overflow:hidden;font-family:var(--font-sans);color:var(--text-primary)}
.sw-dialog__head{display:flex;align-items:center;gap:var(--space-12);padding:var(--space-18) var(--space-20)}
.sw-dialog__head--swibbly{background:var(--brand-soft)}
.sw-dialog__badge{width:40px;height:40px;flex:none;border-radius:var(--radius-xl);background:var(--brand-primary);color:var(--text-inverse);display:flex;align-items:center;justify-content:center}
.sw-dialog__titles{flex:1;min-width:0}
.sw-dialog__title{margin:0;font:600 16px/24px var(--font-sans)}
.sw-dialog__sub{margin:0;font:400 12px/18px var(--font-sans);color:var(--brand-soft-text)}
.sw-dialog__body{display:flex;flex-direction:column;gap:var(--space-16);padding:var(--space-20);overflow-y:auto}
.sw-dialog__foot{display:flex;align-items:center;gap:var(--space-10);padding:var(--space-16) var(--space-20);box-shadow:inset 0 1px 0 var(--border-default)}
.sw-dialog__log{flex:1;display:inline-flex;align-items:center;gap:var(--space-6);font:400 12px/18px var(--font-sans);color:var(--text-tertiary)}
.sw-task{display:flex;flex-direction:column;gap:var(--space-6)}
.sw-task__name{font:500 14px/22px var(--font-sans)}
.sw-task__ctx{display:flex;flex-wrap:wrap;gap:var(--space-6)}
.sw-plan{padding:var(--space-14);border-radius:var(--radius-xl);background:var(--bg-surface-2)}
.sw-plan ul{margin:var(--space-8) 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--space-8)}
.sw-plan li{display:flex;gap:var(--space-8);font:400 12px/18px var(--font-sans);color:var(--text-primary)}
.sw-plan__ok,.sw-plan__x{width:18px;height:18px;flex:none;border-radius:var(--radius-pill);display:flex;align-items:center;justify-content:center}
.sw-plan__ok{background:var(--status-success-soft);color:var(--status-success)}
.sw-plan__x{box-shadow:inset 0 0 0 1px var(--border-strong);color:var(--text-tertiary)}
.sw-plan__no{color:var(--text-secondary)!important}
.sw-mail{display:flex;flex-direction:column;gap:var(--space-10);padding:var(--space-12) var(--space-14) var(--space-14);border-radius:var(--radius-xl);background:var(--bg-surface-2);box-shadow:inset 0 0 0 1px var(--border-default)}
.sw-mail__head{display:flex;align-items:center;gap:var(--space-8);color:var(--text-brand)}
.sw-mail__kicker{flex:1;font:600 11px/16px var(--font-sans);letter-spacing:.8px;text-transform:uppercase;color:var(--text-secondary)}
.sw-mail__paper{display:flex;flex-direction:column;gap:var(--space-8);padding:var(--space-12) var(--space-14);border-radius:var(--radius-lg);background:var(--bg-surface);box-shadow:inset 0 0 0 1px var(--border-default)}
.sw-mail__meta{display:grid;grid-template-columns:52px 1fr;gap:3px var(--space-8);margin:0;font:400 12px/18px var(--font-sans)}
.sw-mail__meta dt{color:var(--text-tertiary)}
.sw-mail__meta dd{margin:0;color:var(--text-primary);overflow-wrap:anywhere}
.sw-mail__rule{width:100%;height:1px;margin:0;border:0;background:var(--border-default)}
.sw-mail__lead,.sw-mail__p,.sw-mail__sig{margin:0;font:400 12px/18px var(--font-sans)}
.sw-mail__lead{color:var(--text-primary)}
.sw-mail__p{color:var(--text-secondary)}
.sw-mail__sig{color:var(--text-tertiary);white-space:pre-line}
.sw-mail__foot{display:flex;align-items:center;gap:var(--space-8);font:500 10px/14px var(--font-sans);color:var(--text-secondary)}
.sw-mail__foot > span{flex:1}

/* === Ergänzungen Redesign 2026 – nicht Teil von bundle.css ===================================
   Nur Tokens. Jede Klasse gehört zu genau einer Komponente in public/ui/<name>.js (siehe README.md). */

/* hidden-Attribut gilt auch für Komponenten, deren display sonst flex/grid ist */
:where([class^="sw-"],[class*=" sw-"])[hidden]{display:none!important}

/* Hilfsklasse: nur für Screenreader sichtbar */
.sw-visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* SwibblyMark – Größen statt Inline-Style */
.sw-swibbly-mark{width:18px;height:18px}
.sw-swibbly-mark--24{width:24px;height:24px}
.sw-swibbly-mark--32{width:32px;height:32px}
.sw-swibbly-mark--40{width:40px;height:40px}

/* Button/KPI als Link */
a.sw-btn,a.sw-kpi{text-decoration:none}
a.sw-kpi{color:inherit;transition:box-shadow .15s}
a.sw-kpi:hover{box-shadow:inset 0 0 0 1px var(--border-strong)}
a.sw-kpi:focus-visible{outline:none;box-shadow:inset 0 0 0 1px var(--border-strong),var(--shadow-focus)}
.sw-btn--soft:hover:not(:disabled){background:var(--brand-soft);box-shadow:inset 0 0 0 1px var(--brand-soft-text)}
.sw-btn--danger:hover:not(:disabled){box-shadow:inset 0 0 0 1px var(--status-danger)}

/* ListCard – ganze Karte klickbar über den Titel-Link */
.sw-listcard.is-link{position:relative}
.sw-listcard__link{text-decoration:none}
.sw-listcard__link::after{content:"";position:absolute;inset:0;border-radius:var(--radius-2xl)}
.sw-listcard__link:focus-visible{outline:none}
.sw-listcard.is-link:has(.sw-listcard__link:focus-visible){box-shadow:inset 0 0 0 1px var(--border-default),var(--shadow-focus)}
.sw-listcard.is-link:hover{box-shadow:inset 0 0 0 1px var(--border-strong)}
.sw-listcard .sw-btn,.sw-listcard .sw-check-wrap{position:relative;z-index:1}
.sw-listcard__thumb{overflow:hidden}
.sw-listcard__thumb > img{width:100%;height:100%;object-fit:cover}
.sw-listcard{flex-wrap:wrap}
.sw-listcard__body{flex:1 1 160px}
.sw-listcard__extra{flex:1 0 100%;min-width:0}
@media (max-width:359px){.sw-listcard__extra .sw-flow.is-connected .sw-flow__step{width:22px;height:22px}}

/* Pagination bricht auf schmalen Flächen um */
.sw-pager__pages{flex-wrap:wrap;min-width:0}

/* Input – das ganze Feld ist Trefferfläche: vertikales Polster liegt im Steuerelement statt im Rahmen */
.sw-input__field{padding-top:0;padding-bottom:0;align-items:center}
.sw-input__field:has(textarea){align-items:flex-start}
.sw-input__field > .sw-icon{margin-top:0}
.sw-input__field:has(textarea) > .sw-icon{margin-top:calc(var(--space-10) + var(--space-3))}
.sw-input__control{box-sizing:border-box;padding-top:var(--space-10);padding-bottom:var(--space-10)}
/* Textfeld wächst bis 5 Zeilen (Zeilenhöhe 22px aus --font-body), danach Scroll */
.sw-input__control--area{max-height:calc(5 * 22px + 2 * var(--space-10))}

/* Tabs scrollen auf schmalen Flächen in sich statt die Seite zu verbreitern */
.sw-tabs{max-width:100%;overflow-x:auto;scrollbar-width:none}
.sw-tabs::-webkit-scrollbar{display:none}
.sw-tab{flex:none}

/* Stepper bricht um, ohne die Fläche zu verbreitern */
.sw-stepper{min-width:0}

/* E-Mail-Kopf bricht mit langen Vorlagennamen um */
.sw-mail__head{flex-wrap:wrap}

/* Toast-Region und Zeitleiste (Dauer über data-duration, pausiert bei Hover/Fokus) */
.sw-toast-region{position:fixed;z-index:60;right:var(--space-24);bottom:var(--space-24);display:flex;flex-direction:column;gap:var(--space-10);width:var(--toast-width);max-width:calc(100vw - 2 * var(--space-16))}
.sw-toast-region:empty{display:none}
.sw-toast__bar{width:100%;animation:sw-toast-timeline 6s linear forwards}
.sw-toast[data-duration="7"] .sw-toast__bar{animation-duration:7s}
.sw-toast[data-duration="8"] .sw-toast__bar{animation-duration:8s}
.sw-toast.is-paused .sw-toast__bar{animation-play-state:paused}
@keyframes sw-toast-timeline{from{width:100%}to{width:0}}
@media (prefers-reduced-motion:reduce){.sw-toast__bar{animation:none}}
@media (max-width:767px){.sw-toast-region{left:var(--space-16);right:var(--space-16);bottom:calc(var(--mobile-tabbar) + var(--space-12));width:auto}}

/* Dialog / Sheet – Overlay 60 % + 8px Blur */
.sw-overlay{position:fixed;z-index:70;inset:0 0 var(--ios-tastatur,0px) 0;display:flex;overflow-y:auto;overscroll-behavior:contain;align-items:center;justify-content:center;padding:var(--space-16);background:color-mix(in srgb,var(--bg-overlay) 60%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.sw-dialog__head{position:relative}
.sw-dialog__text{margin:0;font:var(--font-body);color:var(--text-secondary)}
.sw-dialog__form{display:grid;gap:var(--space-12)}
.sw-dialog__spacer{flex:1}
.sw-dialog__notice{display:flex;align-items:flex-start;gap:var(--space-8);margin:0;padding:var(--space-10) var(--space-12);border-radius:var(--radius-xl);background:var(--status-warning-soft);color:var(--status-warning);font:var(--font-small-medium)}
.sw-dialog__notice > .sw-icon{margin-top:var(--space-3)}
.sw-dialog__notice > span{color:var(--text-primary)}
.sw-dialog__grabber{display:block;width:36px;height:5px;margin:var(--space-8) auto 0;border-radius:var(--radius-pill);background:var(--border-strong)}
.sw-dialog--sheet{width:100%;max-width:none;border-radius:var(--radius-dialog) var(--radius-dialog) 0 0;padding-bottom:env(safe-area-inset-bottom,0px)}
.sw-overlay:has(.sw-dialog--sheet){align-items:flex-end;padding:0}
@media (max-width:767px){
  .sw-overlay{align-items:flex-end;padding:0}
  .sw-overlay > .sw-dialog{width:100%;max-height:min(92vh,calc(var(--vv-hoehe,100vh) - 12px));border-radius:var(--radius-dialog) var(--radius-dialog) 0 0;padding-bottom:env(safe-area-inset-bottom,0px)}
  .sw-dialog__foot{flex-wrap:wrap}
  .sw-dialog__foot .sw-dialog__log{flex-basis:100%}
}

/* E-Mail-Vorschau – CTA-Zeile */
.sw-mail__cta{display:flex}

/* Leer-, Fehler- und Offline-Zustand */
.sw-empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-8);padding:var(--space-32) var(--space-20);border-radius:var(--radius-2xl);background:var(--bg-surface);box-shadow:inset 0 0 0 1px var(--border-default);text-align:center;font-family:var(--font-sans)}
.sw-empty.is-compact{padding:var(--space-20) var(--space-16)}
.sw-empty__icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-pill);background:var(--bg-surface-2);color:var(--text-secondary)}
.sw-empty--error .sw-empty__icon{background:var(--status-danger-soft);color:var(--status-danger)}
.sw-empty--offline .sw-empty__icon{background:var(--status-warning-soft);color:var(--status-warning)}
.sw-empty__title{margin:var(--space-4) 0 0;font:var(--font-h3);color:var(--text-primary)}
.sw-empty__text{max-width:46ch;margin:0;font:var(--font-body);color:var(--text-secondary)}
.sw-empty__code{margin:0;font:var(--font-small);color:var(--text-tertiary)}
.sw-empty__code > span{font-variant-numeric:tabular-nums;color:var(--text-secondary)}
.sw-empty > .sw-btn{margin-top:var(--space-8)}

/* Skeleton – stabile Höhen, Puls nur ohne reduzierte Bewegung */
.sw-skeleton{display:flex;flex-direction:column;gap:var(--space-12)}
.sw-skeleton--kpi,.sw-skeleton--card{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-24)}
.sw-skeleton__row{display:flex;align-items:center;gap:var(--space-12);padding:var(--space-14) var(--space-16);border-radius:var(--radius-2xl);background:var(--bg-surface);box-shadow:inset 0 0 0 1px var(--border-default)}
.sw-skeleton__card{display:flex;flex-direction:column;gap:var(--space-10);padding:var(--space-18);border-radius:var(--radius-2xl);background:var(--bg-surface);box-shadow:inset 0 0 0 1px var(--border-default)}
.sw-skeleton__lines{flex:1;display:flex;flex-direction:column;gap:var(--space-8)}
.sw-skeleton__line,.sw-skeleton__block{display:block;border-radius:var(--radius-md);background:var(--bg-surface-2);animation:sw-skeleton-pulse 1.4s ease-in-out infinite}
.sw-skeleton__line{height:12px}
.sw-skeleton__line--short{width:40%}
.sw-skeleton__block--thumb{width:56px;height:56px;flex:none;border-radius:var(--radius-lg)}
.sw-skeleton__block--value{width:60%;height:36px}
@keyframes sw-skeleton-pulse{50%{opacity:.55}}
@media (prefers-reduced-motion:reduce){.sw-skeleton__line,.sw-skeleton__block{animation:none}}

/* Banner – Offline, Hinweise, Fehler */
.sw-banner{display:flex;align-items:center;gap:var(--space-12);padding:var(--space-12) var(--space-16);border-radius:var(--radius-2xl);font-family:var(--font-sans)}
.sw-banner__icon{display:flex;flex:none}
.sw-banner__text{flex:1;min-width:0;display:flex;flex-wrap:wrap;gap:var(--space-4) var(--space-8);font:var(--font-small);color:var(--text-primary)}
.sw-banner__text > strong{font:var(--font-small-semibold)}
.sw-banner--info{background:var(--status-info-soft);color:var(--status-info)}
.sw-banner--success{background:var(--status-success-soft);color:var(--status-success)}
.sw-banner--warning{background:var(--status-warning-soft);color:var(--status-warning)}
.sw-banner--danger{background:var(--status-danger-soft);color:var(--status-danger)}

/* Touch-Ziele ≥ 44px auf Touch-Geräten und schmalen Viewports (optische Größe bleibt, Trefferfläche wächst) */
@media (pointer:coarse),(max-width:834px){
  .sw-btn,.sw-page,.sw-tab,.sw-nav,.sw-toast__action,.sw-toast__close,.sw-pager__per select{min-height:44px}
  .sw-btn--icon,.sw-page,.sw-toast__close{min-width:44px}
  .sw-chip{min-height:44px}
  .sw-chip__remove{min-width:44px;min-height:44px;justify-content:center;align-items:center;margin:calc(-1 * var(--space-12)) calc(-1 * var(--space-12)) calc(-1 * var(--space-12)) 0}
  .sw-toggle-wrap,.sw-check-wrap{min-height:44px}
  .sw-listhead__action{min-height:44px}
  .sw-input__control:not(textarea){min-height:44px}
  .sw-select__control{min-height:44px}
  .sw-table__sort{min-height:44px}
}

/* PageHead – Kicker, Seitentitel, Untertitel, Aktionen (Figma: „DASHBOARD / Guten Morgen, Fynn.“) */
.sw-pagehead{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:var(--space-16);margin:0 0 var(--space-24);font-family:var(--font-sans)}
.sw-pagehead__text{display:flex;flex-direction:column;gap:var(--space-4);min-width:0}
.sw-pagehead__title{margin:0;font:var(--font-h1);letter-spacing:var(--tracking-h1);color:var(--text-primary);overflow-wrap:break-word}
.sw-pagehead__sub{margin:0;font:var(--font-body);color:var(--text-secondary)}
.sw-pagehead__sub:empty{display:none}
.sw-pagehead__actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-10)}

/* Card – Inhaltsbereich mit Kopf (Titel, Untertitel, Aktion) */
.sw-card{display:flex;flex-direction:column;gap:var(--space-16);min-width:0;padding:var(--space-20);border-radius:var(--radius-2xl);background:var(--bg-surface);box-shadow:inset 0 0 0 1px var(--border-default);font-family:var(--font-sans);color:var(--text-primary)}
.sw-card.is-flush{padding:0;gap:0}
.sw-card.is-flush > .sw-card__head{padding:var(--space-20) var(--space-20) var(--space-16)}
.sw-card__head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-12);min-width:0}
.sw-card__titles{display:flex;flex-direction:column;gap:var(--space-4);min-width:0}
.sw-card__title{margin:0;font:var(--font-h3);color:var(--text-primary)}
.sw-card__sub{margin:0;font:var(--font-small);color:var(--text-secondary)}
.sw-card__meta{flex:none;font:var(--font-small);color:var(--text-secondary)}
.sw-card__body{display:flex;flex-direction:column;gap:var(--space-12);min-width:0}

/* Select – natives Auswahlfeld im Input-Stil */
.sw-select{display:flex;flex-direction:column;gap:var(--space-6);min-width:0;font-family:var(--font-sans)}
.sw-select.is-disabled{opacity:.5}
.sw-select__field{position:relative;display:flex;align-items:center;border-radius:var(--radius-lg);background:var(--bg-surface);box-shadow:inset 0 0 0 1px var(--border-strong);color:var(--text-secondary)}
.sw-select__field:focus-within{box-shadow:inset 0 0 0 1.5px var(--brand-primary),var(--shadow-focus-input)}
.sw-select__control{flex:1;min-width:0;box-sizing:border-box;padding:var(--space-10) calc(var(--space-14) + var(--space-24)) var(--space-10) var(--space-14);border:0;outline:0;background:transparent;font:var(--font-body);color:var(--text-primary);-webkit-appearance:none;appearance:none;cursor:pointer}
.sw-select__chevron{position:absolute;right:var(--space-14);pointer-events:none}

/* Table – Datentabelle */
.sw-table-wrap{position:relative;min-width:0;overflow-x:auto;border-radius:var(--radius-2xl);background:var(--bg-surface);box-shadow:inset 0 0 0 1px var(--border-default)}
.sw-table{width:100%;border-collapse:collapse;font-family:var(--font-sans)}
.sw-table__th{padding:var(--space-12) var(--space-16);background:var(--bg-surface-2);font:var(--font-caption);letter-spacing:var(--tracking-caption);text-transform:uppercase;text-align:start;color:var(--text-secondary);white-space:nowrap}
.sw-table__th:first-child{border-top-left-radius:var(--radius-2xl)}
.sw-table__th:last-child{border-top-right-radius:var(--radius-2xl)}
.sw-table__th.is-end,.sw-table__td.is-end{text-align:end}
.sw-table__sort{display:inline-flex;align-items:center;gap:var(--space-4);padding:0;border:0;background:none;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;cursor:pointer;border-radius:var(--radius-sm)}
.sw-table__sort:focus-visible{outline:none;box-shadow:var(--shadow-focus)}
.sw-table__sort-icon{opacity:.5;transition:transform .15s}
.sw-table__sort-icon.is-sorted{opacity:1;color:var(--text-brand)}
.sw-table__sort-icon.is-asc{transform:rotate(180deg)}
.sw-table__td{padding:var(--space-14) var(--space-16);box-shadow:inset 0 1px 0 var(--border-default);font:var(--font-small);color:var(--text-primary);vertical-align:middle}
.sw-table__row.is-link{position:relative;cursor:pointer}
.sw-table__row.is-link:hover{background:var(--bg-surface-2)}
.sw-table__link{color:inherit;text-decoration:none}
.sw-table__link:focus-visible{outline:none}
.sw-table__row.is-link:has(.sw-table__link:focus-visible){box-shadow:inset 0 0 0 3px color-mix(in srgb,var(--brand-primary) 28%,transparent)}
.sw-table__row .sw-btn,.sw-table__row .sw-check-wrap{position:relative;z-index:1}
.sw-table__chev{width:var(--space-32);color:var(--text-tertiary)}
.sw-table__rowhead{text-align:start}

/* WorkflowProgress – neun Stufen als Icon-Reihe */
.sw-flow{display:flex;flex-direction:column;gap:var(--space-4);min-width:0;font-family:var(--font-sans)}
.sw-flow__steps{display:flex;align-items:center;gap:var(--space-3);margin:0;padding:0;list-style:none}
.sw-flow__step{position:relative;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;flex:none;border-radius:var(--radius-pill)}
.sw-flow__step--done{background:var(--brand-primary);color:var(--text-inverse)}
.sw-flow__step--active{background:var(--brand-soft);color:var(--brand-soft-text);box-shadow:inset 0 0 0 1.5px var(--brand-primary)}
.sw-flow__step--open{background:var(--bg-surface-2);color:var(--text-tertiary);box-shadow:inset 0 0 0 1px var(--border-default)}
.sw-flow__summary{font:var(--font-tiny);color:var(--text-secondary);white-space:nowrap}
.sw-flow.is-connected .sw-flow__steps{justify-content:space-between;gap:0}
.sw-flow.is-connected .sw-flow__step{width:26px;height:26px}
.sw-flow.is-connected .sw-flow__step + .sw-flow__step{position:relative;margin-left:var(--space-4)}
.sw-flow.is-connected .sw-flow__summary{display:none}

/* Progress – natives <progress> im Token-Look */
.sw-progress{display:block;width:100%;height:6px;border:0;border-radius:var(--radius-pill);background:var(--bg-surface-2);overflow:hidden;-webkit-appearance:none;appearance:none;color:var(--brand-primary)}
.sw-progress::-webkit-progress-bar{background:var(--bg-surface-2);border-radius:var(--radius-pill)}
.sw-progress::-webkit-progress-value{background:currentColor;border-radius:var(--radius-pill)}
.sw-progress::-moz-progress-bar{background:currentColor;border-radius:var(--radius-pill)}
.sw-progress--success{color:var(--status-success)}
.sw-progress--warning{color:var(--status-warning)}
.sw-progress--danger{color:var(--status-danger)}

/* Chip – Zähler und Link-Variante */
a.sw-chip{text-decoration:none}
button.sw-chip{border:0;margin:0;cursor:pointer}
button.sw-chip:hover:not(.is-active){box-shadow:inset 0 0 0 1px var(--border-strong)}
@media (pointer:coarse),(max-width:834px){.sw-tab{min-width:44px}}
a.sw-chip:hover:not(.is-active){box-shadow:inset 0 0 0 1px var(--border-strong)}
a.sw-chip:focus-visible,button.sw-chip:focus-visible{outline:none;box-shadow:var(--shadow-focus)}
.sw-chip__count{font-variant-numeric:tabular-nums;font-weight:600}

/* MediaCard – Kachel mit Hochformat-Cover (Figma Kundenfreigaben 16:1106) */
.sw-mediacard{position:relative;display:flex;flex-direction:column;gap:var(--space-12);min-width:0;padding:var(--space-12);border-radius:var(--radius-2xl);background:var(--bg-surface);box-shadow:inset 0 0 0 1px var(--border-default);font-family:var(--font-sans)}
.sw-mediacard.is-selected{box-shadow:inset 0 0 0 2px var(--brand-primary)}
.sw-mediacard.is-link:hover{box-shadow:inset 0 0 0 1px var(--border-strong)}
.sw-mediacard__cover{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:4/5;overflow:hidden;border-radius:var(--radius-lg);background:var(--bg-inverse)}
.sw-mediacard__cover > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.sw-mediacard__play{position:relative;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--bg-surface) 16%,transparent);color:var(--text-on-inverse)}
.sw-mediacard__body{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-6);min-width:0}
.sw-mediacard__top{display:flex;align-items:center;gap:var(--space-6);min-width:0;max-width:100%;font:var(--font-small);color:var(--text-secondary)}
.sw-mediacard__customer{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sw-mediacard__title{margin:0;font:var(--font-body-semibold);color:var(--text-primary);text-decoration:none;overflow-wrap:break-word}
.sw-mediacard__link::after{content:"";position:absolute;inset:0;border-radius:var(--radius-2xl)}
.sw-mediacard__link:focus-visible{outline:none}
.sw-mediacard.is-link:has(.sw-mediacard__link:focus-visible){box-shadow:inset 0 0 0 1px var(--border-default),var(--shadow-focus)}
.sw-mediacard__meta{margin:0;font:var(--font-small);color:var(--text-secondary);overflow-wrap:break-word}
.sw-mediacard__foot{position:relative;z-index:1;display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-8);margin-top:var(--space-4)}

/* Feldfehler für Formulare ohne eigene Prüfung (field-error.js) */
/* [role] hebt die Spezifität über alte Regeln wie .production-form>label>small */
.sw-field-error[role="alert"]{display:block;margin-top:var(--space-4);font:var(--font-small);color:var(--status-danger)}
[aria-invalid="true"]:not(.sw-input__control){box-shadow:inset 0 0 0 1.5px var(--status-danger)}

/* Wischaktionen (swipe-actions.js, Figma Mobile 205:85097): Aktionen liegen hinter der Zeile, Zustände per data-Attribut */
.sw-swipe{position:relative;overflow:hidden;border-radius:var(--radius-xl)}
.sw-swipe__actions{position:absolute;top:0;bottom:0;display:flex}
.sw-swipe__actions--start{left:0}
.sw-swipe__actions--end{right:0}
.sw-swipe__actions > .sw-btn{flex-direction:column;justify-content:center;width:88px;height:100%;border-radius:0;box-shadow:none}
.sw-swipe__content{position:relative;z-index:1;touch-action:pan-y;transition:transform .2s ease}
[data-swipe-hint="end"]:not([data-swipe-open="end"]) > .sw-swipe__content{transform:translateX(-16px)}
[data-swipe-hint="start"]:not([data-swipe-open="start"]) > .sw-swipe__content{transform:translateX(16px)}
[data-swipe-open="end"][data-swipe-end="1"] > .sw-swipe__content{transform:translateX(-88px)}
[data-swipe-open="end"][data-swipe-end="2"] > .sw-swipe__content{transform:translateX(-176px)}
[data-swipe-open="start"][data-swipe-start="1"] > .sw-swipe__content{transform:translateX(88px)}
[data-swipe-open="start"][data-swipe-start="2"] > .sw-swipe__content{transform:translateX(176px)}
@media (prefers-reduced-motion:reduce){.sw-swipe__content{transition:none}}

/* Kein Abschneiden und kein Wortbruch (Auftrag Fynn, E87): Texte in Navigation, Listen- und Medienkarten brechen
   an Wortgrenzen um statt mit Ellipse abgeschnitten zu werden; lange Wörter werden nur getrennt, wenn sie allein
   breiter als die Zeile sind (break-word statt anywhere). */
.sw-nav__label,.sw-listcard__customer,.sw-listcard__title,.sw-listcard__meta,.sw-listhead__title,.sw-mediacard__customer{overflow:visible;text-overflow:clip;white-space:normal;overflow-wrap:break-word}
.sw-listcard__top{flex-wrap:wrap}
.sw-mail__meta dd,.sw-pagehead__title,.sw-mediacard__title,.sw-mediacard__meta{overflow-wrap:break-word}

/* Tabs als Seitenlinks (tabs.js renderTabLinks) */
a.sw-tab{text-decoration:none}

/* Nativer Schalter (toggle.js renderSwitch) – Optik wie .sw-toggle, Logik über .checked/change */
.sw-switch{appearance:none;-webkit-appearance:none;position:relative;flex:none;width:40px;height:22px;margin:0;border-radius:var(--radius-pill);background:var(--border-strong);cursor:pointer;transition:background-color .15s}
.sw-switch::before{content:"";position:absolute;top:var(--space-3);left:var(--space-3);width:16px;height:16px;border-radius:var(--radius-pill);background:var(--text-inverse);transition:transform .15s}
.sw-switch:checked{background:var(--brand-primary)}
.sw-switch:checked::before{transform:translateX(18px)}
.sw-switch:disabled{opacity:.45;cursor:not-allowed}
.sw-switch:focus-visible{outline:none;box-shadow:var(--shadow-focus)}

/* Native Checkbox (checkbox.js renderCheckboxInput) – Optik wie .sw-check */
.sw-checkbox-input{appearance:none;-webkit-appearance:none;position:relative;flex:none;width:20px;height:20px;margin:0;border-radius:var(--radius-sm);background:var(--bg-surface);box-shadow:inset 0 0 0 1.5px var(--border-strong);cursor:pointer}
.sw-checkbox-input:checked{background:var(--brand-primary);box-shadow:none}
.sw-checkbox-input:checked::after{content:"";position:absolute;left:7px;top:3px;width:5px;height:10px;border:solid var(--text-inverse);border-width:0 2px 2px 0;transform:rotate(45deg)}
.sw-checkbox-input:disabled{opacity:.45;cursor:not-allowed}
.sw-checkbox-input:focus-visible{outline:none;box-shadow:var(--shadow-focus)}

/* Einstellungszeile und -gruppe (setting-row.js, Figma 171:11820) */
.sw-setting{display:flex;align-items:center;gap:var(--space-12);min-width:0;padding:var(--space-14) 0;box-shadow:inset 0 -1px 0 var(--border-default);font-family:var(--font-sans)}
.sw-setting:last-child{box-shadow:none}
label.sw-setting{cursor:pointer}
.sw-setting.is-disabled{cursor:default}
.sw-setting.is-disabled .sw-setting__text{opacity:.6}
.sw-setting__icon{display:inline-flex;align-items:center;justify-content:center;flex:none;width:32px;height:32px;border-radius:var(--radius-md);background:var(--brand-soft);color:var(--brand-soft-text)}
.sw-setting__text{display:flex;flex:1;flex-direction:column;gap:var(--space-3);min-width:0}
.sw-setting__title{font:var(--font-body-semibold);color:var(--text-primary);overflow-wrap:break-word}
.sw-setting__desc{font:var(--font-small);color:var(--text-secondary);overflow-wrap:break-word}
.sw-setting__control{display:flex;flex:none;align-items:center;gap:var(--space-8)}
.sw-setting-group{display:flex;flex-direction:column;gap:var(--space-12);min-width:0;padding:var(--space-16) 0;box-shadow:inset 0 -1px 0 var(--border-default)}
.sw-setting-group:first-child{padding-top:0}
.sw-setting-group:last-child{padding-bottom:0;box-shadow:none}
.sw-setting-group__head{display:flex;flex-direction:column;gap:var(--space-4)}
.sw-setting-group__title{margin:0;font:var(--font-body-semibold);color:var(--text-primary)}
.sw-setting-group__desc{margin:0;font:var(--font-small);color:var(--text-secondary)}

/* Wochentagsauswahl (day-picker.js) */
.sw-days{min-width:0;margin:0;padding:0;border:0}
.sw-days__legend{margin-bottom:var(--space-6);padding:0;font:var(--font-small-medium);color:var(--text-primary)}
.sw-days__list{display:flex;flex-wrap:wrap;gap:var(--space-6)}
.sw-days__day{position:relative;display:inline-flex}
.sw-days__input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.sw-days__day span{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:36px;padding:0 var(--space-10);border-radius:var(--radius-pill);background:var(--bg-surface);box-shadow:inset 0 0 0 1px var(--border-default);font:var(--font-small-medium);color:var(--text-secondary)}
.sw-days__input:checked+span{background:var(--brand-soft);box-shadow:inset 0 0 0 1px var(--brand-primary);color:var(--brand-soft-text)}
.sw-days__input:focus-visible+span{box-shadow:var(--shadow-focus)}
.sw-days__input:disabled+span{opacity:.45}
@media (pointer:coarse),(max-width:834px){
  .sw-days__day span{min-width:44px;height:44px}
  .sw-setting{min-height:44px}
}

/* Select, das zur Laufzeit (de)aktiviert wird: Zustand direkt am Feld ablesen */
.sw-select:has(.sw-select__control:disabled) .sw-select__field{opacity:.5}

/* Kartenkopf bricht um, statt den Titel zu quetschen (schmale Spalten, iPhone) */
.sw-card__head{flex-wrap:wrap}
.sw-card__titles{flex:1 1 200px}

/* Dateiauswahl im Input-Feld (type="file") in Button-Optik */
.sw-input__control[type="file"]{padding-top:var(--space-6);padding-bottom:var(--space-6);cursor:pointer}
.sw-input__control::file-selector-button{margin-right:var(--space-12);padding:var(--space-6) var(--space-12);border:0;border-radius:var(--radius-md);background:var(--brand-soft);font:var(--font-small-semibold);color:var(--brand-soft-text);cursor:pointer}

/* MonthBars (month-bars.js) – Säulen pro Monat, Höhe über das SVG-Attribut */
.sw-bars-box{container-type:inline-size;min-width:0}
.sw-bars{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--space-4);margin:0;padding:0;list-style:none}
.sw-bars__item{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);min-width:0;text-align:center}
.sw-bars__track{display:block;width:100%;height:112px;border-radius:var(--radius-md);background:var(--brand-soft);overflow:hidden}
.sw-bars__bar{fill:var(--brand-primary)}
.sw-bars__value{display:flex;flex-direction:column;align-items:center;font:var(--font-small-semibold);font-variant-numeric:tabular-nums;color:var(--text-primary)}
.sw-bars__value small{font:var(--font-tiny);color:var(--text-secondary);white-space:nowrap}
.sw-bars__label{font:var(--font-tiny);color:var(--text-secondary)}
@container (max-width:480px){.sw-bars{grid-template-columns:repeat(6,minmax(0,1fr));row-gap:var(--space-12)}.sw-bars__track{height:90px}}
/* MonthBars dicht (eine Spalte je Tag), Werte nur für Screenreader/Tooltip; hervorgehobene Säule (bester Tag) */
.sw-bars.is-dense{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:var(--space-3);row-gap:0}
.sw-bars.is-dense .sw-bars__item{gap:var(--space-4)}
.sw-bars.is-dense .sw-bars__track{border-radius:var(--radius-sm)}
.sw-bars.is-dense .sw-bars__value{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.sw-bars.is-dense .sw-bars__label{min-height:1lh;white-space:nowrap}
.sw-bars__item.is-highlight .sw-bars__bar{fill:var(--status-success)}
.sw-bars__item.is-highlight .sw-bars__label,.sw-bars__item.is-highlight .sw-bars__value{color:var(--status-success)}
/* MonthCalendar (month-calendar.js) – Monatsblatt Mo–So, Zustand per data-state */
.sw-cal{display:flex;flex-direction:column;gap:var(--space-6);min-width:0}
.sw-cal__head,.sw-cal__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--space-4);margin:0;padding:0;list-style:none}
.sw-cal__head span{font:var(--font-tiny);color:var(--text-secondary);text-align:center}
.sw-cal__day{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:40px;border-radius:var(--radius-md);background:var(--bg-surface-2);font:var(--font-small-medium);color:var(--text-secondary);font-variant-numeric:tabular-nums}
.sw-cal__day[data-state="posted"]{background:var(--brand-soft);color:var(--brand-soft-text)}
.sw-cal__day[data-state="best"]{background:var(--status-success-soft);color:var(--status-success);box-shadow:inset 0 0 0 1.5px var(--status-success)}
.sw-cal__count{font:var(--font-tiny)}

/* E-Mail-Vorschau: ausgeschriebener Link unter dem Button; Editor „E-Mail bearbeiten“ im Swibbly-Auftrag */
.sw-mail__link{margin:0;font:var(--font-tiny);color:var(--text-secondary)}
.sw-mail__link span{color:var(--text-brand);overflow-wrap:break-word}
.sw-mail__meta{grid-template-columns:max-content 1fr}
.sw-mail-full{display:grid;gap:var(--space-12)}
.sw-mail-full__bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-8)}
.sw-mail__frame{display:block;width:100%;min-height:320px;border:0;border-radius:var(--radius-xl);background:var(--bg-canvas)}
.sw-mail__auto{margin:var(--space-12) 0 0;padding-top:var(--space-8);border-top:1px solid var(--border-default);font:var(--font-tiny);color:var(--text-tertiary)}
.sw-task__editor{display:flex;flex-direction:column;gap:var(--space-12)}
.sw-mail__foot{flex-wrap:wrap}
.sw-mail__kicker{white-space:nowrap}

/* SwibblyMark: einfarbiger Kreis, Roboter transparent darauf */
.sw-swibbly-mark{background:var(--swibbly-bg);box-shadow:inset 0 0 0 1px var(--swibbly-border)}

/* Avatar: 3-stellige Kürzel (Center-Code) und Logo */
.sw-avatar--code{letter-spacing:-.02em}
.sw-avatar--code.sw-avatar--sm{width:auto;min-width:22px;padding:0 var(--space-4)}
.sw-avatar--code.sw-avatar--md{font:var(--font-caption)}
/* Kundenlogo füllt den Kreis vollständig (kein Rand, kein Innenabstand – Auftrag Fynn 24.09.2026) */
.sw-avatar--logo{overflow:hidden;background:transparent;box-shadow:none}
.sw-avatar--logo img{display:block;width:100%;height:100%;object-fit:cover}
.sw-avatar--code.sw-avatar--lg{font:var(--font-small-semibold)}

/* Stepper: immer eine Zeile. Verbindungslinien dehnen sich; bei wenig Platz nur das aktuelle Label (Tooltip je Stufe) */
.sw-stepper-box{container-type:inline-size;min-width:0}
.sw-stepper-box .sw-stepper{flex-wrap:nowrap;gap:0}
.sw-stepper-box .sw-step{flex:0 1 auto;min-width:0}
.sw-stepper-box .sw-step + .sw-step{flex:1 1 auto}
.sw-stepper-box .sw-step + .sw-step::before{flex:1 1 auto;width:auto;min-width:var(--space-8);margin:0 var(--space-8)}
.sw-stepper-box .sw-step__dot{flex:none}
.sw-stepper-box .sw-step__label{white-space:nowrap}
.sw-stepper__caption{display:none;margin:var(--space-8) 0 0;font:var(--font-small-medium);color:var(--text-secondary)}
@container (max-width:900px){
  .sw-stepper-box .sw-step:not(.sw-step--active) .sw-step__label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
}
@container (max-width:520px){
  .sw-stepper-box .sw-step__label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .sw-stepper-box .sw-step + .sw-step::before{min-width:var(--space-4);margin:0 var(--space-4)}
  .sw-stepper__caption{display:block}
}
@container (max-width:320px){
  .sw-stepper-box .sw-step + .sw-step::before{margin:0 var(--space-3)}
}

/* DateTile (date-tile.js) – Kalenderblatt: farbiger Kopf, großer Tag, Monat darunter */
.sw-datetile{display:inline-flex;flex-direction:column;align-items:center;min-width:56px;overflow:hidden;border-radius:var(--radius-lg);background:var(--bg-surface);box-shadow:inset 0 0 0 1px var(--border-default);font-family:var(--font-sans);text-align:center}
.sw-datetile::before{content:"";display:block;align-self:stretch;height:6px;background:var(--brand-primary)}
.sw-datetile__day{padding:var(--space-4) var(--space-8) 0;font:var(--font-h2);color:var(--text-primary);font-variant-numeric:tabular-nums}
.sw-datetile__month{padding:0 var(--space-8) var(--space-6);font:var(--font-caption);text-transform:uppercase;letter-spacing:.06em;color:var(--text-brand)}
.sw-datetile__year{margin-top:calc(-1 * var(--space-4));padding:0 var(--space-8) var(--space-6);font:var(--font-tiny);color:var(--text-secondary)}
/* SplitRail – Liste links neben einem Detail, horizontal einklappbar (split-rail.js) */
.sw-rail{position:sticky;top:var(--shell-sticky-top,var(--space-16));display:flex;flex-direction:column;gap:var(--space-8);inline-size:clamp(240px,24vw,320px);min-width:0;max-height:calc(100dvh - var(--shell-sticky-top,var(--space-16)) - var(--space-16));overflow:auto;padding:0 var(--space-4) var(--space-8) 0}
.sw-rail.is-collapsed{inline-size:auto;overflow:visible;padding:0}
.sw-rail[hidden]{display:none}
.sw-rail__bar{display:flex;align-items:center;gap:var(--space-8);min-width:0}
.sw-rail__count{margin:0;font:var(--font-small);color:var(--text-secondary)}
.sw-rail__count[hidden],.sw-rail__content[hidden]{display:none}
.sw-rail__content{display:flex;flex-direction:column;gap:var(--space-8);min-width:0}
.sw-rail__items{display:flex;flex-direction:column;gap:var(--space-8)}
.sw-rail__item.is-current .sw-listcard{box-shadow:inset 0 0 0 1.5px var(--brand-primary);background:var(--brand-soft)}
/* ShootCard – Videodreh-Auftrag mit Drehtag, Videos und Schnittfortschritt (shoot-card.js) */
.sw-shoot{display:flex;align-items:flex-start;gap:var(--space-12);min-width:0;padding:var(--space-14);border:0;border-radius:var(--radius-xl);background:var(--bg-surface);box-shadow:inset 0 0 0 1px var(--border-default);color:var(--text-primary);font-family:var(--font-sans);text-align:left}
button.sw-shoot{cursor:pointer;min-height:44px}
button.sw-shoot:hover{box-shadow:inset 0 0 0 1px var(--border-strong)}
button.sw-shoot:focus-visible{outline:none;box-shadow:var(--shadow-focus)}
.sw-shoot[aria-pressed="true"]{background:var(--brand-soft);box-shadow:inset 0 0 0 1.5px var(--brand-primary)}
.sw-shoot .sw-datetile{flex:none}
.sw-shoot__nodate{display:inline-flex;flex:none;align-items:center;justify-content:center;min-width:56px;align-self:stretch;border-radius:var(--radius-lg);background:var(--bg-surface-2);font:var(--font-h2);color:var(--text-tertiary)}
.sw-shoot__body{display:flex;flex:1;flex-direction:column;gap:var(--space-4);min-width:0}
.sw-shoot__customer{font:var(--font-caption);color:var(--text-secondary);overflow-wrap:break-word}
.sw-shoot__title{font:var(--font-body-semibold);color:var(--text-primary)}
.sw-shoot__meta{font:var(--font-small);color:var(--text-tertiary);overflow-wrap:break-word}
.sw-shoot__stats{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-4) var(--space-12);font:var(--font-small);color:var(--text-secondary)}
.sw-shoot__stats > span{white-space:nowrap}
.sw-shoot__stats strong{font:var(--font-small-semibold);color:var(--text-primary)}
.sw-shoot__done{color:var(--status-success)}
.sw-shoot__fixes{color:var(--status-warning)}
.sw-shoot .sw-progress{margin-top:var(--space-4)}
/* CalendarHeatmap – Monat als Kalender, Tag farbig nach Ergebnis, immer mit Icon/Text (calendar-heatmap.js) */
.sw-heatmap{container-type:inline-size;display:flex;flex-direction:column;gap:var(--space-8);min-width:0;font-family:var(--font-sans)}
.sw-heatmap__legend{display:flex;flex-wrap:wrap;gap:var(--space-6) var(--space-16);margin:0 0 var(--space-8);padding:0;list-style:none;font:var(--font-small);color:var(--text-secondary)}
.sw-heatmap__key{display:inline-flex;align-items:center;gap:var(--space-6)}
.sw-heatmap__swatch{flex:none;width:var(--space-12);height:var(--space-12);border-radius:var(--radius-sm);background:var(--bg-surface);box-shadow:inset 0 0 0 1px var(--border-default)}
.sw-heatmap__weekdays,.sw-heatmap__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--space-6)}
.sw-heatmap__weekdays{font:var(--font-caption);color:var(--text-secondary);text-align:center}
.sw-heatmap__grid{margin:0;padding:0;list-style:none}
.sw-heatmap__day,.sw-heatmap__pad{min-width:0}
.sw-heatmap__cell{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);min-height:calc(var(--space-24) * 2);height:100%;padding:var(--space-6) var(--space-4);border-radius:var(--radius-lg);background:var(--bg-surface);box-shadow:inset 0 0 0 1px var(--border-default);color:var(--text-secondary);text-align:center;text-decoration:none}
a.sw-heatmap__cell:hover{box-shadow:inset 0 0 0 1px var(--border-strong)}
a.sw-heatmap__cell:focus-visible{outline:none;box-shadow:var(--shadow-focus)}
.sw-heatmap__num{font:var(--font-small-semibold);color:var(--text-primary);font-variant-numeric:tabular-nums}
.sw-heatmap__mark{display:inline-flex;align-items:center;gap:var(--space-3);font:var(--font-tiny);white-space:nowrap}
.sw-heatmap__day[data-state="ok"] .sw-heatmap__cell,.sw-heatmap__swatch[data-state="ok"]{background:var(--status-success-soft);box-shadow:none;color:var(--status-success)}
.sw-heatmap__day[data-state="caught-up"] .sw-heatmap__cell,.sw-heatmap__swatch[data-state="caught-up"]{background:var(--status-warning-soft);box-shadow:none;color:var(--status-warning)}
.sw-heatmap__day[data-state="missing"] .sw-heatmap__cell,.sw-heatmap__swatch[data-state="missing"]{background:var(--status-danger-soft);box-shadow:none;color:var(--status-danger)}
.sw-heatmap__day[data-state="none"] .sw-heatmap__cell,.sw-heatmap__swatch[data-state="none"]{background:var(--bg-surface-2);box-shadow:none}
.sw-heatmap__day[data-state="future"] .sw-heatmap__num{color:var(--text-secondary)}
.sw-heatmap__day[aria-current="date"] .sw-heatmap__cell,.sw-heatmap__swatch[data-state="today"]{box-shadow:inset 0 0 0 1.5px var(--brand-primary)}
@container (max-width:479px){.sw-heatmap__text{display:none}.sw-heatmap__weekdays,.sw-heatmap__grid{gap:var(--space-3);margin-inline:calc(var(--space-8) * -1)}.sw-heatmap__cell{padding-inline:0}}
/* DayStrip – „Tage im Überblick“ mit Anzahl und Status-Punkten, Früher/Später (day-strip.js) */
.sw-daystrip{container-type:inline-size;display:flex;flex-direction:column;gap:var(--space-12);min-width:0;padding:var(--space-14) var(--space-16);border-radius:var(--radius-xl);background:var(--bg-surface);box-shadow:inset 0 0 0 1px var(--border-default)}
.sw-daystrip__head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-6) var(--space-12);min-width:0}
.sw-daystrip__title{margin:0;font:var(--font-small-semibold);color:var(--text-primary)}
.sw-daystrip__hint{flex:1 1 200px;margin:0;font:var(--font-tiny);color:var(--text-secondary)}
.sw-daystrip__legend{display:flex;flex-wrap:wrap;gap:var(--space-4) var(--space-12);margin:0;padding:0;list-style:none;font:var(--font-tiny);color:var(--text-secondary)}
.sw-daystrip__legend li{display:inline-flex;align-items:center;gap:var(--space-4)}
.sw-daystrip__row{display:flex;align-items:stretch;gap:var(--space-8);min-width:0}
.sw-daystrip__days{display:flex;flex:1;gap:var(--space-8);min-width:0;margin:0;padding:0;list-style:none}
.sw-daystrip__item{flex:1 1 0;min-width:0}
.sw-daystrip__day,.sw-daystrip__shift{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);width:100%;min-height:44px;height:100%;padding:var(--space-8) var(--space-6);border:0;border-radius:var(--radius-lg);background:var(--bg-surface);box-shadow:inset 0 0 0 1px var(--border-default);color:var(--text-primary);font-family:var(--font-sans);cursor:pointer}
.sw-daystrip__day:hover,.sw-daystrip__shift:hover{box-shadow:inset 0 0 0 1px var(--border-strong)}
.sw-daystrip__day:focus-visible,.sw-daystrip__shift:focus-visible{outline:none;box-shadow:var(--shadow-focus)}
.sw-daystrip__day.is-free{background:var(--bg-surface-2)}
.sw-daystrip__day.is-today{background:var(--brand-primary);box-shadow:none;color:var(--text-inverse)}
.sw-daystrip__weekday,.sw-daystrip__count{font:var(--font-tiny);color:inherit}
.sw-daystrip__day:not(.is-today) .sw-daystrip__weekday,.sw-daystrip__day:not(.is-today) .sw-daystrip__count{color:var(--text-secondary)}
.sw-daystrip__date{font:var(--font-small-semibold)}
.sw-daystrip__dots{display:inline-flex;align-items:center;gap:var(--space-3);min-height:var(--space-8)}
.sw-daystrip__none{font:var(--font-tiny);color:var(--text-tertiary)}
.sw-daystrip__dot{display:inline-block;flex:none;width:var(--space-6);height:var(--space-6);border-radius:var(--radius-pill);background:var(--text-tertiary)}
.sw-daystrip__dot[data-tone="success"]{background:var(--status-success)}
.sw-daystrip__dot[data-tone="brand"]{background:var(--brand-primary)}
.sw-daystrip__dot[data-tone="danger"]{background:var(--status-danger)}
.sw-daystrip__dot[data-tone="warning"]{background:var(--status-warning)}
.sw-daystrip__day.is-today .sw-daystrip__dot{background:var(--text-inverse)}
.sw-daystrip__shift{flex:0 0 auto;width:auto;min-width:64px;background:var(--bg-surface-2);box-shadow:none;color:var(--text-secondary)}
.sw-daystrip__arrow{font:var(--font-body-semibold);color:var(--text-primary)}
.sw-daystrip__shift-label{font:var(--font-tiny);color:var(--text-primary)}
.sw-daystrip__range{font:var(--font-tiny)}
@media (max-width:767px){.sw-daystrip__shift .sw-daystrip__range{display:none}.sw-daystrip__shift{min-width:44px}}
@container (max-width:959px){.sw-daystrip__item[data-offset="5"],.sw-daystrip__item[data-offset="6"],.sw-daystrip__item[data-offset="7"],.sw-daystrip__item[data-offset="8"],.sw-daystrip__item[data-offset="9"]{display:none}}
@container (max-width:719px){.sw-daystrip__item[data-offset="3"],.sw-daystrip__item[data-offset="4"]{display:none}}
@container (max-width:419px){.sw-daystrip__item[data-offset="2"]{display:none}.sw-daystrip__days{gap:var(--space-6)}}

/* Menu – Aktionsliste als Popover/Sheet und Ergebnisliste der Suche (menu.js) */
.sw-menu{display:flex;flex-direction:column;gap:var(--space-4);min-width:0;padding:var(--space-8);border-radius:var(--radius-xl);background:var(--bg-surface);box-shadow:inset 0 0 0 1px var(--border-default),var(--shadow-dialog);font-family:var(--font-sans);color:var(--text-primary)}
.sw-menu__kicker,.sw-menu__label{margin:0;padding:var(--space-6) var(--space-10) var(--space-4);font:var(--font-caption);letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary)}
.sw-menu__group{display:flex;flex-direction:column;gap:var(--space-4)}
.sw-menu__group + .sw-menu__group{padding-top:var(--space-4);border-top:1px solid var(--border-default)}
.sw-menu__item{display:flex;align-items:center;gap:var(--space-12);width:100%;min-height:44px;padding:var(--space-8) var(--space-10);border:0;border-radius:var(--radius-lg);background:transparent;color:var(--text-primary);font:var(--font-body-medium);text-align:left;text-decoration:none;cursor:pointer}
.sw-menu__item:hover,.sw-menu__item.is-active{background:var(--brand-soft)}
.sw-menu__item.is-active .sw-menu__title{color:var(--brand-soft-text)}
.sw-menu__item:focus-visible{outline:none;box-shadow:var(--shadow-focus)}
.sw-menu__item:disabled{cursor:not-allowed;opacity:.5}
.sw-menu__item.is-danger{color:var(--status-danger)}
.sw-menu__icon{display:inline-flex;flex:none;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-md);background:var(--bg-surface-2);color:var(--text-secondary)}
.sw-menu__item.is-active .sw-menu__icon{background:var(--brand-primary);color:var(--text-inverse)}
.sw-menu__text{display:flex;flex:1;flex-direction:column;gap:var(--space-3);min-width:0}
.sw-menu__title{font:var(--font-body-semibold);overflow-wrap:break-word}
.sw-menu__sub{font:var(--font-small);color:var(--text-secondary);overflow-wrap:break-word}
.sw-menu__chev{flex:none;color:var(--text-tertiary)}
.sw-menu__kbd{flex:none;padding:var(--space-3) var(--space-6);border-radius:var(--radius-sm);background:var(--bg-surface-2);font:var(--font-caption);color:var(--text-secondary)}
.sw-menu__foot{padding-top:var(--space-4);border-top:1px solid var(--border-default)}
/* Stepper mit Zeile je Stufe (meta, z. B. Datum der Kundenfreigabe): gleich breite Spalten, Name und Zeile immer sichtbar */
.sw-stepper-box.has-meta .sw-stepper{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:var(--space-8)}
.sw-stepper-box.has-meta .sw-step,.sw-stepper-box.has-meta .sw-step + .sw-step{flex-direction:column;align-items:center;gap:var(--space-4);min-width:0;text-align:center}
.sw-stepper-box.has-meta .sw-step + .sw-step::before{display:none}
.sw-stepper-box.has-meta .sw-step .sw-step__label{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal;text-align:center}
.sw-stepper-box.has-meta .sw-stepper__caption{display:none}
.sw-step__meta{display:block;font:var(--font-tiny);color:var(--text-tertiary);text-align:center}

/* CutTimeline (cut-timeline.js) – Schnittfassungen auf gemeinsamer Zeitachse, Lage über SVG-Attribute */
.sw-cuttl{display:grid;gap:var(--space-8);margin:0;min-width:0}
.sw-cuttl__rows{display:grid;gap:var(--space-8);margin:0;padding:0;list-style:none}
.sw-cuttl__row{display:grid;grid-template-columns:minmax(96px,160px) minmax(0,1fr);align-items:center;gap:var(--space-12);min-width:0}
.sw-cuttl__label{display:flex;flex-direction:column;font:var(--font-small-semibold);color:var(--text-primary);min-width:0}
.sw-cuttl__label small{font:var(--font-tiny);font-variant-numeric:tabular-nums;color:var(--text-secondary)}
.sw-cuttl__track{display:block;width:100%;height:24px;border-radius:var(--radius-sm);overflow:hidden}
.sw-cuttl__base{fill:var(--bg-surface-2)}
.sw-cuttl__span{fill:var(--text-tertiary);stroke:var(--bg-surface);stroke-width:2;vector-effect:non-scaling-stroke}
.sw-cuttl__span[data-tone="brand"]{fill:var(--brand-primary)}
.sw-cuttl__span[data-tone="success"]{fill:var(--status-success)}
.sw-cuttl__span[data-tone="warning"]{fill:var(--status-warning)}
.sw-cuttl__span[data-tone="danger"]{fill:var(--status-danger)}
.sw-cuttl__legend{display:flex;flex-wrap:wrap;gap:var(--space-4) var(--space-16);margin:0;padding:0;list-style:none;font:var(--font-tiny);color:var(--text-secondary)}
.sw-cuttl__legend li{display:inline-flex;align-items:center;gap:var(--space-6)}
.sw-cuttl__swatch{width:10px;height:10px;flex:none}
@media (max-width:520px){.sw-cuttl__row{grid-template-columns:minmax(0,1fr);gap:var(--space-4)}.sw-cuttl__label{flex-direction:row;gap:var(--space-8);align-items:baseline}}

/* Fokus bleibt sichtbar, auch wenn ein Zustand (aktive Seite, heute) den Rahmen-Schatten entfernt */
.sw-page.is-active:focus-visible{box-shadow:var(--shadow-focus)}
.sw-daystrip__day.is-today:focus-visible{box-shadow:var(--shadow-focus)}

/* SettingRow auf schmalen Bildschirmen: ein Button rutscht unter den Text (Text behält die volle Breite); Schalter bleiben rechts */
@media (max-width:600px){
  .sw-setting:has(> .sw-setting__control .sw-btn){flex-wrap:wrap;align-items:flex-start}
  .sw-setting:has(> .sw-setting__control .sw-btn) > .sw-setting__control{flex-basis:100%}
  .sw-setting__icon ~ .sw-setting__control:has(.sw-btn){margin-left:calc(32px + var(--space-12))}
  /* Eingerückt: Breite um die Einrückung kürzen, sonst ragt der Button aus der Karte. */
  .sw-setting:has(> .sw-setting__icon) > .sw-setting__control:has(.sw-btn){flex-basis:calc(100% - 32px - var(--space-12));min-width:0}
}

/* Tip (tooltip.js) – Hinweis bei Hover, Fokus und Antippen; Lage über dem nächsten positionierten Element */
.sw-tip-host{position:relative;cursor:help}
.sw-tip-host:focus{outline:none}
.sw-tip-host:focus-visible{border-radius:var(--radius-md);box-shadow:var(--shadow-focus)}
.sw-tip{position:absolute;z-index:30;left:50%;bottom:calc(100% + var(--space-8));transform:translateX(-50%);max-width:min(240px,80vw);padding:var(--space-4) var(--space-8);border-radius:var(--radius-md);background:var(--bg-inverse);color:var(--text-on-inverse);font:var(--font-tiny);white-space:nowrap;text-align:center;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .12s ease}
.sw-tip[data-align="start"]{left:0;transform:none}
.sw-tip[data-align="end"]{left:auto;right:0;transform:none}
.sw-tip-host:is(:hover,:focus,:focus-within) .sw-tip{opacity:1;visibility:visible}
@media (prefers-reduced-motion:reduce){.sw-tip{transition:none}}
.sw-step__dot{position:relative}
/* Im Stepper darunter: über den Punkten ist in Karten kein Platz */
.sw-step .sw-tip{top:calc(100% + var(--space-8));bottom:auto}

/* Todo-Zeile (todo-item.js): Abhaken · Titel/Meta/Notiz · Swibbly */
.sw-todo{display:flex;align-items:flex-start;gap:var(--space-12);padding:var(--space-12) 0;border-bottom:1px solid var(--border-default);list-style:none}
.sw-todo:last-child{border-bottom:0}
.sw-todo > .sw-check{margin-top:1px;flex:none}
.sw-todo__body{flex:1;min-width:0;display:grid;gap:var(--space-4)}
.sw-todo__title{justify-self:start;max-width:100%;padding:0;border:0;background:none;color:var(--text-primary);font:var(--font-body-medium);text-align:left;overflow-wrap:break-word;cursor:pointer}
.sw-todo__title:hover{color:var(--text-brand)}
.sw-todo__title:focus-visible{outline:none;border-radius:var(--radius-sm);box-shadow:var(--shadow-focus)}
.sw-todo__meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-6) var(--space-8);font:var(--font-small);color:var(--text-secondary)}
.sw-todo__when{display:inline-flex;align-items:center;gap:var(--space-4)}
.sw-todo__when.is-overdue{color:var(--status-danger)}
.sw-todo__place{overflow-wrap:break-word}
.sw-todo__notes{margin:0;font:var(--font-small);color:var(--text-secondary);white-space:pre-line;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.sw-todo.is-done .sw-todo__title{color:var(--text-tertiary);text-decoration:line-through}
.sw-todo__swibbly{flex:none}

/* Hinweise (Toasts) liegen über Dialogen – sonst verschwimmen sie hinter dem Overlay (z. B. „Link kopiert“). */
.sw-toast-region{z-index:80}

/* SortableList (ui/sortable-list.js): Griff, Platzhalter, gezogener Eintrag. */
.sw-sortable__handle{display:inline-flex;align-items:center;justify-content:center;flex:none;width:32px;height:32px;padding:0;border:0;border-radius:var(--radius-md);background:transparent;color:var(--text-tertiary);cursor:grab;touch-action:none}
.sw-sortable__handle:hover{background:var(--bg-surface-2);color:var(--text-primary)}
.sw-sortable__handle:focus-visible{outline:none;box-shadow:var(--shadow-focus)}
.sw-sortable__placeholder{list-style:none;border:2px dashed var(--brand-primary);border-radius:var(--radius-lg);background:var(--brand-soft)}
[data-sortable-id].is-dragging{position:fixed;z-index:70;margin:0;pointer-events:none;box-shadow:var(--shadow-dialog);cursor:grabbing}
.is-sorting,.is-sorting *{user-select:none;cursor:grabbing}
@media (pointer:coarse){.sw-sortable__handle{width:44px;height:44px}}
@media (prefers-reduced-motion:reduce){[data-sortable-id].is-dragging{box-shadow:none}}

/* InfoTip (ui/info-tip.js): „i“-Knopf mit aufklappender Erklärung. */
.sw-infotip{position:relative;display:inline-flex;flex:none;vertical-align:middle}
.sw-infotip__button{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;box-shadow:inset 0 0 0 1.5px var(--border-strong);color:var(--text-secondary);font:var(--font-small-semibold);line-height:1;cursor:pointer;list-style:none;user-select:none}
.sw-infotip__button::-webkit-details-marker{display:none}
.sw-infotip__button:hover,.sw-infotip[open] > .sw-infotip__button{box-shadow:inset 0 0 0 1.5px var(--brand-primary);color:var(--brand-soft-text)}
.sw-infotip__button:focus-visible{outline:none;box-shadow:var(--shadow-focus)}
.sw-infotip__panel{position:absolute;z-index:40;top:calc(100% + var(--space-6));right:0;display:grid;gap:var(--space-8);width:max-content;max-width:min(320px,calc(100vw - 48px));padding:var(--space-12) var(--space-14);border-radius:var(--radius-lg);background:var(--bg-inverse);color:var(--text-on-inverse);box-shadow:var(--shadow-dialog);font:var(--font-small);text-align:left;white-space:normal}
.sw-infotip[data-align="start"] .sw-infotip__panel{right:auto;left:0}
/* Lange Hinweise: scrollen statt abschneiden; auf schmalen Geräten als Karte unten am Bildschirm (auch in Bottom-Sheets). */
.sw-infotip__panel{max-height:min(480px,70dvh);overflow-y:auto;overscroll-behavior:contain}
@media (max-width:767px){.sw-infotip__panel,.sw-infotip[data-align="start"] .sw-infotip__panel{position:fixed;top:auto;right:var(--space-16);bottom:calc(var(--space-16) + env(safe-area-inset-bottom,0px));left:var(--space-16);width:auto;max-width:none}}
.sw-infotip__panel p{margin:0}
.sw-infotip__panel ol{display:grid;gap:var(--space-4);margin:0;padding-left:var(--space-18)}
@media (pointer:coarse){.sw-infotip__button{width:32px;height:32px}}

/* TodoItem: verknüpfte E-Mail als Chip (öffnet die Unterhaltung) */
.sw-todo__link{display:inline-flex;align-items:center;gap:var(--space-6);justify-self:start;align-self:flex-start;width:fit-content;max-width:100%;min-height:32px;margin-top:var(--space-6);padding:0 var(--space-10);border-radius:var(--radius-pill);background:var(--brand-soft);color:var(--text-brand);font:var(--font-small-semibold);text-decoration:none}
.sw-todo__link span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sw-todo__link .sw-icon{flex:none}
.sw-todo__link:hover,.sw-todo__link:focus-visible{background:var(--bg-surface-2);outline:none;box-shadow:var(--shadow-focus)}

/* RichText – großes Textfeld mit Formatierungsleiste (E-Mail-Antworten). */
.sw-richtext{display:grid;gap:var(--space-6);min-width:0}
.sw-richtext__toolbar{display:flex;flex-wrap:wrap;gap:var(--space-4);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--bg-surface-2)}
.sw-richtext__tool{display:inline-flex;align-items:center;justify-content:center;min-width:36px;min-height:36px;padding:0 var(--space-8);border:0;border-radius:var(--radius-md);background:transparent;color:var(--text-primary);font:var(--font-body-semibold);cursor:pointer}
.sw-richtext__tool[data-richtext-command="italic"]{font-style:italic}
.sw-richtext__tool[data-richtext-command="underline"]{text-decoration:underline}
.sw-richtext__tool:hover,.sw-richtext__tool[aria-pressed="true"]{background:var(--brand-soft);color:var(--text-brand)}
.sw-richtext__tool:focus-visible{outline:none;box-shadow:var(--shadow-focus-input)}
.sw-richtext__area{min-height:220px;max-width:100%;overflow-y:auto;overflow-wrap:break-word;padding:var(--space-10) var(--space-14);border-radius:var(--radius-lg);background:var(--bg-surface);box-shadow:inset 0 0 0 1px var(--border-strong);font:var(--font-body);color:var(--text-primary);outline:none}
.sw-richtext__area:focus{box-shadow:inset 0 0 0 1.5px var(--brand-primary),var(--shadow-focus-input)}
.sw-richtext__area:empty::before{content:attr(data-placeholder);color:var(--text-tertiary)}
.sw-richtext__area ul,.sw-richtext__area ol{margin:var(--space-4) 0;padding-left:var(--space-24)}
.sw-richtext__area a{color:var(--text-brand)}

/* Kein Hineinzoomen auf dem iPhone: jedes Eingabefeld (auch außerhalb der Komponenten) auf Touch-Geräten mit mindestens 16px Schrift. */
@media (hover:none) and (pointer:coarse){
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"]),textarea,select,[contenteditable="true"]{font-size:var(--input-font-size-touch)!important}
}

/* E-Mail-Entwurf (mail-draft.js) – Swibbly-Chat und Dokumente; wird nie automatisch gesendet */
.sw-mail-draft{display:flex;flex-direction:column;gap:var(--space-10);margin:var(--space-10) 0;padding:var(--space-14);border-radius:var(--radius-xl);background:var(--brand-soft);box-shadow:inset 0 0 0 1px var(--border-default);min-width:0}
.sw-mail-draft__kicker{display:flex;align-items:center;gap:var(--space-6);margin:0;font:var(--font-caption);color:var(--text-brand)}
.sw-mail-draft__meta{display:flex;flex-direction:column;gap:var(--space-4);margin:0}
.sw-mail-draft__meta div{display:flex;gap:var(--space-8);min-width:0}
.sw-mail-draft__meta dt{flex:none;min-width:4.5rem;font:var(--font-small);color:var(--text-secondary)}
.sw-mail-draft__meta dd{margin:0;min-width:0;font:var(--font-small-semibold);color:var(--text-primary);overflow-wrap:break-word}
.sw-mail-draft__body{font:var(--font-body);color:var(--text-primary);overflow-wrap:break-word}
.sw-mail-draft__actions{display:flex;flex-wrap:wrap;gap:var(--space-8)}
.sw-mail-draft__note{margin:0;font:var(--font-small);color:var(--text-secondary)}
