/* Todos – eigene Aufgaben und Termine, Kalender-Abos. Nur Layout + Tokens, Bausteine aus public/ui. */
.todos-page{display:grid;gap:var(--space-16);max-width:920px;min-width:0}
.todos-page .sw-pagehead{margin-bottom:0}

/* Anlegen: Titel (optional) · Hinzufügen – alle weiteren Felder im Popup */
.todos-composer{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:var(--space-8)}
.todos-composer__title{min-width:0}
.todos-composer__when{display:flex;gap:var(--space-8)}
.todos-composer__when .sw-input{width:auto}
.todos-composer .sw-input__help:empty{display:none}

.todos-tabs{display:flex}
.todos-body{display:grid;gap:var(--space-16);min-width:0}
.todos-group{display:grid;gap:var(--space-4);padding:var(--space-4) var(--space-16) var(--space-8);border:1px solid var(--border-default);border-radius:var(--radius-xl);background:var(--bg-surface)}
.todos-group__title{display:flex;align-items:center;gap:var(--space-8);margin:var(--space-12) 0 0;font:var(--font-small-semibold);color:var(--text-secondary)}
.todos-group__title span{font:var(--font-tiny);color:var(--text-tertiary)}
.todos-group[data-todo-group="overdue"] .todos-group__title{color:var(--status-danger)}
.todos-body > .todos-list{padding:var(--space-4) var(--space-16);border:1px solid var(--border-default);border-radius:var(--radius-xl);background:var(--bg-surface)}
.todos-list{margin:0;padding:0}

/* Bearbeiten */
.todos-editor{display:grid;gap:var(--space-12)}
.todos-editor__row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-12) var(--space-8)}
.todos-editor__row > *{min-width:0}
.todos-editor__row:has([data-todo-duration][hidden]) > :first-child{grid-column:1 / -1}
.todos-editor__row [data-todo-duration][hidden]{display:none}
.todos-editor__row .sw-select__control,.todos-editor__row .sw-input__control{min-width:0;width:100%}
.todos-editor__urgent{display:inline-flex;align-items:center;gap:var(--space-8);font:var(--font-body-medium);color:var(--text-primary);cursor:pointer}

/* Kalender-Abos */
.todos-feeds{display:grid;gap:var(--space-12);margin:0;padding:0;list-style:none}
.todos-feed{display:grid;gap:var(--space-8);padding:var(--space-16);border:1px solid var(--border-default);border-radius:var(--radius-xl);background:var(--bg-surface-2)}
.todos-feed__head{display:flex;align-items:center;gap:var(--space-8);font:var(--font-body-semibold);color:var(--text-primary)}
.todos-feed__text{margin:0;font:var(--font-small);color:var(--text-secondary)}
.todos-feed__actions{display:flex;flex-wrap:wrap;gap:var(--space-8)}
.todos-feeds__note{margin:var(--space-12) 0 0;font:var(--font-tiny);color:var(--text-secondary)}
.todos-feed__url{margin:0;font:var(--font-tiny);color:var(--text-tertiary);overflow-wrap:break-word;min-width:0;user-select:all}
.todos-feeds__title{margin:var(--space-20) 0 var(--space-8);font:var(--font-body-semibold);color:var(--text-primary)}
.todos-feed--row{padding:var(--space-12)}
.todos-feed__role{margin-left:auto;font:var(--font-tiny);color:var(--text-secondary)}

/* Maus: „An Swibbly geben“ erscheint beim Überfahren oder Fokussieren der Zeile (Touch: immer sichtbar). */
@media (hover:hover) and (min-width:768px){
  .todos-list .sw-todo__swibbly{opacity:0;transition:opacity .15s ease}
  .todos-list .sw-todo:is(:hover,:focus-within) .sw-todo__swibbly{opacity:1}
}
@media (prefers-reduced-motion:reduce){.todos-list .sw-todo__swibbly{transition:none}}

