﻿@charset "utf-8";

:root { --dom-bg: #080d13; --dom-bg-elevated: #0d141d; --dom-panel: rgba(14, 22, 31, 0.92); --dom-panel-strong: #101923; --dom-border: rgba(157, 177, 199, 0.16); --dom-border-strong: rgba(112, 226, 143, 0.28); --dom-text: #edf5ef; --dom-muted: #93a0ae; --dom-green: #6fe391; --dom-green-strong: #38c96a; --dom-green-soft: rgba(80, 213, 120, 0.12); --dom-danger: #ff7c7c; --dom-warning: #f4c76a; --dom-topbar-height: 72px; --dom-sidebar-width: 286px; --dom-sidebar-collapsed-width: 82px; --dom-radius: 18px; --dom-shadow: 0 18px 50px rgba(0, 0, 0, 0.32); }

* { box-sizing: border-box; }

html { min-width: 320px; background: var(--dom-bg); font-size: 15px; }

body { color: var(--dom-text); background: radial-gradient(circle at 100% 0, rgba(32, 139, 67, 0.09), transparent 28rem),
    radial-gradient(circle at 0 100%, rgba(31, 90, 147, 0.07), transparent 26rem),
    var(--dom-bg); }

body, button, input, select, textarea { font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }

a { color: var(--dom-green); }

code { color: rgb(140, 236, 167); }

.min-w-0 { min-width: 0px; }

.dom-skip-link { position: fixed; z-index: 2000; top: 0.5rem; left: 0.5rem; padding: 0.75rem 1rem; border-radius: 0.75rem; background: var(--dom-green); color: rgb(4, 17, 8); }

.dom-topbar { position: fixed; z-index: 1045; inset: 0px 0px auto; height: calc(var(--dom-topbar-height) + env(safe-area-inset-top)); padding-top: env(safe-area-inset-top); border-bottom: 1px solid var(--dom-border); background: rgba(8, 13, 19, 0.91); backdrop-filter: blur(18px); transition: padding-left 0.2s; }

.dom-page-title { max-width: 44vw; font-size: 1.08rem; font-weight: 750; letter-spacing: -0.02em; }

.dom-brand { display: flex; align-items: center; gap: 0.75rem; color: var(--dom-text); font-size: 1.15rem; font-weight: 800; text-decoration: none; }

.dom-brand img { border-radius: 50%; object-fit: cover; }

.dom-icon-btn { display: inline-grid; place-items: center; width: 48px; height: 48px; padding: 0px; border: 1px solid var(--dom-border); border-radius: 15px; color: var(--dom-text); background: rgba(16, 24, 34, 0.8); }

.dom-icon-btn:hover, .dom-icon-btn:focus-visible { border-color: var(--dom-border-strong); color: var(--dom-green); background: var(--dom-green-soft); }

.dom-clock { min-width: 68px; padding: 0.52rem 0.72rem; border: 1px solid var(--dom-border-strong); border-radius: 999px; font-variant-numeric: tabular-nums; font-weight: 800; text-align: center; background: var(--dom-green-soft); }

.dom-app { min-height: 100vh; padding-top: calc(var(--dom-topbar-height) + env(safe-area-inset-top)); }

.dom-sidebar { --bs-offcanvas-width: min(86vw, var(--dom-sidebar-width)); height: 100dvh; max-height: 100dvh; overflow: hidden; color: var(--dom-text); background: rgb(10, 17, 26); border-right: 1px solid var(--dom-border); transition: width 0.2s, transform 0.3s, visibility 0.3s; }

.dom-sidebar-body { display: flex; flex: 1 1 auto; min-width: 0px; min-height: 0px; flex-direction: column; padding: 1rem; overflow: hidden auto; overscroll-behavior-y: contain; scrollbar-gutter: stable; scrollbar-width: thin; scrollbar-color: rgba(111, 227, 145, 0.48) transparent; }

.dom-sidebar-body::-webkit-scrollbar { width: 8px; }

.dom-sidebar-body::-webkit-scrollbar-track { background: transparent; }

.dom-sidebar-body::-webkit-scrollbar-thumb { border: 2px solid transparent; border-radius: 999px; background: padding-box rgba(111, 227, 145, 0.42); }

.dom-sidebar-body > nav { flex: 0 0 auto; }

.dom-nav-section + .dom-nav-section { margin-top: 1.2rem; }

.dom-nav-heading { margin: 0px 0px 0.45rem; padding: 0px 0.85rem; color: rgb(113, 128, 145); font-size: 0.68rem; font-weight: 800; letter-spacing: 0.13em; text-transform: uppercase; }

.dom-nav-link { display: flex; align-items: center; min-height: 50px; gap: 0.85rem; padding: 0.7rem 0.85rem; border: 1px solid transparent; border-radius: 14px; color: rgb(201, 209, 218); font-weight: 650; text-decoration: none; }

.dom-nav-link:hover, .dom-nav-link:focus-visible { color: var(--dom-text); background: rgba(255, 255, 255, 0.04); border-color: var(--dom-border); }

.dom-nav-link.active { color: var(--dom-green); border-color: var(--dom-border-strong); background: linear-gradient(90deg, rgba(60, 210, 104, 0.15), rgba(60, 210, 104, 0.04)); box-shadow: inset 3px 0 0 var(--dom-green); }

.dom-nav-icon { display: inline-grid; flex: 0 0 28px; place-items: center; color: var(--dom-green); }

.dom-sidebar-footer { flex: 0 0 auto; margin-top: auto; padding: 1.25rem .85rem calc(1rem + env(safe-area-inset-bottom)); border-top: 1px solid var(--dom-border); }

.dom-main { min-width: 0px; transition: margin-left 0.2s; }

.dom-content { max-width: 1600px; padding: 1.1rem .85rem calc(2rem + env(safe-area-inset-bottom)); }

.dom-hero, .dom-panel, .dom-stat-card, .dom-module-card { border: 1px solid var(--dom-border); border-radius: var(--dom-radius); background: linear-gradient(145deg, rgba(15, 24, 34, 0.96), rgba(10, 17, 25, 0.94)); box-shadow: rgba(0, 0, 0, 0.13) 0px 10px 30px; }

.dom-hero { position: relative; height: 78px; overflow: hidden; padding: 1.35rem; border-color: rgba(90, 209, 124, 0.2); }

.dom-hero > div:first-child { position: relative; z-index: 1; }

.dom-hero-orb { position: absolute; right: -4rem; bottom: -5rem; width: 13rem; height: 13rem; border: 1px solid rgba(111, 227, 145, 0.22); border-radius: 50%; background: radial-gradient(circle at 35% 35%, rgba(111, 227, 145, 0.35), rgba(25, 122, 57, 0.08) 45%, transparent 68%); filter: blur(0.2px); }

.dom-section-title { font-size: 1.08rem; font-weight: 560; }

.dom-stat-card { display: flex; min-height: 130px; flex-direction: column; justify-content: center; padding: 1rem; }

.dom-stat-label { color: var(--dom-muted); font-size: 0.78rem; font-weight: 650; }

.dom-stat-value { margin: 0.25rem 0px; color: var(--dom-text); font-size: clamp(1.75rem, 7vw, 2.5rem); font-weight: 850; line-height: 1; font-variant-numeric: tabular-nums; }

.dom-stat-value-sm { overflow-wrap: anywhere; font-size: 0.95rem; line-height: 1.35; }

.dom-module-card { display: flex; min-height: 82px; align-items: center; gap: 1rem; padding: 1rem; color: var(--dom-text); text-decoration: none; transition: transform 0.16s, border-color 0.16s, background 0.16s; }

.dom-module-card:hover, .dom-module-card:focus-visible { color: var(--dom-text); border-color: var(--dom-border-strong); background: linear-gradient(145deg, rgba(20, 33, 44, 0.98), rgba(11, 23, 28, 0.96)); transform: translateY(-2px); }

.dom-module-icon, .dom-page-icon { display: inline-grid; flex: 0 0 auto; place-items: center; width: 50px; height: 50px; border: 1px solid var(--dom-border-strong); border-radius: 15px; color: var(--dom-green); background: var(--dom-green-soft); }

.dom-page-icon { width: 56px; height: 56px; }

.dom-panel { padding: 1.1rem; }

.home-command-center { display: grid; gap: 1.25rem; }
.home-command-center .home-hero { height: auto; min-height: 190px; }
.home-quick-actions, .home-section-heading, .home-panel-head, .home-car { display: flex; align-items: center; gap: .75rem; }
.home-quick-actions { flex-wrap: wrap; }
.home-section-heading, .home-panel-head { justify-content: space-between; margin-bottom: .75rem; }
.home-stats, .home-panels, .home-module-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: .85rem; }
.home-stats .dom-stat-card { color: var(--dom-text); text-decoration: none; }
.mikcar-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr)); gap:1rem; }
.mikcar-card { display:grid; gap:1rem; }
.mikcar-card > header { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; }
.mikcar-card h2 { margin:.2rem 0; }
.mikcar-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem; margin:0; }
.mikcar-facts > div { padding:.75rem; border:1px solid var(--dom-border); border-radius:12px; background:var(--dom-surface-soft); }
.mikcar-facts dt { color:var(--dom-muted); font-size:.78rem; text-transform:uppercase; letter-spacing:.04em; }
.mikcar-facts dd { margin:.25rem 0 0; font-weight:700; }
.mikcar-history { margin-top:1rem; }
.mikcar-entry-form { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:.75rem; align-items:end; }
.mikcar-timeline { display:grid; gap:.65rem; margin-top:1rem; }
.mikcar-timeline article { display:grid; grid-template-columns:minmax(135px,.7fr) 2fr auto; gap:1rem; align-items:center; padding:.8rem 0; border-top:1px solid var(--dom-border); }
.mikcar-timeline p { margin:.2rem 0 0; }
.admin-overview { display:grid; gap:1rem; }
.admin-hero { min-height:150px; }
.admin-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.85rem; }
.admin-section { overflow:hidden; }
.admin-config { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:.7rem; }
.admin-config > div { padding:.75rem; border:1px solid var(--dom-border); border-radius:12px; }
.admin-config dt,.admin-list small,.admin-audit small { color:var(--dom-muted); }
.admin-config dt { text-transform:capitalize; font-size:.8rem; }
.admin-config dd { margin:.25rem 0 0; font-weight:700; }
.admin-list,.admin-audit { display:grid; gap:.65rem; }
.admin-list article { display:grid; grid-template-columns:1fr auto; gap:.35rem 1rem; padding:.8rem 0; border-top:1px solid var(--dom-border); }
.admin-list article p { grid-column:1/-1; margin:0; }
.admin-list small,.admin-audit small { display:block; margin-top:.2rem; }
.admin-table-wrap { overflow-x:auto; }
.admin-table { width:100%; border-collapse:collapse; }
.admin-table th,.admin-table td { padding:.75rem; border-top:1px solid var(--dom-border); text-align:left; }
.admin-table th { color:var(--dom-muted); font-size:.78rem; text-transform:uppercase; }
.admin-audit article { display:grid; grid-template-columns:minmax(150px,.8fr) 2fr auto; gap:1rem; align-items:center; padding:.75rem 0; border-top:1px solid var(--dom-border); }
.home-card-link { color: var(--dom-green); font-size: .82rem; font-weight: 750; text-decoration: none; }
.home-list-panel { min-width: 0; margin: 0; }
.home-panel-head h3 { margin: 0; font-size: 1rem; }
.home-item-list { display: grid; gap: .2rem; margin: 0; padding: 0; list-style: none; }
.home-item-list li { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: .75rem; padding: .65rem 0; border-top: 1px solid var(--dom-border); }
.home-item-list li:first-child { border-top: 0; }
.home-item-list li > span:first-child, .dom-module-card > span:last-child { min-width: 0; }
.home-item-list strong, .home-item-list small, .dom-module-card strong, .dom-module-card small { display: block; overflow-wrap: anywhere; }
.home-item-list small, .dom-module-card small, .home-empty { color: var(--dom-muted); }
.home-car { justify-content: space-between; }

