/* ==========================================================================
   Prof.Tax Design-System – Komponenten (2.3.0)
   Voraussetzung: tokens.css. Alle Klassen mit Präfix pt-, Modifikatoren
   als pt-x--y, Zustände als is-… bzw. aria-Attribute.
   Breakpoints (mobil zuerst gedacht, ein Markup für alle Breiten):
     < 600 px  Handy       – einspaltig, Tabellen scrollen im Container
     < 900 px  Tablet/Handy – Seitenleiste als Schublade, Bottom-Navigation
     ≥ 900 px  Desktop     – Seitenleiste fest, keine Bottom-Navigation
   Doku: docs/design-system.md
   ========================================================================== */

/* ---------- Basis ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%; text-size-adjust:100%}
/* Joomla tmpl=component (Cassiopeia) setzt .contentpane{padding:15px} auf body */
body.contentpane{padding:0}
body{margin:0; background:var(--pt-bg); color:var(--pt-text); font-family:var(--font-sans); font-size:var(--fs-3); line-height:var(--lh); -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale}
h1,h2,h3,h4,h5,h6{font-family:inherit}   /* Joomla-Templates setzen eigene Überschriftenschriften */
button,input,select,textarea{font:inherit; color:inherit}
button{cursor:pointer}
img,svg,video{max-width:100%}
a{color:var(--pt-primary)}
:focus-visible{outline:2px solid var(--focus); outline-offset:2px}
html.pt-drawer-open, html.pt-drawer-open body{overflow:hidden}
@media (prefers-reduced-motion:reduce){ *,*::before,*::after{transition-duration:.01ms!important; animation-duration:.01ms!important; animation-iteration-count:1!important} }

/* ---------- Icon ---------- */
.pt-icon{width:1.25em; height:1.25em; flex:none; display:inline-block; vertical-align:-.25em; fill:none; stroke:currentColor; stroke-width:1.75; stroke-linecap:round; stroke-linejoin:round; overflow:visible}
.pt-icon--s{width:1em; height:1em; vertical-align:-.15em}
.pt-icon--l{width:1.75em; height:1.75em}

/* ---------- Layout-Primitives ---------- */
.pt-stack{display:flex; flex-direction:column; gap:var(--gap, var(--sp-4))}
.pt-stack--s{--gap:var(--sp-2)}
.pt-stack--l{--gap:var(--sp-6)}
.pt-row{display:flex; flex-wrap:wrap; align-items:center; gap:var(--gap, var(--sp-2))}
.pt-row--between{justify-content:space-between}
.pt-row--end{justify-content:flex-end}
.pt-row--top{align-items:flex-start}
.pt-grid{display:grid; gap:var(--gap, var(--sp-4)); grid-template-columns:repeat(auto-fit, minmax(min(var(--min, 240px), 100%), 1fr))}
.pt-grid--s{--min:160px}
.pt-grid--l{--min:320px}
.pt-spacer{flex:1 1 auto}

/* ---------- Text ---------- */
.pt-h1{font-family:var(--font-serif); font-weight:400; font-size:var(--fs-6); line-height:var(--lh-tight); color:var(--pt-primary-dark); margin:0; letter-spacing:-.005em; text-wrap:balance}
.pt-h2{font-size:var(--fs-4); font-weight:700; line-height:var(--lh-tight); color:var(--pt-primary-dark); margin:0}
.pt-eyebrow{font-size:var(--fs-1); font-weight:700; letter-spacing:var(--tracking-caps); text-transform:uppercase; color:var(--pt-muted); margin:0}
.pt-eyebrow--accent{color:var(--pt-primary)}
.pt-lead{color:var(--pt-muted); font-size:var(--fs-2); max-width:70ch; margin:0}
.pt-meta{font-size:var(--fs-2); color:var(--pt-muted)}
.pt-muted{color:var(--pt-muted)}
.pt-small{font-size:var(--fs-2)}
.pt-num{font-variant-numeric:tabular-nums; white-space:nowrap; text-align:right}
.pt-pos{color:var(--ok)}
.pt-neg{color:var(--crit)}
.pt-sr{position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0}

/* ---------- Seitenkopf (Titel einer Ansicht) ---------- */
.pt-pagehead{display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:var(--sp-3) var(--sp-5); margin-bottom:var(--sp-5)}
.pt-pagehead .pt-eyebrow{color:var(--pt-accent)}

