/* Verwaltung: kompaktes Untermenü und getrennt scrollbare Bestandslisten. */
.subnav {
  display: flex;
  gap: .5rem;
  flex-wrap: wrap;
  background: #123b5d;
  border-radius: .45rem;
  padding: .65rem;
  margin: 0 0 1rem;
  .app-ui .condition-sort-table tr[draggable="true"] { cursor: grab; }
  .app-ui .condition-sort-table tr.is-dragging { opacity: .45; }
  .app-ui .condition-sort-table .drag-handle { width: 2rem; color: #2382b8; font-size: 1.35rem; text-align: center; user-select: none; }
  body[data-page="asset_conditions"] .page-content > form.actions,
  body[data-page="class_admin"] .page-content > form { max-width: 42rem; margin: 0 0 .8rem; padding: .7rem .8rem; }
  body[data-page="asset_conditions"] .page-content .actions,
  body[data-page="class_admin"] .page-content .actions { gap: .38rem; align-items: center; margin: 0; }
  body[data-page="asset_conditions"] .page-content input,
  body[data-page="asset_conditions"] .page-content select,
  body[data-page="class_admin"] .page-content input { min-height: 2rem; padding: .3rem .5rem; font-size: .86rem; }
  body[data-page="asset_conditions"] .page-content button,
  body[data-page="class_admin"] .page-content button { min-height: 2rem; padding: .3rem .55rem; font-size: .79rem; }
  body[data-page="asset_conditions"] .page-content table td,
  body[data-page="class_admin"] .page-content table td { padding-top: .42rem; padding-bottom: .42rem; }
  body[data-page="asset_conditions"] .condition-sort-table { max-width: 62rem; }
  body[data-page="asset_conditions"] .condition-sort-table input { width: min(15rem, 100%); }
  body[data-page="class_admin"] .page-content table { max-width: 48rem; }
  body[data-page="class_admin"] .page-content table input[name="class_name"] { width: 6rem; }
  .app-ui .copy-table .inline-condition-label { display: grid; gap: .2rem; margin-top: .45rem; color: #5b7383; font-size: .68rem; font-weight: 750; letter-spacing: .035em; text-transform: uppercase; }
  .app-ui .copy-table .inline-condition-label select { min-width: 10rem; min-height: 2rem; color: #24485f; font-size: .82rem; font-weight: 500; text-transform: none; }
  .app-ui .book-copy-overlay { width: min(35rem, calc(100vw - 2rem)); }
  .app-ui .book-copy-overlay .overlay-actions { display: flex; flex-wrap: wrap; gap: .55rem; margin: 1.2rem 0 0; }
  .app-ui .issue-actions-left { display: flex !important; width: 100%; justify-content: flex-end; margin: 1.2rem 0 0; text-align: right; }
}

/* Der äußere Listenbereich übernimmt auch auf Tablet und Smartphone das Scrollen. */
.people-list-scroll > table { display: table !important; overflow: visible !important; }
.people-list-scroll > table tr:first-child > th { position: sticky !important; top: 0 !important; z-index: 20 !important; background: #e8f0f5 !important; }
body[data-page="staff_manage"] .list-sort:has(+ .people-list-scroll) .list-search { margin-right: auto; }
.subnav a {
  /* Klassenverwaltung: bewusst kompakte Formular- und Aktionszeilen. */
}
.api-status { border: 1px solid #9acfb3; border-radius: .7rem; padding: 1rem 1.1rem; background: #effaf3; color: #1b5738; box-shadow: 0 3px 12px rgb(19 107 59 / .08); }
.api-status strong { color: #13753d; }
.api-status a { color: #176d9b; }
.list-subnav { margin-top: 0; background: #285d80; }
.user-subnav { margin-top: 0; background: #285d80; }
.access-row,.access-user form{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem;margin:.6rem 0;padding:.7rem;border:1px solid #dbe6ed;border-radius:.65rem;background:#fff}.access-row>input[name=name]{min-width:12rem;flex:1}.access-row label,.access-user label{display:inline-flex;align-items:center;gap:.3rem;margin:0;font-size:.88rem;font-weight:600}.access-row label input,.access-user label input{width:auto;margin:0}.access-user{margin:.6rem 0;border:1px solid #dbe6ed;border-radius:.65rem;background:#fff}.access-user summary{padding:.8rem;cursor:pointer;color:#234d68}.access-user form{margin:0;border:0;border-top:1px solid #e4edf2;border-radius:.0}.access-user h3{width:100%;margin:.3rem 0 0;color:#476275;font-size:.9rem}.access-user .notice{width:100%;margin:.1rem 0;padding:.45rem .6rem}.access-user .detail-actions{width:100%;margin:.4rem 0 0;text-align:right}
.update-ready-notice { position:fixed; right:1rem; bottom:1rem; z-index:10002; display:flex; align-items:center; gap:.65rem; max-width:calc(100vw - 2rem); padding:.55rem .65rem .55rem .8rem; border:1px solid #b8d8e9; border-radius:.7rem; background:#f8fcff; box-shadow:0 8px 24px rgb(8 43 65 / .16); color:#214c68; font-size:.84rem; }
.update-ready-notice span { display:grid; gap:.08rem; min-width:0; }.update-ready-notice strong{font-size:.86rem}.update-ready-notice small{color:#607b8d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.update-ready-notice button{margin:0;padding:.4rem .62rem;font-size:.78rem;white-space:nowrap}.update-ready-notice .update-notice-close{display:grid;place-items:center;width:1.65rem;height:1.65rem;padding:0;border:0;background:transparent;box-shadow:none;color:#5f7788;font-size:1.2rem;line-height:1}.update-ready-notice .update-notice-close:hover{background:#eaf3f8;color:#174e71}
.changelog-update-overlay { position:fixed; inset:0; z-index:11000; display:grid; place-items:center; padding:1rem; background:rgb(8 28 42 / .48); backdrop-filter:blur(3px); }.changelog-update-dialog{width:min(34rem,100%);max-height:min(78vh,42rem);overflow:auto;padding:1.35rem;border:1px solid #d6e7f0;border-radius:1rem;background:#fff;box-shadow:0 24px 70px rgb(0 20 35 / .35)}.changelog-update-dialog h2{margin:0;color:#123b5d}.changelog-update-version{margin:.2rem 0 1.1rem;color:#678092;font-size:.85rem;font-weight:700}.changelog-update-dialog h3{margin:0 0 .55rem;font-size:1rem;color:#245e82}.changelog-update-dialog ul{margin:0;padding-left:1.25rem}.changelog-update-dialog li{margin:.38rem 0}.changelog-update-dialog button{display:block;margin:1.2rem 0 0 auto}
@media(max-width:600px){.update-ready-notice{right:.65rem;bottom:.65rem;left:.65rem;gap:.45rem}.update-ready-notice small{white-space:normal}.update-ready-notice button{padding:.38rem .5rem}.changelog-update-dialog{padding:1.1rem}}
body[data-page="class_admin"] .page-content > form,
body[data-page="class_admin"] .page-content .actions { max-width: 34rem; margin: 0 0 .6rem; padding: .45rem .6rem; gap: .3rem; }
body[data-page="class_admin"] .page-content input { min-height: 1.8rem; padding: .22rem .42rem; font-size: .82rem; }
body[data-page="class_admin"] .page-content button { min-height: 1.8rem; padding: .22rem .46rem; font-size: .76rem; }
body[data-page="class_admin"] .page-content table { width: 100%; max-width: none; }
body[data-page="class_admin"] .page-content table th,
body[data-page="class_admin"] .page-content table td { padding: .34rem .5rem; }
body[data-page="class_admin"] .page-content table input[name="class_name"] { width: 4.8rem; }
body[data-page="class_admin"] .page-content > form { display: grid; gap: .35rem; align-items: center; }
body[data-page="class_admin"] .page-content > form .actions,
body[data-page="class_admin"] .page-content table form.actions { display: flex; align-items: center; }
body[data-page="class_admin"] .page-content table th:last-child,
body[data-page="class_admin"] .page-content table td:last-child { text-align: right; }
body[data-page="class_admin"] .page-content table td:last-child .actions { justify-content: flex-end; }
body[data-page="class_admin"] .page-content table { table-layout: fixed; border-collapse: separate; border-spacing: 0; }
body[data-page="class_admin"] .page-content table th:nth-child(1),
body[data-page="class_admin"] .page-content table td:nth-child(1) { width: 28%; }
body[data-page="class_admin"] .page-content table th:nth-child(2),
body[data-page="class_admin"] .page-content table td:nth-child(2) { width: 18%; }
body[data-page="class_admin"] .page-content table th:nth-child(3),
body[data-page="class_admin"] .page-content table td:nth-child(3) { width: 54%; }
body[data-page="class_admin"] .page-content table td:last-child { display: flex; align-items: center; justify-content: flex-end; gap: .65rem; }
/* Klassenverwaltung: Die Eingabe- und Aktionsbereiche nutzen die volle Seitenbreite,
   ihre bedienbaren Elemente bleiben dabei sauber am rechten Rand ausgerichtet. */
body[data-page="class_admin"] .page-content > form,
body[data-page="class_admin"] .page-content > form .actions,
body[data-page="class_admin"] .page-content table td:last-child form.actions {
  width: 100%;
  max-width: none;
  box-sizing: border-box;
}
body[data-page="class_admin"] .page-content > form .actions,
body[data-page="class_admin"] .page-content table td:last-child form.actions {
  justify-content: flex-end;
}
body[data-page="class_admin"] .page-content table td:last-child {
  width: auto;
  min-width: 0;
}
/* In der Klassenliste bewusst kompakte Abstände zwischen Eingabe, Speichern und Löschen. */
body[data-page="class_admin"] .page-content table td:last-child { gap: 0; }
body[data-page="class_admin"] .page-content td.list-actions form { margin-left: 0; }
body[data-page="class_admin"] .page-content td.list-actions input:not([type="hidden"]) { margin-right: .35rem; }
body[data-page="class_admin"] .page-content td.list-actions button[form] { margin: 0 .35rem !important; }
body[data-page="class_admin"] .page-content td.list-actions .danger { margin-left: 0; }
/* Gleiches Grundraster wie bei Fachbereiche verwalten. */
body[data-page="class_admin"] .page-content table { table-layout: auto; }
body[data-page="class_admin"] .page-content table th:nth-child(n),
body[data-page="class_admin"] .page-content table td:nth-child(n) { width: auto; }
body[data-page="class_admin"] .page-content table td:last-child {
  display: table-cell;
  text-align: right;
}
body[data-page="class_admin"] .page-content > form.actions {
  display: flex;
  width: auto;
  max-width: 38rem;
  margin: 0 0 .6rem;
  padding: .45rem .6rem;
  gap: .3rem;
  align-items: center;
}
body[data-page="book_subjects"] .page-content > form,
body[data-page="book_languages"] .page-content > form,
body[data-page="library_topics"] .page-content > form,
body[data-page="asset_conditions"] .page-content > form,
body[data-page="book_subjects"] .page-content .actions,
body[data-page="book_languages"] .page-content .actions,
body[data-page="library_topics"] .page-content .actions,
body[data-page="asset_conditions"] .page-content .actions { max-width: 38rem; margin: 0 0 .6rem; padding: .45rem .6rem; gap: .3rem; }
body[data-page="asset_conditions"] .page-content > form.actions { display: flex; align-items: center; }
body[data-page="asset_conditions"] .page-content table form.actions { display: flex; align-items: center; }
body[data-page="book_subjects"] .page-content input,
body[data-page="book_subjects"] .page-content select,
body[data-page="book_languages"] .page-content input,
body[data-page="book_languages"] .page-content select,
body[data-page="library_topics"] .page-content input,
body[data-page="library_topics"] .page-content select,
body[data-page="asset_conditions"] .page-content input,
body[data-page="asset_conditions"] .page-content select { min-height: 1.8rem; padding: .22rem .42rem; font-size: .82rem; }
body[data-page="book_subjects"] .page-content button,
body[data-page="book_languages"] .page-content button,
body[data-page="library_topics"] .page-content button,
body[data-page="asset_conditions"] .page-content button { min-height: 1.8rem; padding: .22rem .46rem; font-size: .76rem; }
body[data-page="book_subjects"] .page-content table,
body[data-page="book_languages"] .page-content table,
body[data-page="library_topics"] .page-content table,
body[data-page="asset_conditions"] .page-content table { width: 100%; max-width: none; }
body[data-page="book_subjects"] .page-content table th,
body[data-page="book_subjects"] .page-content table td,
body[data-page="book_languages"] .page-content table th,
body[data-page="book_languages"] .page-content table td,
body[data-page="library_topics"] .page-content table th,
body[data-page="library_topics"] .page-content table td,
body[data-page="asset_conditions"] .page-content table th,
body[data-page="asset_conditions"] .page-content table td { padding: .34rem .5rem; }
body[data-page="book_subjects"] .page-content table td { vertical-align: middle; }
body[data-page="book_grades"] .page-content > form,
body[data-page="book_grades"] .page-content .actions { max-width: 38rem; margin: 0 0 .6rem; padding: .45rem .6rem; gap: .3rem; }
body[data-page="book_grades"] .page-content > form.actions,
body[data-page="book_grades"] .page-content table form.actions { display: flex; align-items: center; }
body[data-page="book_grades"] .page-content input { min-height: 1.8rem; padding: .22rem .42rem; font-size: .82rem; }
body[data-page="book_grades"] .page-content button { min-height: 1.8rem; padding: .22rem .46rem; font-size: .76rem; }
body[data-page="book_grades"] .page-content table { width: 100%; max-width: none; }
body[data-page="book_grades"] .page-content table th,
body[data-page="book_grades"] .page-content table td { padding: .34rem .5rem; vertical-align: middle; }
body[data-page="book_grades"] .page-content td.list-actions form { display: inline-flex; width: auto; margin: 0 0 0 .35rem; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
body[data-page="book_grades"] .page-content td.list-actions .danger { margin-left: .65rem; background: #fff; color: #a33d3d; border: 1px solid #e4bcbc; box-shadow: none; }
/* Geräteversionen und Verhältnisse: gleiches kompaktes Stammdatenraster wie Sprachen, Zustände und Jahrgänge. */
body[data-page="device_models"] .page-content > form.actions,
body[data-page="guardian_relationships"] .page-content > form.actions,
body[data-page="device_models"] .page-content table form.actions,
body[data-page="guardian_relationships"] .page-content table form.actions { display: flex; align-items: center; gap: .3rem; }
body[data-page="device_models"] .page-content > form.actions,
body[data-page="guardian_relationships"] .page-content > form.actions { max-width: 38rem; margin: 0 0 .6rem; padding: .45rem .6rem; }
body[data-page="device_models"] .page-content input,
body[data-page="guardian_relationships"] .page-content input { min-height: 1.8rem; padding: .22rem .42rem; font-size: .82rem; }
body[data-page="device_models"] .page-content button,
body[data-page="guardian_relationships"] .page-content button { min-height: 1.8rem; padding: .22rem .46rem; font-size: .76rem; }
body[data-page="device_models"] .page-content table,
body[data-page="guardian_relationships"] .page-content table { width: 100%; max-width: none; }
body[data-page="device_models"] .page-content table th,
body[data-page="device_models"] .page-content table td,
body[data-page="guardian_relationships"] .page-content table th,
body[data-page="guardian_relationships"] .page-content table td { padding: .34rem .5rem; vertical-align: middle; }
body[data-page="device_models"] .page-content td.list-actions form,
body[data-page="guardian_relationships"] .page-content td.list-actions form { display: inline-flex; width: auto; margin: 0 0 0 .35rem; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
body[data-page="device_models"] .page-content td.list-actions .danger,
body[data-page="guardian_relationships"] .page-content td.list-actions .danger { margin-left: .65rem; background: #fff; color: #a33d3d; border: 1px solid #e4bcbc; box-shadow: none; }
body[data-page="device_models"] .page-content td.list-actions .danger:hover,
body[data-page="guardian_relationships"] .page-content td.list-actions .danger:hover { background: #fff1f1; }
body[data-page="device_models"] .master-data-list th:nth-child(2),
body[data-page="device_models"] .master-data-list td:nth-child(2) { width: 6.8rem; }
body[data-page="device_models"] .form-toggle { margin: 0; min-height: 1.8rem; font-size: .78rem; gap: .42rem; }
body[data-page="device_models"] .form-toggle > span[aria-hidden] { width: 2.35rem; height: 1.3rem; }
body[data-page="device_models"] .form-toggle > span[aria-hidden]::after { width: .94rem; height: .94rem; top: .18rem; left: .18rem; }
body[data-page="device_models"] .form-toggle input:checked + span[aria-hidden]::after { transform: translateX(1.02rem); }
body[data-page="book_languages"] .page-content table td { vertical-align: middle; }
body[data-page="library_topics"] .page-content table td { vertical-align: middle; }
body[data-page="asset_conditions"] .page-content table td { vertical-align: middle; }
body[data-page="user_manage"] .page-content table td { vertical-align: middle; }
body[data-page="class_admin"] .page-content table td { vertical-align: middle; }
body[data-page="class_admin"] .page-content table th,
body[data-page="book_subjects"] .page-content table th,
body[data-page="book_languages"] .page-content table th,
body[data-page="library_topics"] .page-content table th,
body[data-page="asset_conditions"] .page-content table th { vertical-align: middle; }
body[data-page="class_admin"] .page-content td.list-actions form,
body[data-page="book_subjects"] .page-content td.list-actions form,
body[data-page="book_languages"] .page-content td.list-actions form,
body[data-page="library_topics"] .page-content td.list-actions form,
body[data-page="asset_conditions"] .page-content td.list-actions form { display: inline-flex; width: auto; margin: 0 0 0 .35rem; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
body[data-page="class_admin"] .page-content td.list-actions .danger,
body[data-page="book_subjects"] .page-content td.list-actions .danger,
body[data-page="book_languages"] .page-content td.list-actions .danger,
body[data-page="asset_conditions"] .page-content td.list-actions .danger { background: #fff; color: #a33d3d; border: 1px solid #e4bcbc; box-shadow: none; }
body[data-page="class_admin"] .page-content td.list-actions .danger:hover,
body[data-page="book_subjects"] .page-content td.list-actions .danger:hover,
body[data-page="book_languages"] .page-content td.list-actions .danger:hover,
body[data-page="asset_conditions"] .page-content td.list-actions .danger:hover { background: #fff1f1; }
body[data-page="class_admin"] .page-content td.list-actions .danger,
body[data-page="book_subjects"] .page-content td.list-actions .danger,
body[data-page="book_languages"] .page-content td.list-actions .danger,
body[data-page="asset_conditions"] .page-content td.list-actions .danger { margin-left: .65rem; }
body[data-page="class_admin"] .page-content td.list-actions button[form],
body[data-page="book_subjects"] .page-content td.list-actions button[form],
body[data-page="book_languages"] .page-content td.list-actions button[form],
body[data-page="asset_conditions"] .page-content td.list-actions button[form] { margin: 0 .7rem 0 .7rem !important; }
/* Einheitlicher Abstand in den kompakten Verwaltungslisten: Eingabe · Speichern · Löschen. */
.page-content td.list-actions input:not([type="hidden"]) { margin-right: .7rem; }
.page-content td.list-actions button[form] { margin-left: .7rem !important; }
.subnav a {
  display: inline-block;
  background: #fff;
  color: #123b5d;
  border-radius: .3rem;
  font-weight: 700;
  padding: .5rem .7rem;
  text-decoration: none;
}
.subnav a:hover { background: #dcebf5; }
.subnav ~ .card { width: 100%; margin: .75rem 0; padding: .85rem 1rem; }
.subnav ~ .card h2 { font-size: 1.1rem; margin: 0 0 .65rem; }
.subnav ~ .card table {
  display: block;
  width: 100%;
  min-width: 100%;
  box-sizing: border-box;
  max-height: 230px;
  overflow: auto;
}
.subnav ~ .card table tbody { display: table; width: 100%; min-width: 100%; table-layout: fixed; }
.subnav ~ .card table tr:first-child th {
  position: sticky;
  top: 0;
  z-index: 1;
}

/* Detailansicht: Versionswahl und Generierung in einer Zeile. */
input[name="password_version"] { width: 5.5rem; display: inline-block; margin-right: .5rem; }
button[value="generate_password"] { vertical-align: middle; }
.native-select-hidden { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.switch-group { display: flex; flex-wrap: wrap; gap: .35rem; margin: .35rem 0; }
.switch-option { background: linear-gradient(180deg, #fff, #edf4f7); color: #123b5d; border: 1px solid #b7cbd6; border-radius: 999px; padding: .45rem .78rem; box-shadow: 0 1px 2px rgb(18 59 93 / .08); }
.switch-option:hover { background: #e2f2fa; border-color: #67a9cc; }
.switch-option.selected { position:relative; padding-left:2.55rem; background:linear-gradient(135deg,#167eb8,#1b6398);color:#fff;border-color:#14577f;box-shadow:0 0 0 3px rgb(51 156 209 / .24),0 4px 10px rgb(18 88 132 / .22);font-weight:800; }
.switch-option.selected::before { content:'✓'; position:absolute; left:.62rem; top:50%; transform:translateY(-50%); display:grid; place-items:center; width:1rem; height:1rem; border-radius:50%; background:#fff; color:#176a9f; font-size:.72rem; font-weight:900; }
.searchable-switch-group { display: grid; grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr)); gap: .45rem; padding: .7rem; max-height: 20rem; overflow: auto; border: 1px solid #c8d8e1; border-radius: .65rem; background: #f8fbfc; }
.searchable-switch-group .select-search { grid-column: 1 / -1; display: grid; gap: .25rem; margin: 0 0 .2rem; font-size: .84rem; color: #355365; }
.searchable-switch-group .select-search input { min-height: 2.35rem; margin: 0; background: #fff; }
.searchable-switch-group .select-search-status { min-height: 1rem; color: #5a7383; font-weight: 600; }
.searchable-switch-group .switch-option[hidden] { display: none !important; }
.real-select-search { display: block; width: 100%; margin: .1rem 0 .35rem; }
.real-searchable-select { display: block; width: 100%; }
.genre-tags { display: grid; gap: .45rem; padding: .55rem; border: 1px solid #c8d8e1; border-radius: .65rem; background: #f8fbfc; }
.genre-tags-list { display: flex; flex-wrap: wrap; gap: .35rem; min-height: 1.1rem; }
.genre-tag { display: inline-flex; align-items: center; gap: .3rem; padding: .28rem .4rem .28rem .6rem; border-radius: 999px; background: #dceff9; color: #175e86; font-size: .9rem; font-weight: 650; }
.genre-tag button { width: 1.25rem; min-width: 1.25rem; height: 1.25rem; padding: 0; border-radius: 50%; background: #287fae; line-height: 1; }
.book-cover { cursor: zoom-in; }
.cover-preview-overlay { position: fixed; inset: 0; z-index: 10020; display: grid; place-items: center; padding: 1rem; background: rgb(5 20 32 / .78); }
.cover-preview-dialog { position: relative; display: grid; place-items: center; max-width: min(92vw, 680px); max-height: 92vh; }
.cover-preview-dialog img { display: block; max-width: 100%; max-height: 86vh; border-radius: .65rem; box-shadow: 0 18px 55px #0008; }
.cover-preview-dialog button { position: absolute; top: -.55rem; right: -.55rem; z-index: 1; width: 2.3rem; height: 2.3rem; padding: 0; border-radius: 50%; background: #1769aa; font-size: 1.55rem; line-height: 1; }
.book-cover { width: 48px; max-height: 70px; object-fit: cover; border-radius: .35rem; box-shadow: 0 2px 6px #0003; }
.books-overview main > table:last-child td:nth-child(2), .books-overview main > table:last-child td:nth-child(3) { vertical-align: middle; font-size: 1.08rem; font-weight: 700; }
.books-overview main > table:last-child td:nth-child(3) { font-variant-numeric: tabular-nums; color: #1769aa; }
.books-titles main > table td { vertical-align: middle; }
.book-cover-preview { display:flex; align-items:center; gap:.7rem; margin:.55rem 0; color:#4b6778; font-size:.88rem; }.book-cover-preview .book-cover{width:64px;max-height:92px;}
.book-return-status { display: grid; grid-template-columns: 62px minmax(0, 1fr); gap: .8rem; align-items: center; min-height: 1.35rem; margin: .65rem 0; padding: .65rem; border: 1px solid #cfe0ea; border-radius: .65rem; background: #f5fafc; color: #234b64; }
.ipad-return-status .ipad-return-icon,.ipad-issue-status .ipad-return-icon{display:grid;place-items:center;width:3.6rem;height:4.7rem;border-radius:.5rem;background:linear-gradient(145deg,#d8ecf7,#f8fcff);color:#277bab;font-size:.72rem;font-weight:800;box-shadow:inset 0 0 0 1px #bcd9e8}
.book-return-status.is-message { display: block; width: max-content; max-width: 100%; white-space: nowrap; }
.book-return-cover { display: grid; place-items: center; min-height: 76px; color: #61798a; font-size: .72rem; text-align: center; }
.book-return-cover img { width: 56px; max-height: 76px; object-fit: cover; border-radius: .3rem; box-shadow: 0 2px 5px #0003; }
.book-return-details p { margin: .16rem 0; font-size: .9rem; }
.book-lookup-overlay{position:fixed;inset:0;z-index:3000;display:grid;place-items:center;padding:1rem;background:rgb(9 29 43 / .5);backdrop-filter:blur(3px)}.book-lookup-dialog{display:grid;justify-items:center;gap:.65rem;min-width:min(23rem,100%);padding:1.5rem;border-radius:.85rem;background:#fff;box-shadow:0 18px 55px #001a2b66;color:#23485f;text-align:center}.book-lookup-dialog small{color:#61798a}.book-spinner{width:2.5rem;height:2.5rem;border:.3rem solid #cce4f1;border-top-color:#258bc4;border-radius:50%;animation:book-spin .75s linear infinite}@keyframes book-spin{to{transform:rotate(360deg)}}
.language-select { appearance: auto; -webkit-appearance: menulist; cursor: pointer; }
.book-labels { display: grid; grid-template-columns: repeat(auto-fill,minmax(58mm,1fr)); gap: 3mm; }
.book-label { min-height: 34mm; border: 1px solid #ccd8df; padding: 3mm; display: grid; grid-template-columns: 28mm 1fr; gap: 3mm; align-items: center; background:#fff; font-size:9pt; }
.book-label img { width: 27mm; height:27mm; }.book-label small{overflow-wrap:anywhere}@media print{.book-labels{grid-template-columns:repeat(3,1fr);gap:2mm}.book-label{break-inside:avoid;border-color:#ddd}}
.book-label.student-label { grid-template-rows: 27mm auto; align-items:start; }
.book-label.student-label img { grid-column:1; grid-row:1; }
.book-label.student-label strong { grid-column:2; grid-row:1 / span 2; align-self:center; }
.book-label.student-label .checksum { grid-column:1; grid-row:2; text-align:center; font-size:7pt; white-space:nowrap; }
.book-label.book-copy-label { grid-template-rows: 27mm auto; align-items:start; }
.book-label.book-copy-label img { grid-column:1; grid-row:1; }
.book-label.book-copy-label strong { grid-column:2; grid-row:1 / span 2; align-self:center; }
.book-label.book-copy-label .copy-number { grid-column:1; grid-row:2; text-align:center; font-size:8pt; }
.compact-button{font-size:.78rem;padding:.3rem .5rem}.inline-form{display:inline}.copy-search{display:block;max-width:360px;margin:.4rem 0}.copy-search input{width:100%}
.copy-table .compact-button{font-size:.72rem!important;padding:.24rem .42rem!important;line-height:1.15}

/* Geräteverwaltung: SuS/LuL ist bewusst kompakt, damit Modell und Name Platz haben. */
body[data-page="device_manage"] .device-manage-table th:nth-child(3),
body[data-page="device_manage"] .device-manage-table td:nth-child(3) {
  width: 4.5rem;
  white-space: nowrap;
}
.copy-table{table-layout:fixed;width:100%}.copy-table th:nth-child(1),.copy-table td:nth-child(1),.copy-table th:nth-child(2),.copy-table td:nth-child(2){width:4.8rem;white-space:nowrap}.copy-table th:nth-child(3),.copy-table td:nth-child(3){width:7rem;white-space:nowrap}.copy-table th:nth-child(4),.copy-table td:nth-child(4){width:6.2rem;white-space:nowrap}.copy-table td:last-child{display:flex;flex-flow:row wrap;align-items:center;gap:.3rem}.copy-table td:last-child .inline-form{display:inline-block;width:auto;padding:0;margin:0;background:transparent;border:0;border-radius:0;box-shadow:none}.copy-table td:last-child .compact-button{margin:0}
.subnav ~ .card .copy-table{max-height:460px}
.searchable-switch-group .switch-option { width: 100%; text-align: left; min-height: 2.45rem; border-radius: .5rem; }
button, .button { border-radius: 999px; font-weight: 700; box-shadow: 0 1px 2px #0002; }
button:hover, .button:hover { filter: brightness(1.08); }
.derived-field { background: #edf2f5; color: #53616b; }
.confirmation-overlay { position: fixed; z-index: 5000; inset: 0; display: grid; place-items: center; padding: 1rem; background: rgb(8 28 42 / .55); backdrop-filter: blur(4px); }
.confirmation-dialog { width: min(27rem, 100%); padding: 1.35rem; border: 1px solid #d4e2e9; border-radius: .9rem; background: #fff; box-shadow: 0 22px 58px rgb(0 20 35 / .35); }
.confirmation-dialog h2 { margin: 0 0 .55rem; color: #173f5b; }.confirmation-dialog p { margin: 0; color: #4e6676; }.confirmation-dialog strong { color: #173f5b; overflow-wrap: anywhere; }
.tenant-delete-check { display: flex; align-items: center; gap: .65rem; margin-top: 1rem; padding: .75rem; border: 1px solid #edcaca; border-radius: .65rem; background: #fff7f7; color: #813737; font-weight: 700; }.tenant-delete-check input { appearance: auto !important; -webkit-appearance: checkbox !important; flex: 0 0 auto; min-width: 1.1rem; width: 1.1rem; height: 1.1rem; accent-color: #b54646; }.tenant-delete-overlay [data-delete]:disabled { cursor: not-allowed; opacity: .45; }.tenant-delete-form { display: block; margin-top: .25rem; text-align: left; }.tenant-delete-form p { display: block; margin: 0; text-align: left; }.tenant-delete-form .danger { display: inline-flex; margin-left: 0; justify-content: flex-start; }
.confirmation-actions { display: flex; justify-content: flex-end; gap: .55rem; margin-top: 1.25rem; }.confirmation-actions button { width: auto; }.confirmation-actions .danger { background: #b54646; }
.detail-actions { display: flex; justify-content: flex-end; align-items: center; gap: .65rem; }.detail-actions button { width: auto; }.detail-actions .danger { background: #b54646; }
button.danger, .button.danger { background: #b54646 !important; color: #fff !important; border: 1px solid #a63d3d !important; box-shadow: none !important; }
button.danger:hover, .button.danger:hover { background: #963535 !important; }
.password-generator { display: flex; align-items: center; gap: .45rem; }.password-generator input { min-width: 0; }.password-generator button { width: auto; flex: 0 0 auto; white-space: nowrap; }.password-generator-hint { display: block; margin-top: .35rem; color: #587082; }
.device-assignment-actions { margin: .85rem 0 0; text-align: right; }.device-assignment-actions .button { width: auto; }
.assignment-overlay .overlay-close { display: grid; place-items: center; width: 2rem; min-width: 2rem; height: 2rem; min-height: 2rem; padding: 0; color: transparent; border-radius: .35rem; background: #2586bc; }
.assignment-overlay .overlay-close::after { content: '×'; color: #fff; font-size: 1.55rem; line-height: 1; transform: translate(2px, -12px); }
.assignment-scan-row { display: flex; align-items: end; gap: .45rem; margin: 0 0 .65rem; }.assignment-scan-row .assignment-search { flex: 1 1 auto; margin: 0; }.assignment-scan-row .camera-scan-button { width: auto; flex: 0 0 auto; margin: 0; white-space: nowrap; }
.assignment-overlay-content select { appearance: none; -webkit-appearance: none; padding-right: 2.6rem; border-color: #91b8ce; border-radius: .55rem; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='%232586bc' d='m4 6 4 4 4-4z'/%3E%3C/svg%3E") no-repeat right .8rem center; box-shadow: 0 1px 2px rgb(18 59 93 / .08); cursor: pointer; }
@media (max-width: 600px) { .assignment-scan-row { align-items: stretch; flex-direction: column; }.assignment-scan-row .camera-scan-button { width: 100%; } }
.staff-create-toggle { margin-bottom: 1rem; }
.page-content td .button { display: inline-flex; align-items: center; justify-content: center; }
body.staff-person-detail [name="subiti_password"], body.staff-person-detail [name="password_version"], body.staff-person-detail [name="apple_password"], body.staff-person-detail [name="ipad_passcode"], body.staff-person-detail button[value="generate_password"], body.staff-person-detail label:has(+ [name="subiti_password"]), body.staff-person-detail label:has(+ [name="password_version"]), body.staff-person-detail label:has(+ [name="apple_password"]), body.staff-person-detail label:has(+ [name="ipad_passcode"]) { display: none !important; }
@media (max-width: 760px) {
  .app-ui header { display: grid !important; grid-template-columns: minmax(0, 1fr); gap: .65rem; padding: .75rem .85rem; }
  .app-ui header .brand { min-width: 0; }
  .app-ui header nav { display: flex; grid-column: 1 / -1; flex-wrap: nowrap; gap: .35rem; width: 100%; max-width: 100%; margin: 0; padding: .2rem 0 .35rem; overflow-x: auto; overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch; }
  .app-ui header nav a { flex: 0 0 auto; padding: .48rem .65rem; white-space: nowrap; }
  .app-ui header .account-menu { position: absolute; top: .72rem; right: .85rem; margin: 0; }
  .app-ui header nav { padding-right: 3rem; }
}
@media (max-width: 600px) { .password-generator { align-items: stretch; flex-direction: column; }.password-generator button { width: 100%; } }
input[type="checkbox"] { appearance: none; box-sizing: border-box; flex: 0 0 2.8rem; min-width: 2.8rem; width: 2.8rem; height: 1.5rem; padding: 0; border-radius: 999px; background: #9dacb6; vertical-align: middle; position: relative; cursor: pointer; }
input[type="checkbox"]::after { content: ''; position: absolute; width: 1.14rem; height: 1.14rem; left: .16rem; top: .16rem; border-radius: 50%; background: #fff; transition: transform .15s; }
input[type="checkbox"]:checked { background: #1769aa; }
input[type="checkbox"]:checked::after { transform: translateX(1.32rem); }
.access-row .rights-grid,.access-user .rights-grid,.page-content .card .rights-grid { width:100%; grid-column:1 / -1; }
.rights-grid { display:grid; grid-template-columns:minmax(11rem,1fr) repeat(3,minmax(5.4rem,.45fr)); gap:0; margin:.75rem 0; border:1px solid #d6e3eb; border-radius:.7rem; overflow:hidden; background:#fff; }
.rights-grid-head { padding:.5rem .65rem; background:#edf5f8; color:#31566e; font-size:.76rem; font-weight:750; text-transform:uppercase; letter-spacing:.035em; }
.rights-grid-row { display:contents; }
.rights-grid-row > * { display:flex; align-items:center; min-height:3rem; padding:.45rem .65rem; border-top:1px solid #e3edf2; }
.rights-grid-row > strong { color:#183e59; font-size:.92rem; }
.rights-choice { display:flex; align-items:center; justify-content:center; width:100%; margin:0; }
.rights-choice input[type="checkbox"] { margin:0; }
.rights-choice.form-toggle { justify-content:center; min-height:2rem; gap:.3rem; }
.rights-choice.form-toggle .toggle-label { display:none; }
.rights-choice.form-toggle .toggle-rail { width:2.55rem; height:1.42rem; }
.rights-choice.form-toggle .toggle-rail::after { width:1.06rem; height:1.06rem; }
.rights-choice.form-toggle input:checked + .toggle-rail::after { transform:translateX(1.13rem); }
@media (max-width:620px) { .rights-grid { grid-template-columns:minmax(7rem,1fr) repeat(3,1fr); } .rights-grid-head { padding:.42rem .32rem; font-size:.67rem; text-align:center; } .rights-grid-row > * { min-height:2.8rem; padding:.35rem .32rem; } .rights-grid-row > strong { font-size:.78rem; } .rights-choice input[type="checkbox"] { transform:scale(.88); } }
.print-person { margin-left: .35rem; }
form > p:last-child { display: flex; justify-content: flex-end; align-items: center; gap: .5rem; flex-wrap: wrap; }

/* iPad-Zuordnung als ruhiges Layover über der Nutzerdetailseite. */
.assignment-overlay { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; padding: 1rem; background: rgb(10 30 45 / .55); }
.assignment-overlay-content { width: min(680px, 100%); max-height: min(78vh, 760px); overflow: auto; background: #fff; border-radius: .8rem; padding: 1.25rem; box-shadow: 0 18px 48px #0006; }
.overlay-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; border-bottom: 1px solid #d7e0e6; margin-bottom: 1rem; }
.overlay-heading h1 { margin: 0; font-size: 1.45rem; }
.overlay-close { min-width: 2.3rem; min-height: 2.3rem; padding: 0; font-size: 1.5rem; line-height: 1; }
.assignment-overlay-content .card { margin: .5rem 0 1rem; }
.assignment-overlay-content h2 { color: #123b5d; font-size: 1.05rem; margin: 1.25rem 0 .55rem; }
.assignment-overlay-content .overlay-form { border: 1px solid #d7e0e6; border-radius: .65rem; padding: 1rem; margin: .7rem 0; background: #f8fafb; }
.assignment-overlay-content .overlay-form.card { background: #eef6fb; border-left: 5px solid #1769aa; }
.assignment-overlay-content .overlay-form strong { display: block; color: #123b5d; font-size: 1.05rem; }
.assignment-overlay-content .overlay-form p { margin: .45rem 0 0; }
.assignment-summary { display: inline-block; margin: 0 0 .7rem; padding: .3rem .55rem; border-radius: 999px; background: #d8f4e3; color: #075d32; font-size: .86rem; font-weight: 750; }
.assignment-search { margin: 0 0 .6rem; color: #123b5d; font-size: .9rem; }
.assignment-search input { margin-top: .25rem; background: #fff; }
.assignment-overlay-content select { background: #fff; min-height: 2.7rem; }
.assignment-overlay-content .no-device-match select, .assignment-overlay-content .no-device-match button { opacity: .55; pointer-events: none; }
.camera-scan-button { margin-top: .45rem; }
.scanner-overlay { position: fixed; inset: 0; z-index: 1500; display: grid; place-items: center; padding: 1rem; background: rgb(10 30 45 / .65); }
.scanner-panel { width: min(560px, 100%); padding: 1rem; border-radius: .8rem; background: #fff; box-shadow: 0 18px 48px #0006; }
.scanner-panel video { width: 100%; max-height: 60vh; background: #0d1f2b; border-radius: .45rem; object-fit: cover; }

/* Nicht blockierende Rückmeldungen für Hintergrundaktionen. */
.toast-area { position: fixed; right: 1rem; bottom: 1rem; z-index: 2000; display: grid; gap: .55rem; width: min(360px, calc(100vw - 2rem)); }
.toast { padding: .8rem 1rem; color: #fff; background: #a62121; border-radius: .55rem; box-shadow: 0 8px 24px #0004; font-weight: 650; transition: opacity .35s, transform .35s; }
.toast-success { background: #136b3b; }
.toast-hide { opacity: 0; transform: translateY(.5rem); }
.class-list .print-only { display: none; }
.print-number { display: none; }
.list-sort { display: flex; align-items: center; gap: .4rem; justify-content: flex-end; margin: .6rem 0 -.35rem; color: #43515d; font-size: .9rem; }
.list-sort button { width: auto; padding: .32rem .65rem; background: #eef3f6; color: #123b5d; border: 1px solid #b7c6d0; }
.list-sort button.selected { background: #123b5d; color: #fff; border-color: #123b5d; }
.list-filter { display: flex; justify-content: flex-end; align-items: center; gap: .5rem; margin: .6rem 0 -.35rem; font-weight: 650; color: #43515d; }
.list-filter select { width: auto; min-width: 8rem; padding: .35rem .55rem; }
.list-sort .list-filter { justify-content: flex-start; margin: 0 auto 0 0; padding: 0; border: 0; background: transparent; }
.list-filter .class-filter-dropdown { width: min(18rem, 45vw); min-width: 12rem; padding: .35rem .55rem; }
.people-list-scroll { width: 100%; max-height: min(68vh, 42rem); overflow: auto; margin-top: .85rem; border: 1px solid #dce6ec; border-radius: .7rem; background: #fff; }
.list-sort:has(+ .people-list-scroll) { justify-content: flex-start; margin: 0 0 .65rem; padding: .55rem .65rem; border: 1px solid #dce6ec; border-radius: .6rem; background: #fff; }
.list-sort:has(+ .people-list-scroll) .list-filter { margin-right: auto; }
.list-sort:has(+ .people-list-scroll) .list-search { display: flex; align-items: center; gap: .35rem; margin: 0 .7rem 0 0; color: #43515d; font-size: .9rem; font-weight: 650; white-space: nowrap; }
.list-sort:has(+ .people-list-scroll) .list-search input { width: min(15rem, 28vw); min-width: 9rem; padding: .35rem .55rem; }
.people-list-scroll table { margin: 0; border-collapse: separate; border-spacing: 0; }
.people-list-scroll table tr:first-child th { position: sticky; top: 0; z-index: 2; background: #e8f0f5; box-shadow: 0 1px 0 #d5e0e6; }
.app-ui .list-sort:has(+ .people-list-scroll) .list-filter { padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
td.list-actions { text-align: right; white-space: nowrap; }
td.list-actions .button { display: inline-block; width: auto; margin: 0 0 0 .35rem; }
td.list-actions .button:first-child { margin-left: 0; }
.detail-actions { display: flex !important; justify-content: flex-end !important; align-items: center; gap: .5rem; width: 100%; }
.detail-actions .button { width: auto; }
.password-meta { display: block; margin: .2rem 0 .45rem; font-size: .78rem; font-weight: 700; }
.password-meta.generated { color: #136b3b; }
.password-meta.manual { color: #865000; }

/* Responsive Oberfläche für Tablet und Smartphone. */
@media (max-width: 760px) {
  header { padding: .8rem 1rem; align-items: flex-start; gap: .75rem; flex-direction: column; }
  header nav { width: 100%; gap: .2rem .8rem; font-size: .92rem; }
  main { margin: 1rem auto; padding: 0 .65rem; }
  h1 { font-size: 1.45rem; }
  h2 { font-size: 1.15rem; }
  .card, form { padding: 1rem; }
  .grid { grid-template-columns: 1fr; gap: .35rem; }
  .subnav { overflow-x: auto; flex-wrap: nowrap; padding: .5rem; }
  .subnav a { flex: 0 0 auto; padding: .45rem .6rem; font-size: .9rem; }
  .actions { align-items: stretch; }
  .actions > input, .actions > select { flex: 1 1 100%; width: 100%; }
  .actions > button, .actions > .button { flex: 1 1 auto; text-align: center; }
  table { display: block; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; white-space: nowrap; }
  th, td { padding: .5rem; }
  .list-sort, .list-filter { justify-content: flex-start; flex-wrap: wrap; margin: .65rem 0 .2rem; }
  .list-sort button { flex: 1 1 auto; }
  td.list-actions { min-width: 10.5rem; }
  .detail-actions { flex-direction: column-reverse; align-items: stretch; }
  .detail-actions button, .detail-actions .button { width: 100%; text-align: center; }
  input[name="password_version"] { width: 5rem; }
  button[value="generate_password"] { margin-top: .4rem; }
  .assignment-overlay { padding: .45rem; align-items: end; }
  .assignment-overlay-content { max-height: 90vh; border-radius: .8rem .8rem 0 0; padding: 1rem; }
  .person-sheet { padding: 1rem; font-size: 1rem; }
  .person-sheet h1 { margin: -1rem -1rem 1rem; font-size: 1.22rem; }
  .person-sheet h1::after { display: block; float: none; padding-top: .25rem; }
  .person-sheet dl { grid-template-columns: 1fr; }
  .person-sheet dt { border-bottom: 0; padding-bottom: .2rem; }
  .person-sheet dd { padding-top: .2rem; }
}

/* Kompakte Bedienung auf kleinen Smartphones. Tabellen bleiben horizontal
   scrollbar, damit Verwaltungsdaten niemals abgeschnitten werden. */
@media (max-width: 480px) {
  .app-ui header { position: static; padding: .7rem .8rem; }
  .app-ui .page-content { margin: 1rem auto 2rem; padding: 0 .7rem; }
  .app-ui .page-title { min-height: auto; font-size: 1.45rem; }
  .app-ui .page-title::after { display: none; }
  .app-ui .card, .app-ui form { padding: .85rem; border-radius: .7rem; }
  .app-ui input, .app-ui select, .app-ui textarea { min-height: 2.7rem; font-size: 16px; }
  .app-ui button, .app-ui .button { min-height: 2.55rem; text-align: center; }
  .app-ui .copy-table td:last-child { min-width: 14rem; }
  .app-ui .copy-table td:last-child .compact-button { min-height: 2.2rem; }
  .app-ui .toast-area { right: .6rem; bottom: .6rem; width: calc(100vw - 1.2rem); }
  .book-labels { grid-template-columns: 1fr; }
}

/* Druckbogen für Einzel- und Sammelausdrucke. */
.person-sheet { border: 2px solid #123b5d; box-shadow: none; }
.person-sheet h1 { letter-spacing: .02em; }
.person-sheet h1::after { content: 'Oberschule Blumenthal'; float: right; font-size: .65em; font-weight: 500; padding-top: .25rem; }
.person-sheet dl { border-radius: .25rem; overflow: hidden; }
.person-sheet dt { color: #123b5d; }
.person-sheet .notice { color: #43515d; font-size: .9em; }
.print-window { background: #fff; }
.print-window main { max-width: 900px; margin: 1.25rem auto; padding: 0 1.25rem; }
.print-window .person-sheet { margin: 0; }
.person-sheet { font-size: 1.08rem; }
.person-sheet dt, .person-sheet dd { padding: .72rem; }
@media print {
  .person-sheet { border: 1px solid #123b5d; }
  .person-sheet h1::after { display: block; }
  .person-sheet dd { font-weight: 500; }
  .person-sheet .notice { margin-top: .55rem; padding-top: .45rem; font-size: .82em; }
}

/* Klassenlisten: kompakte Tabellenansicht auf einer A4-Querformatseite. */
@media print {
  @page class-list { size: A4 landscape; margin: 8mm; }
  main > h1 { font-size: 14pt; margin: 0 0 4mm; }
  main > table { table-layout: fixed; }
  main > table th, main > table td { padding: 2mm 2.5mm; font-size: 8pt; }
  main > table th { background: #e8f0f5 !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  /* Klassenlisten bleiben trotz aller Zugangsdaten auf einer Seite kompakt. */
  table.class-list th, table.class-list td { padding: 1mm 1.3mm; font-size: 8.3pt; line-height: 1.14; white-space: nowrap; }
  table.class-list th { font-size: 7.8pt; }
  table.class-list th:nth-child(1) { width: 3%; }
  table.class-list th:nth-child(2) { width: 20%; }
  table.class-list th:nth-child(3) { width: 13%; }
  table.class-list th:nth-child(4), table.class-list th:nth-child(5) { width: 15%; }
  table.class-list th:nth-child(6) { width: 10%; }
  table.class-list th:nth-child(7) { width: 24%; }
  .class-list .print-only { display: table-cell !important; }
  .class-list .screen-password { display: none !important; }
  .class-list .screen-number { display: none !important; }
  .class-list .print-number { display: inline !important; }
}

/* Einheitliches, zurückhaltendes Oberflächendesign. */
@media screen {
:root { --ink: #172b3a; --muted: #617180; --line: #dbe5eb; --surface: #fff; --surface-soft: #f7fafc; --accent: #1769aa; --accent-dark: #123b5d; }
body { background: linear-gradient(145deg, #f3f7fa 0%, #edf3f7 100%); color: var(--ink); }
header { background: linear-gradient(115deg, #0d304d, #174e75); box-shadow: 0 3px 14px rgb(11 40 62 / .2); }
.brand { letter-spacing: .01em; }
header nav a { padding: .38rem .55rem; border-radius: .35rem; transition: background .16s ease, color .16s ease; }
header nav a:hover { background: rgb(255 255 255 / .16); color: #fff; }
main { max-width: 1260px; }
h1 { margin: 0 0 1.15rem; letter-spacing: -.025em; }
h2 { color: var(--accent-dark); letter-spacing: -.012em; }
.card, form { border: 1px solid var(--line); border-radius: .8rem; box-shadow: 0 5px 18px rgb(17 50 72 / .07); }
.card { background: linear-gradient(180deg, #fff, #fbfdfe); }
form { background: var(--surface); }
label { color: #314958; font-size: .93rem; }
input, select, textarea { border-color: #c6d4dd; background: #fff; border-radius: .45rem; transition: border-color .15s ease, box-shadow .15s ease; }
input:focus, select:focus, textarea:focus { outline: none; border-color: #4c92c8; box-shadow: 0 0 0 3px rgb(58 137 196 / .16); }
button, .button { background: linear-gradient(135deg, #1769aa, #125786); box-shadow: 0 2px 5px rgb(14 60 91 / .19); transition: transform .12s ease, box-shadow .12s ease, filter .12s ease; }
button:hover, .button:hover { transform: translateY(-1px); box-shadow: 0 5px 12px rgb(14 60 91 / .23); }
button:active, .button:active { transform: translateY(0); }
button:focus-visible, .button:focus-visible { outline: 3px solid rgb(76 146 200 / .38); outline-offset: 2px; }
table { border: 1px solid var(--line); border-radius: .65rem; overflow: hidden; box-shadow: 0 3px 12px rgb(17 50 72 / .05); }
th { background: #eaf2f7; color: #23455e; font-size: .86rem; letter-spacing: .015em; text-transform: uppercase; }
tbody tr { transition: background .12s ease; }
tbody tr:nth-child(even) { background: #fbfdfe; }
tbody tr:hover { background: #eef7fc; }
td, th { border-bottom-color: #e2eaef; }
.tag { letter-spacing: .03em; box-shadow: inset 0 0 0 1px rgb(0 0 0 / .04); }
.flash { border: 1px solid #bfe0ca; box-shadow: 0 3px 10px rgb(19 107 59 / .08); }
.flash.error { border-color: #f1bbbb; }
.subnav { box-shadow: 0 3px 10px rgb(13 48 77 / .12); }
.subnav a { box-shadow: 0 1px 2px rgb(0 0 0 / .08); }
.metric { font-variant-numeric: tabular-nums; }
@media (max-width: 760px) { h1 { margin-bottom: .8rem; } .card, form { border-radius: .65rem; } }
}

/* Anwendungsschale: bewusst eigenständig von den Drucklayouts gehalten. */
@media screen {
  .app-ui { min-height: 100vh; background: #f3f6f9; }
  .app-ui header { position: sticky; top: 0; z-index: 100; min-height: 68px; padding: .8rem max(5%, calc((100% - 1180px) / 2)); background: linear-gradient(115deg, #1d76ad, #38a0d5); }
  .app-ui .brand { display: flex; align-items: center; gap: .55rem; font-size: 1.08rem; }
  .app-ui .brand::before { content: '▦'; display: grid; place-items: center; width: 1.75rem; height: 1.75rem; border-radius: .45rem; background: rgb(255 255 255 / .16); font-size: 1.1rem; }
  .app-ui header nav { margin-left: auto; align-items: center; }
  .app-ui header nav a { color: #dcebf5; font-size: .9rem; font-weight: 650; }
  .app-ui header nav a.active { color: #fff; background: rgb(255 255 255 / .18); }
  .app-ui .account-menu { position: relative; z-index: 1000; flex: 0 0 auto; margin-left: .15rem; }
  .app-ui .account-menu summary { display: grid; place-items: center; width: 2.25rem; height: 2.25rem; color: #fff; border: 1px solid rgb(255 255 255 / .3); border-radius: 50%; background: rgb(255 255 255 / .1); cursor: pointer; list-style: none; }
  .app-ui .account-menu summary::-webkit-details-marker { display: none; }
  .app-ui .account-menu[open] summary { background: #fff; color: #125786; }
  .app-ui .account-avatar { position: relative; display: block; width: 1rem; height: 1rem; border: 2px solid currentColor; border-radius: 50% 50% 42% 42%; border-top: 0; transform: translateY(.2rem); }
  .app-ui .account-avatar::before { content: ''; position: absolute; width: .43rem; height: .43rem; left: 50%; top: -.5rem; border-radius: 50%; background: currentColor; transform: translateX(-50%); }
  .app-ui .account-menu-panel { position: absolute; z-index: 1001; right: 0; top: calc(100% + .55rem); display: grid; min-width: 12.5rem; padding: .4rem; border: 1px solid #d5e1e8; border-radius: .65rem; background: #fff; box-shadow: 0 14px 35px rgb(7 36 55 / .25); }
  .app-ui .account-menu-panel a { padding: .62rem .7rem; border-radius: .4rem; color: #24475f; font-size: .88rem; font-weight: 650; text-decoration: none; white-space: nowrap; }
  .app-ui .account-menu-panel a:hover { background: #eef6fb; color: #125786; }
  .app-ui .page-content { max-width: 1180px; margin: 2.25rem auto 4rem; padding: 0 1.25rem; }
  .app-ui .page-title { display: flex; align-items: center; min-height: 3.35rem; margin: 0 0 1.4rem; color: #123b5d; font-size: clamp(1.6rem, 3vw, 2.15rem); font-weight: 760; letter-spacing: -.045em; }
  .app-ui .page-title::after { content: ''; height: 1px; flex: 1; margin-left: 1.15rem; background: linear-gradient(90deg, #bfd5e4, transparent); }
  .app-ui .subnav { position: relative; display: flex; align-items: center; gap: .35rem; padding: .42rem; margin: 0 0 1.3rem; border: 1px solid #1c6e9f; border-radius: .75rem; background: linear-gradient(120deg, #217bb3, #3d9fd2); overflow-x: auto; flex-wrap: nowrap; scrollbar-width: none; }
  .app-ui .subnav::-webkit-scrollbar { display: none; }
  .app-ui .subnav a { flex: 0 0 auto; padding: .48rem .72rem; border: 0; border-radius: .48rem; background: transparent; color: #dcecf7; box-shadow: none; font-size: .86rem; }
  .app-ui .subnav a:hover, .app-ui .subnav a.active { background: #fff; color: #123b5d; box-shadow: 0 2px 8px rgb(0 0 0 / .14); }
  .app-ui .card { padding: 1.35rem; border-color: #dce6ec; border-radius: .9rem; }
  .app-ui .grid { gap: 1.15rem; }
  .app-ui .grid > .card { margin: 0; min-height: 124px; }
  .app-ui .metric { margin-bottom: .25rem; color: #207eb8; font-size: 2.2rem; font-weight: 780; line-height: 1; letter-spacing: -.055em; }
  .app-ui .app-form { max-width: 100%; padding: 1.35rem; margin: 1rem 0 1.4rem; background: #fff; }
  .app-ui .app-form > h2:first-child { margin-top: 0; padding-bottom: .85rem; border-bottom: 1px solid #e2ebf0; }
  .app-ui .app-form .grid { align-items: start; }
  .app-ui input, .app-ui select, .app-ui textarea { min-height: 2.65rem; padding: .62rem .75rem; font-size: .96rem; }
  .app-ui textarea { min-height: 5.5rem; }
  .app-ui label { margin-top: .85rem; font-size: .84rem; font-weight: 720; letter-spacing: .01em; text-transform: uppercase; }
  .app-ui label:first-child { margin-top: 0; }
  .app-ui button, .app-ui .button { min-height: 2.55rem; padding: .58rem 1rem; border-radius: .5rem; background: linear-gradient(135deg, #3199d1, #227db8); font-size: .9rem; }
  .app-ui form > p:last-child { padding-top: .85rem; margin: .85rem 0 0; border-top: 1px solid #e5edf1; }
  .app-ui table { width: 100%; border-spacing: 0; border-radius: .8rem; background: #fff; }
  .app-ui th { height: 3rem; padding: .65rem .85rem; background: #f0f5f8; color: #4d6474; font-size: .72rem; font-weight: 760; letter-spacing: .055em; }
  .app-ui td { padding: .78rem .85rem; color: #273f4e; }
  .app-ui td:first-child { font-weight: 650; color: #183d58; }
  .app-ui td.list-actions { padding-right: .65rem; }
  .app-ui td.list-actions .button { min-height: 2.15rem; padding: .4rem .7rem; font-size: .8rem; }
  .app-ui .tag { min-width: 6.4rem; padding: .34rem .55rem; text-align: center; font-size: .72rem; }
  .app-ui .area-hint { margin: 0 0 .9rem; padding: .8rem .95rem; border-left: 4px solid #3199d1; border-radius: .45rem; background: #eaf6fc; color: #27536d; font-size: .92rem; }
  .app-ui .device-assignment-card { width: 100%; max-width: none; padding: 1.4rem; border: 1px solid #b8d9ea; background: linear-gradient(135deg, #f4fbff, #fff); }
  .app-ui .device-assignment-card .switch-group { width: 100%; }
  .app-ui .device-assignment-card .searchable-switch-group { grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); max-height: 25rem; }
  .app-ui .device-assignment-card h2 { margin: 0 0 .85rem; color: #1a6f9f; }
  .app-ui .assignment-current { display: grid; gap: .15rem; margin: 0 0 1rem; padding: .8rem .95rem; border: 1px solid #cbe5f2; border-radius: .65rem; background: #eaf7fd; }
  .app-ui .assignment-current span { color: #527083; font-size: .74rem; font-weight: 750; letter-spacing: .04em; text-transform: uppercase; }
  .app-ui .assignment-current strong { color: #164f73; font-size: 1.05rem; }
  .app-ui .assignment-group-hint { margin: 0 0 .65rem; color: #557286; font-size: .88rem; }
  .app-ui .device-assignment-card .assignment-search { margin-top: .55rem; }
  .app-ui .assignment-remove { background: #fff; color: #a13f3f; border: 1px solid #e4bcbc; box-shadow: none; }
  .app-ui .assignment-remove:hover { background: #fff1f1; }
  .app-ui .identifier-field { background: #edf3f6; color: #526875; cursor: not-allowed; }
  .app-ui .device-section-title { margin: 1.65rem 0 .65rem; color: #1b6e9f; font-size: 1.1rem; }
  .app-ui .page-title + .device-section-title { margin-top: 0; }
  .app-ui .device-create-form { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0 1.25rem; max-width: 900px; padding: 1.45rem; border-top: 4px solid #39a0d5; background: linear-gradient(135deg, #f7fcff, #fff); }
  .app-ui .device-create-form > div { grid-column: span 1; }
  .app-ui .device-create-form > label, .app-ui .device-create-form > textarea, .app-ui .device-create-form > p { grid-column: 1 / -1; }
  .app-ui .device-create-form > p { margin-top: 1rem; }
  .app-ui .device-filter-form { display: flex; align-items: end; gap: .65rem; max-width: 900px; padding: .85rem 1rem; margin: 0 0 1.15rem; border-radius: .65rem; background: #edf6fb; box-shadow: none; }
  .app-ui .device-filter-form input, .app-ui .device-filter-form select { flex: 1 1 14rem; }
  .app-ui .device-filter-form button { flex: 0 0 auto; }
  .app-ui .device-filter-form.is-loading { opacity: .68; pointer-events: none; }
  @media (max-width: 760px) { .app-ui .device-create-form { grid-template-columns: 1fr; } .app-ui .device-filter-form { align-items: stretch; flex-direction: column; } }
  .app-ui .list-filter, .app-ui .list-sort { padding: .5rem .65rem; margin: 0 0 .65rem; border: 1px solid #dce6ec; border-radius: .6rem; background: #fff; }
  .app-ui .toast { border: 1px solid rgb(255 255 255 / .26); border-radius: .7rem; }
  .app-ui .assignment-overlay { backdrop-filter: blur(5px); background: rgb(10 28 42 / .62); }
  .app-ui .assignment-overlay-content { border: 1px solid rgb(255 255 255 / .7); border-radius: 1rem; box-shadow: 0 24px 70px rgb(0 20 35 / .34); }
.app-ui .scanner-panel { border: 1px solid rgb(255 255 255 / .8); border-radius: 1rem; }
.book-stock-panel { width: min(760px, 100%); }
.book-stock-search-button { margin: .45rem 0 0 .4rem; }
.device-stock-search-button { margin: .45rem 0 0 .4rem; }
.device-stock-panel { width: min(700px, 100%); }
.device-stock-results { min-height: 3.2rem; max-height: min(48vh, 460px); margin-top: .75rem; overflow: auto; overscroll-behavior: contain; }
.person-search-button { margin: .45rem 0 0 .4rem; }
.person-pin-button { margin-left: .4rem; }
.person-search-panel { width: min(700px, 100%); }
.person-search-results { min-height: 3.2rem; max-height: min(48vh, 460px); margin-top: .75rem; overflow: auto; overscroll-behavior: contain; }
.book-stock-hint { color: #536b7d; font-size: .9rem; }
.book-stock-results { min-height: 3.2rem; max-height: min(48vh, 460px); margin-top: .75rem; overflow: auto; overscroll-behavior: contain; }
.book-stock-result-list { display: grid; gap: .45rem; }
.book-stock-result { display: flex; align-items: center; gap: .75rem; width: 100%; color: #17212b; background: #f6fafc; border: 1px solid #d9e5eb; text-align: left; }
.book-stock-result:hover { background: #e6f3f9; border-color: #7aa8c6; }
.book-stock-result-cover { width: 42px; height: 58px; flex: 0 0 auto; object-fit: contain; background: #e7eef2; }
.book-stock-result-text { min-width: 0; line-height: 1.35; }
  @media (max-width: 760px) {
    .app-ui header { position: static; min-height: auto; padding: .85rem 1rem; }
    .app-ui header nav { margin-left: 0; }
    .app-ui .page-content { margin: 1.15rem auto 2.5rem; padding: 0 .85rem; }
    .app-ui .page-title { min-height: auto; font-size: 1.55rem; }
    .app-ui .page-title::after { margin-left: .8rem; }
    .app-ui .app-form, .app-ui .card { padding: 1rem; }
    .app-ui th, .app-ui td { padding: .65rem .7rem; }
  }
}
/* Changelog im Software-Update: kompakt, aber bei vielen Builds gut lesbar. */
.app-ui .page-title.update-title::after{order:1}.app-ui .page-title .update-version{order:2;margin-left:1rem;white-space:nowrap;color:#527188;font-size:.42em;font-weight:700;letter-spacing:0}.changelog-box{margin:1.5rem 0}.changelog-scroll{max-height:25rem;overflow:auto;border:1px solid #d8e2ed;border-radius:12px;background:#fff}.build-entry{border-bottom:1px solid #edf1f5}.build-entry:last-child{border:0}.build-entry summary{display:flex;justify-content:space-between;align-items:center;gap:1rem;cursor:pointer;padding:.8rem;list-style:none}.build-entry summary::-webkit-details-marker{display:none}.build-entry summary::after{content:'⌄';color:#1d5f91;font-size:1.15rem}.build-entry[open]>summary::after{transform:rotate(180deg)}.build-entry summary span:first-child{font-weight:700;color:#1d5f91;white-space:nowrap}.build-entry summary span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.build-details{padding:0 .9rem .8rem;background:#f7fafc}.build-details ul{margin:.1rem 0 .55rem;padding-left:1.25rem}.build-details li{margin:.2rem 0}@media(max-width:600px){.build-entry summary{align-items:flex-start}.build-entry summary span:first-child{white-space:normal}.build-entry summary span:nth-child(2){white-space:normal}.app-ui .page-title .update-version{font-size:.5em}}
.book-price-suggestion{margin-top:.45rem;background:#3a7d9f;font-size:.86rem}
.book-price-links{display:flex;flex-wrap:wrap;gap:.65rem;margin:.3rem 0 0}.book-price-links a{color:#1d6f9f;font-size:.82rem;font-weight:650;text-decoration:underline;text-underline-offset:.14em}.book-price-links a:hover{color:#104a70}
.book-title-list{display:block!important;width:100%;margin:1rem 0}.book-title-list>h2{margin-top:0}.book-title-scroll{display:block;min-height:5rem;max-width:100%;overflow-x:auto}.book-title-list .book-title-table{display:table!important;width:100%!important;visibility:visible!important;opacity:1!important}.book-title-list .book-title-action{text-align:right;white-space:nowrap}.book-title-list .book-cover-missing{display:inline-grid;place-items:center;width:3.5rem;height:4.7rem;border-radius:.45rem;background:#edf3f6;color:#668092;font-size:.7rem;text-align:center}
.app-ui .ipad-overview-page>.ipad-overview-grid{grid-column:1/-1;width:100%;max-width:none}.app-ui .ipad-overview-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;width:100%;max-width:none}.app-ui .ipad-overview-grid>.card{display:flex;flex-direction:column;min-width:0;height:27rem;max-height:27rem;overflow:hidden}.app-ui .ipad-overview-grid>.card h2{display:flex;align-items:center;gap:.5rem;flex:0 0 auto}.app-ui .ipad-overview-grid>.card h2 .tag{margin-left:auto;flex:0 0 auto}.app-ui .ipad-overview-grid>.card table{display:block;flex:1 1 auto;max-height:none;overflow:auto}.app-ui .ipad-overview-grid>.card table tbody{display:table;width:100%;min-width:100%;table-layout:fixed}.app-ui .ipad-overview-grid>.card table th{position:sticky;top:0;z-index:1}.app-ui .ipad-overview-grid>.card table td:first-child,.app-ui .ipad-overview-grid>.card table td:nth-child(2){font-size:.82rem}.app-ui .ipad-overview-grid>.card:nth-of-type(1) table th:nth-child(1),.app-ui .ipad-overview-grid>.card:nth-of-type(1) table td:nth-child(1),.app-ui .ipad-overview-grid>.card:nth-of-type(4) table th:nth-child(1),.app-ui .ipad-overview-grid>.card:nth-of-type(4) table td:nth-child(1){width:58%}.app-ui .ipad-overview-grid>.card:nth-of-type(1) table th:nth-child(2),.app-ui .ipad-overview-grid>.card:nth-of-type(1) table td:nth-child(2),.app-ui .ipad-overview-grid>.card:nth-of-type(4) table th:nth-child(2),.app-ui .ipad-overview-grid>.card:nth-of-type(4) table td:nth-child(2){width:17%}.app-ui .ipad-overview-grid>.card:nth-of-type(6) table th:nth-child(1),.app-ui .ipad-overview-grid>.card:nth-of-type(6) table td:nth-child(1){width:39%}.app-ui .ipad-overview-grid>.card:nth-of-type(6) table th:nth-child(2),.app-ui .ipad-overview-grid>.card:nth-of-type(6) table td:nth-child(2){width:15%}.app-ui .ipad-overview-grid>.card:nth-of-type(3) table th:nth-child(1),.app-ui .ipad-overview-grid>.card:nth-of-type(3) table td:nth-child(1){width:36%;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem}.app-ui .ipad-overview-grid>.card:nth-of-type(3) table th:nth-child(2),.app-ui .ipad-overview-grid>.card:nth-of-type(3) table td:nth-child(2){width:34%}@media(max-width:1000px){.app-ui .ipad-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:680px){.app-ui .ipad-overview-grid{grid-template-columns:1fr}}
@media(max-width:680px){.books-titles .book-title-list .book-title-table,.books-library .book-title-list .book-title-table{display:block!important;background:transparent}.books-titles .book-title-list .book-title-table tr:first-child,.books-library .book-title-list .book-title-table tr:first-child{display:none}.books-titles .book-title-list .book-title-table tbody,.books-library .book-title-list .book-title-table tbody{display:grid;gap:.65rem}.books-titles .book-title-list .book-title-table tr,.books-library .book-title-list .book-title-table tr{display:grid;grid-template-columns:3.7rem minmax(0,1fr) auto;gap:.15rem .65rem;align-items:center;padding:.7rem;border:1px solid #d7e3ea;border-radius:.7rem;background:#fff;box-shadow:0 2px 7px rgb(12 55 82 / .07)}.books-titles .book-title-list .book-title-table td,.books-library .book-title-list .book-title-table td{display:block;padding:0;border:0;min-width:0}.books-titles .book-title-list .book-title-table td:nth-child(1),.books-library .book-title-list .book-title-table td:nth-child(1){grid-row:1 / span 2}.books-titles .book-title-list .book-title-table td:nth-child(2),.books-library .book-title-list .book-title-table td:nth-child(2){grid-column:2;font-size:.95rem}.books-titles .book-title-list .book-title-table td:nth-child(3),.books-library .book-title-list .book-title-table td:nth-child(3){grid-column:2;color:#587080;font-size:.8rem}.books-titles .book-title-list .book-title-table td:nth-child(4),.books-library .book-title-list .book-title-table td:nth-child(4),.books-titles .book-title-list .book-title-table td:nth-child(5),.books-library .book-title-list .book-title-table td:nth-child(5){grid-row:3;font-size:.82rem;color:#466275}.books-titles .book-title-list .book-title-table td:nth-child(4),.books-library .book-title-list .book-title-table td:nth-child(4){grid-column:1 / span 2}.books-titles .book-title-list .book-title-table td:nth-child(5),.books-library .book-title-list .book-title-table td:nth-child(5){grid-column:3;text-align:right}.books-titles .book-title-list .book-title-table td:last-child,.books-library .book-title-list .book-title-table td:last-child{grid-column:3;grid-row:1 / span 2;align-self:center}.books-titles .book-title-list .book-title-table td:last-child .button,.books-library .book-title-list .book-title-table td:last-child .button{white-space:nowrap;padding:.48rem .65rem;font-size:.82rem}}
.pwa-install{margin-left:.35rem;white-space:nowrap}.pwa-network-status{position:fixed;right:1rem;bottom:1rem;z-index:10001;max-width:min(28rem,calc(100vw - 2rem));padding:.65rem .85rem;border-radius:.7rem;background:#824a16;color:#fff;box-shadow:0 8px 24px #0003;font-weight:700}.pwa-network-status[hidden]{display:none}@media(max-width:700px){.pwa-install{margin:.45rem 0 0}.pwa-network-status{bottom:.75rem;right:.75rem}}
.library-topics-add{display:flex;align-items:end;gap:.55rem;padding:.65rem .8rem;max-width:42rem}.library-topics-add label{margin:0;white-space:nowrap}.library-topics-add input{min-width:12rem;flex:1}.library-topics-add button{padding:.48rem .75rem}.library-topics-list{padding:.25rem .55rem;max-width:42rem}.library-topics-list table{margin:0}.library-topics-list th,.library-topics-list td{padding:.4rem .55rem;vertical-align:middle}.library-topics-list td:last-child{width:1%;white-space:nowrap}.library-topics-list form{margin:0}.library-topics-list .delete-button{padding:.34rem .6rem;font-size:.82rem}@media(max-width:600px){.library-topics-add{align-items:stretch;flex-wrap:wrap}.library-topics-add label{width:100%}.library-topics-add input{min-width:0}.library-topics-list{padding:.2rem}}
.library-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.7rem;margin:0 0 1rem}.library-toolbar>details.card{margin:0;flex:0 0 auto;padding:.3rem .5rem;border:1px solid #d8e4ee;box-shadow:none;background:#fff;border-radius:.7rem}.library-toolbar>details.card summary,.library-toolbar>.library-topic-button{display:inline-flex;align-items:center;min-height:2.2rem;padding:.42rem .72rem;border-radius:.55rem;font-size:.88rem}.library-toolbar>details.card summary{margin:-.05rem}.library-toolbar>details.card[open]{flex:1 0 100%;order:2;padding:.8rem}.library-toolbar>details.card[open] summary{margin:0 0 .75rem}.library-toolbar>.library-topic-button{margin-left:auto;order:1}.library-topics-add,.library-topics-list{box-shadow:none;border:1px solid #dde7ef}.library-topics-add{border-radius:.65rem}.library-topics-list{border-radius:.65rem}.library-topics-list .delete-button{box-shadow:none}@media(max-width:600px){.library-toolbar{align-items:stretch}.library-toolbar>details.card{width:100%}.library-toolbar>.library-topic-button{margin-left:auto}}
.dashboard-welcome{margin-top:0}.dashboard-device-overview{margin-top:2rem}.dashboard-device-overview>.card{display:flex;flex-direction:column;min-width:0;height:25rem;max-height:25rem;overflow:hidden}.dashboard-device-overview>.card h2{flex:0 0 auto}.dashboard-device-overview>.card table{display:block;flex:1 1 auto;overflow:auto;margin:0}.dashboard-device-overview>.card table tbody{display:table;width:100%;min-width:100%;table-layout:fixed}.dashboard-device-overview>.card table th{position:sticky;top:0;z-index:1}@media(max-width:680px){.dashboard-device-overview{margin-top:1.4rem}.dashboard-device-overview>.card{height:22rem;max-height:22rem}}
.absence-dashboard-section{margin-top:2rem}.absence-dashboard-section>h2{margin:0 0 .8rem;color:#234b66}.absence-dashboard-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.absence-dashboard-metric{display:flex;flex-direction:column;gap:.35rem;min-height:7.5rem;text-decoration:none;color:#234b66;transition:transform .15s ease,box-shadow .15s ease}.absence-dashboard-metric:hover{transform:translateY(-2px);box-shadow:0 .45rem 1.2rem rgba(31,82,112,.13)}.absence-dashboard-metric .metric{color:#1769aa}@media(max-width:700px){.absence-dashboard-metrics{grid-template-columns:1fr}.absence-dashboard-metric{min-height:0}}
.dashboard-ipads-section{margin-top:2rem}.dashboard-ipads-section>h2{margin:0 0 .8rem;color:#234b66}
.app-ui .ipad-overview-grid>.card h2{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;padding-right:0}.app-ui .ipad-overview-grid>.card h2 .tag{position:static;margin:0}
.library-topic-row{display:flex;justify-content:flex-end;margin:-.4rem 0 .75rem}.library-topic-row .button{min-height:2.2rem;padding:.42rem .72rem;font-size:.88rem}
.library-topics-list .delete-button{min-height:1.7rem;padding:.2rem .45rem;font-size:.74rem;line-height:1;border-radius:.42rem}
body[data-page="user_detail"] form section.card:has(select[name="imap_server_id"]) { display:none; }
body[data-page="imap_servers"] main>table td{vertical-align:middle}
.mail-domain-input{display:flex;align-items:center;gap:.35rem}.mail-domain-input span{font-weight:700;white-space:nowrap}.mail-domain-input input{margin:0}
.book-copy-overlay .copy-history{margin-top:1rem;padding-top:.8rem;border-top:1px solid #dbe6ed}.book-copy-overlay .copy-history h3{margin:0 0 .45rem;font-size:.9rem}.book-copy-overlay .copy-history-list{max-height:9rem;overflow:auto}.book-copy-overlay .copy-history-list p{margin:.35rem 0;padding:.35rem .45rem;background:#f6fafc;border-radius:.4rem}
.copy-detail-summary{display:flex;align-items:center;gap:.65rem;margin:0 0 1rem;padding:.55rem;background:#f4f8fb;border-radius:.55rem}.copy-detail-summary img{width:3.2rem;height:4.4rem;object-fit:contain;background:#e8f0f5;border-radius:.3rem}.copy-detail-summary strong,.copy-detail-summary small{display:block}.copy-detail-summary small{margin-top:.2rem;color:#5b7485}
.copy-table a[href*="copy_id"]{font-size:0!important}.copy-table a[href*="copy_id"]::after{content:"Details";font-size:.82rem}
.book-cover-edit-tools{display:flex;align-items:center;gap:.65rem;padding:.65rem .8rem;box-shadow:none}.book-cover-edit-tools h2{font-size:.9rem;margin:0}.book-cover-edit-tools>.book-cover{width:6.5rem;height:9rem;object-fit:contain}.book-cover-edit-tools form{display:flex;align-items:center;gap:.45rem;margin:0}.book-cover-edit-tools label{margin:0;font-size:.8rem}.book-cover-edit-tools input[type=file]{max-width:13rem;margin:0;font-size:.78rem}.book-cover-edit-tools p{margin:0}@media(max-width:650px){.book-cover-edit-tools{flex-wrap:wrap}.book-cover-edit-tools form{flex-wrap:wrap}}
.book-cover-inline{margin-top:1rem;padding-top:.85rem;border-top:1px solid #dbe6ed}.book-cover-inline>label{font-weight:700;color:#476275}.book-cover-inline-content{display:flex;align-items:center;gap:.75rem;margin-top:.45rem}.book-cover-inline .book-cover{width:6.5rem;height:9rem;object-fit:contain;background:#f1f6f9;border-radius:.45rem}.book-cover-empty{display:grid;place-items:center;width:6.5rem;height:9rem;background:#f1f6f9;border-radius:.45rem;color:#60798a;font-size:.8rem}.book-cover-inline-actions{display:flex;flex:1;flex-wrap:wrap;align-items:center;gap:.45rem}.book-cover-inline-actions label{font-size:.8rem}.book-cover-inline-actions input{max-width:11rem;margin:.2rem 0 0}@media(max-width:600px){.book-cover-inline-content{align-items:flex-start}.book-cover-inline-actions{flex-direction:column;align-items:stretch}.book-cover-inline-actions input{max-width:100%}}
.book-view-page{max-width:70rem;margin:auto}.book-view-heading{display:flex;justify-content:space-between;gap:1rem;align-items:end;margin:0 0 1rem}.book-view-heading h1{margin:.15rem 0;font-size:clamp(1.6rem,4vw,2.4rem)}.book-view-heading p{margin:0;color:#567184}.book-view-kind{font-size:.75rem!important;font-weight:800;text-transform:uppercase;letter-spacing:.09em;color:#4f8fce!important}.book-stock{display:grid;place-items:center;min-width:5.6rem;padding:.6rem .8rem;border-radius:.8rem;background:#e8f4ec;color:#197343;font-weight:800;font-size:1.15rem}.book-stock small{font-size:.68rem;font-weight:700;text-transform:uppercase}.book-view{display:grid;grid-template-columns:minmax(15rem,23rem) minmax(0,1fr);gap:1.6rem;align-items:start}.book-view-cover{display:grid;place-items:center;box-sizing:border-box;height:30rem;padding:1.5rem;overflow:hidden;border-radius:.75rem;background:#f1f6f9}.book-view-cover .book-cover{display:block;width:auto!important;height:auto!important;max-width:92%!important;max-height:92%!important;object-fit:contain!important;object-position:center;box-shadow:0 .5rem 1.2rem rgb(26 60 84 / .22)}.book-view dl{display:grid;grid-template-columns:minmax(10rem,1fr) minmax(0,2fr);gap:.65rem 1rem;margin:0}.book-view dt{font-weight:700;color:#476275}.book-view dd{margin:0;padding-bottom:.55rem;border-bottom:1px solid #e4edf2}.book-description{line-height:1.6}@media(max-width:600px){.book-view-heading{align-items:start}.book-stock{min-width:4.5rem}.book-view{grid-template-columns:1fr}.book-view-cover{max-width:18rem;height:25rem}.book-view dl{grid-template-columns:1fr}.book-view dt{margin-top:.45rem}}
.book-view-edit input,.book-view-edit select,.book-view-edit textarea{width:100%;box-sizing:border-box}.book-view-edit textarea{min-height:8rem;resize:vertical}.book-view-edit select[multiple]{min-height:8rem}.book-view-edit .detail-actions{display:flex;justify-content:flex-end;gap:.65rem}
.book-view-tools,.book-view-copies{margin-top:1rem}.book-view-tools .actions{display:inline-flex;vertical-align:bottom;gap:.45rem;align-items:end;margin:.35rem .65rem .35rem 0}.book-view-tools label{display:grid;gap:.2rem;font-size:.8rem}.book-view-copies details{margin-top:.75rem}.book-view-copies details form{display:flex;gap:.65rem;flex-wrap:wrap;align-items:end;margin-top:.7rem}.book-view-copies details label{display:grid;gap:.2rem;font-size:.8rem}
.book-view-tools.card{padding:.25rem 0;margin:0 0 1rem;background:transparent;box-shadow:none}.book-view-tools h2{margin:.35rem 0;font-size:.92rem}.book-view-tools .actions{padding:0;margin:.15rem .55rem .15rem 0;box-shadow:none;background:transparent}.book-view-tools .actions input[type=file]{max-width:13rem;padding:.35rem;background:transparent;border:0}.book-view-tools .actions button{padding:.42rem .62rem;font-size:.82rem}.book-view-copies{max-height:none}.book-view-copies .copy-table{margin-top:.6rem}
.book-view-edit .book-description textarea{min-height:15rem}
.book-view-cover:has(.book-cover-actions){display:flex;flex-direction:column;justify-content:center;gap:.7rem}.book-view-cover:has(.book-cover-actions) .book-cover{max-height:78%!important}.book-cover-actions{display:flex;flex-wrap:wrap;align-items:end;justify-content:center;gap:.35rem;width:100%}.book-cover-actions label{display:grid;gap:.18rem;color:#476275;font-size:.72rem;font-weight:700}.book-cover-actions input[type=file]{width:10rem;max-width:100%;padding:.22rem;border:0;background:transparent;font-size:.72rem}.book-cover-actions button{padding:.38rem .52rem;font-size:.76rem}.cover-action-form{display:none}
.book-create-form{grid-template-columns:minmax(15rem,23rem) minmax(0,1fr)!important;gap:1.35rem!important;background:linear-gradient(135deg,#f8fcff,#fff)!important;border-top:4px solid #38a0d5}.book-create-form>div:first-of-type{padding:.2rem .85rem .8rem;border-radius:.7rem;background:#f1f6f9}.book-create-form .book-cover-preview{display:grid;place-items:center;min-height:12rem;margin:.75rem 0;padding:.8rem;border-radius:.65rem;background:#e5eef4;text-align:center}.book-create-form .book-cover-preview .book-cover{width:auto;max-width:100%;max-height:10rem;object-fit:contain}.book-create-form .book-cover-preview span{margin-top:.5rem}.book-create-form textarea[name=description]{min-height:12rem}.book-create-form p:last-child{display:flex;justify-content:flex-end}@media(max-width:700px){.book-create-form{grid-template-columns:1fr!important}.book-create-form>div:first-of-type{padding:.2rem 0;background:transparent}.book-create-form .book-cover-preview{max-width:18rem}}
.book-create-cover-upload{font-size:.82rem;color:#476275}.book-create-cover-upload input{margin-top:.25rem;padding:.35rem;background:transparent;border:0}
.book-view-copies .copy-table td:last-child{justify-content:flex-end;text-align:right;white-space:nowrap}.book-view-copies .copy-table td:last-child .button{margin:0 0 0 .35rem}
.book-issue-status{min-height:0;margin:0 0 .75rem}.book-issue-status .book-return-cover{min-width:3.8rem}.book-issue-status .book-return-cover img{width:3.6rem;max-height:5rem;object-fit:contain}.book-issue-status .book-return-details p{margin:.12rem 0}.book-issue-status .book-return-details p:last-child{color:#4c7186;font-size:.86rem}
.book-copy-overlay .overlay-actions{display:flex;align-items:center;gap:.55rem}.book-copy-overlay .overlay-actions [data-action="save"]{order:2;margin-left:auto}.book-copy-overlay .overlay-actions [data-action="retire"]{order:1}
.book-available-copies{margin-top:1rem}.book-available-copies details.card{margin:0;padding:.3rem .5rem;border:1px solid #d8e4ee;box-shadow:none;background:#fff;border-radius:.7rem}.book-available-copies details.card summary{display:flex;align-items:center;min-height:2.2rem;padding:.42rem .72rem;color:#1f5577;font-size:.88rem;font-weight:650;cursor:pointer}.book-available-copies details.card[open]{padding:.8rem}.book-available-copies details.card[open] summary{margin:0 0 .7rem}.book-available-panel{padding:0;background:transparent}.book-available-panel h2{margin:0 0 .75rem;color:#214f6d;font-size:1rem}.book-available-copy-list{display:grid;gap:.45rem;max-height:22rem;overflow:auto;padding-right:.2rem}.book-available-copy{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.65rem .75rem;border:1px solid #dce7ed;border-radius:.55rem;background:#f9fcfd}.book-available-copy span{display:grid;gap:.15rem}.book-available-copy small{color:#557183}.book-available-copy .button{padding:.42rem .7rem;font-size:.84rem}
.book-read-only .book-view-copies{display:none}
.cover-upload-overlay label{display:grid;gap:.35rem}.cover-upload-overlay small{display:block;margin-top:.5rem;color:#567184}.cover-upload-overlay input[type=file]{padding:.55rem}
.book-view-heading{padding:1.15rem 1.3rem;border-radius:.8rem;background:linear-gradient(115deg,#1d76ad,#38a0d5);box-shadow:0 3px 14px rgb(11 40 62 / .16)}.book-view-heading h1,.book-view-heading p,.book-view-heading .book-view-kind{color:#fff!important}.book-view-heading .book-view-kind{opacity:.86}.book-view-heading .book-stock{background:rgb(255 255 255 / .18);color:#fff}.book-view-heading .book-stock small{color:#fff}
@media(max-width:700px){body[data-page="imap_servers"] main>table{display:block;background:transparent}body[data-page="imap_servers"] main>table tr:first-child{display:none}body[data-page="imap_servers"] main>table tbody{display:grid;gap:.65rem}body[data-page="imap_servers"] main>table tr{display:block;padding:.7rem;border:1px solid #d7e3ea;border-radius:.7rem;background:#fff}body[data-page="imap_servers"] main>table td{display:block;padding:.25rem 0;border:0}body[data-page="imap_servers"] main>table input,body[data-page="imap_servers"] main>table select{width:100%}}
.library-topics-list td form{margin:0;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
@media (max-width: 680px) {
  .books-titles main > table, .books-library main > table { display: block; background: transparent; }
  .books-titles main > table tr:first-child, .books-library main > table tr:first-child { display: none; }
  .books-titles main > table tbody, .books-library main > table tbody { display: grid; gap: .65rem; }
  .books-titles main > table tr, .books-library main > table tr { display: grid; grid-template-columns: 3.7rem minmax(0,1fr) auto; gap: .15rem .65rem; align-items: center; padding: .7rem; border: 1px solid #d7e3ea; border-radius: .7rem; background: #fff; box-shadow: 0 2px 7px rgb(12 55 82 / .07); }
  .books-titles main > table td, .books-library main > table td { display: block; padding: 0; border: 0; min-width: 0; }
  .books-titles main > table td:nth-child(1), .books-library main > table td:nth-child(1) { grid-row: 1 / span 2; }
  .books-titles main > table td:nth-child(2), .books-library main > table td:nth-child(2) { grid-column: 2; font-size: .95rem; }
  .books-titles main > table td:nth-child(3), .books-library main > table td:nth-child(3) { grid-column: 2; color: #587080; font-size: .8rem; }
  .books-titles main > table td:nth-child(4), .books-library main > table td:nth-child(4), .books-titles main > table td:nth-child(5), .books-library main > table td:nth-child(5) { grid-row: 3; font-size: .82rem; color: #466275; }
  .books-titles main > table td:nth-child(4), .books-library main > table td:nth-child(4) { grid-column: 1 / span 2; }
  .books-titles main > table td:nth-child(5), .books-library main > table td:nth-child(5) { grid-column: 3; text-align: right; }
  .books-titles main > table td:last-child, .books-library main > table td:last-child { grid-column: 3; grid-row: 1 / span 2; align-self: center; }
  .books-titles main > table td:last-child .button, .books-library main > table td:last-child .button { white-space: nowrap; padding: .48rem .65rem; font-size: .82rem; }
}
.library-catalog-fields{margin:.75rem 0;padding:.55rem .7rem;border:1px solid #dbe6ef;border-radius:.55rem;background:#f8fbfd}.library-catalog-fields h2{margin:0 0 .25rem;color:#315b78;font-size:.82rem;text-transform:uppercase;letter-spacing:.04em}.library-catalog-fields label:first-of-type{margin-top:.25rem}
.book-view-heading .book-stock{background:#e8f4ec;color:#197343}.book-view-heading .book-stock small{color:#197343}

/* iPads verwenden dieselbe ruhige Karten- und Bestandslogik wie Bücher. */
.ipads-ui .page-title{margin-bottom:1rem}
.ipads-ui .page-title::before{content:'iPad';margin-right:.6rem;padding:.3rem .5rem;border-radius:.42rem;background:#e4f3fb;color:#2479ac;font-size:.62rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.ipad-inventory-page .device-filter-form{display:grid;grid-template-columns:minmax(11rem,.7fr) minmax(16rem,1.35fr) auto;align-items:end;gap:.65rem;width:100%;max-width:none;margin:0;padding:.7rem .8rem;border:1px solid #d8e6ee;border-radius:.72rem;background:#fff;box-shadow:0 2px 8px rgb(14 60 91 / .05)}
.ipad-inventory-page .device-list-card{width:100%;margin:0;padding:1.15rem;overflow:hidden}.ipad-inventory-page .device-list-card .device-filter-form{width:100%;max-width:none;margin:0 0 .85rem}.ipad-inventory-page .device-list-card .device-table{width:100%}.known-device-condition{display:grid;gap:.18rem;margin:.7rem 0;padding:.6rem .7rem;border:1px solid #cbe4d5;border-radius:.55rem;background:#edf8f1;color:#21653d}.known-device-condition strong{font-size:.75rem;letter-spacing:.04em;text-transform:uppercase}.known-device-condition span{font-weight:700}
.ipad-inventory-page .device-filter-form label{display:grid;gap:.28rem;margin:0;color:#476275;font-size:.75rem;font-weight:750;letter-spacing:.04em;text-transform:uppercase}.ipad-inventory-page .device-filter-form input{min-width:0;width:100%}.ipad-inventory-page .device-filter-form select{width:100%}
.ipad-inventory-page .device-filter-form{grid-template-columns:minmax(16rem,1fr) auto}.ipad-inventory-page .device-status-filters{grid-column:1/-1;display:flex;align-items:center;gap:.45rem;min-width:0;margin:0;padding:0;border:0}.ipad-inventory-page .device-status-filters legend{float:left;margin:0 .35rem 0 0;color:#476275;font-size:.75rem;font-weight:750;letter-spacing:.04em;text-transform:uppercase}.ipad-inventory-page .device-status-filters label{display:inline-flex;align-items:center;gap:.28rem;min-height:2.15rem;padding:.36rem .58rem;border:1px solid #cbdde8;border-radius:.5rem;background:#fff;color:#3f6176;font-size:.78rem;font-weight:700;letter-spacing:0;text-transform:none;white-space:nowrap;cursor:pointer}.ipad-inventory-page .device-status-filters input{position:absolute;inline-size:1px!important;block-size:1px;opacity:0;pointer-events:none}.ipad-inventory-page .device-status-filters label:has(input:checked){position:relative;padding-left:1.75rem;border-color:#1e78ad;background:#d9f0fb;color:#125b84;box-shadow:0 0 0 3px rgb(47 146 201 / .19),inset 0 0 0 1px #2f92c9}.ipad-inventory-page .device-status-filters label:has(input:checked)::before{content:'✓';position:absolute;left:.56rem;font-size:.78rem;font-weight:900}.ipad-inventory-page .device-search-filter{min-width:0}
.ipad-inventory-page .device-create-form{max-width:none!important;margin:0 0 1rem;padding:1.2rem 1.3rem!important;border-top:4px solid #38a0d5!important;background:linear-gradient(135deg,#f8fcff,#fff)!important}
.ipad-inventory-page .device-create-form>p{display:flex;justify-content:flex-end}
.ipad-inventory-page .device-create-toggle{margin:0 0 1rem;padding:.3rem .5rem;border:1px solid #d8e4ee;box-shadow:none;background:#fff;border-radius:.7rem}.ipad-inventory-page .device-create-toggle summary{display:flex;align-items:center;min-height:2.2rem;padding:.42rem .72rem;color:#1f5577;font-size:.88rem;font-weight:650;cursor:pointer}.ipad-inventory-page .device-create-toggle[open]{padding:1.15rem 1.3rem;border-top:4px solid #38a0d5;background:linear-gradient(135deg,#f8fcff,#fff)}.ipad-inventory-page .device-create-toggle[open] summary{margin:0 0 .7rem;padding:0}.ipad-inventory-page .device-create-toggle[open] summary::after{content:'Schließen';margin-left:auto;color:#527184;font-size:.78rem;font-weight:700}.ipad-inventory-page .device-create-toggle .device-create-form{margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
.ipad-inventory-page .device-create-toggle .device-model-link{margin:.65rem 0 0;padding:.42rem .65rem;font-size:.8rem}
.ipad-inventory-page .device-table{table-layout:fixed}.ipad-inventory-page .device-table td{vertical-align:middle}.ipad-inventory-page .device-table td:last-child{text-align:right}.ipad-inventory-page .device-table td:last-child .button{white-space:nowrap}
.ipad-inventory-page>.device-model-link{float:right;margin:-4.25rem 0 1rem;padding:.44rem .7rem;font-size:.82rem}.ipad-inventory-page .device-filter-title{margin-top:.35rem}.ipad-inventory-page .device-table td:last-child{white-space:nowrap}.ipad-inventory-page .device-table td:last-child .button+.button{margin-left:.35rem}
.device-detail-page{max-width:70rem!important}.device-detail-page>.page-title{padding:1.15rem 1.3rem;border-radius:.8rem;background:linear-gradient(115deg,#1d76ad,#38a0d5);box-shadow:0 3px 14px rgb(11 40 62 / .16);color:#fff}.device-detail-page>.page-title::after{background:linear-gradient(90deg,rgb(255 255 255 / .35),transparent)}.device-detail-page>.page-title::before{background:rgb(255 255 255 / .18);color:#fff}
.device-view-page{max-width:70rem;margin:auto}.device-view-page .book-view-heading .book-stock{min-width:7rem;text-align:center}.device-view-info dl{display:grid;grid-template-columns:minmax(11rem,1fr) minmax(0,2fr);gap:.65rem 1rem;margin:0}.device-view-info dt{font-weight:700;color:#476275}.device-view-info dd{margin:0;padding-bottom:.55rem;border-bottom:1px solid #e4edf2}.device-view-page .detail-actions{display:flex;justify-content:flex-end;gap:.65rem}
.device-edit-heading{margin:0 0 1rem}.device-view-edit{display:grid!important;grid-template-columns:minmax(11rem,1fr) minmax(0,2fr)!important;gap:1rem 1rem;max-width:70rem!important;margin:0 0 1rem!important;padding:1.35rem!important;border-top:4px solid #38a0d5!important;background:linear-gradient(135deg,#f8fcff,#fff)!important}.device-detail-page .device-view-edit>label,.ipad-inventory-page .device-view-edit>label{grid-column:1!important;align-self:start;padding-top:.45rem;font-size:.78rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#476275}.device-detail-page .device-view-edit>input:not([type=hidden]),.device-detail-page .device-view-edit>textarea,.device-detail-page .device-view-edit>select,.device-detail-page .device-view-edit>.switch-group,.ipad-inventory-page .device-view-edit>input:not([type=hidden]),.ipad-inventory-page .device-view-edit>textarea,.ipad-inventory-page .device-view-edit>select,.ipad-inventory-page .device-view-edit>.switch-group{grid-column:2!important;min-width:0;background:#fff}.device-detail-page .device-view-edit>.switch-group,.ipad-inventory-page .device-view-edit>.switch-group{margin:0}.device-detail-page .device-view-edit>textarea,.ipad-inventory-page .device-view-edit>textarea{min-height:5.5rem}.device-view-edit>p{grid-column:1/-1!important;margin:1rem 0 0!important;padding-top:1rem;border-top:1px solid #dce8ee}
.ipad-inventory-page .device-create-form.device-view-edit{row-gap:1.45rem}
.device-detail-page .device-view-edit{row-gap:1.45rem}
.device-view-edit>.device-serial-scan{grid-column:2!important;justify-self:end;margin:-.35rem 0 .2rem;padding:.38rem .62rem;font-size:.8rem}
.device-view-edit>.ocr-scan-button{grid-column:2!important;justify-self:end;margin:.55rem 0 .4rem;padding:.38rem .62rem;font-size:.8rem}
.issue-accessories{display:grid;gap:.45rem;margin-top:.85rem;padding-top:.8rem;border-top:1px solid #dce8ee}.issue-accessories label{display:flex;align-items:center;gap:.55rem;margin:0;font-size:.86rem;text-transform:none;letter-spacing:0}.issue-accessories input[type=checkbox]{width:1.1rem;min-width:1.1rem;height:1.1rem;margin:0}
.ipad-inventory-page .device-create-form .device-serial-scan,.ipad-inventory-page .device-create-form .ocr-scan-button{display:block;width:auto;margin:.55rem 0 0 auto;padding:.38rem .62rem;font-size:.8rem}.ipad-inventory-page .device-create-form .ocr-scan-button{margin-top:.65rem}
.ipad-inventory-page .device-create-form .device-scan-actions{grid-column:2!important;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem;margin:-.35rem 0 .25rem}.ipad-inventory-page .device-create-form .device-scan-actions .device-serial-scan,.ipad-inventory-page .device-create-form .device-scan-actions .ocr-scan-button{display:inline-flex;margin:0;padding:.38rem .62rem;font-size:.8rem}
@media(max-width:800px){.ipad-inventory-page .device-view-edit>.device-serial-scan,.ipad-inventory-page .device-view-edit>.ocr-scan-button{grid-column:1!important;justify-self:end}}
@media(max-width:800px){.ipad-inventory-page .device-create-form .device-scan-actions{grid-column:1!important;margin-top:0}}
.device-detail-page .device-edit-form,.device-detail-page .device-assignment-card{margin:0 0 1rem;padding:1.25rem;border-radius:.8rem}.device-detail-page .device-edit-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 1rem}.device-detail-page .device-edit-form label,.device-detail-page .device-edit-form textarea,.device-detail-page .device-edit-form>p,.device-detail-page .device-edit-form>input[type=hidden]{grid-column:1/-1}.device-detail-page .device-edit-form>p{display:flex;justify-content:flex-end}
.device-detail-page .device-assignment-card{border:1px solid #b8d9ea;background:linear-gradient(135deg,#f4fbff,#fff)}.device-detail-page .device-assignment-card h2{margin-top:0;color:#1a6f9f}.device-detail-page .device-assignment-card>p:last-child{display:flex;justify-content:flex-end}.device-detail-page .device-history-card{padding:1.25rem}.device-history-card h2{margin-top:0}
.ipad-flow-page{max-width:70rem!important}.ipad-flow-page>.page-title{padding:0 0 .9rem;border-bottom:1px solid #dce7ed;color:#123b5d}.ipad-flow-page>.page-title::before{background:#e4f3fb;color:#2479ac}.ipad-flow-page>.page-title::after{background:linear-gradient(90deg,#bfd5e4,transparent)}.ipad-flow-card{padding:1.3rem!important;border-top:4px solid #38a0d5!important;background:linear-gradient(135deg,#f8fcff,#fff)!important}.ipad-flow-card form{margin:0;padding:0;border:0;background:transparent;box-shadow:none}.ipad-flow-card form>div{padding:.25rem .7rem .75rem;border-radius:.7rem;background:#f1f6f9}.ipad-flow-card form p:last-child{display:flex;justify-content:flex-end}.ipad-list-card h2{margin-top:0}.ipad-list-card table td{vertical-align:middle}
.ipad-flow-page .ipad-flow-card .issue-actions-left{padding-top:1rem;margin-top:1rem!important;border-top:1px solid #dce8ee}.ipad-flow-page .ipad-flow-card .compact-button{margin-top:.45rem;padding:.38rem .62rem;font-size:.8rem}.ipad-flow-page .ipad-flow-card .switch-group{margin-top:.25rem}
.ipad-overview-page{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.ipad-overview-page>.page-title,.ipad-overview-page>.subnav{grid-column:1/-1}.ipad-overview-card{display:flex;flex-direction:column;min-width:0;margin:0!important;padding:1.1rem!important}.ipad-overview-card h2{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin:0 0 .8rem;font-size:1rem}.ipad-overview-card table{display:block;overflow:auto;max-height:22rem;box-shadow:none}.ipad-overview-card table th{position:sticky;top:0;z-index:1}.ipad-overview-card td:last-child{text-align:right;white-space:nowrap}
.ipad-list-card .device-select-heading,.ipad-list-card .device-select-button{width:auto;white-space:nowrap}.ipad-list-card td:has(.device-select-button){width:1%;text-align:right}

/* Klassenwahl: Suchfeld und Öffnen bilden eine kompakte Auswahlgruppe. */
body[data-page="classes"] form.actions.no-print { display: flex; align-items: center; gap: .55rem; }
body[data-page="classes"] form.actions.no-print .class-filter-dropdown,
body[data-page="classes"] form.actions.no-print select[name="class"] { flex: 1 1 13rem; width: auto; min-width: 10rem; margin: 0; min-height: 2.45rem; padding: .48rem 2.25rem .48rem .75rem; border: 1px solid #aac4d4; border-radius: .55rem; background-color: #fff; color: #244b65; font-weight: 650; box-shadow: 0 1px 3px rgb(18 59 93 / .08); }
body[data-page="classes"] form.actions.no-print button,
body[data-page="classes"] form.actions.no-print .button { width: auto; white-space: nowrap; }

/* Druckausgaben sind bewusst vom responsiven Bildschirm-Layout getrennt. */
@media print {
  .subnav,
  .list-subnav { display: none !important; }
  /* Die Klassenliste ist eine eigenständige Druckansicht. */
  body[data-page="classes"] > header,
  body[data-page="classes"] > header * { display: none !important; }
  @page { size: A4 portrait; margin: 10mm; }
  @page data-sheet { size: A4 landscape; margin: 10mm; }
  body[data-page="classes"] { page: class-list; }
  body[data-page="person_print"] .person-sheet,
  body[data-page="print_users"] .person-sheet { page: data-sheet; }

  body[data-page="classes"] main { width: 281mm; max-width: 281mm; margin: 0; padding: 0; }
  body[data-page="classes"] .class-list { width: 281mm; table-layout: fixed; border-collapse: collapse; }
  body[data-page="classes"] .class-list th,
  body[data-page="classes"] .class-list td { overflow: hidden; text-overflow: clip; }

  body[data-page="person_print"] main,
  body[data-page="print_users"] main { width: 277mm; max-width: 277mm; margin: 0; padding: 0; }
  body[data-page="person_print"] .person-sheet,
  body[data-page="print_users"] .person-sheet { width: 277mm; min-height: 0; margin: 0; padding: 10mm; border: 1px solid #123b5d; border-radius: 0; box-shadow: none; font-size: 10.5pt; break-after: page; page-break-after: always; }
  body[data-page="person_print"] .person-sheet:last-child,
  body[data-page="print_users"] .person-sheet:last-child { break-after: auto; page-break-after: auto; }
  body[data-page="person_print"] .person-sheet h1,
  body[data-page="print_users"] .person-sheet h1 { margin: -10mm -10mm 8mm; padding: 6mm 10mm; font-size: 16pt; }
  body[data-page="person_print"] .person-sheet dl,
  body[data-page="print_users"] .person-sheet dl { display: grid; grid-template-columns: 56mm 1fr; margin: 7mm 0; }
  body[data-page="person_print"] .person-sheet dt,
  body[data-page="person_print"] .person-sheet dd,
  body[data-page="print_users"] .person-sheet dt,
  body[data-page="print_users"] .person-sheet dd { padding: 3.2mm 4mm; font-size: 10.5pt; }
}

/* iPad-Übersicht: Kopf, Kennzahl und Liste bleiben innerhalb jeder Box klar getrennt. */
.ipad-overview-card { background: #fff; }
.ipad-overview-card h2 { min-height: 2.55rem; margin-top: -30px; padding: 0 0 .7rem; border-bottom: 1px solid #dce7ee; color: #234b66; }
.ipad-overview-card h2 .tag { flex: 0 0 auto; min-width: 2rem; margin-right: -10px; padding: .3rem .55rem; text-align: center; }
.ipad-overview-card table { margin: 0; border: 1px solid #dce7ee; border-radius: .55rem; background: #fff; }
.ipad-overview-card table th { padding: .48rem .55rem; background: #f1f7fa; color: #527084; font-size: .7rem; }
.ipad-overview-card table td { padding: .55rem; vertical-align: middle; font-size: .88rem; line-height: 1.25; }
.ipad-overview-card table td:last-child { width: 1%; padding-right: .45rem; }
.ipad-overview-card table .button { padding: .38rem .55rem; font-size: .77rem; }
.ipad-overview-card table .icon-button { display: inline-grid; place-items: center; width: 2.15rem; height: 2.15rem; padding: 0; border-radius: .5rem; font-size: 1.15rem; font-weight: 800; line-height: 1; }
.ipad-overview-card:nth-of-type(1) table th:nth-child(1),
.ipad-overview-card:nth-of-type(1) table td:nth-child(1) { width: 48%; font-weight: 650; }
.ipad-overview-card:nth-of-type(1) table th:nth-child(2),
.ipad-overview-card:nth-of-type(1) table td:nth-child(2) { width: 18%; color: #5a7383; }
.ipad-overview-card:nth-of-type(2) table th:first-child,
.ipad-overview-card:nth-of-type(2) table td:first-child { width: 68%; font-weight: 650; }
.ipad-overview-card:nth-of-type(3) table th:nth-child(1),
.ipad-overview-card:nth-of-type(3) table td:nth-child(1) { width: 28%; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .78rem; }
.ipad-overview-card:nth-of-type(3) table th:nth-child(2),
.ipad-overview-card:nth-of-type(3) table td:nth-child(2) { width: 30%; font-weight: 650; }
.ipad-overview-card:nth-of-type(3) table th:nth-child(3),
.ipad-overview-card:nth-of-type(3) table td:nth-child(3) { width: 12%; }
.ipad-overview-card:nth-of-type(3) table th:nth-child(1),
.ipad-overview-card:nth-of-type(3) table td:nth-child(1) { width: 60%; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .82rem; white-space: nowrap; }
.ipad-overview-card:nth-of-type(3) table th:nth-child(2),
.ipad-overview-card:nth-of-type(3) table td:nth-child(2) { width: 18%; font-family: inherit; font-size: .88rem; font-weight: 650; }
.person-contact-fields { display: grid; gap: .7rem; max-width: 54rem; }
.form-toggle { display: inline-flex; align-items: center; justify-content: space-between; gap: .7rem; width: auto; min-height: 2.4rem; margin: .25rem 0; font-weight: 700; color: #244b65; cursor: pointer; }
.form-toggle input { position: absolute; inline-size: 1px; block-size: 1px; opacity: 0; }
.form-toggle .toggle-label { min-width: 0; }
.form-toggle > span[aria-hidden],.form-toggle .toggle-rail { position: relative; display: inline-block; flex: 0 0 auto; width: 3rem; height: 1.65rem; border-radius: 99px; background: #b7c7d1; box-shadow: inset 0 0 0 1px rgb(18 59 93 / .14); transition: background .16s ease; }
.form-toggle > span[aria-hidden]::after,.form-toggle .toggle-rail::after { content: ''; position: absolute; top: .18rem; left: .18rem; width: 1.29rem; height: 1.29rem; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgb(18 59 93 / .25); transition: transform .16s ease; }
.form-toggle input:checked + span[aria-hidden],.form-toggle input:checked + .toggle-rail { background: #2586bd; }
.form-toggle input:checked + span[aria-hidden]::after,.form-toggle input:checked + .toggle-rail::after { transform: translateX(1.35rem); }
.form-toggle input:focus-visible + span[aria-hidden],.form-toggle input:focus-visible + .toggle-rail { outline: 3px solid rgb(49 153 209 / .35); outline-offset: 2px; }
body > header { position: relative; z-index: 100; }
.staff-card { position: relative; z-index: 0; overflow: hidden; max-width: 62rem; margin: 1.25rem auto; padding: 0; border: 1px solid #d3e2ea; border-radius: 1rem; background: #fff; box-shadow: 0 12px 30px rgb(18 59 93 / .12); }
.staff-card-header { display: flex; align-items: center; gap: 1rem; padding: 1.5rem; background: linear-gradient(135deg, #1e759f, #49a9d5); color: #fff; }
.staff-card-header .staff-card-monogram { display: grid; flex: 0 0 auto; place-items: center; width: 4.25rem; height: 4.25rem; border: 2px solid rgb(255 255 255 / .7); border-radius: 50%; background: rgb(255 255 255 / .16); font-size: 1.35rem; font-weight: 800; letter-spacing: .04em; }
.staff-card-header p { margin: 0 0 .15rem; font-size: .78rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; opacity: .82; }
.staff-card-header h1 { margin: 0; color: #fff; font-size: clamp(1.45rem, 4vw, 2rem); }
.staff-card-header small { display: block; margin-top: .2rem; opacity: .9; }
.staff-card-active { margin-left: auto; padding: .36rem .68rem; border-radius: 99px; background: rgb(255 255 255 / .2); font-size: .82rem; font-weight: 800; }
.staff-card-active.is-inactive { background: rgb(91 44 44 / .45); }
.staff-card-content { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1.3rem; row-gap: 2.35rem; padding: 1.4rem; }
.staff-card-section { min-width: 0; }
.staff-card-section.staff-card-device { grid-column: 1 / -1; }
.staff-card-section.staff-card-device dl { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .75rem; }
.staff-card-section.staff-card-device dl > div { display: block; padding: .7rem; border: 1px solid #dce8ee; border-radius: .55rem; background: #f8fbfc; }
.staff-card-section.staff-card-device dt { margin-bottom: .25rem; }
.staff-card-section.staff-card-loans { grid-column: 1 / -1; }
.student-card .staff-card-passwords { grid-column: 1 / -1; }
.student-card[hidden] { display: none !important; }
.staff-card-loans > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.staff-card-loans h3 { margin: 0 0 .5rem; color: #527184; font-size: .84rem; text-transform: uppercase; letter-spacing: .04em; }
.staff-card-loans ul { display: grid; gap: .5rem; min-height: 1.5rem; margin: 0; padding: 0; list-style: none; }
.staff-card-loans li { padding: .65rem .75rem; border: 1px solid #dce8ee; border-radius: .55rem; background: #f8fbfc; }
.staff-card-loans li strong,.staff-card-loans li small { display: block; }
.staff-card-loans li small { margin-top: .18rem; color: #5b7180; }
.staff-card-section h2 { margin: 0 0 .8rem; padding-bottom: .55rem; border-bottom: 1px solid #dce8ee; color: #285874; font-size: 1rem; }
.staff-card-section dl { display: grid; gap: .55rem; margin: 0; }
.staff-card-section dl > div { display: grid; grid-template-columns: minmax(7.5rem, .85fr) minmax(0, 1.45fr); gap: .6rem; align-items: baseline; }
.staff-card-section dt { color: #5b7180; font-size: .78rem; font-weight: 800; letter-spacing: .025em; text-transform: uppercase; }
.staff-card-section dd { margin: 0; color: #172b39; overflow-wrap: anywhere; }
.profile-guardians { display: grid; gap: .55rem; margin: 0; padding: 0; list-style: none; }
.profile-guardians li { display: grid; gap: .16rem; padding: .7rem .8rem; border: 1px solid #dce8ee; border-radius: .55rem; background: #f8fbfc; }
.profile-guardians li strong { color: #172b39; }
.profile-guardians li small { color: #5b7180; }
.staff-card-edit { display: block; }
.staff-card-edit .staff-card-content { column-gap: 2.35rem; }
.staff-card-edit .staff-card-header { margin: 0; box-shadow: none; }
.staff-card-edit .staff-card-active { color: #fff; }
.staff-card-edit-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem .8rem; }
.staff-card-edit-fields > label { margin: 0; font-size: .82rem; color: #4a6677; }
.staff-card-edit-fields input,.staff-card-edit-fields select,.staff-card-edit-fields textarea { margin-top: .25rem; background: #fff; }
.password-version-control { display: flex; gap: .45rem; align-items: end; margin-top: .25rem; }
.password-version-control input { width: 5.5rem; margin-top: 0; }
.password-version-control button { white-space: nowrap; }
.password-display { display: inline-block; min-width: 5.2rem; letter-spacing: .12em; }
.password-display.is-revealed { letter-spacing: normal; overflow-wrap: anywhere; }
.password-reveal { display: inline-flex; align-items: center; justify-content: center; width: 2rem; height: 2rem; margin-left: .35rem; padding: .35rem; color: #276b9f; background: transparent; border: 0; border-radius: .45rem; vertical-align: middle; }
.password-reveal:hover, .password-reveal:focus-visible { background: #e8f3fc; color: #154f7c; }
.password-reveal svg { width: 1.1rem; height: 1.1rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.password-reveal-icon { display:block; }
.button-print-icon { display:inline-block; width:1em; height:1em; margin-right:.38rem; vertical-align:-.12em; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.section-title-actions { display:flex; justify-content:space-between; align-items:center; gap:.8rem; }
.guardian-list { display:grid; gap:.55rem; }
.guardian-card { display:grid; grid-template-columns:auto minmax(0,1fr) auto auto; align-items:center; gap:1rem; padding:.7rem .8rem; border:1px solid var(--line,#d8e1eb); border-radius:.7rem; cursor:grab; }
.guardian-card.is-dragging { opacity:.45; }
.guardian-drag { color:var(--muted,#5d6d7e); font-size:1.25rem; cursor:grab; }
.guardian-card strong,.guardian-card small { display:block; }
.guardian-card small { margin-top:.15rem; color:var(--muted,#5d6d7e); }
.guardian-rights { display:flex; gap:.3rem; align-items:center; color:#365365; white-space:nowrap; }
.guardian-rights span { display:inline-grid; place-items:center; width:1.45rem; height:1.45rem; border-radius:50%; background:#f1f5f7; }
.guardian-rights svg { width:1rem; height:1rem; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.guardian-card-actions { display:flex; gap:.4rem; flex-wrap:wrap; justify-content:flex-end; }
.guardian-dialog { position:fixed; z-index:2147483647 !important; isolation:isolate; inset:0; display:grid; place-items:center; padding:1rem; overflow:auto; background:rgba(14,35,57,.48); }
.guardian-dialog[hidden] { display:none !important; }
.guardian-dialog>section { width:min(860px,100%); max-height:calc(100vh - 2rem); overflow:auto; padding:1.15rem; border-radius:1rem; box-shadow:0 1.2rem 4rem rgba(13,37,61,.35); background:#fff; color:inherit; }
.guardian-dialog header { display:flex; justify-content:space-between; align-items:start; gap:1rem; margin-bottom:1rem; }
.guardian-dialog header p { margin:0; color:var(--muted,#5d6d7e); }
.guardian-dialog header h2 { margin:.15rem 0 0; }
.guardian-header-search { display:block; margin-top:.75rem; text-align:left; font-size:.85rem; font-weight:650; }
.guardian-header-search input { display:block; width:100%; margin-top:.25rem; }
.guardian-dialog footer { display:flex; justify-content:flex-end; gap:.6rem; margin-top:1rem; }
.guardian-search { margin-bottom:1rem; }
.guardian-search label { display:block; }
.guardian-search input { width:100%; }
[data-guardian-results] { display:grid; gap:.35rem; margin-top:.45rem; max-height:11rem; overflow:auto; }
.guardian-search-result { text-align:left; width:100%; padding:.5rem .65rem; background:#f7faff; color:inherit; border:1px solid #d7e3f0; border-radius:.55rem; }
.guardian-search-result strong,.guardian-search-result small { display:block; }
.guardian-search-result small { color:var(--muted,#5d6d7e); }
@media (max-width:640px) { .guardian-card { align-items:flex-start; flex-direction:column; } .guardian-card-actions { width:100%; justify-content:flex-start; } }
.staff-card-edit-wide { grid-column: 1 / -1; }
.staff-card-device-edit { display: grid; grid-template-columns: minmax(0, 1fr) minmax(20rem, .9fr); gap: 1rem 1.4rem; align-items: end; }
.staff-card-device-edit h2 { grid-column: 1 / -1; }
.staff-card-device-edit .person-device-declaration,.staff-card-device-edit .person-device-details { grid-column: 1 / -1; }
.staff-device-current { display: grid; gap: .55rem; }
.staff-device-current > div { display: grid; gap: .15rem; padding: .72rem .82rem; border: 1px solid #dce8ee; border-radius: .55rem; background: #f8fbfc; }
.person-device-current dl { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .65rem; margin: 0; }
.person-device-current dl > div { display: block; padding: .7rem; border: 1px solid #dce8ee; border-radius: .55rem; background: #f8fbfc; }
.person-device-current dt { margin-bottom: .25rem; color: #5b7180; font-size: .72rem; font-weight: 800; letter-spacing: .025em; text-transform: uppercase; }
.person-device-current dd { margin: 0; color: #172b39; overflow-wrap: anywhere; }
.person-device-declaration { margin: 0 0 1rem; padding-bottom: .85rem; border-bottom: 1px solid #dce8ee; }
.person-device-details { display: grid; gap: 1rem; }
.person-device-details[hidden] { display: none !important; }
.person-device-summary-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .8rem; align-items: center; }
.person-device-summary-row > div:last-child { display: flex; justify-content: flex-end; }
.person-device-summary-row [data-person-device-remove][hidden] { display: none !important; }
.privacy-warning { margin:.7rem 0; padding:.55rem .75rem; border:1px solid #d63031; border-radius:.55rem; background:#fff1f1; color:#9f1515; font-weight:750; }
.privacy-warning.inline { display:inline-block; margin:0 0 0 .4rem; padding:.16rem .38rem; border-radius:.35rem; font-size:.76em; vertical-align:middle; white-space:nowrap; }
.staff-device-current span,.staff-device-empty { color: #567182; font-size: .9rem; }
.staff-device-empty { margin: 0; padding: .8rem; border: 1px dashed #cbdce4; border-radius: .55rem; }
.staff-device-actions { display: grid; gap: .55rem; }
.staff-device-actions label { margin: 0; color: #4a6677; font-size: .82rem; }
.staff-device-actions select { margin-top: .25rem; background: #fff; }
.person-device-search-choice { display: flex; align-items: end; gap: .65rem; min-height: 2.25rem; flex-wrap: wrap; }
.staff-device-actions .person-device-search-choice,.person-device-edit-actions .person-device-search-choice { justify-content: flex-start; }
.person-device-search-choice > label { display: grid; gap: .25rem; min-width: min(100%, 17rem); margin: 0; color: #4a6677; font-size: .82rem; }
.person-device-search-choice > label > span { display: block; }
.person-device-search-choice > label > input { flex: 1; min-width: 10rem; }
.person-device-search-choice .camera-scan-button,.person-device-search-choice .device-stock-search-button { margin: 0 0 .02rem; white-space: nowrap; }
.person-device-search-result { min-width: 0; margin: 0; color: #567182; font-size: .88rem; overflow-wrap: anywhere; }
.person-device-accessories { display: flex; flex-wrap: wrap; gap: .45rem .85rem; align-items: center; }
.person-device-accessories .form-toggle { min-height: 2rem; margin: 0; font-size: .82rem; }
.staff-device-actions > div { display: flex; justify-content: flex-end; gap: .55rem; flex-wrap: wrap; }
.staff-device-actions .danger { background: #b94242; border-color: #b94242; color: #fff; }
.person-device-edit { margin-top: .35rem; }
.person-device-edit h2 { margin-top: 0; }
.person-device-edit-actions { display: grid; grid-template-columns: minmax(16rem, 1fr) auto; gap: .75rem 1rem; align-items: end; }
.person-device-edit-actions > div { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: .55rem; }
.person-device-edit-actions .danger { background: #b94242; border-color: #b94242; color: #fff; }
.staff-card footer { display: flex; justify-content: flex-end; gap: .65rem; padding: 1rem 1.4rem; border-top: 1px solid #dce8ee; background: #f8fbfc; }
@media(max-width:600px){.staff-card{margin:.75rem 0;border-radius:.75rem}.staff-card-header{align-items:flex-start;padding:1.1rem}.staff-card-active{margin-left:0}.staff-card-content{grid-template-columns:1fr;padding:1rem}.staff-card-section dl>div,.staff-card-edit-fields,.staff-card-device-edit,.person-device-edit-actions,.person-device-current dl{grid-template-columns:1fr;gap:.1rem}.staff-card-section.staff-card-device dl,.staff-card-loans>div{grid-template-columns:1fr}.staff-card footer{padding:1rem;flex-wrap:wrap}.staff-card footer .button{flex:1;text-align:center}.staff-device-actions{margin-top:1rem}.staff-device-actions > div,.person-device-edit-actions > div{justify-content:stretch}.staff-device-actions button,.person-device-edit-actions button{flex:1}.person-device-summary-row{grid-template-columns:1fr}.person-device-summary-row > div:last-child{justify-content:stretch}.person-device-summary-row > div:last-child button{width:100%}.person-device-search-choice{align-items:stretch;gap:.45rem}.person-device-search-choice > label{align-items:stretch;flex-wrap:wrap}.person-device-search-choice > label > input{min-width:0}}
.person-contact-row { display: grid; grid-template-columns: minmax(0, 3fr) minmax(7rem, 1fr); gap: .75rem; align-items: end; }
.person-contact-row.person-contact-basics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.person-contact-row.person-contact-city { grid-template-columns: minmax(7rem, 1fr) minmax(0, 3fr); }
.person-contact-row.person-contact-phones { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.person-contact-row.person-contact-email { grid-template-columns: minmax(0, 1fr); }
@media(max-width:600px){.person-contact-row,.person-contact-row.person-contact-basics,.person-contact-row.person-contact-city,.person-contact-row.person-contact-phones{grid-template-columns:1fr}}
.staff-service-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: end; }
.staff-service-fields > label { align-self: end; }
@media(max-width:600px){.staff-service-fields{grid-template-columns:1fr}}
@media(max-width:800px){.ipad-overview-page{display:block}.ipad-overview-card{margin:0 0 .85rem!important}.ipad-inventory-page .device-list-card{max-width:100%;padding:.8rem;overflow:hidden}.ipad-inventory-page .device-filter-form{grid-template-columns:1fr;align-items:stretch;max-width:100%}.ipad-inventory-page .device-status-filters{overflow-x:auto;padding-bottom:.2rem}.ipad-inventory-page .device-filter-form input,.ipad-inventory-page .device-filter-form select{min-width:0;width:100%}.ipad-inventory-page .device-filter-form button{width:100%}.ipad-inventory-page .device-table{display:block;width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;table-layout:auto}.ipad-inventory-page .device-table th,.ipad-inventory-page .device-table td{white-space:nowrap}.device-detail-page .device-edit-form,.ipad-inventory-page .device-view-edit{grid-template-columns:1fr!important}.device-detail-page .device-view-edit>label,.ipad-inventory-page .device-view-edit>label,.device-detail-page .device-view-edit>input:not([type=hidden]),.device-detail-page .device-view-edit>textarea,.device-detail-page .device-view-edit>select,.device-detail-page .device-view-edit>.switch-group,.ipad-inventory-page .device-view-edit>input:not([type=hidden]),.ipad-inventory-page .device-view-edit>textarea,.ipad-inventory-page .device-view-edit>select,.ipad-inventory-page .device-view-edit>.switch-group{grid-column:1!important}.device-detail-page .device-view-edit>label,.ipad-inventory-page .device-view-edit>label{margin-top:.35rem}.ipad-flow-card form>div{padding:.2rem 0;background:transparent}.ipad-flow-card form p:last-child{justify-content:stretch}.ipad-flow-card form p:last-child button{width:100%}}
@media(max-width:600px){.ipad-inventory-page>.device-model-link{float:none;display:inline-flex;margin:-.45rem 0 1rem}.ipad-inventory-page .device-table td:last-child .button{margin-top:.2rem}}

/* Abwesenheiten: pro Bereich ein eigenständiges Formular statt Feldwechsel. */
.absence-page-intro,.absence-overview-intro { position:relative; z-index:0; clear:both; margin-top:1rem; }
.absence-page-intro { display:grid; gap:.2rem; margin:-.15rem -1.2rem 1rem; padding:1.15rem 1.2rem 1rem; border-bottom:1px solid #d9e6ed; background:linear-gradient(135deg,#f3f9fc,#fff); }
.absence-page-intro h2,.absence-overview-intro h2 { margin:.1rem 0; color:#204e6c; }
.absence-page-intro p,.absence-overview-intro p { margin:0; color:#637c8d; }
.absence-overview-intro { padding:1.15rem 1.2rem; border:1px solid #d9e6ed; background:linear-gradient(135deg,#f3f9fc,#fff); }
.absence-detail-header{display:grid;gap:.35rem}.absence-detail-header .absence-status{justify-self:start}
.absence-status{display:inline-flex;align-items:center;min-height:1.85rem;padding:.22rem .62rem;border-radius:99px;font-size:.76rem;font-weight:800;white-space:nowrap}
.absence-status.submitted{background:#fff1c9;color:#765300}.absence-status.approved{background:#dceeff;color:#175b8e}.absence-status.confirmed{background:#dff5e6;color:#17643c}.absence-status.rejected{background:#fde2e2;color:#a62e2e}
.absence-status.withdrawn{background:#e8edf1;color:#536572}
.absence-detail-card>header{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-bottom:1.25rem}.absence-detail-card>header h2{margin:0;flex:1 1 12rem}.absence-detail-card>header .absence-form-kicker{flex-basis:100%}.absence-detail-list{display:grid;grid-template-columns:minmax(10rem,14rem) minmax(0,1fr);margin:0;gap:0;border-top:1px solid #dce7ee}.absence-detail-list dt,.absence-detail-list dd{margin:0;padding:.7rem .8rem;border-bottom:1px solid #dce7ee}.absence-detail-list dt{font-weight:750;color:#527084;background:#f5f9fb}.absence-event-list{display:grid;gap:.45rem;padding:0;list-style:none}.absence-event-list li{padding:.6rem .7rem;border-left:3px solid #9cc7dd;background:#f7fafc}
.absence-request-card { width: 100%; max-width: none; }
.absence-request-disclosure { padding: 0; overflow: hidden; }
.absence-request-disclosure > summary { display: flex; align-items: center; min-height: 3.25rem; padding: .85rem 1.2rem; color: #204e6c; font-weight: 800; cursor: pointer; list-style: none; }
.absence-request-disclosure > summary::-webkit-details-marker { display: none; }
.absence-request-disclosure > summary::after { content: '+'; display: grid; place-items: center; width: 1.65rem; height: 1.65rem; margin-left: auto; border-radius: 50%; background: #e2f1f8; color: #19648c; font-size: 1.25rem; line-height: 1; }
.absence-request-disclosure[open] > summary { border-bottom: 1px solid #d9e6ed; background: linear-gradient(135deg,#f3f9fc,#fff); }
.absence-request-disclosure[open] > summary::after { content: '–'; }
.absence-request-disclosure > .absence-intro { padding: 1rem 1.2rem; }
.absence-intro { margin: -.3rem 0 1rem; color: #607a8b; }
.absence-area-select { display: grid; gap: .3rem; max-width: 25rem; margin-bottom: 1.2rem; color: #234f6c; font-weight: 800; }
.absence-area-select select { background: #fff; }
.absence-form { padding: 0; border: 1px solid #d9e6ed; border-radius: .85rem; background: #fbfdfe; overflow: hidden; }
.absence-form[hidden] { display: none !important; }
.absence-form > header { position: static !important; z-index: auto !important; min-height: 0 !important; padding: 1.15rem 1.2rem 1rem; border-bottom: 1px solid #d9e6ed; background: linear-gradient(135deg, #f3f9fc, #fff); }
.absence-form-header { position: static; z-index: auto; min-height: 0; margin: -1.1rem -1.1rem 1rem; padding: 1.15rem 1.2rem 1rem; border-bottom: 1px solid #d9e6ed; background: linear-gradient(135deg, #f3f9fc, #fff); }
.absence-form-header h2 { margin: .15rem 0; color: #204e6c; }.absence-form-header p { margin: 0; color: #637c8d; }
.absence-form h3 { margin: .15rem 0 .25rem; color: #204e6c; }
.absence-form > header p { margin: 0; color: #637c8d; }
.absence-form-kicker { color: #32729b; font-size: .72rem; font-weight: 850; letter-spacing: .075em; text-transform: uppercase; }
.absence-form > fieldset, .absence-form > .absence-note { margin: 1rem 1.2rem 0; }
.absence-form > fieldset { display: grid; gap: .85rem; padding: 1rem; border: 1px solid #d9e6ed; border-radius: .7rem; }
.absence-form > fieldset legend { padding: 0 .35rem; color: #285b7a; font-size: .88rem; font-weight: 800; }
.absence-form > .detail-actions { padding: 0 1.2rem 1.2rem; }
.absence-note { display: grid; gap: .3rem; }
.absence-rule { margin: 0; padding: .65rem .75rem; border-radius: .55rem; background: #eef7fc; color: #315d78; font-size: .87rem; }
.absence-period-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem 1rem; }
.absence-period-grid label { display: grid; gap: .28rem; }
.absence-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem 1rem; }
.absence-form-grid > label { display: grid; gap: .28rem; }
.absence-form-grid > label:nth-child(2), .absence-form-grid > label:last-child { grid-column: 1 / -1; }
.absence-kind-options { display: grid; gap: .65rem; grid-column: 1 / -1; padding: .9rem; border: 1px solid #cbdfe9; border-radius: .7rem; background: #f8fcfe; }
.absence-kind-options header { display: grid; gap: .15rem; color: #fff; }
.absence-kind-options header strong { color: #fff; font-size: .92rem; }
.absence-kind-options header small { color: rgb(255 255 255 / .88); }
.absence-kind-switches { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .45rem; }
.absence-kind-options .form-toggle { justify-content: flex-start; min-height: 2.8rem; margin: 0; padding: .45rem .6rem; border: 1px solid #d7e5ec; border-radius: .55rem; background: #fff; font-size: .88rem; transition: border-color .16s ease, background .16s ease; }
.absence-kind-options .form-toggle:has(input:checked) { border-color:#1e78ad;background:#d9f0fb;box-shadow:0 0 0 3px rgb(47 146 201 / .18),0 3px 9px rgb(30 102 147 / .12);font-weight:800; }
.absence-kind-options .toggle-label { margin-left: .1rem; }
.absence-date-choice { display: grid; grid-column: 1 / -1; gap: .65rem; padding: .9rem; border: 1px solid #cbdfe9; border-radius: .7rem; background: #f8fcfe; }
.absence-date-choice > header { display: grid; gap: .15rem; color: #fff; }
.absence-date-choice > header strong { color: #fff; font-size: .92rem; }
.absence-date-choice > header small { color: rgb(255 255 255 / .88); }
.absence-date-modes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .45rem; }
.absence-date-modes .form-toggle { justify-content: flex-start; min-height: 2.8rem; margin: 0; padding: .45rem .6rem; border: 1px solid #d7e5ec; border-radius: .55rem; background: #fff; }
.absence-date-modes .form-toggle:has(input:checked) { border-color:#1e78ad;background:#d9f0fb;box-shadow:0 0 0 3px rgb(47 146 201 / .18),0 3px 9px rgb(30 102 147 / .12);font-weight:800; }
.absence-date-panel { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem 1rem; }
.absence-date-panel[hidden] { display: none !important; }
.absence-date-panel > label { display: grid; gap: .28rem; }
.absence-date-panel[data-mode="individual"] { grid-template-columns: 1fr; }
.absence-individual-days { display: grid; gap: .55rem; }
.absence-individual-day { display: grid; grid-template-columns: 1fr 1.25fr 1fr auto; gap: .55rem; align-items: end; padding: .65rem; border: 1px solid #d7e5ec; border-radius: .55rem; background: #fff; }
.absence-individual-day label { display: grid; gap: .28rem; }
@media (max-width: 680px) { .absence-date-modes, .absence-date-panel, .absence-individual-day { grid-template-columns: 1fr; } }
.absence-trip-fields { display: grid; gap: .8rem; margin: 1rem 0 0; padding: .9rem 1rem 1rem; border: 1px solid #cfdfe8; border-radius: .7rem; }
.absence-trip-fields legend { padding: 0 .35rem; color: #285b7a; font-weight: 800; }
.absence-trip-fields > label { display: grid; gap: .28rem; }
.absence-trip-fields .grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
.absence-trip-fields .grid label { display: grid; gap: .28rem; }
.absence-trip-selector { display: grid; grid-template-columns: minmax(13rem, .7fr) minmax(16rem, 1fr) minmax(16rem, 1fr); gap: 1rem; align-items: start; }
.absence-staff-selector { display: grid; grid-template-columns: minmax(16rem, 1fr) minmax(16rem, 1fr); gap: 1rem; align-items: start; }
.absence-trip-selector > *, .absence-staff-selector > * { align-self: start; }
.absence-user-selector { display: grid; grid-template-columns: minmax(15rem, 1fr) minmax(15rem, 1fr); gap: .55rem 1rem; align-items: start; margin: .85rem 0 1.3rem; padding: .9rem; border: 1px solid #d9e6ed; border-radius: .7rem; background: #fbfdfe; }
.absence-user-selector > strong { grid-column: 1 / -1; color: #285b7a; }
.absence-user-selector > label { display: grid; gap: .3rem; }
.absence-user-selector > select { min-height: 9rem; background: #fff; }
.absence-user-selector > button { justify-self: start; }
.absence-user-selector > .absence-trip-selected { grid-column: 2; grid-row: 2 / span 2; min-height: 12rem; }
.absence-notice-days { display: grid; gap: .28rem; max-width: 28rem; margin: .85rem 0; }
.absence-notice-days input { max-width: 8rem; }

/* Abwesenheitsverwaltung: klarer Einstieg vor den einzelnen Einstellungen. */
.absence-admin-hero { display:grid; gap:.4rem; margin:0 0 1rem; padding:1.2rem 1.3rem; border:1px solid #cce0eb; border-radius:.9rem; background:linear-gradient(135deg,#edf7fc,#fff 68%); box-shadow:0 5px 16px rgb(24 82 117 / .08); }
.absence-admin-hero h1 { margin:0; color:#174d70; font-size:clamp(1.35rem,2.5vw,1.8rem); }
.absence-admin-hero p { margin:.15rem 0 0; max-width:46rem; color:#547286; }
.absence-admin-form { margin-top:0; }
.absence-admin-form > h2 { margin:1.45rem 0 .55rem; padding-top:1.15rem; border-top:1px solid #dbe8ee; color:#245e82; font-size:1.08rem; }
.absence-admin-form > .absence-page-intro { margin:-.15rem -1.2rem 1.15rem; }
@media (max-width:600px) { .absence-admin-hero { padding:1rem; } }

/* Software: Lizenzhinweis und Update-Bereich klar voneinander trennen. */
.software-license-section,.software-modules-section { margin:.8rem 0 1.35rem; padding:1rem 1.15rem; border:1px solid #d3e3ec; background:linear-gradient(135deg,#f3f9fc,#fff); box-shadow:none; }
.software-license-section h2,.software-modules-section h2,.software-update-heading { margin:0; color:#245e82; font-size:1.1rem; }
.software-license-section p,.software-modules-section p { margin:.4rem 0 0; color:#5d7687; }
.software-update-heading { margin:1.3rem 0 -.25rem; padding-top:.95rem; border-top:1px solid #dce8ee; }
.software-license-details { display:grid; grid-template-columns:13rem minmax(0,1fr); gap:0; margin:.8rem 0 0; border-top:1px solid #dce8ee; }
.software-license-details dt,.software-license-details dd { margin:0; padding:.55rem .65rem; border-bottom:1px solid #dce8ee; }
.software-license-details dt { background:#f3f8fb; color:#4b7088; font-weight:750; }
.software-module-options { display:grid; grid-template-columns:repeat(auto-fit,minmax(15rem,1fr)); gap:.45rem .8rem; margin:.9rem 0 .3rem; }
.software-module-options .form-toggle { margin:0; padding:.55rem .65rem; border:1px solid #dce8ee; border-radius:.55rem; background:#f8fbfd; }
.software-module-options .form-toggle.is-unavailable { opacity:.58; background:#f4f6f7; cursor:not-allowed; }
@media (max-width:600px) { .software-license-details { grid-template-columns:1fr; } .software-license-details dt { padding-bottom:.15rem; } .software-license-details dd { padding-top:.15rem; } }
.absence-trip-selector > label { display: grid; gap: .4rem; margin: 0; }
.absence-staff-selector > label { display: grid; gap: .4rem; margin: 0; }
.absence-staff-selector > label { padding: .75rem; border: 1px solid #d9e6ed; border-radius: .65rem; background: #fff; }
.absence-staff-selector input[type=search] { min-height: 2.45rem; border-color: #b8d2e1; }
.absence-trip-selector select { width: 100%; min-height: 12rem; background: #fff; }
.absence-staff-selector select { width: 100%; min-height: 10rem; background: #fff; }
.absence-trip-selector small { color: #607a8b; }
.absence-trip-selector button { justify-self: start; margin-top: .1rem; }
.absence-trip-selected { min-height: 14rem; padding: .7rem; border: 1px solid #d9e6ed; border-radius: .6rem; background: #fff; }
.absence-trip-selected > strong { display: block; margin-bottom: .55rem; color: #285b7a; font-size: .84rem; }
.absence-trip-selected > p { margin: .35rem 0; color: #607a8b; font-size: .88rem; }
.absence-trip-selected ul { display: grid; gap: .42rem; max-height: 15rem; margin: 0; padding: 0; overflow: auto; list-style: none; }
.absence-trip-selected li { display: flex; align-items: center; justify-content: space-between; gap: .6rem; padding: .45rem .55rem; border: 1px solid #d9e6ed; border-radius: .45rem; background: #f8fbfc; }
.absence-trip-selected li span { min-width: 0; overflow-wrap: anywhere; }
.absence-trip-selected .compact { flex: 0 0 auto; padding: .32rem .48rem; font-size: .78rem; }
@media (max-width: 900px) { .absence-trip-selector { grid-template-columns: 1fr 1fr; } .absence-trip-selected { grid-column: 1 / -1; min-height: auto; } }
@media (max-width: 680px) { .absence-form-grid, .absence-period-grid, .absence-trip-fields .grid, .absence-trip-selector, .absence-staff-selector, .absence-user-selector, .absence-kind-switches { grid-template-columns: 1fr; } .absence-trip-selected,.absence-user-selector > .absence-trip-selected { grid-column: auto; grid-row: auto; } .absence-form-grid > label, .absence-form-grid > label:nth-child(2), .absence-form-grid > label:last-child { grid-column: auto; } .absence-form > header, .absence-form > fieldset, .absence-form > .absence-note, .absence-form > .detail-actions { margin-left: .8rem; margin-right: .8rem; } .absence-form > header { margin: 0; padding: 1rem; } }

.ipad-overview-grid .overview-view-button, .dashboard-device-overview .overview-view-button { display: inline-grid; place-items: center; width: 2rem; height: 2rem; min-width: 2rem; padding: 0; }
.ipad-overview-grid .overview-view-button svg, .dashboard-device-overview .overview-view-button svg { width: 1.05rem; height: 1.05rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.ipad-overview-grid > .card table th, .ipad-overview-grid > .card table td { vertical-align: middle; }
.dashboard-device-overview td:last-child { width: 1%; text-align: right; white-space: nowrap; }
.management-available-devices th:first-child,.management-available-devices td:first-child{width:24%;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem}.management-available-devices th:nth-child(2),.management-available-devices td:nth-child(2){width:18%}.management-available-devices th:nth-child(3),.management-available-devices td:nth-child(3){width:1%;text-align:center}.asset-status-icon{display:inline-grid;place-items:center;width:1.65rem;height:1.65rem;border-radius:50%;font-weight:800;font-size:1rem;line-height:1}.asset-status-icon.is-available{background:#dcf4e5;color:#207548}.asset-status-icon.is-assigned{background:#dceafa;color:#1d639c}.asset-status-icon.is-repair{background:#fff0ca;color:#a46300}.asset-status-icon.is-retired{background:#edf0f2;color:#687782}.asset-status-icon.is-unknown{background:#eef2f5;color:#617384}
.software-license-details dt{white-space:nowrap}
.license-account-counts{display:grid;gap:.3rem;width:15rem;max-width:100%}.license-account-counts>div{display:grid;grid-template-columns:1fr auto;gap:.35rem;align-items:baseline}.license-account-counts strong{font-variant-numeric:tabular-nums;text-align:right}
.absence-approval-group{margin:1rem 0;border:1px solid #d9e6ed;border-radius:.7rem;overflow:hidden;background:#fff}.absence-approval-group summary{display:flex;align-items:center;justify-content:space-between;gap:.7rem;padding:.85rem 1rem;color:#234b66;font-weight:800;cursor:pointer;list-style:none}.absence-approval-group summary::-webkit-details-marker{display:none}.absence-approval-group summary::before{content:'›';margin-right:.25rem;font-size:1.35rem;line-height:1;transition:transform .15s ease}.absence-approval-group[open] summary::before{transform:rotate(90deg)}.absence-approval-group summary>span:first-child{margin-right:auto}.absence-approval-group table{margin:0;border:0;border-top:1px solid #d9e6ed;border-radius:0}

/* Einheitliche aufklappbare Inhaltsbereiche. */
.app-ui main details.disclosure-panel{overflow:hidden;border:1px solid #d9e6ed;border-radius:.85rem;background:#fff;box-shadow:0 2px 8px rgb(20 69 98 / .07)}
.app-ui main details.disclosure-panel>summary{display:flex;align-items:center;gap:.7rem;min-height:3.25rem;margin:0!important;padding:.85rem 1.2rem!important;color:#204e6c!important;background:#fff;cursor:pointer;list-style:none;font-weight:800}
.app-ui main details.disclosure-panel>summary::-webkit-details-marker{display:none}
.app-ui main details.disclosure-panel>summary::before{display:none!important}
.app-ui main details.disclosure-panel>summary::after{content:'+'!important;display:grid;place-items:center;width:1.65rem;height:1.65rem;margin-left:auto;border-radius:50%;background:#e2f1f8;color:#19648c;font-size:1.25rem;font-weight:500;line-height:1}
.app-ui main details.disclosure-panel[open]>summary{border-bottom:1px solid #d9e6ed;background:linear-gradient(135deg,#f3f9fc,#fff)}
.app-ui main details.disclosure-panel[open]>summary::after{content:'–'!important}
.app-ui main details.disclosure-panel>form,.app-ui main details.disclosure-panel>.build-details{margin:0!important;border:0!important;border-radius:0!important;box-shadow:none!important}

/* Einheitliche, ruhige Aktionsbuttons: dieselbe Auswahl-Optik wie die Statusfilter. */
body button:not(.overlay-close):not(.update-notice-close),body .button:not(.overlay-close):not(.update-notice-close){display:inline-flex;align-items:center;justify-content:center;gap:.38rem;min-height:2.2rem;padding:.42rem .72rem;border:1px solid #c4d8e5!important;border-radius:.52rem;background:#fff!important;color:#1b628c!important;box-shadow:none!important;font-size:.84rem;font-weight:750;line-height:1.15;text-decoration:none;transition:background .14s ease,border-color .14s ease,color .14s ease,transform .14s ease}
body button:not(.overlay-close):not(.update-notice-close):hover,body .button:not(.overlay-close):not(.update-notice-close):hover{border-color:#2f92c9!important;background:#e7f5fc!important;color:#145778!important;transform:translateY(-1px)}
body button:not(.overlay-close):not(.update-notice-close):focus-visible,body .button:not(.overlay-close):not(.update-notice-close):focus-visible{outline:3px solid rgb(76 164 211 / .28);outline-offset:2px}
body button.primary,body .button.primary,body button[type=submit].primary{border-color:#2a88bd!important;background:#2f92c9!important;color:#fff!important}
body button.primary:hover,body .button.primary:hover,body button[type=submit].primary:hover{border-color:#2179aa!important;background:#217fb3!important;color:#fff!important}
body button.positive,body .button.positive,body button[data-action="save"],body button[name="action"][value="save"]{border-color:#55a875!important;background:#f4fbf6!important;color:#287249!important}
body button.positive:hover,body .button.positive:hover,body button[data-action="save"]:hover,body button[name="action"][value="save"]:hover{border-color:#2f8c56!important;background:#e4f5e9!important;color:#1e623c!important}
/* Nutzer:innen-Visitenkarten verwenden einen eigenen, stark spezifischen
   Formularbereich. Diese Regel bleibt deshalb auch gegen ältere
   Seiten-spezifische Blau-Regeln eindeutig grün. */
body[data-page="person_profile"] .staff-card footer button.positive,
body[data-page="person_profile"] .person-profile-form .detail-actions button.positive{
  border-color:#55a875!important;
  background:#f4fbf6!important;
  color:#287249!important;
}
body[data-page="person_profile"] .staff-card footer button.positive:hover,
body[data-page="person_profile"] .person-profile-form .detail-actions button.positive:hover{
  border-color:#2f8c56!important;
  background:#e4f5e9!important;
  color:#1e623c!important;
}
/* Anlegeformulare erhalten die positive Kennzeichnung auch ohne JavaScript. */
body form:has(input[name="serial_number"]) button:not(.danger),body form:has(input[name="collection_type"]) button:not(.danger),body form:has(input[name="action"][value="add"]) button:not(.danger),body form:has(input[name="action"][value="issue"]) button:not(.danger),body form:has(input[name="action"][value="loan"]) button:not(.danger){border-color:#55a875!important;background:#f4fbf6!important;color:#287249!important}
body form:has(input[name="serial_number"]) button:not(.danger):hover,body form:has(input[name="collection_type"]) button:not(.danger):hover,body form:has(input[name="action"][value="add"]):hover,body form:has(input[name="action"][value="issue"]) button:not(.danger):hover,body form:has(input[name="action"][value="loan"]) button:not(.danger):hover{border-color:#2f8c56!important;background:#e4f5e9!important;color:#1e623c!important}
body form:has(input[name="action"][value="save"]) button:not(.danger),body form.book-view-edit button:not(.danger),body form[action*="library_catalog_save"] button:not(.danger),body .detail-actions button:not(.danger){border-color:#55a875!important;background:#f4fbf6!important;color:#287249!important}
body form:has(input[name="action"][value="save"]) button:not(.danger):hover,body form.book-view-edit button:not(.danger):hover,body form[action*="library_catalog_save"] button:not(.danger):hover,body .detail-actions button:not(.danger):hover{border-color:#2f8c56!important;background:#e4f5e9!important;color:#1e623c!important}
body button.danger,body .button.danger{border:2px solid #c84f4f!important;background:#fffafa!important;color:#a33838!important}
body button.danger:hover,body .button.danger:hover{border-color:#a83737!important;background:#ffe9e9!important;color:#8f2d2d!important}
/* Lösch- und Archivierungsformulare bleiben auch ohne JavaScript eindeutig rot. */
body form:has(input[name="action"][value*="delete" i]) button,body form:has(input[name="action"][value*="retire" i]) button,body form:has(input[name="action"][value*="archive" i]) button,body form[data-confirm-message] button{border:2px solid #c84f4f!important;background:#fffafa!important;color:#a33838!important}
body form:has(input[name="action"][value*="delete" i]) button:hover,body form:has(input[name="action"][value*="retire" i]) button:hover,body form:has(input[name="action"][value*="archive" i]) button:hover,body form[data-confirm-message] button:hover{border-color:#a83737!important;background:#ffe9e9!important;color:#8f2d2d!important}
body .compact-button{min-height:1.8rem;padding:.28rem .5rem;border-radius:.42rem;font-size:.76rem}
body .camera-scan-button,body .ocr-scan-button{border-color:#2f92c9!important;background:#e7f5fc!important;color:#17618e!important}
body .camera-scan-button::before{content:'⌁';font-size:1.15em;font-weight:800;line-height:1}
body .ocr-scan-button::before{content:'⌕';font-size:1.1em;font-weight:800;line-height:1}
/* Scanner und Bestands-Suchen sind Navigation/Auswahl, keine bestätigende
   Aktion. Sie bleiben daher in allen Ausleihe-Formularen bewusst blau. */
body .camera-scan-button,
body .ocr-scan-button,
body .scanner-switch-camera,
body .device-stock-search-button,
body .book-stock-search-button,
body .book-search-button,
body .person-search-button{
  border-color:#2f92c9!important;
  background:#fff!important;
  color:#17618e!important;
}
body .camera-scan-button:hover,
body .ocr-scan-button:hover,
body .scanner-switch-camera:hover,
body .device-stock-search-button:hover,
body .book-stock-search-button:hover,
body .book-search-button:hover,
body .person-search-button:hover{
  border-color:#2179aa!important;
  background:#e7f5fc!important;
  color:#124e73!important;
}
body .device-stock-search-button::before,
body .book-stock-search-button::before,
body .book-search-button::before,
body .person-search-button::before{
  content:'⌕';
  font-size:1.08em;
  font-weight:800;
  line-height:1;
}
/* Die grünen Formularregeln sind absichtlich breit gefasst. Für technische
   Auswahlaktionen wird ihre Spezifität hier überboten. */
body form:has(input[name]) button.camera-scan-button:not(.danger),
body form:has(input[name]) button.ocr-scan-button:not(.danger),
body form:has(input[name]) button.device-stock-search-button:not(.danger),
body form:has(input[name]) button.book-stock-search-button:not(.danger),
body form:has(input[name]) button.book-search-button:not(.danger),
body form:has(input[name]) button.person-search-button:not(.danger){
  border-color:#c4d8e5!important;
  background:#fff!important;
  color:#1b628c!important;
}
body form:has(input[name]) button.camera-scan-button:not(.danger):hover,
body form:has(input[name]) button.ocr-scan-button:not(.danger):hover,
body form:has(input[name]) button.device-stock-search-button:not(.danger):hover,
body form:has(input[name]) button.book-stock-search-button:not(.danger):hover,
body form:has(input[name]) button.book-search-button:not(.danger):hover,
body form:has(input[name]) button.person-search-button:not(.danger):hover{
  border-color:#2f92c9!important;
  background:#e7f5fc!important;
  color:#145778!important;
}
/* Master-Administration: bewusst dauerhaft sichtbar, aber nicht störend. */
.master-impersonation-notice{position:fixed;z-index:10000;left:50%;bottom:18px;transform:translateX(-50%);display:flex;align-items:center;gap:12px;max-width:calc(100vw - 28px);padding:9px 12px;border:1px solid rgba(29,89,126,.4);border-radius:10px;background:rgba(244,250,255,.92);box-shadow:0 8px 28px rgba(17,57,85,.18);backdrop-filter:blur(8px);font-size:.86rem;color:#174d70}.master-impersonation-notice a{color:#0c5d90;font-weight:700;text-decoration:none;white-space:nowrap}.master-impersonation-notice a:hover{text-decoration:underline}@media(max-width:560px){.master-impersonation-notice{bottom:10px;gap:8px;font-size:.78rem;padding:8px 10px}}
.totp-qr{display:grid;place-items:center;width:220px;min-height:220px;margin:1rem 0;padding:.45rem;border:1px solid #d7e2e9;border-radius:.7rem;background:#fff}.totp-qr svg{display:block;max-width:100%;height:auto}.totp-qr span{font-size:.85rem;color:#526a79}
.master-tenant-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.25rem;padding:1.15rem;border:1px solid #d8e6ed;border-radius:.8rem;background:linear-gradient(135deg,#f8fbfd,#fff)}.master-tenant-form>label{min-width:0}.master-tenant-form>fieldset,.master-tenant-form>[data-tenant-own-database],.master-tenant-form>[data-tenant-main-database],.master-tenant-form>p{grid-column:1/-1}.master-tenant-form>[data-tenant-own-database]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem 1rem;padding:.9rem;border:1px solid #e1ebf0;border-radius:.65rem;background:#fff}.master-tenant-form [data-tenant-mysql-fields]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem 1rem;grid-column:1/-1}.master-tenant-form fieldset{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem .9rem}.master-tenant-form .license-limit-unlimited{align-self:end}@media(max-width:720px){.master-tenant-form,.master-tenant-form>[data-tenant-own-database],.master-tenant-form [data-tenant-mysql-fields],.master-tenant-form fieldset{grid-template-columns:1fr}}
.license-limit-group{display:flex;align-items:end;gap:.75rem;min-width:0}.license-limit-group>label:first-child{flex:1;min-width:0}.license-limit-group .license-limit-unlimited{flex:0 0 auto;margin-bottom:.08rem;white-space:nowrap}.license-limit-group .toggle-label{font-size:.84rem}@media(max-width:520px){.license-limit-group{align-items:stretch;flex-direction:column;gap:.45rem}.license-limit-group .license-limit-unlimited{align-self:flex-start}}
.license-limit-group>label.is-disabled{opacity:.52}.license-limit-group>label.is-disabled input{background:#eef2f4!important;color:#75818a!important;cursor:not-allowed}
.language-settings{max-width:38rem}.language-editor{max-width:72rem}.language-editor-filter{display:flex;flex-wrap:wrap;gap:.8rem;margin:0 0 1rem;padding:.8rem;border:1px solid #d8e6ee;border-radius:.7rem;background:#f8fcff}.language-editor-filter label{min-width:14rem;flex:1}.language-editor-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem 1rem}.language-editor-form label{display:grid;gap:.28rem}.language-editor-form label span{color:#476275;font-size:.75rem;font-weight:750;letter-spacing:.04em;text-transform:uppercase}.language-editor-form>p{grid-column:1/-1}@media(max-width:700px){.language-editor-form{grid-template-columns:1fr}.language-editor-filter{display:grid}}
.master-tenant-form [data-tenant-mysql-fields][hidden]{display:none!important}
.master-tenant-form>[data-tenant-own-database][hidden]{display:none!important}
/* Zugriffsrechte übernimmt den ruhigen, klar gegliederten Aufbau der Geräteverwaltung. */
body[data-page="access_control"] .page-content{max-width:70rem}
body[data-page="access_control"] .access-control-section,
body[data-page="access_control"] .access-group-settings{width:100%;margin:0 0 1rem;overflow:hidden}
body[data-page="access_control"] .access-control-section>summary,
body[data-page="access_control"] .access-group-settings>summary{display:flex;align-items:center;min-height:2.2rem;padding:.42rem .72rem;color:#1f5577;font-size:.88rem;font-weight:650;cursor:pointer}
body[data-page="access_control"] .access-control-section[open]>summary,
body[data-page="access_control"] .access-group-settings[open]>summary{margin:0 0 .8rem;padding:0;color:#174f73;font-size:1rem}
body[data-page="access_control"] .device-create-toggle{padding:.3rem .5rem;border:1px solid #d8e4ee;box-shadow:none;background:#fff;border-radius:.7rem}
body[data-page="access_control"] .device-create-toggle[open]{padding:1.15rem 1.3rem;border-top:4px solid #38a0d5;background:linear-gradient(135deg,#f8fcff,#fff)}
body[data-page="access_control"] .device-create-toggle[open]>summary::after{content:'Schließen';margin-left:auto;color:#527184;font-size:.78rem;font-weight:700}
body[data-page="access_control"] .device-create-toggle[open]>summary::after{transform:rotate(0deg)!important}
body[data-page="access_control"] .device-create-toggle .device-create-form{display:grid;grid-template-columns:minmax(14rem,1fr) repeat(2,minmax(10rem,1fr));align-items:end;gap:.7rem 1rem;margin:0;padding:0;border:0;box-shadow:none;background:transparent}
body[data-page="access_control"] .device-create-toggle .device-create-form>input[name="name"]{grid-column:1/-1;max-width:28rem}
body[data-page="access_control"] .device-create-toggle .device-create-form>label{display:flex;align-items:center;gap:.4rem;min-height:2rem;margin:0;padding:.38rem .55rem;border:1px solid #d7e5ed;border-radius:.5rem;background:#fff;color:#355a70;font-size:.84rem;font-weight:650}
body[data-page="access_control"] .device-create-toggle .device-create-form>label input{width:auto;margin:0}
body[data-page="access_control"] .device-create-toggle .device-create-form>button{grid-column:1/-1;justify-self:end}
body[data-page="access_control"] .access-group-list-card,
body[data-page="access_control"] .access-user-list-card,
body[data-page="access_control"] .access-group-settings{padding:1.15rem;border:1px solid #d8e6ee;border-radius:.8rem;background:#fff;box-shadow:0 2px 8px rgb(14 60 91 / .05)}
body[data-page="access_control"] .access-group-list-card>.build-details,
body[data-page="access_control"] .access-user-list-card>.build-details,
body[data-page="access_control"] .access-group-settings>.build-details{padding:0}
.access-group-settings{margin-top:1rem}.access-group-defaults{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin:.9rem 0}.access-group-defaults label{display:grid;gap:.3rem;color:#476275;font-size:.76rem;font-weight:750;letter-spacing:.04em;text-transform:uppercase}
.access-group-entry{margin:.6rem 0;border:1px solid #d8e6ee;border-radius:.7rem;background:#fff;box-shadow:0 2px 8px rgb(14 60 91 / .04)}.access-group-entry>summary{display:flex;align-items:center;min-height:2.2rem;padding:.48rem .72rem;font-weight:700;color:#285b78;cursor:pointer;list-style:none}.access-group-entry>summary::-webkit-details-marker{display:none}.access-group-entry>summary::after{content:'Bearbeiten';display:inline-flex;align-items:center;justify-content:center;min-height:1.75rem;margin-left:auto;padding:.22rem .5rem;border:1px solid #c9dce8;border-radius:.45rem;background:#fff;color:#416b82;font-size:.76rem;font-weight:650;line-height:1;white-space:nowrap}.access-group-entry[open]>summary::after{content:'Schließen'}.access-group-entry>.build-details{padding:.9rem;border-top:1px solid #e3edf2}.access-group-entry .access-row{display:grid;grid-template-columns:minmax(13rem,1fr) repeat(2,minmax(10rem,1fr));align-items:center;gap:.55rem .75rem;margin:0;padding:0;border:0;border-radius:0;background:transparent}.access-group-entry .access-row>input[name="name"]{grid-column:1/-1;max-width:28rem}.access-group-entry .access-row label{display:flex;align-items:center;gap:.38rem;margin:0;padding:.34rem .45rem;border:1px solid #dbe7ee;border-radius:.48rem;background:#f9fcfe;font-size:.82rem;font-weight:650}.access-group-entry .access-row label input{width:auto;margin:0}.access-group-entry .access-group-imap-policy{display:grid;gap:.25rem;color:#476275;font-size:.74rem;font-weight:750;letter-spacing:.04em;text-transform:uppercase}.access-group-entry .access-group-imap-policy select{width:100%;margin:0;text-transform:none;letter-spacing:normal;font-weight:500}.access-group-actions{display:flex;align-items:center;justify-content:space-between;gap:.7rem;margin:.8rem 0 0;padding-top:.8rem;border-top:1px solid #e3edf2}.access-group-actions .inline-form{margin:0}.access-group-actions>button{margin-left:auto}
.access-group-entry>summary::after,.access-group-entry[open]>summary::after{transform:rotate(0deg)!important}
.access-group-actions .inline-form{display:inline-flex;width:auto;margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
body[data-page="access_control"] .access-user{margin:.6rem 0;border:1px solid #d8e6ee;border-radius:.7rem;box-shadow:0 2px 8px rgb(14 60 91 / .04)}
body[data-page="access_control"] .access-user summary{display:flex;align-items:center;min-height:2.25rem;padding:.5rem .72rem;color:#285b78;font-weight:700}
body[data-page="access_control"] .access-user form{padding:.9rem;background:#fbfdfe}
body[data-page="access_control"] .access-user-imap-setting{display:grid;grid-template-columns:minmax(12rem,1fr) minmax(14rem,1fr);align-items:center;gap:.65rem;max-width:42rem;margin:.55rem 0;padding:.55rem .65rem;border:1px solid #d8e6ee;border-radius:.55rem;background:#fff;color:#355a70;font-size:.84rem;font-weight:700}body[data-page="access_control"] .access-user-imap-setting select{margin:0;width:100%}body[data-page="access_control"] .access-user-imap-setting .notice{grid-column:1/-1;margin:0;font-weight:500}@media(max-width:600px){body[data-page="access_control"] .access-user-imap-setting{grid-template-columns:1fr}}
@media(max-width:720px){body[data-page="access_control"] .device-create-toggle .device-create-form, .access-group-entry .access-row{grid-template-columns:1fr}.access-group-defaults{grid-template-columns:1fr}.access-group-policy-heading{display:none}.access-group-policy-row{grid-template-columns:1fr;gap:.32rem}.access-group-policy-row>div::before{content:'IMAP-Prüfung';display:block;margin-bottom:.22rem;color:#476275;font-size:.7rem;font-weight:750;letter-spacing:.04em;text-transform:uppercase}.access-group-entry .access-row>input[name="name"],body[data-page="access_control"] .device-create-toggle .device-create-form>input[name="name"]{grid-column:1}.access-group-actions{align-items:stretch}.access-group-actions>button{width:auto}.access-group-entry .access-row button,body[data-page="access_control"] .device-create-toggle .device-create-form>button{grid-column:1;justify-self:stretch;width:100%}}