@media (max-width: 575.98px) {
  .home-command-center .home-hero { min-height: 0; padding: 1.15rem; }
  .home-quick-actions .btn { flex: 1 1 auto; }
  .home-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-stats .dom-stat-card { min-height: 104px; }
  .mikcar-facts { grid-template-columns:1fr; }
  .mikcar-timeline article { grid-template-columns:1fr auto; }
  .mikcar-timeline article time { grid-column:1/-1; }
  .admin-stats { grid-template-columns:1fr; }
  .admin-audit article { grid-template-columns:1fr auto; }
  .admin-audit article time { grid-column:1/-1; }
  .home-car { align-items: stretch; flex-direction: column; }
}

.dom-callout { padding: 1rem; border-left: 3px solid var(--dom-green); border-radius: 0px 12px 12px 0px; background: var(--dom-green-soft); }

.dom-code { display: block; width: 100%; padding: 0.8rem; overflow-x: auto; border: 1px solid var(--dom-border); border-radius: 12px; background: rgb(8, 14, 20); }

.dom-admin-nav { display: flex; gap: 0.5rem; overflow-x: auto; padding-bottom: 0.3rem; scrollbar-width: thin; }

.dom-admin-nav .btn { flex: 0 0 auto; min-height: 40px; }

.dom-save-bar { position: sticky; z-index: 10; bottom: max(.75rem, env(safe-area-inset-bottom)); display: flex; justify-content: flex-end; margin-top: 1rem; padding: 0.75rem; border: 1px solid var(--dom-border); border-radius: 15px; background: rgba(8, 13, 19, 0.92); backdrop-filter: blur(12px); }

.dom-permission-matrix { max-height: 68vh; }

.dom-permission-matrix thead { position: sticky; z-index: 4; top: 0px; }

.permission-sticky { min-width: 230px; position: sticky; z-index: 2; left: 0px; background: rgb(16, 24, 33) !important; }

.table-group-divider th { color: var(--dom-green); background: rgb(24, 35, 46) !important; }

.table-dark { --bs-table-bg: transparent; --bs-table-striped-bg: rgba(255, 255, 255, .018); --bs-table-hover-bg: rgba(111, 227, 145, .045); --bs-table-border-color: var(--dom-border); }

.table > :not(caption) > * > * { padding: 0.9rem 0.8rem; }

.form-control, .form-select { min-height: 46px; border-color: var(--dom-border); color: var(--dom-text); background-color: rgb(10, 17, 25); }

.form-control:focus, .form-select:focus { border-color: var(--dom-green); box-shadow: rgba(66, 211, 108, 0.13) 0px 0px 0px 0.22rem; background-color: rgb(10, 17, 25); }

.form-check-input { width: 1.2em; height: 1.2em; border-color: rgba(255, 255, 255, 0.32); background-color: rgb(10, 17, 25); }

.form-check-input:checked { border-color: var(--dom-green-strong); background-color: var(--dom-green-strong); }

.btn-success { --bs-btn-bg: #35bd61; --bs-btn-border-color: #35bd61; --bs-btn-hover-bg: #2ea955; --bs-btn-hover-border-color: #2ea955; --bs-btn-active-bg: #269249; --bs-btn-active-border-color: #269249; --bs-btn-color: #041108; --bs-btn-hover-color: #041108; font-weight: 750; }

.alert { border-radius: 14px; }

.offcanvas { color: var(--dom-text); background: rgb(11, 18, 26); }

.dom-auth-body { min-width: 320px; background: radial-gradient(circle at 50% 0, rgba(62, 194, 101, .15), transparent 34rem),
    var(--dom-bg); }

.dom-auth-card { width: min(100%, 430px); border-radius: 24px; background: rgba(13, 21, 30, 0.94); backdrop-filter: blur(16px); border: 1px solid var(--dom-border) !important; }

.dom-auth-logo { width: 76px; height: 76px; border: 2px solid var(--dom-border-strong); border-radius: 50%; object-fit: cover; box-shadow: rgba(111, 227, 145, 0.05) 0px 0px 0px 8px; }

.dom-status-code { color: var(--dom-green); font-size: clamp(4rem, 20vw, 8rem); font-weight: 900; line-height: 0.9; opacity: 0.28; }

.dom-sidebar-toggle { align-items: center; justify-content: center; }

.dom-sidebar-toggle .dom-icon { transition: transform 0.2s; }

html.dom-sidebar-collapsed .dom-sidebar-toggle .dom-icon { transform: rotate(180deg); }

@media (max-width: 359.98px) {
  .dom-avatar { display: none; }
  .dom-clock { min-width: 60px; padding-inline: 0.55rem; }
  .dom-page-title { max-width: 28vw; font-size: 1rem; }
}

@media (min-width: 576px) {
  .dom-content { padding: 1.4rem 1.25rem 2.5rem; }
  .dom-hero, .dom-panel { padding: 1.5rem; }
  .dom-stat-card { padding: 1.25rem; }
}

@media (min-width: 768px) {
  .dom-page-title { max-width: 50vw; font-size: 1.2rem; }
  .dom-hero { min-height: 210px; padding: 2rem; }
  .dom-hero-orb { right: 2rem; bottom: -5rem; width: 17rem; height: 17rem; }
}

@media (min-width: 992px) {
  .dom-topbar { padding-left: var(--dom-sidebar-width); }
  .dom-sidebar { position: fixed; z-index: 1040; top: 0px; bottom: 0px; left: 0px; width: var(--dom-sidebar-width); height: 100dvh; max-height: 100dvh; transform: none !important; visibility: visible !important; }
  .dom-sidebar .offcanvas-header { display: flex; flex: 0 0 auto; min-height: calc(var(--dom-topbar-height) + env(safe-area-inset-top)); padding-top: calc(1rem + env(safe-area-inset-top)); }
  .dom-sidebar .btn-close { display: none; }
  .dom-sidebar-body { flex: 1 1 auto; height: auto; min-height: 0px; overflow-y: auto; }
  .dom-main { margin-left: var(--dom-sidebar-width); }
  .dom-content { padding: 1.8rem 2rem 3rem; }
  .dom-page-title { max-width: 60vw; }
  html.dom-sidebar-collapsed .dom-topbar { padding-left: var(--dom-sidebar-collapsed-width); }
  html.dom-sidebar-collapsed .dom-sidebar { width: var(--dom-sidebar-collapsed-width); }
  html.dom-sidebar-collapsed .dom-main { margin-left: var(--dom-sidebar-collapsed-width); }
  html.dom-sidebar-collapsed .dom-sidebar .offcanvas-header { justify-content: center; padding-right: 0.65rem; padding-left: 0.65rem; }
  html.dom-sidebar-collapsed .dom-sidebar .dom-brand { justify-content: center; gap: 0px; }
  html.dom-sidebar-collapsed .dom-sidebar .dom-brand span, html.dom-sidebar-collapsed .dom-sidebar .dom-nav-heading, html.dom-sidebar-collapsed .dom-sidebar .dom-nav-label, html.dom-sidebar-collapsed .dom-sidebar .dom-sidebar-footer { display: none; }
  html.dom-sidebar-collapsed .dom-sidebar-body { padding-right: 0.55rem; padding-left: 0.55rem; scrollbar-gutter: auto; }
  html.dom-sidebar-collapsed .dom-nav-section + .dom-nav-section { margin-top: 0.35rem; }
  html.dom-sidebar-collapsed .dom-nav-link { justify-content: center; gap: 0px; min-height: 50px; padding-right: 0.5rem; padding-left: 0.5rem; }
  html.dom-sidebar-collapsed .dom-nav-icon { flex-basis: 28px; }
}

@media (min-width: 1280px) {
  :root { --dom-sidebar-width: 300px; }
  .dom-content { padding-right: 2.5rem; padding-left: 2.5rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, ::before, ::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; }
}

.dom-sidebar.offcanvas-lg { display: flex; flex-direction: column; overflow: hidden; }

.dom-sidebar.offcanvas-lg > .offcanvas-body.dom-sidebar-body { display: flex; height: auto; overscroll-behavior-y: contain; flex: 1 1 0px !important; min-height: 0px !important; overflow: hidden auto !important; }

.dom-sidebar.offcanvas-lg > .offcanvas-body.dom-sidebar-body > nav { flex: 0 0 auto; min-height: max-content; }

.dom-user-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 0.4rem; }