/* ---------- Karte ---------- */
.pt-card{background:var(--pt-surface); border:var(--line-w) solid var(--pt-line); border-radius:var(--radius); box-shadow:var(--shadow-1); padding:var(--sp-4) var(--sp-5) var(--sp-5); min-width:0}
.pt-card-head{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:var(--sp-2) var(--sp-3); margin-bottom:var(--sp-3)}
.pt-card-title{font-size:var(--fs-3); font-weight:700; color:var(--pt-primary-dark); margin:0; display:flex; align-items:center; gap:var(--sp-2)}
.pt-card--flush{padding:0; overflow:hidden}
.pt-card--flush>.pt-card-head{margin:0; padding:var(--sp-3) var(--sp-4); border-bottom:var(--line-w) solid var(--pt-line)}
.pt-card--flush>.pt-card-body{padding:var(--sp-4)}
.pt-card--tint{background:var(--pt-tint); box-shadow:none}
.pt-card--link{display:block; color:inherit; text-decoration:none; transition:border-color .15s}
.pt-card--link:hover{border-color:var(--pt-primary)}

/* ---------- KPI-Kacheln ---------- */
.pt-kpis{display:grid; grid-template-columns:repeat(auto-fit, minmax(min(150px, 100%), 1fr)); gap:var(--line-w); background:var(--pt-line); border:var(--line-w) solid var(--pt-line); border-radius:var(--radius); overflow:hidden}
.pt-kpi{background:var(--pt-surface); padding:var(--sp-3) var(--sp-4); min-width:0; color:inherit; text-decoration:none; display:block}
a.pt-kpi:hover{background:var(--pt-tint)}
.pt-kpi-label{font-size:var(--fs-1); font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--pt-muted); display:flex; align-items:center; gap:var(--sp-1)}
.pt-kpi-value{font-family:var(--font-serif); font-weight:400; font-size:var(--fs-6); line-height:var(--lh-tight); margin-top:var(--sp-1); color:var(--pt-primary-dark); font-variant-numeric:tabular-nums; overflow-wrap:anywhere}
.pt-kpi-note{font-size:var(--fs-2); color:var(--pt-muted); margin-top:2px; display:flex; flex-wrap:wrap; align-items:center; gap:var(--sp-1) var(--sp-2)}
.pt-kpi--ok .pt-kpi-value{color:var(--ok)}
.pt-kpi--warn .pt-kpi-value{color:var(--warn)}
.pt-kpi--crit .pt-kpi-value{color:var(--crit)}
/* einzeln stehende Kachel mit Akzentkante (Mandantenübersicht) */
.pt-kpis--apart{background:none; border:0; gap:var(--sp-3); overflow:visible}
.pt-kpis--apart .pt-kpi{border:var(--line-w) solid var(--pt-line); border-radius:var(--radius); box-shadow:var(--shadow-1); border-bottom:3px solid var(--pt-accent)}

/* ---------- Badge (ein System) ---------- */
.pt-badge{display:inline-flex; align-items:center; gap:var(--sp-1); font-size:var(--fs-1); font-weight:700; letter-spacing:.04em; line-height:1.4; padding:1px var(--sp-2); border-radius:var(--radius-pill); background:var(--pt-soft); color:var(--pt-primary-dark); white-space:nowrap; vertical-align:middle}
.pt-badge--ok{background:var(--ok-bg); color:var(--ok)}
.pt-badge--warn{background:var(--warn-bg); color:var(--warn)}
.pt-badge--crit{background:var(--crit-bg); color:var(--crit)}
.pt-badge--info{background:var(--info-bg); color:var(--info)}
.pt-badge--muted{background:var(--pt-line-soft); color:var(--pt-text-2)}
.pt-badge--solid{background:var(--crit); color:var(--pt-on-primary)}
.pt-badge--caps{text-transform:uppercase}
.pt-badge .pt-icon{width:1.1em; height:1.1em; vertical-align:0}