@media (max-width:767px){
  .todos-composer{grid-template-columns:minmax(0,1fr)}
  .todos-composer__when{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .todos-composer__when > :last-child{grid-column:1 / -1}
  .todos-composer__when .sw-input{width:100%}
  .todos-composer__submit{width:100%;justify-content:center}
  .todos-group{padding-inline:var(--space-12)}
}

/* Kalender-Fenster: Todos bearbeitbar (CalDAV) oder als Abo; Postings & Infos optional. */
.todos-feeds-dialog{display:grid;gap:var(--space-16);min-width:0}
.todos-feed__choice{display:flex;min-width:0}
.todos-caldav{display:grid;gap:var(--space-12);min-width:0}
.todos-caldav__list{display:grid;gap:var(--space-8);margin:0}
.todos-caldav__row{display:grid;grid-template-columns:120px minmax(0,1fr);align-items:center;gap:var(--space-8);min-width:0}
.todos-caldav__row dt{font:var(--font-small-semibold);color:var(--text-secondary)}
.todos-caldav__row dd{display:flex;align-items:center;gap:var(--space-8);margin:0;min-width:0}
.todos-caldav__row code{flex:1 1 auto;min-width:0;padding:var(--space-6) var(--space-8);border-radius:var(--radius-md);background:var(--bg-surface);font:var(--font-small);color:var(--text-primary);overflow-wrap:break-word;user-select:all}
.todos-caldav__secret{border:1px solid var(--brand-primary)}
.todos-caldav__hint{margin:0;font:var(--font-small-semibold);color:var(--brand-soft-text)}
.todos-caldav__steps{display:grid;gap:var(--space-4);margin:0;padding-left:var(--space-20);font:var(--font-small);color:var(--text-secondary)}
@media (max-width:600px){.todos-caldav__row{grid-template-columns:minmax(0,1fr)}}

/* Handy: nichts breiter als der Bildschirm – Tabs wischbar, Zeilen umbrechen, Swibbly-Knopf unter den Text. */
.todos-page,.todos-body,.todos-group,.todos-list{max-width:100%}
.todos-tabs{min-width:0;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}
.todos-tabs::-webkit-scrollbar{display:none}
.todos-tabs .sw-tabs{flex:none}
@media (max-width:600px){
  .todos-page .sw-pagehead__actions{flex-wrap:wrap}
  /* fünf Reiter (mit „Von Swibbly“): wischbar statt gequetscht */
  .todos-tabs .sw-tab{justify-content:center;gap:var(--space-4);padding-inline:var(--space-8);font:var(--font-small-semibold)}
  .todos-tabs .sw-tab__count{padding-inline:var(--space-4)}
}
/* Zugeklappte Bereiche im Kalender-Fenster (Zugangsdaten, Team). */
.todos-caldav__setup{display:grid;gap:var(--space-12);min-width:0}
.todos-caldav__setup > summary,.todos-feed__person > summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:var(--space-8);min-height:40px;font:var(--font-small-semibold);color:var(--text-primary)}
.todos-caldav__setup > summary::-webkit-details-marker,.todos-feed__person > summary::-webkit-details-marker{display:none}
.todos-caldav__setup > summary::after,.todos-feed__person > summary::after{content:'';margin-left:auto;width:8px;height:8px;border-right:2px solid var(--text-tertiary);border-bottom:2px solid var(--text-tertiary);transform:rotate(45deg);transition:transform .15s ease}
.todos-caldav__setup[open] > summary::after,.todos-feed__person[open] > summary::after{transform:rotate(225deg)}
.todos-caldav__setup[open],.todos-feed__person[open]{gap:var(--space-8)}
.todos-feed__person{display:grid;gap:0;min-width:0}
@media (prefers-reduced-motion:reduce){.todos-caldav__setup > summary::after,.todos-feed__person > summary::after{transition:none}}
.todos-feed__head .sw-infotip,.todos-feeds__title .sw-infotip{margin-left:auto}
.todos-feeds__title{display:flex;align-items:center;gap:var(--space-8)}
.todos-feed__head .todos-feed__role + .sw-infotip{margin-left:var(--space-8)}
/* Admin: Kalender-Freigaben je Mitarbeiter. */
.todos-access{display:grid;gap:var(--space-8);padding-top:var(--space-8)}
.todos-access__title{margin:0;font:var(--font-tiny);color:var(--text-secondary)}
.todos-access__option{display:flex;align-items:center;justify-content:space-between;gap:var(--space-12);min-height:40px;font:var(--font-small);color:var(--text-primary)}
.todos-access__option > span{min-width:0}
.todos-access__option .sw-select{flex:none;width:9.5rem}
.todos-access .sw-btn{justify-self:start}
.todos-feed__person > summary .sw-badge{margin-left:var(--space-8)}