.dom-password-note { border: 1px solid rgba(111, 227, 145, 0.22); border-radius: 12px; padding: 0.75rem; color: var(--dom-muted); background: rgba(111, 227, 145, 0.05); }

@media (max-width: 991.98px) {
  .dom-sidebar.offcanvas-lg > .offcanvas-body.dom-sidebar-body { padding-bottom: calc(1rem + env(safe-area-inset-bottom)); }
  .dom-user-actions { justify-content: flex-start; }
}

.dom-topbar-brand { display: inline-flex; min-width: 0px; align-items: center; gap: 0.55rem; color: var(--dom-text); font-size: 1.05rem; font-weight: 850; text-decoration: none; }

.planner-board { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; align-items: start; }
.planner-column { min-width: 0; }
.planner-card { margin-top: .8rem; padding: 1rem; border-left: 4px solid var(--dom-green); border-radius: 12px; background: rgba(255,255,255,.035); overflow-wrap: anywhere; }
.planner-card h3 { font-size: 1rem; }
.planner-card .actions { margin-top: .8rem; }
@media (max-width: 991.98px) { .planner-board { grid-template-columns: 1fr; } }
.calendar-toolbar { display: flex; flex-wrap: wrap; gap: .6rem; margin-bottom: 1rem; }
.calendar-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: .45rem; }
.calendar-weekday { padding: .5rem; color: var(--dom-muted); font-weight: 800; text-align: center; }
.calendar-day { min-width: 0; min-height: 8rem; padding: .55rem; border: 1px solid var(--dom-border); border-radius: 12px; background: var(--dom-surface); overflow-wrap: anywhere; }
.calendar-day.outside { opacity: .42; }
.calendar-day h2 { font-size: .9rem; }
.calendar-event { margin-top: .4rem; padding: .45rem; border-left: 3px solid var(--dom-green); border-radius: 8px; background: rgba(111,227,145,.07); }
.calendar-event small { display: block; color: var(--dom-muted); }
@media (max-width: 700px) { .calendar-grid { display: block; } .calendar-weekday,.calendar-day.outside { display:none; } .calendar-day { min-height: 0; margin-bottom: .5rem; } }
.journal-list { display:grid; gap:1rem; }
.journal-entry header { display:flex; flex-wrap:wrap; justify-content:space-between; gap:.5rem; }
.journal-entry time { color:var(--dom-muted); }
.work-list { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr)); gap:1rem; }
.work-card dl { display:grid; grid-template-columns:max-content minmax(0,1fr); gap:.35rem .8rem; }
.work-card dd { margin:0; overflow-wrap:anywhere; }

.dom-topbar-brand:hover, .dom-topbar-brand:focus-visible { color: var(--dom-green); }

.dom-topbar-brand img { width: 42px; height: 42px; border: 2px solid rgba(111, 227, 145, 0.65); border-radius: 50%; object-fit: cover; box-shadow: rgba(111, 227, 145, 0.06) 0px 0px 0px 4px; }

.dom-editor-layout { display: grid; grid-template-columns: minmax(250px, 340px) minmax(0px, 1fr); gap: 1rem; min-height: calc(100dvh - var(--dom-topbar-height) - 8rem); }

.dom-editor-browser, .dom-editor-workspace { min-width: 0px; overflow: hidden; }

.dom-editor-browser { display: flex; max-height: calc(100dvh - var(--dom-topbar-height) - 3rem); flex-direction: column; }

.dom-editor-browser-head, .dom-editor-toolbar { display: flex; flex: 0 0 auto; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem; border-bottom: 1px solid var(--dom-border); }

.dom-editor-tree-scroll { min-height: 0px; flex: 1 1 auto; overflow: auto; padding: 0.55rem; scrollbar-width: thin; }

.dom-editor-tree { margin: 0px; padding: 0px 0px 0px 0.7rem; list-style: none; }

.dom-editor-tree[data-depth="0"] { padding-left: 0px; }

.dom-editor-tree summary { padding: 0.42rem 0.55rem; border-radius: 0.6rem; color: rgb(203, 215, 207); cursor: pointer; user-select: none; }

.dom-editor-tree summary:hover { background: rgba(255, 255, 255, 0.04); }

.dom-editor-file { display: flex; min-width: 0px; align-items: center; gap: 0.4rem; padding: 0.42rem 0.55rem; border: 1px solid transparent; border-radius: 0.6rem; color: rgb(175, 187, 197); text-decoration: none; }

.dom-editor-file span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.dom-editor-file:hover, .dom-editor-file.active { color: var(--dom-green); border-color: rgba(111, 227, 145, 0.2); background: rgba(111, 227, 145, 0.08); }

.dom-editor-create, .dom-editor-danger { flex: 0 0 auto; padding: 0.85rem 1rem; border-top: 1px solid var(--dom-border); }

.dom-editor-create summary, .dom-editor-danger summary { font-weight: 750; cursor: pointer; }

.dom-editor-workspace { display: flex; flex-direction: column; }

.dom-editor-workspace form#editor-save-form { display: flex; min-height: 0px; flex: 1 1 auto; flex-direction: column; }

.dom-editor-textarea { min-height: 65dvh; flex: 1 1 auto; resize: vertical; border: 0px; border-radius: 0px; padding: 1rem; color: rgb(223, 249, 230); background: rgb(5, 10, 14); font-family: "Cascadia Code", Consolas, "Courier New", monospace; font-size: 0.9rem; line-height: 1.55; tab-size: 4; white-space: pre; }

.dom-editor-textarea:focus { box-shadow: rgba(111, 227, 145, 0.35) 0px 0px 0px 1px inset; }

.dom-editor-empty { display: grid; min-height: 55dvh; place-content: center; padding: 2rem; text-align: center; }

.dom-editor-root-form { width: min(100%, 360px); }

body.dom-editor-dirty .dom-page-title::after { content: " • niezapisane"; color: var(--dom-warning); font-size: 0.72rem; }

@media (max-width: 991.98px) {
  .dom-editor-layout { grid-template-columns: 1fr; }
  .dom-editor-browser { max-height: 42dvh; }
  .dom-editor-textarea { min-height: 58dvh; }
}

@media (max-width: 575.98px) {
  .dom-topbar { --dom-topbar-height: 64px; }
  .dom-topbar .container-fluid { padding-right: 0.4rem; padding-left: 0.4rem; gap: 0.35rem !important; }
  .dom-page-title { max-width: 28vw; font-size: 0.95rem; }
  .dom-clock { display: none; }
  .dom-topbar-brand { gap: 0.35rem; font-size: 0.92rem; }
  .dom-topbar-brand img { width: 38px; height: 38px; }
  .dom-icon-btn { width: 42px; height: 42px; border-radius: 13px; }
}

.dom-clock { flex-direction: column; align-items: center; justify-content: center; gap: 0.12rem; min-width: 70px; min-height: 46px; padding: 0.3rem 0.62rem 0.27rem; border: 1px solid var(--dom-border-strong, rgba(255,255,255,.12)); border-radius: 14px; background: var(--dom-green-soft, rgba(23,244,84,.08)); font-variant-numeric: tabular-nums; text-align: center; line-height: 1; display: flex !important; }