/* ---------- Button ---------- */
.pt-btn{display:inline-flex; align-items:center; justify-content:center; gap:var(--sp-2); min-height:36px; padding:0 var(--sp-3); border:var(--line-w) solid var(--pt-line); border-radius:var(--radius-s); background:var(--pt-surface); color:var(--pt-text); font-size:var(--fs-3); font-weight:600; line-height:1.2; text-decoration:none; white-space:nowrap; cursor:pointer; transition:background-color .12s, border-color .12s, color .12s}
.pt-btn:hover{border-color:var(--pt-primary); color:var(--pt-primary-dark)}
.pt-btn--primary{background:var(--pt-primary-dark); border-color:var(--pt-primary-dark); color:var(--pt-on-primary)}
.pt-btn--primary:hover{background:var(--pt-primary); border-color:var(--pt-primary); color:var(--pt-on-primary)}
.pt-btn--ghost{background:transparent; border-color:transparent; color:var(--pt-text-2)}
.pt-btn--ghost:hover{background:var(--pt-tint); border-color:var(--pt-line)}
.pt-btn--danger{color:var(--crit)}
.pt-btn--danger:hover{border-color:var(--crit); background:var(--crit-bg); color:var(--crit)}
.pt-btn--small{min-height:30px; padding:0 var(--sp-2); font-size:var(--fs-2)}
.pt-btn--icon{padding:0; width:36px}
.pt-btn--small.pt-btn--icon{width:30px}
.pt-btn--block{display:flex; width:100%}
.pt-btn:disabled,.pt-btn[aria-disabled="true"]{opacity:.45; cursor:not-allowed; pointer-events:none}
.pt-btn .pt-icon{width:1.15em; height:1.15em; vertical-align:0}

/* ---------- Chip / Segment (Periodenwahl, Filter) ---------- */
.pt-chips{display:flex; flex-wrap:wrap; gap:var(--sp-1)}
.pt-chip{display:inline-flex; align-items:center; gap:var(--sp-1); min-height:30px; padding:0 var(--sp-3); border:var(--line-w) solid var(--pt-line); border-radius:var(--radius-pill); background:var(--pt-surface); color:var(--pt-muted); font-size:var(--fs-2); font-weight:600; text-decoration:none; white-space:nowrap; cursor:pointer}
.pt-chip:hover{border-color:var(--pt-primary); color:var(--pt-primary-dark)}
.pt-chip.is-on,.pt-chip[aria-pressed="true"],.pt-chip[aria-current]{background:var(--pt-primary-dark); border-color:var(--pt-primary-dark); color:var(--pt-on-primary)}

/* ---------- Formular ---------- */
.pt-form{display:grid; grid-template-columns:repeat(auto-fit, minmax(min(220px, 100%), 1fr)); gap:var(--sp-3) var(--sp-4)}
.pt-field{display:flex; flex-direction:column; gap:var(--sp-1); min-width:0}
.pt-field--wide{grid-column:1 / -1}
.pt-label{font-size:var(--fs-2); font-weight:600; color:var(--pt-text-2)}
.pt-hint{font-size:var(--fs-2); color:var(--pt-muted); margin:0}
.pt-input{width:100%; min-height:36px; padding:var(--sp-1) var(--sp-2); border:var(--line-w) solid var(--pt-line); border-radius:var(--radius-s); background:var(--pt-surface); color:var(--pt-text); font-size:var(--fs-3); line-height:1.35}
.pt-input:hover{border-color:var(--pt-accent)}
.pt-input:focus{border-color:var(--pt-primary); outline:2px solid var(--focus); outline-offset:0}
textarea.pt-input{min-height:84px; resize:vertical; padding:var(--sp-2)}
select.pt-input{padding-right:var(--sp-6)}
.pt-input--num{text-align:right; font-variant-numeric:tabular-nums}
.pt-field--error .pt-input{border-color:var(--crit)}
.pt-field--error .pt-hint{color:var(--crit)}
.pt-check{display:flex; align-items:flex-start; gap:var(--sp-2); min-height:32px; padding:var(--sp-1) 0; cursor:pointer; font-size:var(--fs-3)}
.pt-check input{margin:.2em 0 0; width:18px; height:18px; accent-color:var(--pt-primary); flex:none}
.pt-check .pt-hint{display:block}

/* ---------- Tabelle ---------- */
.pt-table-wrap{overflow-x:auto; -webkit-overflow-scrolling:touch; max-width:100%; overscroll-behavior-x:contain}
.pt-table{width:100%; border-collapse:collapse; font-size:var(--fs-2)}
.pt-table th,.pt-table td{padding:var(--sp-2) var(--sp-2); text-align:left; vertical-align:top; border-bottom:var(--line-w) solid var(--pt-line-soft)}
.pt-table th{font-size:var(--fs-1); font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--pt-muted); border-bottom-color:var(--pt-line); white-space:nowrap}
.pt-table .pt-num{text-align:right}
.pt-table tbody tr:hover td{background:var(--pt-tint)}
.pt-table tr.is-on td{background:var(--pt-soft)}
.pt-table tr.is-sum td{font-weight:700; border-top:var(--line-w) solid var(--pt-line)}
.pt-table tr.is-group td{background:var(--pt-tint); font-weight:600}

