/* ============================================================
   KOMPONENTEN — components/components.css, unverändert übernommen (Klassenpräfix ax-).
   ============================================================ */
.ax-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:var(--control-h-md);padding:0 10px;border:0;border-radius:var(--radius-2);font:var(--fw-regular) var(--fs-13)/1 var(--font-sans);color:var(--text-1);background:var(--gray-50);box-shadow:var(--elev-1);cursor:pointer;white-space:nowrap;transition:background var(--dur-fast) var(--ease-standard),box-shadow var(--dur-fast)}
.ax-btn:hover{background:var(--gray-100)}.ax-btn:active{background:var(--gray-300);box-shadow:inset 0 1px 2px rgba(17,20,24,.2)}
.ax-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.ax-btn svg{color:var(--gray-800)}
.ax-btn--sm{height:var(--control-h-sm);padding:0 7px;font-size:var(--fs-12);gap:4px}
.ax-btn--lg{height:var(--control-h-lg);padding:0 16px;font-size:var(--fs-14)}
.ax-btn--fill{width:100%}
.ax-btn--primary,.ax-btn--success,.ax-btn--danger{color:#fff;box-shadow:inset 0 0 0 1px rgba(17,20,24,.2),0 1px 2px rgba(17,20,24,.1)}
.ax-btn--primary svg,.ax-btn--success svg,.ax-btn--danger svg{color:#fff}
.ax-btn--primary{background:var(--blue-500)}.ax-btn--primary:hover{background:var(--blue-600)}.ax-btn--primary:active{background:var(--blue-700)}
.ax-btn--success{background:var(--green-500)}.ax-btn--success:hover{background:var(--green-600)}
.ax-btn--danger{background:var(--red-500)}.ax-btn--danger:hover{background:var(--red-600)}
.ax-btn--minimal{background:transparent;box-shadow:none}.ax-btn--minimal:hover{background:var(--surface-hover)}.ax-btn--minimal:active{background:var(--surface-active);box-shadow:none}
.ax-btn--outlined{background:transparent;box-shadow:inset 0 0 0 1px var(--border-2)}.ax-btn--outlined:hover{background:var(--surface-hover)}
.ax-btn--active{background:var(--surface-active)}
.ax-btn--minimal.ax-btn--active{background:var(--surface-selected);color:var(--blue-600)}.ax-btn--minimal.ax-btn--active svg{color:var(--blue-600)}
.ax-btn:disabled{cursor:not-allowed;opacity:.5;box-shadow:none}
.ax-btn--icon{width:var(--control-h-md);padding:0}.ax-btn--icon.ax-btn--sm{width:var(--control-h-sm)}.ax-btn--icon.ax-btn--lg{width:var(--control-h-lg)}

.ax-tag{display:inline-flex;align-items:center;gap:4px;height:20px;padding:0 6px;border-radius:var(--radius-2);font:var(--fw-medium) var(--fs-12)/1 var(--font-sans);background:var(--gray-800);color:#fff;white-space:nowrap;max-width:100%}
.ax-tag span{overflow:hidden;text-overflow:ellipsis}
.ax-tag--primary{background:var(--blue-500)}.ax-tag--success{background:var(--green-500)}.ax-tag--warning{background:var(--orange-400);color:var(--ink)}.ax-tag--danger{background:var(--red-500)}
.ax-tag--minimal{background:var(--gray-100);color:var(--text-1);box-shadow:inset 0 0 0 1px var(--border-1)}
.ax-tag--minimal.ax-tag--primary{background:var(--blue-50);color:var(--blue-600);box-shadow:inset 0 0 0 1px var(--blue-200)}
.ax-tag--minimal.ax-tag--success{background:var(--green-50);color:var(--green-600);box-shadow:inset 0 0 0 1px #A7D7BD}
.ax-tag--minimal.ax-tag--warning{background:var(--orange-50);color:var(--orange-600);box-shadow:inset 0 0 0 1px #F2C996}
.ax-tag--minimal.ax-tag--danger{background:var(--red-50);color:var(--red-600);box-shadow:inset 0 0 0 1px #F0B5B7}
.ax-tag--mono{font:var(--type-mono);height:18px;padding:0 4px;border-radius:var(--radius-1)}

.ax-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:var(--radius-pill);font:var(--fw-semibold) var(--fs-11)/1 var(--font-mono);background:var(--gray-200);color:var(--text-2)}
.ax-badge--primary{background:var(--blue-500);color:#fff}

.ax-input{position:relative;display:flex;align-items:center;width:100%}
.ax-input input,.ax-select select,.ax-textarea{width:100%;height:var(--control-h-md);padding:0 10px;border:0;border-radius:var(--radius-2);background:#fff;box-shadow:var(--inset-input);font:var(--type-body);color:var(--text-1);outline:none;transition:box-shadow var(--dur-fast)}
.ax-input input::placeholder{color:var(--text-3)}
.ax-input input:focus,.ax-select select:focus{box-shadow:var(--inset-input-focus)}
.ax-input--sm input{height:var(--control-h-sm);font-size:var(--fs-12)}
.ax-input__icon{position:absolute;left:8px;color:var(--gray-700);pointer-events:none}
.ax-input--has-icon input{padding-left:28px}
.ax-select{position:relative;display:inline-flex;width:100%}
.ax-select select{appearance:none;padding-right:28px;background:var(--gray-50);box-shadow:var(--elev-1);cursor:pointer}
.ax-select select:hover{background:var(--gray-100)}
.ax-select--minimal select{background:transparent;box-shadow:none}.ax-select--minimal select:hover{background:var(--surface-hover)}
.ax-select svg{position:absolute;right:8px;top:50%;transform:translateY(-50%);color:var(--gray-800);pointer-events:none}

.ax-card{background:var(--surface-panel);border-radius:var(--radius-2);box-shadow:var(--elev-0);display:flex;flex-direction:column;min-width:0}
.ax-card--e1{box-shadow:var(--elev-1)}
.ax-card__head{display:flex;align-items:center;gap:6px;min-height:36px;padding:0 8px 0 12px;border-bottom:1px solid var(--border-1)}
.ax-card__title{flex:1;min-width:0;font:var(--type-card-title);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ax-card__body{padding:12px;flex:1;min-height:0}
.ax-card__body--flush{padding:0}

.ax-tabs{display:flex;gap:20px;border-bottom:1px solid var(--border-1)}
.ax-tab{position:relative;display:flex;align-items:center;gap:6px;height:30px;padding:0;border:0;background:none;font:var(--type-body);color:var(--text-1);cursor:pointer}
.ax-tab:hover{color:var(--blue-600)}
.ax-tab--active{color:var(--blue-600)}.ax-tab--active::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;background:var(--blue-500);border-radius:1px 1px 0 0}

.ax-section__head{display:flex;align-items:center;gap:6px;width:100%;height:36px;padding:0 12px;border:0;border-bottom:1px solid var(--border-1);background:transparent;font:var(--type-label-caps);letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--text-2);cursor:pointer;text-align:left}
.ax-section__head:hover{background:var(--surface-hover)}
.ax-section__head span{flex:1}
.ax-section__head svg{transition:transform var(--dur-base) var(--ease-standard)}
.ax-section--closed .ax-section__head svg.chev{transform:rotate(-90deg)}
.ax-section--closed .ax-section__body{display:none}
.ax-section__body{padding:6px}

.ax-table{width:100%;border-collapse:separate;border-spacing:0;font:var(--type-body)}
.ax-table th{position:sticky;top:0;height:28px;padding:0 10px;background:var(--gray-50);border-bottom:1px solid var(--border-2);font:var(--fw-semibold) var(--fs-12)/1 var(--font-sans);color:var(--text-2);text-align:left;white-space:nowrap}
.ax-table td{height:var(--row-h-lg);padding:0 10px;border-bottom:1px solid var(--border-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:320px}
.ax-table tbody tr:hover td{background:var(--surface-hover)}
.ax-table .num{text-align:right;font-family:var(--font-mono);font-size:var(--fs-12)}
.ax-table-bar{display:flex;align-items:center;gap:10px;padding:6px 8px;border-bottom:1px solid var(--border-1)}
.ax-table-bar__count{font:var(--fw-regular) var(--fs-11)/1 var(--font-mono);color:var(--text-3)}

.ax-msg{display:flex;gap:10px;font:var(--type-body);color:var(--text-1)}
.ax-msg__av{flex:none;width:24px;height:24px;border-radius:var(--radius-2);display:flex;align-items:center;justify-content:center;background:var(--gray-200);color:var(--gray-900)}
.ax-msg--assistant .ax-msg__av{background:var(--blue-500);color:#fff}
.ax-msg__col{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.ax-msg__meta{font:var(--fw-semibold) var(--fs-12)/1 var(--font-sans);color:var(--text-2)}
.ax-msg__meta span{font-weight:400;color:var(--text-3);margin-left:6px}
.ax-msg__text{line-height:1.5}
.ax-msg--user .ax-msg__text{background:var(--gray-100);padding:8px 10px;border-radius:var(--radius-3);display:inline-block}
/* Chat-Layout: eigene Nachrichten rechtsbündig, schmal; Abstand vor jeder neuen Nutzereingabe */
.ax-msg--user{flex-direction:row-reverse}
.ax-msg--user .ax-msg__col{align-items:flex-end}
.ax-msg--user .ax-msg__text{max-width:min(70%,640px);border-radius:var(--radius-4) var(--radius-1) var(--radius-4) var(--radius-4)}
.ax-msg--user .ax-msg__meta span{margin-left:0;margin-right:6px}
.ax-msg--user .ax-msg__meta{display:flex;flex-direction:row-reverse}
.ax-msg--assistant + .ax-msg--user{margin-top:22px}
.ax-msg--user .ax-msg__text{background:var(--white);color:var(--text-1);padding:9px 12px;box-shadow:var(--elev-2);font-weight:var(--fw-medium)}
.ax-msg--user .ax-msg__av{background:var(--gray-900);color:var(--white)}
.ax-msg__applied{display:flex;flex-direction:column;gap:8px;padding:10px;border-radius:var(--radius-3);background:#fff;box-shadow:var(--elev-0)}
.ax-msg__applied-head{display:flex;align-items:center;gap:6px;font:var(--type-label-caps);letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--text-3)}
.ax-msg__chips{display:flex;flex-wrap:wrap;gap:4px}
.ax-msg__result{display:flex;align-items:center;gap:8px;font:var(--type-small);color:var(--text-2)}
.ax-msg__result b{font:var(--fw-semibold) var(--fs-13)/1 var(--font-mono);color:var(--text-1)}
.ax-msg__actions{display:flex;gap:4px}

.ax-composer{display:flex;flex-direction:column;gap:8px}
.ax-composer__sugg{display:flex;flex-wrap:wrap;gap:6px}
.ax-composer__chip{height:24px;padding:0 8px;border:0;border-radius:var(--radius-pill);background:#fff;box-shadow:inset 0 0 0 1px var(--border-2);font:var(--type-small);color:var(--text-1);cursor:pointer;display:inline-flex;align-items:center;gap:4px}
.ax-composer__chip:hover{background:var(--blue-50);box-shadow:inset 0 0 0 1px var(--blue-300);color:var(--blue-600)}
.ax-composer__chip svg{color:var(--blue-500)}
.ax-composer__box{display:flex;align-items:flex-end;gap:6px;padding:6px 6px 6px 10px;border-radius:var(--radius-3);background:#fff;box-shadow:var(--inset-input)}
.ax-composer__box:focus-within{box-shadow:var(--inset-input-focus)}
.ax-composer__box textarea{flex:1;border:0;outline:none;resize:none;font:var(--type-body);color:var(--text-1);padding:5px 0;min-height:20px;max-height:120px;background:transparent;font-family:var(--font-sans)}
.ax-composer__hint{font:var(--type-small);color:var(--text-3)}