.dom-clock-time { display: block; color: var(--dom-text, #f5f5f7); font-size: 1rem; font-weight: 800; line-height: 1; white-space: nowrap; }

.dom-clock-date { display: block; margin-top: 0.08rem; color: var(--dom-muted, #9aa0ad); font-size: 0.6rem; font-weight: 600; line-height: 1; white-space: nowrap; }

@media (max-width: 575.98px) {
  .dom-clock { min-width: 64px; min-height: 44px; padding: 0.27rem 0.44rem 0.24rem; display: flex !important; }
  .dom-clock-time { font-size: 0.94rem; }
  .dom-clock-date { font-size: 0.56rem; }
}/* DOM2 compatibility content styles on the /1 shell contract */
.auth-page main{width:min(430px,calc(100% - 2rem));min-height:100vh;margin:0 auto;padding:3rem 0;display:grid;align-content:center}.auth-page .dom-auth-logo{margin:0 auto 1rem}.auth-page h1{text-align:center}.auth-page .auth-subtitle{text-align:center;color:var(--dom-muted)}.auth-page footer{margin-left:0}.shell-page footer{margin-left:var(--dom-sidebar-width);padding:1rem 2rem;color:var(--dom-muted)}.shell-page .eyebrow{color:var(--dom-green);font-size:.7rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.shell-page h1{margin-bottom:1.2rem}.panel,.task,.empty,.note,.stats>div{border:1px solid var(--dom-border);border-radius:var(--dom-radius);background:linear-gradient(145deg,rgba(15,24,34,.96),rgba(10,17,25,.94));box-shadow:0 10px 30px rgba(0,0,0,.13)}.panel,.task,.empty,.note{padding:1.1rem;margin-bottom:1rem}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-bottom:1rem}.stats>div{padding:1rem}.filters{display:grid;grid-template-columns:minmax(180px,2fr) minmax(140px,1fr) auto;gap:12px;align-items:end;margin-bottom:1rem}label{display:grid;gap:7px;color:var(--dom-muted);font-size:.8rem;font-weight:650}input,select,textarea{width:100%;min-height:46px;padding:.65rem .75rem;border:1px solid var(--dom-border);border-radius:10px;color:var(--dom-text);background:#0a1119}textarea{min-height:90px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}button,.button{min-height:44px;padding:.65rem .95rem;border:1px solid transparent;border-radius:10px;background:var(--dom-green-strong);color:#041108;font-weight:750}.actions{display:flex;gap:.5rem;flex-wrap:wrap}.actions form{display:block}.actions button{background:var(--dom-panel-strong);border-color:var(--dom-border);color:var(--dom-text)}.actions .danger{color:var(--dom-danger)}details>summary{min-height:44px;padding:.75rem 0;color:var(--dom-green);font-weight:750}.empty{text-align:center;color:var(--dom-muted)}.notes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}.note-border-green{border-left:4px solid var(--dom-green)}.note-border-blue{border-left:4px solid #5aa9ff}.note-border-yellow{border-left:4px solid var(--dom-warning)}.note-text{white-space:pre-wrap;overflow-wrap:anywhere}.meta,.notes{color:var(--dom-muted)}.notice{padding:.75rem 1rem;border:1px solid var(--dom-green);border-radius:12px;color:var(--dom-green);background:var(--dom-green-soft)}
@media(max-width:991.98px){.dom-topbar{padding-left:0}.dom-sidebar{position:fixed;z-index:1040;top:0;bottom:0;left:0;width:min(86vw,var(--dom-sidebar-width));height:100dvh;transform:translateX(-100%);visibility:hidden}.dom-sidebar.nav-open,.nav-open .dom-sidebar{transform:none;visibility:visible}.dom-main{margin-left:0}.shell-page footer{margin-left:0}.dom-clock{display:flex!important}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.filters{grid-template-columns:1fr}.field-row{grid-template-columns:1fr}.dom-topbar-brand span{display:none}}
@media(min-width:992px){.dom-sidebar{display:flex!important}.dom-sidebar .btn-close{display:none}.dom-topbar{padding-left:var(--dom-sidebar-width)}.dom-main{margin-left:var(--dom-sidebar-width)}.sidebar-toggle{display:none!important}}
.stats>div{display:flex;align-items:baseline;gap:.45rem}
.auth-page .login form{display:flex;flex-direction:column}.auth-page .login form>button{align-self:center;margin-top:1rem}
.planner-workspace{display:grid;gap:1rem}.planner-hero{display:flex;align-items:center;justify-content:space-between;gap:1rem}.planner-create{position:relative}.planner-create[open]{min-width:min(100%,22rem)}.planner-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.planner-summary span{padding:.8rem 1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.planner-summary strong{display:block;font-size:1.35rem}.planner-filters{margin:0}.planner-column{min-width:0}.planner-card .actions{display:flex;flex-wrap:wrap;gap:.4rem}
@media(max-width:720px){.planner-hero{align-items:stretch;flex-direction:column}.planner-summary{grid-template-columns:1fr}.planner-create[open]{min-width:0}}
.upload-workspace,.editor-workspace{display:grid;gap:1rem}.upload-hero,.editor-hero{display:flex;align-items:center;justify-content:space-between;gap:1.25rem}.upload-dropzone{min-width:min(100%,20rem);padding:1rem;border:1px dashed var(--border);border-radius:var(--radius);background:var(--surface)}.upload-list{display:grid;gap:.75rem}.upload-row{display:flex;align-items:center;justify-content:space-between;gap:1rem}.upload-row h2{margin-bottom:.25rem}.upload-hash{max-width:44rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editor-picker form{display:flex;align-items:end;gap:.75rem}.editor-picker label{flex:1}.editor-document header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.editor-document textarea{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;line-height:1.55;resize:vertical}
@media(max-width:720px){.upload-hero,.editor-hero,.upload-row,.editor-document header{align-items:stretch;flex-direction:column}.upload-dropzone{min-width:0}.editor-picker form{align-items:stretch;flex-direction:column}}
.planner-recurrence{display:grid;gap:12px;margin:0;padding:.75rem;border:1px solid var(--dom-border);border-radius:10px}.planner-recurrence legend{padding:0 .4rem;color:var(--dom-muted);font-size:.8rem;font-weight:650}.planner-weekdays{display:flex;flex-wrap:wrap;gap:.35rem .9rem}.planner-weekdays label{display:flex;align-items:center;gap:.35rem;min-height:44px}.planner-weekdays input{width:auto;min-height:0}

/* DOM2 mobile acceptance — 2026-10-22. Keep the native page shell compact. */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.dom-hero{height:auto;min-height:125px;overflow:hidden}
.planner-hero{height:auto!important;min-height:150px;overflow:visible}
.planner-summary{grid-template-columns:repeat(3,minmax(0,1fr))}
.planner-summary span{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1rem;min-height:78px;border:1px solid var(--dom-border);background:var(--dom-panel);border-radius:13px}
.planner-summary strong{font-size:clamp(1.15rem,3.8vw,1.6rem)}
.maintenance-workspace{display:grid;gap:1rem;min-width:0}
.maintenance-hero{height:auto;min-height:138px;padding:1.3rem}
.maintenance-hero h2{margin:.2rem 0;font-size:clamp(1.5rem,4vw,2.15rem)}
.maintenance-hero p{margin:.3rem 0 0;color:var(--dom-muted)}
.maintenance-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.65rem}
.maintenance-tabs{display:flex;flex-wrap:wrap;gap:.55rem}
.maintenance-tabs a{padding:.6rem .85rem;border:1px solid var(--dom-border);border-radius:10px;color:var(--dom-green);text-decoration:none;background:var(--dom-panel)}
.maintenance-assets{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:.8rem}
.maintenance-asset{display:block;min-width:0}
.maintenance-asset h4{font-size:1.1rem;margin:.25rem 0 .4rem}
.maintenance-asset details{margin-top:1rem}
.maintenance-asset summary,.maintenance-form summary{cursor:pointer;font-weight:700;color:var(--dom-green)}
.maintenance-asset form{display:grid;gap:.4rem;margin-top:.6rem}
.maintenance-asset input,.maintenance-asset textarea{width:100%;max-width:100%}
.maintenance-form{margin:1rem 0;padding:.85rem;border-radius:13px;background:rgba(255,255,255,.025);border:1px solid var(--dom-border)}
.maintenance-form form{display:grid;gap:.85rem;margin-top:.75rem}
.maintenance-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:.75rem}
.maintenance-form-grid input,.maintenance-form-grid select,.maintenance-form-grid textarea{width:100%;max-width:100%}
.maintenance-plan-list{display:grid;gap:.5rem}
.maintenance-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1rem 0;border-top:1px solid var(--dom-border);overflow-wrap:anywhere}
.maintenance-row h4{font-size:1.05rem;margin:.4rem 0}
.maintenance-row p{margin:.4rem 0}
.maintenance-badge{display:inline-block;color:var(--dom-green);font-size:.72rem;font-weight:800}
.maintenance-badge.overdue{color:var(--dom-danger)}
@media(max-width:991.98px){
 .dom-topbar .container-fluid{gap:.3rem!important;padding-inline:.45rem}
 .dom-topbar .container-fluid>div{gap:.3rem!important}
 .dom-page-title{font-size:.92rem;max-width:38vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .dom-clock{min-width:57px;padding:.35rem .45rem}
 .dom-clock-time{font-size:1rem}
 .dom-clock-date{font-size:.58rem}
 .dom-icon-btn{height:43px;width:43px;padding:0}
 .dom-topbar-brand span{display:none}
 .dom-topbar-brand img{width:38px;height:38px}
 .planner-summary{grid-template-columns:repeat(3,minmax(0,1fr))}
 .planner-summary span{padding:.65rem .3rem;text-align:center;font-size:.8rem;min-height:80px}
 .planner-hero{padding:1rem;min-height:150px}
 .maintenance-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:575.98px){
 .dom-page-title{max-width:32vw;font-size:.87rem}
 .dom-topbar-brand{display:inline-flex}
 .dom-clock-date{font-size:.55rem}
 .planner-summary{gap:.4rem}
 .planner-summary span{font-size:.72rem;line-height:1.2}
 .maintenance-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
 .maintenance-row{flex-direction:column}
 .maintenance-tabs a{flex:1 1 auto;text-align:center}
}

/* ===== Profile domowników (DOM 2.0) ===== */
:root { --pc-blue:#5aa9ff; --pc-green:#38c96a; --pc-yellow:#f4c76a; --pc-orange:#ff9f5a; --pc-red:#ff7c7c; --pc-purple:#b08cff; --pc-teal:#4fd1c5; --pc-gray:#93a0ae; }
.profile-avatar { display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; flex:0 0 34px; border-radius:50%; font-weight:800; font-size:.9rem; color:#06101a; background:var(--pc-blue); }
.profile-color-blue{background:var(--pc-blue)}.profile-color-green{background:var(--pc-green)}.profile-color-yellow{background:var(--pc-yellow)}.profile-color-orange{background:var(--pc-orange)}.profile-color-red{background:var(--pc-red)}.profile-color-purple{background:var(--pc-purple)}.profile-color-teal{background:var(--pc-teal)}.profile-color-gray{background:var(--pc-gray)}
.dom-profile-switch { position:relative; }
.dom-profile-switch > summary { display:flex; align-items:center; gap:.45rem; min-height:44px; min-width:44px; padding:.2rem .55rem .2rem .25rem; border:1px solid var(--dom-border-strong); border-radius:999px; background:var(--dom-green-soft); color:var(--dom-text); cursor:pointer; list-style:none; }
.dom-profile-switch > summary::-webkit-details-marker { display:none; }
.dom-profile-switch .profile-name { max-width:9ch; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:700; font-size:.85rem; }
.profile-menu { position:absolute; right:0; top:calc(100% + .4rem); z-index:1060; display:grid; gap:.25rem; min-width:210px; max-width:calc(100vw - 2rem); padding:.5rem; border:1px solid var(--dom-border); border-radius:14px; background:var(--dom-panel-strong); box-shadow:var(--dom-shadow); }
.profile-menu .profile-item { display:flex; align-items:center; gap:.6rem; width:100%; min-height:48px; padding:.4rem .6rem; border:0; border-radius:10px; background:transparent; color:var(--dom-text); text-align:left; text-decoration:none; font-weight:650; }
.profile-menu .profile-item:hover, .profile-menu .profile-item:focus-visible { background:var(--dom-green-soft); }
.profile-menu .profile-item.is-active { outline:1px solid var(--dom-border-strong); }
.profile-menu small { margin-left:auto; color:var(--dom-muted); }
.profile-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:1rem; margin-bottom:1rem; }
.profile-card { display:grid; gap:.5rem; justify-items:start; }
.profile-card .profile-avatar { width:56px; height:56px; flex-basis:56px; font-size:1.4rem; }
.profile-card.is-active { border-color:var(--dom-border-strong); }
.profile-card.is-inactive { opacity:.7; }
.profile-card h2 { margin:0; font-size:1.15rem; }
.badge.scope-personal, .badge.scope-household, .badge.scope-shared { display:inline-block; padding:.18rem .55rem; border-radius:999px; font-size:.7rem; font-weight:800; letter-spacing:.03em; color:#06101a; }
.badge.scope-personal { background:var(--pc-blue); } .badge.scope-household { background:var(--pc-green); } .badge.scope-shared { background:var(--pc-yellow); }
.ai-msg { margin:.5rem 0; padding:.6rem .8rem; border-radius:12px; background:var(--dom-bg-elevated); }
.ai-msg pre { white-space:pre-wrap; overflow-wrap:anywhere; margin:0; font:inherit; }
.ai-user { border-left:3px solid var(--pc-blue); } .ai-assistant { border-left:3px solid var(--pc-green); }
@media (max-width:359.98px) { .dom-profile-switch .profile-name { display:none; } }
@media (max-width:575.98px) { .dom-profile-switch > summary { padding-right:.25rem; } .profile-menu { position:fixed; left:1rem; right:1rem; top:calc(var(--dom-topbar-height) + env(safe-area-inset-top) + .4rem); } }

/* ===== Awatary obrazkowe + topbar (DOM2-AVATARS-01 / DOM2-TOPBAR-02) ===== */
.profile-avatar.has-image { background: var(--dom-panel-strong, #16202b); overflow: hidden; }
.profile-avatar img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.profile-avatar-default { background: transparent; border: 2px solid rgba(111, 227, 145, 0.65); overflow: hidden; }
.dom-profile-switch > summary .profile-avatar, .dom-profile-static .profile-avatar { width: 40px; height: 40px; flex-basis: 40px; }
.dom-profile-switch > summary { padding-left: .2rem; }
.dom-profile-static { display: flex; align-items: center; gap: .45rem; min-height: 44px; padding: .2rem .55rem .2rem .2rem; border: 1px solid var(--dom-border-strong); border-radius: 999px; background: var(--dom-green-soft); color: var(--dom-text); text-decoration: none; }
.profile-menu .profile-avatar { width: 34px; height: 34px; flex-basis: 34px; }
.profile-card .profile-avatar.has-image, .profile-card .profile-avatar-default { width: 72px; height: 72px; flex-basis: 72px; }
.avatar-form { display: grid; gap: .6rem; max-width: 26rem; }
.avatar-preview { width: 128px; height: 128px; border-radius: 50%; overflow: hidden; border: 2px solid var(--dom-border-strong); background: var(--dom-panel-strong, #16202b); display: flex; align-items: center; justify-content: center; }
.avatar-preview img { width: 100%; height: 100%; object-fit: cover; }
.avatar-preview[hidden] { display: none; }
.avatar-note { color: var(--dom-muted); font-size: .85rem; }
.form-error { color: var(--pc-red); font-weight: 700; }
@media (max-width: 575.98px) {
  .dom-profile-switch .profile-name { max-width: 7ch; }
  .dom-profile-switch > summary, .dom-profile-static { padding-right: .4rem; }
  .dom-page-title { max-width: 26vw; }
}

/* ---- Szkoła: panel ucznia ---- */
.school-page { display: grid; gap: 1rem; }
.school-students { display: flex; flex-wrap: wrap; gap: .6rem; }
.school-student { display: flex; align-items: center; gap: .65rem; min-height: 56px; padding: .45rem .9rem .45rem .5rem; border: 1px solid var(--dom-border-strong); border-radius: 999px; background: var(--dom-panel-strong); color: var(--dom-text); cursor: pointer; text-align: left; }
.school-student.is-active { background: var(--dom-green-soft); border-color: rgba(111, 227, 145, .7); }
.school-student:hover { border-color: rgba(111, 227, 145, .5); }
.school-initial { width: 40px; height: 40px; flex: 0 0 40px; display: grid; place-items: center; border-radius: 50%; background: rgba(111, 227, 145, .16); font-weight: 800; }
.school-student-text { display: grid; line-height: 1.2; }
.school-student-text small { color: var(--dom-muted); }
/* Szkoła: kompaktowy wybór dwóch dzieci, bez wierszy z nazwiskiem i licznikami. */
.school-page .school-students {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .65rem;
}
.school-page .school-students > form {
  min-width: 0;
  margin: 0 !important;
}
.school-page .school-students > form.school-all { grid-column: 1 / -1; }
.school-page .school-students .school-student {
  width: 100%;
  min-width: 0;
  min-height: 60px;
  gap: .45rem;
  padding: .45rem .55rem;
  border-radius: 16px;
}
.school-page .school-students .school-initial {
  width: 35px;
  height: 35px;
  flex: 0 0 35px;
}
.school-page .school-students .school-student-text {
  min-width: 0;
  overflow-wrap: anywhere;
  font-size: clamp(.92rem, 3.7vw, 1.12rem);
}

.school-section h2, .school-head h2 { margin-bottom: .6rem; }
.school-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.school-item { display: grid; grid-template-columns: 6.5rem 1fr; gap: .75rem; padding: .55rem .65rem; border: 1px solid var(--dom-border); border-radius: .7rem; }
.school-item time { color: var(--dom-muted); font-variant-numeric: tabular-nums; }
.school-item.is-exam { border-left: 3px solid var(--pc-orange, #ff9f5a); }
.school-item.is-homework { border-left: 3px solid var(--pc-blue, #5aa9ff); }
.school-item p { margin: .2rem 0 0; }
.school-week { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: .65rem; }
.school-day { border: 1px solid var(--dom-border); border-radius: .75rem; padding: .6rem .7rem; }
.school-day h3 { font-size: 1rem; margin: 0 0 .4rem; }
.school-day h3 small { color: var(--dom-muted); font-weight: 400; }
.school-day ol { list-style: none; margin: 0; padding: 0; display: grid; gap: .35rem; }
.school-day li { display: grid; grid-template-columns: 5.2rem 1fr; gap: .5rem; }
.school-time { color: var(--dom-muted); font-variant-numeric: tabular-nums; font-size: .88rem; }
.school-subject { display: grid; }
.school-subject small { color: var(--dom-muted); }
.school-weeks, .school-pager { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; margin: .3rem 0 .6rem; }
.school-weeks .is-active { background: var(--dom-green-soft); }
.school-lunch > summary, .school-sources > summary, #historia > summary { cursor: pointer; display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.school-lunch-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: .8rem; margin-top: .7rem; }
.school-sources dl { display: grid; grid-template-columns: max-content 1fr; gap: .3rem 1rem; margin: .7rem 0 0; }
.school-sources dd { margin: 0; }
/* School: czytelny status importu, bez sugestii bieżącej sesji API. */
.school-page .school-sources dl {
  grid-template-columns: minmax(10rem, 16rem) minmax(0, 1fr);
  gap: .55rem .9rem;
  line-height: 1.45;
}
.school-page .school-sources dt {
  font-size: .91rem;
  font-weight: 700;
  color: var(--dom-text);
}
.school-page .school-sources dd {
  min-width: 0;
  overflow-wrap: anywhere;
  color: var(--dom-muted);
  font-size: .93rem;
}
.school-page .school-sync-now {
  margin-top: 1rem;
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  gap: .55rem;
}
.school-page .school-sync-now .button {
  display: inline-flex;
  width: auto;
  max-width: 100%;
  margin: 0;
}
.school-page .school-sync-note {
  display: block;
  margin: 0;
  font-size: .82rem;
  line-height: 1.5;
}
@media (max-width: 640px) {
  .school-page .school-sources dl { display: block; margin-top: .8rem; }
  .school-page .school-sources dt { margin-top: .75rem; }
  .school-page .school-sources dt:first-child { margin-top: 0; }
  .school-page .school-sources dd {
    margin: .13rem 0 0;
    padding-bottom: .65rem;
    border-bottom: 1px solid var(--dom-border);
  }
}

@media (max-width: 575.98px) {
  .school-item { grid-template-columns: 1fr; gap: .15rem; }
  .school-sources dl { grid-template-columns: 1fr; }
  .school-student { width: 100%; }
  .school-students form { flex: 1 1 100%; }
}

/* DOM2 ADMIN v2: pięć prostych ekranów zamiast jednego surowego raportu. */
.admin2 { display: grid; gap: .9rem; }
.admin2-hero { padding: 1rem 1.1rem; border: 1px solid var(--dom-border); border-radius: 1rem; background: var(--dom-panel-strong); }
.admin2-hero h1 { margin: 0 0 .25rem; font-size: clamp(1.45rem, 4vw, 1.9rem); }
.admin2-hero p { margin: 0; color: var(--dom-muted); font-size: .9rem; }
.admin2-nav { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .45rem; }
@media (min-width: 900px) { .admin2-nav { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
.admin2-tab { display: flex; justify-content: center; align-items: center; text-align: center; min-height: 48px; padding: .55rem .4rem; border: 1px solid var(--dom-border-strong); border-radius: .8rem; background: var(--dom-panel-strong); color: var(--dom-text); text-decoration: none; font-size: .9rem; font-weight: 650; line-height: 1.25; }
.admin2-tab:hover,.admin2-tab.is-active { border-color: rgba(111,227,145,.7); background: var(--dom-green-soft); color: var(--dom-text); }
.admin2-tab:focus-visible,.admin2 a:focus-visible { outline: 2px solid #6fe391; outline-offset: 2px; }
.admin2-main { display: grid; gap: .9rem; min-width: 0; }
.admin2-heading h2 { margin: 0 0 .3rem; }
.admin2-heading p,.admin2-muted { color: var(--dom-muted); }
.admin2-heading p { margin: 0; font-size: .92rem; }
.admin2-stats { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: .65rem; }
.admin2-stat { display: flex; flex-direction: column; gap: .2rem; border: 1px solid var(--dom-border); border-radius: 1rem; background: var(--dom-panel-strong); padding: 1rem; color: var(--dom-text); text-decoration: none; }
.admin2-stat > span { color: var(--dom-muted); font-size: .85rem; }
.admin2-stat > strong { font-size: clamp(1.7rem, 4vw, 2.5rem); line-height: 1.2; }
.admin2-stat > small { color: var(--dom-muted); line-height: 1.35; }
.admin2-quick,.admin2-users,.admin2-role-groups,.admin2-modules,.admin2-audit { display: grid; gap: .65rem; }
.admin2-quick { grid-template-columns: repeat(2,minmax(0,1fr)); }
.admin2-quick-item { display: flex; flex-direction: column; gap: .4rem; padding: .9rem 1rem; min-width: 0; border: 1px solid var(--dom-border); border-radius: .85rem; background: var(--dom-panel-strong); color: var(--dom-text); text-decoration: none; }
.admin2-quick-item strong { font-size: 1.03rem; }
.admin2-quick-item span { font-size: .85rem; line-height: 1.5; color: var(--dom-muted); }
.admin2-panel h3 { margin: 0 0 .7rem; }
.admin2-panel p:last-child { margin-bottom: 0; }
.admin2-info { padding: .85rem 1rem; border-left: 3px solid var(--dom-green, #6fe391); border-radius: .6rem; background: var(--dom-panel-strong); font-size: .93rem; }
.admin2-badge { display: inline-block; width: fit-content; white-space: nowrap; font-size: .72rem; font-weight: 700; padding: .25rem .55rem; border-radius: 999px; border: 1px solid var(--dom-border-strong); }
.admin2-badge.is-ok { color: #8df0a6; border-color: rgba(111,227,145,.4); }
.admin2-badge.is-off { color: #ffb2b2; border-color: rgba(255,120,120,.4); }
.admin2-user,.admin2-details { min-width: 0; }
.admin2-user-head,.admin2-event-top { display: flex; align-items: center; justify-content: space-between; gap: .6rem; }
.admin2-user-head > div { display: grid; gap: .25rem; min-width: 0; }
.admin2-user-head small { font-size: .8rem; overflow-wrap: anywhere; }
.admin2-user > p { margin: .7rem 0; font-size: .86rem; }
.admin2 details > summary { cursor: pointer; }
.admin2-user details,.admin2-event details { border-top: 1px solid var(--dom-border); margin-top: .65rem; padding-top: .65rem; }
.admin2-user details > summary,.admin2-event details > summary { color: var(--dom-green, #6fe391); }
.admin2-id { overflow-wrap: anywhere; }
.admin2-permissions { display: flex; flex-wrap: wrap; gap: .35rem; margin: .6rem 0; }
.admin2-permissions code { padding: .25rem .45rem; border-radius: .4rem; border: 1px solid var(--dom-border); }
.admin2-role-row { display: flex; justify-content: space-between; align-items: baseline; gap: .5rem; padding: .55rem 0; border-bottom: 1px solid var(--dom-border); }
.admin2-role-row span { color: var(--dom-muted); font-size: .8rem; text-align: right; }
.admin2-details > summary { font-weight: 600; }
.admin2-details > summary strong { margin-right: .7rem; }
.admin2-module { display: flex; justify-content: space-between; align-items: center; gap: .7rem; min-width: 0; padding: .8rem 1rem; border: 1px solid var(--dom-border); border-radius: .75rem; background: var(--dom-panel-strong); }
.admin2-module > div { display: grid; gap: .2rem; min-width: 0; }
.admin2-module small { overflow-wrap: anywhere; }
.admin2-event { padding: .85rem 1rem; border: 1px solid var(--dom-border); border-radius: .75rem; background: var(--dom-panel-strong); }
.admin2-event time { font-size: .8rem; color: var(--dom-muted); }
.admin2-definitions { margin: .75rem 0 0; display: grid; gap: .5rem; }
.admin2-definitions > div { display: grid; grid-template-columns: minmax(90px, .4fr) 1fr; gap: .6rem; }
.admin2-definitions dt { color: var(--dom-muted); }
.admin2-definitions dd { margin: 0; overflow-wrap: anywhere; }
@media (max-width: 720px) {
  .admin2-nav { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .admin2-tab:first-child { grid-column: 1 / -1; }
  .admin2-stats { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .admin2-stats .admin2-stat:last-child:nth-child(odd) { grid-column: 1 / -1; }
  .admin2-quick { grid-template-columns: 1fr; }
  .admin2-module { padding: .8rem; }
  .admin2-definitions > div { grid-template-columns: 1fr; gap: .1rem; }
}
/* ---- Zarządzanie agentami AI / strona /ai ---- */
.table-scroll { overflow-x: auto; }
.matrix-cell { min-width: 44px; min-height: 44px; border: 1px solid var(--dom-border-strong); border-radius: .6rem; background: var(--dom-panel-strong); color: var(--dom-text); cursor: pointer; font-weight: 800; }
.matrix-cell.on { background: var(--dom-green-soft); border-color: rgba(111, 227, 145, .7); }
.inline-form { display: inline; }
.agent-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: .6rem; }
.agent-card { display: grid; grid-template-columns: auto 1fr; gap: .2rem .6rem; align-items: start; min-width: 0; padding: .65rem .8rem; border: 1px solid var(--dom-border-strong); border-radius: .8rem; background: var(--dom-panel-strong); cursor: pointer; }
.agent-card input { margin-top: .3rem; }
.agent-card:has(input:checked) { border-color: rgba(111, 227, 145, .7); background: var(--dom-green-soft); }
.agent-card .agent-icon { font-size: 1.4rem; }
.agent-card-body { display: grid; gap: .1rem; min-width: 0; }
.agent-card-body small { color: var(--dom-muted); }
.agent-cards { border: 0; padding: 0; margin: 0 0 .8rem; min-width: 0; }
.agent-cards legend { font-size: 1rem; margin-bottom: .4rem; }
.panel p, .panel li, .panel dd { overflow-wrap: anywhere; }
.no-agents { padding: 1rem; border: 1px dashed var(--dom-border-strong); border-radius: .8rem; }
.ai-state { display: inline-block; padding: .18rem .6rem; border-radius: 999px; font-size: .75rem; font-weight: 800; letter-spacing: .04em; background: var(--dom-panel-strong); border: 1px solid var(--dom-border-strong); }
.ai-state-ready { background: var(--dom-green-soft); }
.ai-state-offline, .ai-state-error, .ai-state-blocked { border-color: var(--pc-red, #ff7c7c); }
.table-scroll td > form { display: inline-block; margin: 0 .25rem 0 0; vertical-align: middle; }
form[action="/manage/agents/save"] input[type="checkbox"] { width: 1.2rem; height: 1.2rem; padding: 0; }

/* ===== DOM2-MOBILE-04 (runda 4): ostatnia, nadrzędna warstwa — szerokość, topbar, Serwis, MikCar, typografia desktop =====
   Wcześniejsze bloki nadpisywały się nawzajem (np. .dom-icon-btn 48/43/42 px, .dom-page-title 28/32/38vw, .dom-clock none/flex!important),
   dlatego nagłówek mobilny jest tu zdefiniowany jednoznacznie. Bez globalnego overflow-x:hidden. */

/* --- 1. Szerokość: długie, nierozdzielne teksty nie mogą poszerzać dokumentu (przyczyna /todo: tytuł z „/” bez miejsca na złamanie) --- */
.dom-main, .dom-content, .dom-app { min-width: 0; max-width: 100%; }
.panel, .task, .note, .empty, .stats > div, .dom-panel, .dom-module-card, .planner-card, .work-list > article { min-width: 0; overflow-wrap: anywhere; }
.task-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: .35rem .75rem; flex-wrap: wrap; }
.task-heading h2 { flex: 1 1 12rem; min-width: 0; margin: 0 0 .25rem; overflow-wrap: anywhere; font-size: clamp(1.05rem, .95rem + .5vw, 1.35rem); }
.task-heading .badge { flex: 0 0 auto; }
.task .meta, .task .notes, .task label { overflow-wrap: anywhere; }
.task form, .task details, .filters > *, .field-row > * { min-width: 0; }
.stats > div { min-width: 0; }

/* --- 2. Wspólny nagłówek mobilny: [menu 44] [tytuł … …] [zegar] [profil] [wyloguj 44] --- */
.dom-topbar .container-fluid { display: flex; flex-wrap: nowrap; align-items: center; justify-content: flex-start; gap: .4rem !important; padding-inline: max(.45rem, env(safe-area-inset-left)) max(.45rem, env(safe-area-inset-right)); }
.dom-topbar-start { flex: 0 0 auto; }
.dom-topbar-end { flex: 1 1 0; min-width: 0; display: flex; align-items: center; justify-content: flex-end; gap: .4rem !important; }
.dom-topbar .dom-icon-btn { flex: 0 0 44px; width: 44px; min-width: 44px; height: 44px; min-height: 44px; padding: 0; border-radius: 13px; }
.dom-topbar .dom-icon-btn svg { flex: none; }
.dom-topbar form { flex: 0 0 auto; margin: 0; }
.dom-topbar .dom-page-title { flex: 1 1 0; min-width: 0; max-width: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .95rem; }
.dom-topbar .dom-clock { display: flex !important; flex: 0 0 auto; min-width: 56px; min-height: 44px; padding: .25rem .5rem; }
.dom-topbar .dom-profile-switch, .dom-topbar .dom-profile-static { flex: 0 0 auto; }
.dom-topbar .dom-profile-switch > summary, .dom-topbar .dom-profile-static { min-height: 44px; min-width: 44px; }
.dom-topbar .menu-toggle[aria-expanded="true"] { border-color: var(--dom-border-strong); color: var(--dom-green); background: var(--dom-green-soft); }
@media (max-width: 359.98px) {
  .dom-topbar .dom-clock-date { display: none; }
  .dom-topbar .dom-clock { min-width: 50px; padding-inline: .35rem; }
  .dom-topbar .container-fluid, .dom-topbar-end { gap: .3rem !important; }
}
@media (min-width: 576px) { .dom-topbar .dom-page-title { font-size: 1.05rem; } .dom-topbar .container-fluid { gap: .6rem !important; } .dom-topbar-end { gap: .6rem !important; } }
@media (min-width: 992px) { .dom-topbar .dom-page-title { font-size: clamp(1.05rem, .9rem + .35vw, 1.35rem); } }

/* --- 3. Planner i Notatnik: zwijane filtry --- */
.planner-filter-panel, .notes-filters, .notes-add { margin-bottom: 1rem; }
.planner-filter-panel > summary, .notes-filters > summary, .notes-add > summary { display: flex; align-items: center; gap: .6rem; }
.planner-filter-panel .filters, .notes-filters .filters { margin: .5rem 0 0; }
.planner-hero { gap: .75rem; }
.planner-create > summary.button { display: flex; align-items: center; justify-content: center; min-height: 52px; padding-inline: 1.4rem; font-size: 1.05rem; }
@media (max-width: 720px) { .planner-create { width: 100%; } }

/* --- 4. Serwis: kompaktowy nagłówek, nawigacja nad statystykami, statystyki wg zawartości --- */
.maintenance-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .25rem 1rem; }
.maintenance-head h2 { margin: 0; font-size: clamp(1.4rem, 1.1rem + 1vw, 2.1rem); }
.maintenance-head .eyebrow { margin: 0; }
.maintenance-sub { flex: 1 1 18rem; margin: 0; color: var(--dom-muted); }
.maintenance-stats { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .5rem; }
.maintenance-stats .dom-stat-card { min-height: 0; padding: .55rem .75rem; box-shadow: none; flex-direction: row; align-items: baseline; justify-content: space-between; gap: .5rem; }
.maintenance-stats .dom-stat-value { margin: 0; font-size: clamp(1.15rem, 1rem + .6vw, 1.6rem); }
.maintenance-stats .dom-stat-label { font-size: .75rem; }
.maintenance-stats .dom-stat-card.is-alert .dom-stat-value { color: var(--dom-danger); }
.maintenance-tabs a { min-height: 44px; display: inline-flex; align-items: center; }
.maintenance-workspace { gap: .75rem; }
@media (max-width: 991.98px) { .maintenance-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 575.98px) {
  .maintenance-sub { display: none; }
  .maintenance-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .maintenance-stats .dom-stat-card:last-child:nth-child(odd) { grid-column: 1 / -1; }
  .maintenance-tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .35rem; }
  .maintenance-tabs a { justify-content: center; padding: .5rem .2rem; font-size: .85rem; }
}

/* --- 5. MikCar: karty ze zdjęciem (grafiki z DOM 1.0) --- */
.mikcar-card { padding: 0; overflow: hidden; align-content: start; gap: 0; }
.mikcar-photo { display: block; aspect-ratio: 900 / 520; background: #0a1119; }
.mikcar-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.mikcar-card-body { display: grid; gap: .85rem; padding: 1rem 1.1rem 1.1rem; min-width: 0; }
.mikcar-card-body > header h2 { font-size: clamp(1.2rem, 1.05rem + .5vw, 1.6rem); overflow-wrap: anywhere; }
.mikcar-card .mikcar-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
.mikcar-card .mikcar-facts > div { padding: .55rem .7rem; min-width: 0; overflow-wrap: anywhere; }
.mikcar-card .actions { align-items: center; }
.mikcar-card .actions > .button { flex: 1 1 auto; text-align: center; display: inline-flex; align-items: center; justify-content: center; }
.mikcar-card .actions details { flex: 1 1 100%; }
@media (min-width: 576px) { .mikcar-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); } }
@media (max-width: 575.98px) { .mikcar-photo { aspect-ratio: 16 / 8; } .mikcar-card-body { padding: .8rem .85rem .9rem; } }

/* --- 6. Typografia na komputerze: skala z dostępnym miejscem (telefon bez zmian) --- */
@media (min-width: 992px) {
  .shell-page h1 { font-size: clamp(1.75rem, 1.2rem + 1vw, 2.5rem); }
  .dom-stat-value { font-size: clamp(1.9rem, 1.3rem + 1vw, 2.6rem); }
  .stats > div { font-size: clamp(.95rem, .85rem + .25vw, 1.15rem); }
  .panel, .task, .note, .dom-panel { padding: clamp(1.1rem, .8rem + .6vw, 1.6rem); }
  button, .button { font-size: clamp(.95rem, .88rem + .2vw, 1.1rem); }
}
@media (min-width: 1440px) { .dom-content { padding-inline: clamp(2.5rem, 4vw, 4rem); } .dom-nav-link { font-size: 1.02rem; } }
.mikcar-status { margin-top: 1rem; padding: .8rem 1rem; }
.mikcar-status h2 { margin: 0 0 .4rem; font-size: 1.1rem; }
.mikcar-status p { margin: .25rem 0; font-size: .9rem; }

/* Prywatny ICS Google: natywny, mobilny widok DOM, bez iframe. */
.dom-google-calendar { margin-bottom: 1.25rem; padding: 1.1rem; border: 1px solid var(--dom-border-strong); border-radius: var(--dom-radius); background: var(--dom-panel-strong); }
.dom-google-calendar-header { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .75rem; margin-bottom: 1rem; }
.dom-google-calendar-header h2 { margin: 0 0 .2rem; font-size: 1.2rem; color: var(--dom-text); }
.dom-google-calendar-header p { margin: 0; color: var(--dom-muted); font-size: .88rem; }
.dom-google-calendar-header a { white-space: nowrap; }
.dom-ics-current-month { display: flex; align-items: center; font-variant-numeric: tabular-nums; }
.dom-ics-note { margin: .75rem 0 0; border-radius: 12px; padding: .9rem; background: var(--dom-surface); color: var(--dom-muted); }
.dom-ics-agenda { display: grid; gap: .65rem; max-height: min(72vh, 780px); overflow: auto; }
.dom-ics-day { border: 1px solid var(--dom-border); border-radius: 12px; background: var(--dom-surface); overflow: hidden; }
.dom-ics-day h3 { margin: 0; padding: .65rem .85rem; color: var(--dom-green); font-size: .94rem; border-bottom: 1px solid var(--dom-border); }
.dom-ics-day ul { list-style: none; padding: 0; margin: 0; }
.dom-ics-event { display: grid; grid-template-columns: 5.25rem minmax(0,1fr); align-items: start; gap: .7rem; padding: .7rem .85rem; border-bottom: 1px solid var(--dom-border); overflow-wrap: anywhere; }
.dom-ics-event:last-child { border-bottom: none; }
.dom-ics-event-time { color: var(--dom-green); font-size: .85rem; }
.dom-ics-event strong { font-weight: 650; font-size: .95rem; color: var(--dom-text); }
.dom-ics-event small { display: block; color: var(--dom-muted); margin-top: .3rem; }
.dom-calendar-local { padding: 1rem; border: 1px solid var(--dom-border); border-radius: var(--dom-radius); background: var(--dom-panel); }
.dom-calendar-local > summary { cursor: pointer; color: var(--dom-green); font-weight: 700; }
.dom-calendar-local[open] > summary { margin-bottom: 1rem; }
@media (max-width: 700px) {
  .dom-google-calendar { padding: .75rem; }
  .dom-google-calendar-header { align-items: stretch; }
  .dom-google-calendar-header a { width: 100%; text-align: center; }
  .dom-ics-event { grid-template-columns: 4.4rem minmax(0,1fr); gap: .45rem; padding: .65rem; }
}

/* kalendarz-grid */
.kal{--kb:rgba(255,255,255,.10);margin:0 0 1rem}
.kal-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.5rem}
.kal-head h2{margin:0;font-size:1.35rem;text-align:center;flex:1}
.kal-nav{display:inline-flex;align-items:center;justify-content:center;width:2.6rem;height:2.6rem;border:1px solid var(--kb);border-radius:12px;font-size:1.6rem;line-height:1;text-decoration:none}
.kal-tools{display:flex;justify-content:space-between;gap:.5rem;margin-bottom:.6rem;font-size:.9rem}
.kal-tools a{text-decoration:none;border:1px solid var(--kb);border-radius:999px;padding:.35rem .8rem}
.kal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--kb);border-radius:14px;overflow:hidden}
.kal-wd{padding:.35rem 0;text-align:center;font-size:.72rem;opacity:.7;border-bottom:1px solid var(--kb)}
.kal-day{min-height:5.2rem;padding:.2rem;border-right:1px solid var(--kb);border-bottom:1px solid var(--kb);overflow:hidden;min-width:0}
.kal-day:nth-child(7n){border-right:0}
.kal-day.out{opacity:.3}.kal-day.we .kal-num{opacity:.75}
.kal-num{display:inline-flex;align-items:center;justify-content:center;min-width:1.5rem;height:1.5rem;font-size:.78rem;border-radius:999px;margin-bottom:.1rem}
.kal-day.today .kal-num{background:#66c675;color:#08120b;font-weight:700}
.kal-ev{display:block;margin:1px 0;padding:1px 4px;border-radius:5px;font-size:.62rem;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#0b0f14}
.kal-ev b{font-weight:700;display:none}.kal-nav,.kal-tools a{color:inherit}
.kal-ev.c0{background:#cf8b82}.kal-ev.c1{background:#6f9fd6}.kal-ev.c2{background:#7b7bc0}
.kal-ev.c3{background:#6fbf8b}.kal-ev.c4{background:#e6c36a}.kal-ev.c5{background:#a984b8}
.kal-more summary{cursor:pointer;font-size:.62rem;opacity:.85;list-style:none;padding:1px 4px}
.kal-more summary::-webkit-details-marker{display:none}
.kal-note{margin:.6rem 0;opacity:.8}
@media (min-width:768px){.kal-ev b{display:inline}.kal-day{min-height:7.5rem;padding:.35rem}.kal-ev{font-size:.78rem;padding:2px 6px}.kal-more summary{font-size:.78rem}}

/* kalendarz-agenda */
.kal-tabs{display:flex;gap:.4rem;margin-bottom:.7rem}
.kal-tab{flex:1;text-align:center;padding:.5rem .8rem;border:1px solid var(--kb,rgba(255,255,255,.1));border-radius:999px;text-decoration:none;color:inherit;font-size:.95rem}
.kal-tab.active{background:#66c675;color:#08120b;border-color:#66c675;font-weight:700}
.kal-ag-week{font-size:.8rem;font-weight:400;opacity:.65;margin:1rem 0 .4rem}
.kal-ag-day{display:flex;gap:.8rem;margin-bottom:.7rem}
.kal-ag-day.past{opacity:.55}
.kal-ag-date{flex:0 0 2.6rem;text-align:center;line-height:1.1;padding-top:.3rem}
.kal-ag-date span{display:block;font-size:.75rem;opacity:.75}
.kal-ag-date b{display:inline-flex;align-items:center;justify-content:center;min-width:2rem;height:2rem;font-size:1.25rem;border-radius:999px}
.kal-ag-day.today .kal-ag-date b{background:#66c675;color:#08120b}
.kal-ag-list{list-style:none;margin:0;padding:0;flex:1;min-width:0;display:flex;flex-direction:column;gap:.4rem}
.kal-card{display:block;padding:.6rem .85rem;border-radius:14px;color:#0b0f14}
.kal-card strong{display:block;font-size:1.02rem;line-height:1.25}
.kal-card small{display:block;font-size:.88rem;opacity:.85}
.kal-card.c0{background:#cf8b82}.kal-card.c1{background:#6f9fd6}.kal-card.c2{background:#7b7bc0}
.kal-card.c3{background:#6fbf8b}.kal-card.c4{background:#e6c36a}.kal-card.c5{background:#a984b8}
/* Google Calendar API: event colorId 1..11; official event palette. */
.kal-ev.c6,.kal-card.c6 { background:#dbadff; } /* Natalia / Grape fallback */
.kal-ev.g1,.kal-card.g1 { background:#a4bdfc; }
.kal-ev.g2,.kal-card.g2 { background:#7ae7bf; }
.kal-ev.g3,.kal-card.g3 { background:#dbadff; } /* Grape */
.kal-ev.g4,.kal-card.g4 { background:#ff887c; }
.kal-ev.g5,.kal-card.g5 { background:#fbd75b; }
.kal-ev.g6,.kal-card.g6 { background:#ffb878; }
.kal-ev.g7,.kal-card.g7 { background:#46d6db; }
.kal-ev.g8,.kal-card.g8 { background:#e1e1e1; }
.kal-ev.g9,.kal-card.g9 { background:#5484ed; color:#ffffff; }
.kal-ev.g10,.kal-card.g10 { background:#51b749; }
.kal-ev.g11,.kal-card.g11 { background:#dc2127; color:#ffffff; }
/* DOM2-SCHOOL-V1-CARDS-20261101: czytelne oceny jak w DOM 1.0 + natywne zwijanie. */
.school-page .school-accordion > summary {
  display: flex; align-items: center; flex-wrap: wrap; gap: .45rem .8rem;
  cursor: pointer; list-style: none; min-height: 38px;
}
.school-page .school-accordion > summary::-webkit-details-marker { display: none; }
.school-page .school-accordion > summary h2 {
  margin: 0; flex: 0 1 auto; line-height: 1.3;
}
.school-page .school-accordion > summary .meta {
  font-size: .81rem; margin: 0; color: var(--dom-muted);
}
.school-page .school-accordion > summary::after {
  content: '+'; margin-left: auto; font-size: 1.3rem; line-height: 1;
  font-weight: 600; color: var(--dom-muted);
}
.school-page .school-accordion[open] > summary::after { content: '−'; }
.school-page .school-accordion > summary:focus-visible {
  outline: 2px solid var(--dom-green, #6fe391); outline-offset: 4px; border-radius: .35rem;
}
.school-page .school-accordion-body { padding-top: .85rem; }
.school-page .school-grades { list-style: none; margin: 0; padding: 0; display: grid; }
.school-page .school-grade-card {
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; min-width: 0; padding: .8rem .1rem;
  border-bottom: 1px solid var(--dom-border);
}
.school-page .school-grade-card:last-child { border-bottom: 0; }
.school-page .school-grade-info { display: grid; gap: .2rem; min-width: 0; overflow-wrap: anywhere; }
.school-page .school-grade-subject { font-size: 1rem; line-height: 1.3; font-weight: 800; }
.school-page .school-grade-title { font-size: .94rem; line-height: 1.35; }
.school-page .school-grade-meta, .school-page .school-grade-teacher {
  color: var(--dom-muted); font-size: .8rem; line-height: 1.4;
}
.school-page .school-grade-meta time { font-variant-numeric: tabular-nums; }
.school-page .school-grade-value {
  flex: 0 0 auto; min-width: 53px; min-height: 53px; max-width: 102px;
  padding: .35rem .45rem; display: grid; place-items: center; text-align: center;
  border: 1px solid rgba(111, 227, 145, .40); border-radius: 14px;
  background: rgba(111, 227, 145, .09); font-size: 1.25rem;
  line-height: 1.15; font-weight: 800; overflow-wrap: anywhere;
}
.school-page .school-grades-count { margin: .8rem 0 0; }
@media (max-width: 575.98px) {
  .school-page .school-grade-card { gap: .6rem; padding: .7rem 0; }
  .school-page .school-grade-subject { font-size: .94rem; }
  .school-page .school-grade-value { min-width: 48px; min-height: 48px; font-size: 1.12rem; }
}

/* CSP (img-src 'self' blob:) blocks Bootstrap's data: SVG used by .btn-close, which logged CSP errors in the console on every page.
   Draw the icon with text instead; the CSP stays unchanged. */
.btn-close { --bs-btn-close-bg: none; background-image: none; position: relative; opacity: .85; }
.btn-close::before { content: "\00d7"; position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 1.9rem; line-height: 1; color: var(--dom-text, #e8eef5); }
/* Minimum 24x24px target (WCAG 2.5.8) for small text links; the text itself keeps its size and colour. */
.home-card-link,.tap-inline{display:inline-flex;align-items:center;min-height:24px}
/* Check boxes / radio buttons: 24px hit area (was 13px). Labels around them keep their layout. */
.planner-weekdays input[type=checkbox]{width:24px;height:24px;flex:none}
.agent-card input[type=radio]{width:24px;height:24px;flex:none;margin-top:0}

/* DOM2 ADMIN: zarządzanie kontami (formularze, bramka PIN, komunikaty). */
.admin2-flash { padding: .75rem 1rem; border-radius: .7rem; border: 1px solid var(--dom-border-strong); background: var(--dom-panel-strong); font-size: .93rem; }
.admin2-flash.is-ok { border-color: rgba(111,227,145,.5); color: #8df0a6; }
.admin2-flash.is-err { border-color: rgba(255,124,124,.55); color: #ffb2b2; }
.admin2-gate h3 { margin: 0 0 .5rem; }
.admin2-gate p { margin: 0 0 .6rem; }
.admin2-gate.is-open { border-color: rgba(111,227,145,.5); }
.admin2-gate.is-blocked { border-color: rgba(255,124,124,.45); }
.admin2-form { display: grid; gap: .7rem; max-width: 34rem; margin: .5rem 0; }
.admin2-form label { display: grid; gap: .3rem; font-size: .88rem; color: var(--dom-muted); }
.admin2-form input,.admin2-form select { width: 100%; min-height: 44px; padding: .5rem .7rem; border: 1px solid var(--dom-border-strong); border-radius: .6rem; background: var(--dom-bg-elevated); color: var(--dom-text); font: inherit; }
.admin2-form input:focus-visible,.admin2-form select:focus-visible { outline: 2px solid #6fe391; outline-offset: 1px; }
.admin2-perms { max-width: none; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); align-items: end; }
.admin2-perms .button { grid-column: 1 / -1; justify-self: start; }
.admin2-actions { display: grid; gap: .2rem; margin: .5rem 0; }
.admin2-row-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .65rem; }
.admin2-row-actions form { margin: 0; }
.admin2-danger > summary { color: #ffb2b2 !important; }
.admin2 .button.is-danger { border-color: rgba(255,124,124,.6); color: #ffb2b2; }
.admin2 .button[disabled] { opacity: .5; cursor: not-allowed; }
.admin2-create > summary { cursor: pointer; font-weight: 700; color: var(--dom-green, #6fe391); }