/* ---------- Hinweis ---------- */
.pt-note{display:flex; gap:var(--sp-2); align-items:flex-start; background:var(--pt-tint); border:var(--line-w) solid var(--pt-line-soft); border-radius:var(--radius-s); padding:var(--sp-2) var(--sp-3); font-size:var(--fs-2); color:var(--pt-text-2)}
.pt-note>.pt-icon{margin-top:1px}
.pt-note--ok{background:var(--ok-bg); border-color:transparent; color:var(--ok)}
.pt-note--warn{background:var(--warn-bg); border-color:var(--warn-line); color:var(--warn)}
.pt-note--crit{background:var(--crit-bg); border-color:var(--crit); color:var(--crit)}
.pt-note--info{background:var(--info-bg); border-color:transparent; color:var(--info)}

/* ---------- Listenzeile ---------- */
.pt-list{list-style:none; margin:0; padding:0}
.pt-list-row{display:flex; align-items:center; gap:var(--sp-3); padding:var(--sp-2) 0; min-height:var(--tap); border-bottom:var(--line-w) solid var(--pt-line-soft); color:inherit; text-decoration:none}
.pt-list-row:last-child{border-bottom:0}
a.pt-list-row:hover{background:var(--pt-tint)}
.pt-list-icon{width:32px; height:32px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; flex:none; background:var(--pt-soft); color:var(--pt-primary-dark)}
.pt-list-icon--ok{background:var(--ok-bg); color:var(--ok)}
.pt-list-icon--warn{background:var(--warn-bg); color:var(--warn)}
.pt-list-icon--crit{background:var(--crit-bg); color:var(--crit)}
.pt-list-text{flex:1; min-width:0}
.pt-list-text>small{display:block; font-size:var(--fs-2); color:var(--pt-muted)}
.pt-list-end{flex:none; display:flex; align-items:center; gap:var(--sp-2)}

/* ---------- Leerzustand ---------- */
.pt-empty{display:flex; flex-direction:column; align-items:center; text-align:center; gap:var(--sp-2); padding:var(--sp-7) var(--sp-4); color:var(--pt-muted)}
.pt-empty>.pt-icon{width:40px; height:40px; color:var(--pt-accent)}
.pt-empty-title{font-weight:700; color:var(--pt-text); margin:0}
.pt-empty p{margin:0; max-width:48ch; font-size:var(--fs-2)}

/* ---------- Toast ---------- */
.pt-toast{position:fixed; left:50%; bottom:calc(var(--sp-6) + var(--safe-b)); z-index:var(--z-toast); max-width:calc(100vw - 2 * var(--sp-4)); transform:translate(-50%, 8px); display:flex; align-items:center; gap:var(--sp-2); background:var(--pt-head); color:var(--pt-head-text); padding:var(--sp-2) var(--sp-4); border-radius:var(--radius-s); font-size:var(--fs-3); font-weight:600; box-shadow:var(--shadow-1); opacity:0; pointer-events:none; transition:opacity .2s, transform .2s}
.pt-toast.is-on{opacity:1; transform:translate(-50%, 0)}
.pt-toast--ok>.pt-icon{color:var(--pt-accent-2)}
.pt-toast--crit{background:var(--crit); color:var(--pt-on-primary)}

/* ---------- Overlay / Modal ---------- */
.pt-overlay{position:fixed; inset:0; z-index:var(--z-overlay); display:flex; align-items:flex-start; justify-content:center; padding:var(--sp-8) var(--sp-4); background:var(--scrim); overflow-y:auto; overscroll-behavior:contain}
.pt-overlay[hidden]{display:none}
.pt-modal{background:var(--pt-surface); color:var(--pt-text); border-radius:var(--radius-l); box-shadow:var(--shadow-2); width:min(640px, 100%); max-width:100%}
.pt-modal--wide{width:min(900px, 100%)}
.pt-modal-head{display:flex; align-items:flex-start; justify-content:space-between; gap:var(--sp-3); padding:var(--sp-4) var(--sp-5) 0}
.pt-modal-title{font-size:var(--fs-4); font-weight:700; color:var(--pt-primary-dark); margin:0}
.pt-modal-body{padding:var(--sp-3) var(--sp-5) var(--sp-4)}
.pt-modal-foot{display:flex; flex-wrap:wrap; justify-content:flex-end; gap:var(--sp-2); padding:var(--sp-3) var(--sp-5) var(--sp-5)}
.pt-modal--crit{border-top:4px solid var(--crit)}
.pt-spinner{width:34px; height:34px; margin:0 auto var(--sp-3); border-radius:50%; border:3px solid var(--pt-line); border-top-color:var(--pt-primary-dark); animation:pt-spin .9s linear infinite}
@keyframes pt-spin{to{transform:rotate(360deg)}}

/* ---------- App-Rahmen: Kopfzeile ---------- */
.pt-head{position:sticky; top:0; z-index:var(--z-head); display:flex; align-items:center; gap:var(--sp-4); min-height:var(--head-h); padding:var(--safe-t) var(--sp-5) 0; background:var(--pt-head); color:var(--pt-head-text)}
.pt-head a{color:inherit}
.pt-head-menu{display:none; flex:none}
.pt-head-brand{display:flex; align-items:center; gap:var(--sp-3); color:inherit; text-decoration:none; min-width:0; flex:none}
.pt-head-brand b{font-family:var(--font-serif); font-weight:400; font-size:var(--fs-4); letter-spacing:.005em}
.pt-head-brand small{display:block; font-size:var(--fs-1); color:var(--pt-head-muted); white-space:nowrap}
.pt-head-muted{color:var(--pt-head-muted)}
.pt-head .pt-btn{background:transparent; color:var(--pt-head-text); border-color:var(--pt-head-line)}
.pt-head .pt-btn:hover{border-color:var(--pt-accent-2); color:var(--pt-head-text); background:var(--pt-head-2)}
.pt-head .pt-btn--primary,.pt-head .pt-btn[aria-pressed="true"]{background:var(--pt-primary); border-color:var(--pt-primary); color:var(--pt-on-primary)}
.pt-head .pt-input{background:var(--pt-head-2); border-color:var(--pt-head-line); color:var(--pt-head-text)}
.pt-head :focus-visible{outline-color:var(--pt-accent-2)}

/* ---------- App-Rahmen: Seitenleiste mit Gruppen ---------- */
.pt-shell{display:grid; grid-template-columns:var(--nav-w) minmax(0,1fr); min-height:calc(100vh - var(--head-h))}
.pt-side{background:var(--pt-surface); border-right:var(--line-w) solid var(--pt-line); padding:var(--sp-4) var(--sp-3) var(--sp-6); position:sticky; top:var(--head-h); height:calc(100vh - var(--head-h)); overflow-y:auto; overscroll-behavior:contain}
.pt-side-head{display:none}
.pt-side-group{font-size:var(--fs-1); font-weight:700; letter-spacing:var(--tracking-caps); text-transform:uppercase; color:var(--pt-muted); padding:var(--sp-4) var(--sp-2) var(--sp-1)}
.pt-side-group:first-child{padding-top:var(--sp-1)}
.pt-side-link{display:flex; align-items:center; gap:var(--sp-3); min-height:36px; padding:var(--sp-1) var(--sp-2); border-radius:var(--radius-s); color:var(--pt-text-2); text-decoration:none; font-size:var(--fs-3); font-weight:500; line-height:1.25}
.pt-side-link:hover{background:var(--pt-tint); color:var(--pt-text)}
.pt-side-link.is-active,.pt-side-link[aria-current="page"]{background:var(--pt-soft); color:var(--pt-primary-dark); font-weight:700}
.pt-side-link>.pt-icon{color:var(--pt-primary)}
.pt-side-link .pt-side-ico{width:1.25em; text-align:center; flex:none}
.pt-side-link .pt-badge{margin-left:auto}
.pt-side-foot{display:none}
.pt-main{min-width:0; padding:var(--sp-6) var(--sp-6) var(--sp-8)}
.pt-scrim{display:none}

/* ---------- App-Rahmen: Bottom-Navigation (nur < 900 px) ---------- */
.pt-bottomnav{display:none}

@media (max-width:899.98px){
  .pt-head{gap:var(--sp-2); padding:var(--safe-t) var(--sp-2) 0; min-height:52px}
  .pt-head-menu{display:inline-flex}
  .pt-head-brand small{display:none}
  .pt-shell{grid-template-columns:minmax(0,1fr)}
  .pt-side{position:fixed; top:0; bottom:0; left:0; z-index:var(--z-nav); width:min(86vw, 320px); height:auto; padding-top:calc(var(--sp-3) + var(--safe-t)); padding-bottom:calc(var(--sp-6) + var(--safe-b)); border-right:0; box-shadow:var(--shadow-2); transform:translateX(-104%); visibility:hidden; transition:transform .22s ease, visibility 0s linear .22s}
  .pt-side.is-open{transform:none; visibility:visible; transition:transform .22s ease}
  .pt-side-head{display:flex; align-items:center; justify-content:space-between; gap:var(--sp-2); padding:0 var(--sp-1) var(--sp-2) var(--sp-2); border-bottom:var(--line-w) solid var(--pt-line-soft); margin-bottom:var(--sp-2)}
  .pt-side-link{min-height:var(--tap)}
  .pt-side-foot{display:block; margin-top:var(--sp-4); padding-top:var(--sp-3); border-top:var(--line-w) solid var(--pt-line-soft)}
  .pt-scrim{display:block; position:fixed; inset:0; z-index:calc(var(--z-nav) - 1); background:var(--scrim); opacity:0; pointer-events:none; transition:opacity .2s}
  .pt-scrim.is-on{opacity:1; pointer-events:auto}
  .pt-main{padding:var(--sp-4) var(--sp-4) calc(var(--bottomnav-h) + var(--safe-b) + var(--sp-7))}
  .pt-bottomnav{display:flex; position:fixed; left:0; right:0; bottom:0; z-index:var(--z-head); height:calc(var(--bottomnav-h) + var(--safe-b)); padding:0 var(--sp-1) var(--safe-b); background:var(--pt-surface); border-top:var(--line-w) solid var(--pt-line); box-shadow:var(--shadow-up)}
  .pt-bottomnav-link{flex:1 1 0; min-width:0; min-height:var(--tap); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; padding:var(--sp-1) 2px; border:0; background:none; color:var(--pt-muted); font-size:var(--fs-1); font-weight:600; line-height:1.1; text-decoration:none; position:relative}
  .pt-bottomnav-link:hover{color:var(--pt-text-2)}
  .pt-bottomnav-link>span{max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
  .pt-bottomnav-link .pt-icon{width:22px; height:22px}
  .pt-bottomnav-link.is-active,.pt-bottomnav-link[aria-current="page"],.pt-bottomnav-link[aria-expanded="true"]{color:var(--pt-primary-dark)}
  .pt-bottomnav-link.is-active::before,.pt-bottomnav-link[aria-current="page"]::before{content:""; position:absolute; top:0; left:25%; right:25%; height:3px; border-radius:0 0 3px 3px; background:var(--pt-primary)}
  .pt-toast{bottom:calc(var(--bottomnav-h) + var(--safe-b) + var(--sp-3))}
  .pt-btn,.pt-chip{min-height:var(--tap)}
  .pt-btn--small{min-height:var(--tap)}
  .pt-btn--icon,.pt-btn--small.pt-btn--icon{width:var(--tap)}
  .pt-input{min-height:var(--tap); font-size:16px}  /* 16 px verhindert Zoom beim Fokus (iOS) */
  .pt-hide-mobile{display:none!important}
}
@media (min-width:900px){ .pt-hide-desktop{display:none!important} }
@media (pointer:coarse){
  .pt-btn,.pt-btn--small,.pt-chip,.pt-input,.pt-side-link{min-height:var(--tap)}
  .pt-btn--icon{width:var(--tap)}
}
@media (max-width:599.98px){
  .pt-card{padding:var(--sp-3) var(--sp-4) var(--sp-4)}
  .pt-form{grid-template-columns:minmax(0,1fr)}
  .pt-overlay{padding:var(--sp-4) var(--sp-2); align-items:flex-end}
  .pt-modal{border-radius:var(--radius-l) var(--radius-l) 0 0}
  .pt-modal-head,.pt-modal-body,.pt-modal-foot{padding-left:var(--sp-4); padding-right:var(--sp-4)}
  .pt-modal-foot .pt-btn{flex:1 1 auto}
  .pt-pagehead{margin-bottom:var(--sp-4)}
}

@media print{
  .pt-head,.pt-side,.pt-bottomnav,.pt-scrim,.pt-toast{display:none!important}
  .pt-shell{display:block}
  .pt-main{padding:0}
  .pt-card{box-shadow:none}
}
