:root{
  --bg:#f5f7fb;
  --panel:#f5f7fb;
  --panel2:#f5f7fb;
  --card:#ffffff;
  --line:rgba(0,0,0,.18);
  --text:#0b1220;
  --muted:#5b677a;
  --blue:#006ca0;
  --pill:#e8eff7;
  --shadow:0 2px 10px rgba(16,24,40,.08);
  --radius:14px;
  --font:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif;
}
*{box-sizing:border-box}
html,body{height:100%}
body{font-family:var(--font);margin:0;background:var(--bg);color:var(--text);overflow:hidden}
[hidden]{display:none !important}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit}
.small{font-size:12px}.muted{color:var(--muted)}
.topbar{position:sticky;top:0;z-index:50;background:var(--panel2);border-bottom:1px solid var(--line)}
.topbar-inner{max-width:1200px;margin:0 auto;padding:12px 16px;display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}
.topbar-inner-wide{max-width:none;padding:10px 14px}
.brand{display:flex;gap:10px;align-items:center;min-width:250px}
.brand-logo{width:36px;height:36px;border-radius:10px;object-fit:contain}
.brand-title{font-size:14px;font-weight:900;color:var(--blue)}
.nav-right{display:flex;gap:10px;align-items:center}
.topbar-actions-row{gap:8px}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px}
.compact-card{padding:10px}
.grid{display:grid;gap:12px}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.field{display:flex;flex-direction:column;gap:6px}
.field label{display:block;font-size:12px;color:var(--muted);font-weight:600}
.input{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;font:inherit}
textarea.input{min-height:100px;resize:vertical}
.btn{padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:transparent;font-weight:600;cursor:pointer}
.btn:hover{background:var(--panel2)}
.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}
.btn.primary:hover{filter:brightness(.96)}
.btn.small{padding:6px 9px;border-radius:9px;font-size:12px}
.btn.danger{border-color:rgba(185,28,28,.2);color:#7f1d1d;background:#fff}
.btn.danger:hover{background:#fef2f2}
.login-wrap{min-height:calc(100vh - 60px);display:grid;place-items:center;padding:22px}
.login-card{max-width:420px;width:100%}
.toast{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);background:#111;color:#fff;padding:10px 12px;border-radius:12px;opacity:0;pointer-events:none;transition:.18s;max-width:min(520px,calc(100vw - 24px));z-index:100}
.toast.show{opacity:1}

.aufmass-shell{display:grid;grid-template-columns:260px 1fr;gap:12px;padding:12px;height:calc(100vh - 74px);min-height:0;overflow:hidden}
.aufmass-shell.sidebar-collapsed{grid-template-columns:56px 1fr}
.aufmass-sidebar{display:flex;flex-direction:column;gap:12px;min-width:0;min-height:0;transition:.18s ease;height:100%;overflow:hidden}
.sidebar-card{min-height:0;height:100%;display:flex;flex-direction:column;flex:1 1 auto;overflow:hidden}
.sidebar-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.sidebar-actions{display:flex;gap:8px;align-items:center;margin-bottom:10px}
.sidebar-new-record{flex:1;min-width:0}
.sidebar-toggle-btn{width:42px;min-width:42px;height:40px;padding:0;display:grid;place-items:center;border-radius:12px;background:#f4f6f8}
.sidebar-toggle-firefox{display:grid;gap:4px;justify-items:center}
.sidebar-toggle-firefox span{display:block;width:15px;height:2px;border-radius:999px;background:#606a78}
.sidebar-search{margin-bottom:10px}

.aufmass-shell.sidebar-collapsed .sidebar-card{padding:6px;background:transparent;border:0;box-shadow:none}
.aufmass-shell.sidebar-collapsed .sidebar-head,
.aufmass-shell.sidebar-collapsed .sidebar-new-record,
.aufmass-shell.sidebar-collapsed .sidebar-search,
.aufmass-shell.sidebar-collapsed .record-tree{display:none !important}
.aufmass-shell.sidebar-collapsed .sidebar-actions{justify-content:center;margin:0}
.aufmass-shell.sidebar-collapsed .aufmass-sidebar{align-items:center}
.aufmass-shell.sidebar-collapsed .sidebar-toggle-btn{width:40px;min-width:40px;height:44px;border-radius:12px;background:#f4f6f8}
.record-tree{display:flex;flex-direction:column;gap:8px;flex:1 1 auto;min-height:0;max-height:100%;overflow-y:auto;overflow-x:hidden;padding-right:4px}
.record-group{border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden;flex:0 0 auto}
.record-group-status-neu{background:#fff}
.record-group-status-arbeitsvorbereitung{background:#f2f3f5}
.record-group-status-werkstatt{background:#e9f4ff}
.record-group-status-beschichtung{background:#fff1df}
.record-group-status-baustelle{background:#fff8cc}
.record-group-status-erledigt{background:#eaf8ee}
.record-group-has-reklamation{
  background:#fef2f2 !important;
  border-color:rgba(185,28,28,.22) !important;
}
.record-group-has-reklamation .record-head-title,
.record-group-has-reklamation .record-head-status-text{
  color:#991b1b !important;
}
.record-head{padding:11px 12px;background:transparent}
.record-head-main{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;cursor:pointer;min-width:0}
.record-head-text{min-width:0;overflow:hidden;display:flex;flex-direction:column;gap:3px}
.record-head.active{border-left:4px solid var(--blue);padding-left:8px}
.record-head-title{font-weight:800;font-size:13px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.record-head-sub{font-size:12px;color:var(--muted);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.record-head-line{font-size:12px;color:#334155;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.record-head-label{color:var(--muted)}
.record-head-status-text{font-weight:700}
.record-info-btn{width:28px;height:28px;min-width:28px;border-radius:999px;border:1px solid var(--line);background:#fff;color:#111827;font-weight:800;cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,.06)}
.record-info-btn:hover{background:#f8fafc}
.record-head-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto;margin-left:8px}
.record-chat-badge{width:28px;height:28px;min-width:28px;border-radius:999px;border:1px solid rgba(0,108,160,.18);background:#eef7fd;display:grid;place-items:center;box-shadow:0 1px 4px rgba(0,0,0,.06);animation:recordChatBadgePulse 1.25s ease-in-out infinite}
.record-chat-badge-icon{font-size:13px;line-height:1;color:var(--blue);transform:translateY(-.5px)}
@keyframes recordChatBadgePulse{0%,100%{transform:scale(1);box-shadow:0 1px 4px rgba(0,0,0,.06)}50%{transform:scale(1.08);box-shadow:0 0 0 6px rgba(0,108,160,.08)}}
.status-text-neu{color:#111827}
.status-text-arbeitsvorbereitung{color:#4b5563}
.status-text-werkstatt{color:#0b5b86}
.status-text-beschichtung{color:#b45309}
.status-text-baustelle{color:#a16207}
.status-text-erledigt{color:#15803d}
.empty-note{padding:8px 2px;color:var(--muted);font-size:12px}
.aufmass-main{overflow:hidden;height:100%}
.stage-card{height:100%;overflow:hidden;min-height:0}
.orders-shell .stage-card{padding:12px;background:#f5f7fb}
.order-stage-card{height:100%;overflow:hidden;display:flex;flex-direction:column;min-height:0}
.orders-empty{height:100%;min-height:420px;display:grid;place-items:center;text-align:center;color:var(--muted);padding:40px 20px}
#orderWorkspace{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;height:100%}
.orders-empty-icon{font-size:54px;margin-bottom:10px}
.order-hero{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:12px;background:linear-gradient(135deg,#ffffff 0%,#eef6fb 100%)}
.order-hero h1{margin:0 0 6px;font-size:28px;line-height:1.1}
.order-hero-sub{font-size:14px;color:var(--muted)}
.order-hero-links{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px}
.hero-link-btn{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:6px 12px;border-radius:10px;background:#fff}
.hero-link-btn.is-disabled,
.hero-link-btn[aria-disabled="true"]{opacity:.55;pointer-events:none}
.order-hero-right{display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.order-hero-status{display:inline-flex;align-items:center;justify-content:center;padding:10px 16px;border-radius:999px;font-weight:800;min-width:120px;border:0}
.order-hero-status-neu{background:#ffffff;color:#111827}
.order-hero-status-arbeitsvorbereitung{background:#e5e7eb;color:#374151}
.order-hero-status-werkstatt{background:#dbeafe;color:#0b5b86}
.order-hero-status-beschichtung{background:#ffedd5;color:#b45309}
.order-hero-status-baustelle{background:#fef3c7;color:#a16207}
.order-hero-status-erledigt{background:#dcfce7;color:#15803d}
.order-modal-grid{grid-template-columns:1fr 1fr}
.order-dashboard-grid{
  display:grid;
  grid-template-columns: 1fr 1fr 1.4fr;
  gap:12px;
  align-items:stretch;
  flex:1 1 auto;
  min-height:0;
  overflow:hidden;
}
.order-left-col,.order-middle-col{display:flex;flex-direction:column;gap:12px;min-width:0;min-height:0;height:100%;overflow:hidden}
.hd{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px}
.hd h2{margin:0;font-size:18px;line-height:1.1}
.order-section-card{min-height:0;padding:12px}
.order-card-kunde,.order-card-projekt,.order-card-chat,.order-card-steps{min-width:0;min-height:0}
.order-card-steps{min-height:0;height:100%;overflow:hidden;display:flex;flex-direction:column}
.order-info-list{display:flex;flex-direction:column;gap:0;margin-top:4px;border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden}
.info-row{display:grid;grid-template-columns:140px 1fr;gap:12px;padding:9px 12px;border-bottom:1px solid rgba(0,0,0,.08);align-items:start}
.info-row:last-child{border-bottom:0}
.info-row-label{font-size:12px;color:var(--muted);font-weight:700}
.info-row-value-wrap{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;min-width:0}
.info-row-value{font-size:12px;font-weight:700;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1;display:block}
.map-links{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;padding-top:1px}
.card-header-map-links{margin-left:auto;padding-top:0}
.map-link{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;color:#1f2937;opacity:.58;transition:opacity .15s ease, transform .15s ease}
.map-link:hover{opacity:1;transform:translateY(-1px)}
.map-link svg{display:block;width:18px;height:18px}
.map-link-apple{color:#111827}
.order-free-text{margin-top:6px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fff;min-height:70px;white-space:pre-wrap;line-height:1.4}
.order-notes-box{margin-top:10px}
.order-notes-box-inline .small{display:block;margin-bottom:6px}
.order-card-chat{display:flex;flex-direction:column;height:100%;min-height:0}
.notes-list.chat-list{flex:1 1 auto;min-height:180px;max-height:none;overflow:auto}
.chat-compose{flex:0 0 auto;margin-top:12px}
.placeholder-stack{display:flex;flex-direction:column;gap:10px;margin-top:6px}
.placeholder-item{padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff}
.placeholder-title{font-weight:800;margin-bottom:6px}
.placeholder-sub{font-size:13px;color:var(--muted);line-height:1.4}
.muted-box{font-size:13px;color:var(--muted);min-height:56px;display:flex;align-items:center}
.form-placeholder-btn{justify-content:flex-start;text-align:left;background:#fff}
.form-hint{margin-top:12px;font-size:13px;color:var(--muted);line-height:1.45}
.steps-wrap{display:flex;flex-direction:column;gap:10px;margin-top:6px}
.step-category{border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden}
.step-category-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;background:#f8fbff;border-bottom:1px solid var(--line)}
.step-category-toggle{display:flex;align-items:center;gap:10px;min-width:0;flex:1;padding:0;background:transparent;border:0;font:inherit;font-weight:800;text-align:left;cursor:pointer;color:inherit}
.step-category-head-right{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.step-category-meta{font-size:12px;color:var(--muted);font-weight:600}
.step-category-arrow{font-size:16px;transition:transform .16s ease;color:#475569}
.step-category.collapsed .step-category-arrow{transform:rotate(-90deg)}
.step-category .step-list[hidden]{display:none !important}
.step-list{display:flex;flex-direction:column;gap:8px;padding:10px}
.step-item{border:1px solid var(--line);border-radius:12px;padding:10px;background:#fbfdff}
.step-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.step-title-row{display:flex;align-items:center;gap:10px;width:100%}
.step-title{font-weight:800}
.step-current-status{margin-left:auto;font-size:13px;font-weight:500;color:#475569;text-align:right}
.step-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.step-chip{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;background:#f5f7fb;border:1px solid var(--line);font-size:12px}
.step-hint-wrap{margin-top:8px}
.step-note{margin-top:8px;font-size:13px;color:#334155;white-space:pre-wrap}
.step-history{margin-top:10px;padding-top:10px;border-top:1px dashed rgba(15,23,42,.12)}
.step-history-title{font-size:12px;font-weight:800;color:#64748b;margin-bottom:6px;text-transform:uppercase;letter-spacing:.03em}
.step-history-row{display:grid;grid-template-columns:minmax(120px,180px) 1fr;gap:10px;padding:4px 0;font-size:12px}
.step-history-status{font-weight:700;color:#0f172a}
.step-history-range{color:#64748b}
.notes-list{display:flex;flex-direction:column;gap:8px;max-height:380px;overflow:auto;margin-top:6px}
.note-card{padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fff}
.note-head{display:flex;justify-content:space-between;gap:10px;margin-bottom:6px;font-size:12px;color:var(--muted)}
.note-body{white-space:pre-wrap;line-height:1.4}
.note-compose{margin-top:12px}
.note-compose textarea.input{min-height:110px}
.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.38);display:grid;place-items:center;padding:20px;z-index:90}
.modal-backdrop[hidden]{display:none !important}
.modal-card{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 20px 50px rgba(0,0,0,.18);padding:16px;width:min(760px,100%);max-height:calc(100vh - 40px);overflow:auto}
.modal-card-narrow{width:min(620px,100%)}
.modal-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:14px}
.modal-title{font-size:22px;font-weight:800}
.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}
.check-row{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--text);cursor:pointer}
.check-row input{margin:0}
@media (max-width:1180px){
  .order-dashboard-grid{grid-template-columns:1fr 1fr}
  .order-card-steps{grid-column:1 / span 2;min-height:unset}
}
@media (max-width:820px){
  body{overflow:auto}
  .aufmass-shell{grid-template-columns:1fr;height:auto;overflow:visible}
  .aufmass-shell.sidebar-collapsed{grid-template-columns:1fr}
  .aufmass-sidebar,.aufmass-main,.stage-card,.sidebar-card{height:auto}
  .aufmass-main,.stage-card{overflow:visible}
  .order-dashboard-grid{grid-template-columns:1fr}
  .order-left-col,.order-middle-col{display:contents;height:auto;overflow:visible;padding-right:0}
  .order-card-chat,.order-card-steps{height:auto;overflow:visible}
  .order-card-steps{grid-column:1;min-height:unset}
  #orderWorkspace{height:auto}
  .order-dashboard-grid{height:auto;overflow:visible}
  .info-row{grid-template-columns:120px 1fr}
}


/* STATUS PILLS */
.status-pill{
  display:inline-flex;
  align-items:center;
  padding:4px 10px;
  border-radius:8px;
  font-size:12px;
  font-weight:600;
  border:1px solid rgba(0,0,0,.1);
}
.status-pill.red{ background:#ffe5e5; color:#b30000; }
.status-pill.yellow{ background:#fff4cc; color:#996600; }
.status-pill.green{ background:#e6f7ea; color:#1e7d32; }

.status-pill-info{ background:#e8f1fb; color:#0f4f7a; border-color:#c9def5; }


.material-box{margin-top:12px;border:1px solid var(--line);border-radius:14px;padding:10px;background:#fafbfd}
.material-box-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.material-box-head-workshop{align-items:flex-start}
.material-box-title{font-weight:800;font-size:14px}
.material-empty{font-size:13px;color:var(--muted)}
.material-list{display:grid;gap:8px}
.material-row{border:1px solid var(--line);border-left:6px solid transparent;border-radius:12px;padding:10px;background:#fff}
.material-row-workshop{padding:8px}

.material-row-office{padding:8px}
.material-row-state-red{border-left-color:#dc2626}
.material-row-state-yellow{border-left-color:#d97706}
.material-row-state-green{border-left-color:#16a34a}
.material-grid.material-grid-office{grid-template-columns:minmax(170px,1.6fr) minmax(120px,1.1fr) minmax(64px,.55fr) minmax(80px,.7fr) minmax(130px,1fr);gap:8px}
.material-row-subline-office{align-items:center}
.material-row-subline-left-office{min-width:0;flex:1 1 auto}
.material-row-meta-office{justify-content:flex-end;flex:0 0 auto}

.material-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1.4fr;gap:8px}
.material-grid.material-grid-workshop{grid-template-columns:minmax(150px,1.8fr) minmax(70px,.7fr) minmax(70px,.7fr) minmax(72px,.7fr) minmax(92px,.95fr) minmax(92px,1fr);align-items:end}
.material-grid.compact{gap:6px}
.material-grid .field{margin-top:0}
.material-grid.compact .field label{margin-bottom:3px;font-size:11px}
.material-grid.compact .input{height:40px;min-height:40px;padding:7px 10px}
.material-row-subline{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-top:6px;flex-wrap:wrap}
.material-row-subline-left{display:flex;align-items:center;gap:10px;flex:1 1 520px;min-width:280px}
.material-row-subline-left .input{height:38px;min-height:38px;padding:7px 10px;flex:1 1 280px}
.material-row-subline-left .check-row{margin:0;white-space:nowrap}
.material-row-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.material-row-meta .small{font-size:11px}
.material-actions{display:flex;justify-content:flex-end;margin-top:8px}
.material-inline-summary{margin-top:10px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#fafbfd;font-size:12px;color:var(--muted)}
@media (max-width: 1100px){.material-grid.material-grid-workshop,.modal-card-wide-material .material-grid.material-grid-workshop{grid-template-columns: 1fr 1fr 1.4fr}.material-grid.material-grid-office,.modal-card-wide-material .material-grid.material-grid-office{grid-template-columns: 1fr 1fr 1.4fr}.material-row-subline,.material-row-subline-left,.material-row-meta{display:grid;grid-template-columns:1fr}.material-row-subline-left .check-row{white-space:normal}}
@media (max-width: 900px){.material-grid,.material-grid.material-grid-workshop,.modal-card-wide-material .material-grid.material-grid-workshop,.material-grid.material-grid-office,.modal-card-wide-material .material-grid.material-grid-office{grid-template-columns:1fr 1fr}}

.modal-card-wide-material{width:min(980px,calc(100vw - 36px));overflow-x:hidden;}
.modal-card-wide-material .material-box{padding:8px;}
.modal-card-wide-material .material-box-head{margin-bottom:6px;}
.modal-card-wide-material .material-box-head .small{font-size:11px;line-height:1.25;}
.modal-card-wide-material .material-box-head .btn.small{padding:6px 10px;min-height:34px;}
.modal-card-wide-material .material-list{gap:6px;}
.modal-card-wide-material .material-row{padding:8px;}
.modal-card-wide-material .material-grid.material-grid-workshop{grid-template-columns:minmax(112px,1.55fr) minmax(52px,.5fr) minmax(52px,.5fr) minmax(60px,.6fr) minmax(76px,.8fr) minmax(78px,.85fr);gap:6px;}
.modal-card-wide-material .material-grid.material-grid-office{grid-template-columns:minmax(160px,1.65fr) minmax(110px,1.1fr) minmax(56px,.5fr) minmax(70px,.65fr) minmax(120px,1fr);gap:6px;}
.modal-card-wide-material .material-grid.compact{gap:5px;}
.modal-card-wide-material .material-grid.compact .field label{margin-bottom:2px;font-size:10px;line-height:1.1;}
.modal-card-wide-material .material-grid.compact .input{height:34px;min-height:34px;padding:5px 8px;font-size:13px;}
.modal-card-wide-material .material-row-subline{gap:8px;margin-top:5px;}
.modal-card-wide-material .material-row-subline-left{gap:8px;flex:1 1 100%;min-width:0;}
.modal-card-wide-material .material-row-subline-left .input{height:34px;min-height:34px;padding:5px 8px;flex:1 1 auto;min-width:0;}
.modal-card-wide-material .material-row-subline-left .check-row{font-size:12px;}
.modal-card-wide-material .material-row-meta{justify-content:space-between;gap:6px;flex:1 1 100%;}
.modal-card-wide-material .material-row-subline-office{align-items:center;}
.modal-card-wide-material .material-row-subline-left-office{flex:1 1 auto;min-width:0;}
.modal-card-wide-material .material-row-meta-office{justify-content:flex-end;flex:0 0 auto;}
.modal-card-wide-material .material-row-meta .small{font-size:10.5px;line-height:1.2;}
.modal-card-wide-material .status-pill{padding:4px 8px;font-size:11px;}
.modal-card-wide-material .material-box-title{font-size:13px;}


.modal-card-files-browser{width:min(980px,100%);max-height:calc(100vh - 40px);display:flex;flex-direction:column;overflow:hidden}
.modal-card-file-preview{width:min(1100px,100%);max-height:calc(100vh - 40px);overflow:hidden;display:flex;flex-direction:column}
.file-browser-toolbar{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.file-breadcrumbs{display:flex;gap:6px;align-items:center;flex-wrap:wrap;font-size:13px;min-width:0}
.file-breadcrumb-btn{border:0;background:transparent;padding:0;cursor:pointer;font:inherit;color:var(--blue);font-weight:700}
.file-dropzone{border:1px dashed rgba(0,0,0,.24);border-radius:12px;padding:12px;background:#fafbfd;color:var(--muted);margin-bottom:12px}
.file-dropzone.is-dragover{background:#eef6fb;border-color:var(--blue);color:var(--blue)}
.file-browser-list{display:flex;flex-direction:column;gap:8px;min-height:220px;max-height:calc(100vh - 280px);overflow:auto;padding-right:4px}
.file-row{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;text-align:left;border:1px solid var(--line);border-radius:12px;background:#fff;padding:10px 12px;cursor:pointer}
.file-row:hover{background:#f8fbff}
.file-row-main{display:flex;align-items:center;gap:10px;min-width:0}
.file-row-icon{font-size:18px;line-height:1}
.file-row-name{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.file-row-meta{font-size:12px;color:var(--muted);text-align:right;flex:0 0 auto}
.file-preview-frame{width:100%;height:75vh;border:1px solid var(--line);border-radius:12px;background:#fff}
.file-preview-image{max-width:100%;max-height:75vh;object-fit:contain;border:1px solid var(--line);border-radius:12px;background:#fff}
@media (max-width:820px){
  .modal-card-files-browser,.modal-card-file-preview{width:min(100%,100%);padding:12px}
  .file-browser-toolbar{flex-direction:column;align-items:stretch}
  .file-row{flex-direction:column;align-items:flex-start}
  .file-row-meta{text-align:left}
  .file-preview-frame{height:68vh}
}


.modal-card-files-browser{width:min(980px,100%);max-height:calc(100vh - 40px);display:flex;flex-direction:column;overflow:hidden}
.modal-card-file-preview{width:min(1100px,100%);max-height:calc(100vh - 40px);display:flex;flex-direction:column;overflow:hidden}
.file-browser-toolbar{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.file-breadcrumbs{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.file-breadcrumb-btn{background:transparent;border:0;padding:0;color:var(--blue);font-weight:700;cursor:pointer}
.file-dropzone{border:1px dashed rgba(0,0,0,.24);border-radius:12px;padding:12px;background:#fafbfd;color:var(--muted);margin-bottom:12px}
.file-dropzone.is-dragover{background:#eef6fb;border-color:var(--blue);color:var(--blue)}
.file-browser-list{display:flex;flex-direction:column;gap:8px;min-height:220px;max-height:calc(100vh - 280px);overflow:auto;padding-right:4px}
.file-row{display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:10px 12px;cursor:pointer}
.file-row:hover{background:#f8fbff}
.file-row-main{display:flex;align-items:center;gap:10px;min-width:0}
.file-row-icon{font-size:18px;line-height:1}
.file-row-name-wrap{display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap}
.file-row-name{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.file-owner-badge{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:22px;padding:0 6px;border-radius:999px;background:#eef6fb;color:var(--blue);font-size:11px;font-weight:800;border:1px solid rgba(0,108,160,.18)}
.file-row-side{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.file-row-meta{font-size:12px;color:var(--muted);text-align:right;flex:0 0 auto}
.file-row-actions{display:flex;align-items:center;gap:6px}
.file-preview-frame{width:100%;height:75vh;border:0;border-radius:12px;background:#fff}
.file-preview-image{max-width:100%;max-height:75vh;object-fit:contain;border-radius:12px;background:#fff}
@media (max-width: 900px){
  .modal-card-files-browser,.modal-card-file-preview{width:min(100%,100%);padding:12px}
  .file-browser-toolbar{flex-direction:column;align-items:stretch}
  .file-row{flex-direction:column;align-items:flex-start}
  .file-row-side{width:100%;justify-content:space-between;flex-wrap:wrap}
  .file-row-meta{text-align:left}
}

.file-section{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.file-section-title{
  font-size:12px;
  font-weight:800;
  color:#64748b;
  text-transform:uppercase;
  letter-spacing:.04em;
  padding:2px 2px 0;
}
.file-recent-list,
.file-list-stack{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.file-row-recent{
  background:#f8fbff;
}
.photo-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(170px,1fr));
  gap:10px;
}
.photo-card{
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  overflow:hidden;
  box-shadow:var(--shadow);
  display:flex;
  flex-direction:column;
}
.photo-thumb-btn{
  border:0;
  padding:0;
  background:#eef4f8;
  cursor:pointer;
}
.photo-thumb{
  display:block;
  width:100%;
  height:160px;
  object-fit:cover;
}
.photo-card-body{
  padding:10px;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.photo-card-title-row{
  display:flex;
  gap:6px;
  align-items:center;
}
.photo-card-title{
  font-weight:700;
  line-height:1.25;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.photo-card-meta{
  color:var(--muted);
  font-size:12px;
}
.file-row-name-wrap{
  display:flex;
  align-items:center;
  gap:6px;
  min-width:0;
}
.file-owner-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:24px;
  height:22px;
  padding:0 6px;
  border-radius:999px;
  background:#e8f1fb;
  color:#0f4f7a;
  border:1px solid #c9def5;
  font-size:11px;
  font-weight:800;
  flex:0 0 auto;
}
.file-row-side{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.file-row-actions{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
}
.file-row-actions.compact .btn.small{
  padding:5px 8px;
}
@media (max-width: 820px){
  .photo-grid{grid-template-columns:1fr 1fr;}
  .photo-thumb{height:130px;}
  .file-row-side{justify-content:flex-start;}
}


/* --- Kompakter Dateimanager --- */
.modal-card-files-browser{
  width:min(860px,calc(100vw - 36px));
  padding:12px;
}
.file-browser-toolbar{margin-bottom:8px;gap:8px}
.file-dropzone{
  padding:8px 10px;
  margin-bottom:8px;
  border-radius:10px;
  font-size:13px;
}
.file-browser-list{
  gap:6px;
  min-height:120px;
  max-height:calc(100vh - 265px);
}
.file-section{gap:6px}
.file-section-title{
  font-size:11px;
  padding:0 2px;
}
.file-row,
.file-row-recent{
  padding:7px 10px;
  border-radius:10px;
  min-height:40px;
}
.file-row-main{gap:8px}
.file-row-icon{font-size:16px}
.file-row-name{
  font-size:13px;
  line-height:1.2;
}
.file-row-meta{
  font-size:11px;
}
.file-owner-badge{
  min-width:22px;
  height:18px;
  padding:0 5px;
  font-size:10px;
}
.file-row-actions{gap:4px}
.file-row-actions.compact .btn.small,
.file-row-actions .btn.small{
  padding:4px 7px;
  border-radius:8px;
  font-size:11px;
}
.photo-grid{
  grid-template-columns:repeat(auto-fill,minmax(120px,1fr));
  gap:8px;
}
.photo-card{
  border-radius:10px;
}
.photo-thumb{
  height:96px;
}
.photo-card-body{
  padding:8px;
  gap:6px;
}
.photo-card-title{
  font-size:12px;
}
.photo-card-meta{
  font-size:11px;
}
@media (max-width: 820px){
  .modal-card-files-browser{width:min(100%,calc(100vw - 16px));padding:10px}
  .file-row,.file-row-recent{padding:7px 8px}
  .photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .photo-thumb{height:88px}
}

/* --- Datei-Baum --- */
.file-tree-wrap{
  display:flex;
  flex-direction:column;
  gap:2px;
}
.file-tree-children{
  display:flex;
  flex-direction:column;
  gap:2px;
}
.file-tree-row{
  --file-indent: calc(var(--file-depth, 0) * 18px);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  min-height:34px;
  padding:5px 8px 5px calc(8px + var(--file-indent));
  border:1px solid transparent;
  border-radius:8px;
  background:#fff;
  cursor:pointer;
}
.file-tree-row:hover{background:#f8fbff;border-color:#dce8f3}
.file-tree-row.is-selected{background:#eef6fb;border-color:rgba(0,108,160,.22)}
.file-tree-main{
  display:flex;
  align-items:center;
  gap:7px;
  min-width:0;
  flex:1 1 auto;
}
.file-tree-side{
  display:flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
}
.file-tree-toggle,
.file-tree-spacer{
  width:18px;
  min-width:18px;
  height:18px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.file-tree-toggle{
  border:none;
  background:transparent;
  color:var(--muted);
  border-radius:6px;
  cursor:pointer;
  padding:0;
  font-size:12px;
}
.file-tree-toggle:hover{background:#eaf2f8;color:var(--blue)}
.file-tree-spacer{opacity:0}
.file-tree-row .file-row-name-wrap{flex-wrap:nowrap}
.file-tree-row .file-row-name{font-weight:600}
@media (max-width: 820px){
  .file-tree-row{align-items:flex-start;flex-direction:column;padding-left:calc(8px + var(--file-indent))}
  .file-tree-main,.file-tree-side{width:100%}
  .file-tree-side{justify-content:flex-start;flex-wrap:wrap;padding-left:25px}
}


/* --- Datei-Browser Update Fotos + Verschieben --- */
.icon-btn{
  width:28px;
  min-width:28px;
  height:28px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--line);
  border-radius:8px;
  background:#fff;
  color:#344054;
  cursor:pointer;
  padding:0;
}
.icon-btn svg{width:15px;height:15px;display:block}
.icon-btn:hover{background:#f5f9fc;border-color:#cfe0ee;color:var(--blue)}
.icon-btn.danger{color:#b42318;border-color:rgba(180,35,24,.18)}
.icon-btn.danger:hover{background:#fef3f2;border-color:#f3b9b3}
.folder-chip-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(170px,1fr));
  gap:8px;
}
.folder-chip{
  display:flex;
  align-items:center;
  gap:10px;
  width:100%;
  text-align:left;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  padding:10px 12px;
  cursor:pointer;
}
.folder-chip:hover{background:#f8fbff;border-color:#dce8f3}
.folder-chip-icon{font-size:18px;line-height:1}
.folder-chip-label{font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.photo-grid{
  grid-template-columns:repeat(auto-fill,minmax(190px,1fr));
  gap:12px;
}
.photo-thumb{height:165px}
.photo-card-body{padding:10px}
.photo-card-title-row{justify-content:space-between}
.photo-card-title{font-size:13px;flex:1 1 auto}
.photo-card .file-row-actions{justify-content:flex-end}
.modal-card-move-file{
  width:min(760px,calc(100vw - 36px));
  max-height:calc(100vh - 40px);
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
.move-file-current,
.move-file-target-box{
  border:1px solid var(--line);
  border-radius:12px;
  background:#f8fbff;
  padding:10px 12px;
  margin-bottom:10px;
}
.move-file-tree{
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  padding:8px;
  overflow:auto;
  max-height:50vh;
}
.move-target-tree{display:flex;flex-direction:column;gap:4px}
.move-target-row{
  --move-indent: calc(var(--move-depth, 0) * 18px);
  display:flex;
  align-items:center;
  gap:8px;
  width:100%;
  text-align:left;
  padding:8px 10px 8px calc(10px + var(--move-indent));
  border:1px solid transparent;
  border-radius:10px;
  background:#fff;
  cursor:pointer;
}
.move-target-row:hover{background:#f8fbff;border-color:#dce8f3}
.move-target-row.is-selected{background:#eef6fb;border-color:rgba(0,108,160,.22);color:var(--blue)}
.move-target-row:disabled{
  cursor:not-allowed;
  opacity:.45;
  background:#f8fafc;
}
.move-target-icon{font-size:17px;line-height:1}
.move-target-label{font-weight:600}
@media (max-width: 820px){
  .photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .photo-thumb{height:120px}
  .folder-chip-grid{grid-template-columns:1fr}
  .modal-card-move-file{width:min(100%,calc(100vw - 16px));padding:12px}
}

/* --- Datei-Browser Feinupdate: Inline-Fotovorschau + Kontextmenü --- */
.file-inline-thumb{
  width:42px;
  height:42px;
  object-fit:cover;
  border-radius:8px;
  border:1px solid rgba(0,0,0,.10);
  background:#eef4f8;
  flex:0 0 auto;
}
.file-row.is-pressing,
.file-tree-row.is-pressing{
  background:#eef6fb;
  border-color:rgba(0,108,160,.22);
}
.file-tree-row .file-inline-thumb,
.file-row .file-inline-thumb{
  margin-right:2px;
}
.file-tree-row,
.file-row{
  user-select:none;
  -webkit-user-select:none;
  -webkit-touch-callout:none;
}
.file-tree-side,
.file-row-side{
  display:flex;
  align-items:center;
  gap:8px;
}
.file-context-menu{
  position:fixed;
  z-index:220;
  min-width:180px;
  padding:6px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  box-shadow:0 12px 30px rgba(15,23,42,.18);
}
.file-context-item{
  width:100%;
  border:0;
  background:transparent;
  text-align:left;
  padding:9px 10px;
  border-radius:8px;
  cursor:pointer;
  font:inherit;
}
.file-context-item:hover{background:#f5f7fb;}
.file-context-item.danger{color:#b42318;}
.file-context-item.danger:hover{background:#fef3f2;}
@media (max-width: 820px){
  .file-inline-thumb{width:38px;height:38px;}
  .file-context-menu{min-width:160px;}
}


/* --- Chat Upgrade --- */
.chat-list{
  display:flex;
  flex-direction:column;
  gap:10px;
  height:190px;
  max-height:190px;
  overflow:auto;
  padding:8px;
  background:#eef2f6;
  border:1px solid var(--line);
  border-radius:16px;
}
.chat-row{display:flex;width:100%;}
.chat-row.own{justify-content:flex-end;}
.chat-row.other{justify-content:flex-start;}
.chat-bubble{
  max-width:78%;
  padding:10px 12px 8px;
  border-radius:16px;
  border:1px solid rgba(0,0,0,.08);
  box-shadow:0 1px 4px rgba(15,23,42,.06);
}
.chat-bubble.own{background:#dff0ff;border-color:#b8dbf7;border-top-right-radius:8px;}
.chat-bubble.other{background:#fff;border-color:#e5e7eb;border-top-left-radius:8px;}
.chat-head{display:flex;align-items:center;gap:10px;justify-content:space-between;margin-bottom:4px;}
.chat-user{font-size:12px;font-weight:800;color:#1f2937;}
.chat-time{font-size:11px;color:#6b7280;white-space:nowrap;}
.chat-text{white-space:pre-wrap;line-height:1.35;color:#0f172a;font-size:14px;word-break:break-word;}
.chat-meta-line{display:flex;justify-content:flex-end;align-items:center;min-height:14px;margin-top:4px;}
.chat-status{font-size:11px;letter-spacing:-1px;font-weight:700;}
.chat-status.sent,.chat-status.delivered{color:#6b7280;}
.chat-status.read{color:#0b76d1;}
.chat-compose{margin-top:10px;}
.chat-attach-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px;}
.chat-input{min-height:78px !important;}
.chat-attachment-chip{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid var(--line);border-radius:999px;background:#fff;max-width:100%;}
.chat-attachment-chip span{font-size:12px;font-weight:700;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.chat-attachment-clear{border:0;background:transparent;cursor:pointer;font-size:18px;line-height:1;padding:0 2px;color:#64748b;}
.chat-attachment-wrap{margin-bottom:8px;}
.chat-attachment-image-link{display:block;}
.chat-attachment-image{display:block;max-width:220px;max-height:220px;border-radius:12px;border:1px solid rgba(0,0,0,.08);object-fit:cover;background:#fff;}
.chat-attachment-file{display:inline-flex;align-items:center;gap:6px;padding:8px 10px;border-radius:10px;background:rgba(255,255,255,.72);border:1px solid rgba(0,0,0,.08);font-size:13px;font-weight:700;color:#0f172a;}
@media (max-width:820px){
  .chat-bubble{max-width:88%;}
  .chat-list{height:240px;max-height:240px;}
  .chat-attachment-image{max-width:180px;max-height:180px;}
}


/* --- Chat Upgrade V2 --- */
.chat-card-head{align-items:flex-start}
.chat-list{
  height:280px;
  max-height:280px;
}
.chat-list-modal{
  height:clamp(420px, 58vh, 700px);
  max-height:none;
}
.chat-compose{margin-top:12px}
.chat-input{min-height:74px !important;resize:vertical}
.chat-input-modal{min-height:96px !important}
.chat-dropzone{
  margin-top:10px;
  padding:10px 12px;
  border:1px dashed rgba(0,0,0,.22);
  border-radius:12px;
  background:#fafbfd;
  color:var(--muted);
  font-size:12px;
}
.chat-dropzone.is-dragover{background:#eef6fb;border-color:var(--blue);color:var(--blue)}
.chat-search-wrap{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.chat-search-input{min-height:40px}
.chat-search-close{width:36px;height:36px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#64748b;cursor:pointer;font-size:20px;line-height:1}
.chat-search-close:hover{background:#f5f7fb}
.chat-action-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:10px}
.chat-action-left{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;flex:0 0 auto}
.chat-dropzone-inline{margin-top:0;flex:1 1 auto;min-width:0;display:flex;align-items:center;justify-content:center;min-height:40px;padding:8px 12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-icon-btn{
  width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--line);border-radius:12px;background:#fff;cursor:pointer;color:#334155;
}
.chat-icon-btn:hover{background:#f5f7fb}
.chat-icon-btn svg{width:18px;height:18px;display:block}
.chat-icon{font-size:24px;line-height:1;font-weight:500;transform:translateY(-1px)}
.chat-send-btn{
  width:48px;height:40px;display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--blue);border-radius:12px;background:var(--blue);color:#fff;cursor:pointer;
}
.chat-send-btn:hover{filter:brightness(.96)}
.chat-send-btn svg{width:18px;height:18px;display:block;margin-left:2px}
.chat-attachments-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.chat-attachment-chip{border-radius:12px;padding:6px 10px;max-width:320px}
.chat-attachment-chip span{max-width:220px}
.chat-attachment-chip.is-image{background:#eef6fb}
.modal-card-chat{width:min(980px,calc(100vw - 28px));max-height:calc(100vh - 28px);display:flex;flex-direction:column;overflow:hidden}
.chat-compose-modal{border-top:1px solid rgba(0,0,0,.08);padding-top:12px}
@media (max-width:820px){
  .chat-list{height:250px;max-height:250px}
  .chat-list-modal{height:58vh}
  .chat-action-row{align-items:stretch;flex-wrap:wrap}
  .chat-action-left{flex-wrap:nowrap}
  .chat-dropzone-inline{order:3;flex:1 1 100%}
}


/* --- Chat Reply + Reactions --- */
.chat-reply-box{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:8px 10px;border:1px solid rgba(11,108,160,.18);background:#f2f8fc;border-radius:12px;margin-bottom:8px;}
.chat-reply-box-main{min-width:0;display:flex;flex-direction:column;gap:2px;}
.chat-reply-box-label{font-size:11px;font-weight:800;color:var(--blue);}
.chat-reply-box-text{font-size:12px;color:#475569;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;}
.chat-reply-box-close{border:0;background:transparent;color:#64748b;cursor:pointer;font-size:18px;line-height:1;padding:0 2px;}
.chat-reply-preview{margin-bottom:8px;padding:6px 8px;border-left:3px solid var(--blue);background:rgba(255,255,255,.5);border-radius:8px;}
.chat-reply-preview-user{font-size:11px;font-weight:800;color:var(--blue);margin-bottom:2px;}
.chat-reply-preview-text{font-size:12px;color:#475569;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.chat-reactions{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;}
.chat-reaction-pill{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:999px;border:1px solid rgba(0,0,0,.08);background:rgba(255,255,255,.85);font-size:12px;line-height:1;}
.chat-reaction-pill.is-own{border-color:#8cc8f0;background:#ecf7ff;}
.chat-context-menu{position:fixed;z-index:120;min-width:180px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 10px 28px rgba(15,23,42,.18);padding:8px;}
.chat-context-item{display:block;width:100%;text-align:left;border:0;background:transparent;padding:8px 10px;border-radius:10px;cursor:pointer;font:inherit;font-weight:700;color:#0f172a;}
.chat-context-item:hover{background:#f5f7fb;}
.chat-context-sep{height:1px;background:rgba(0,0,0,.08);margin:6px 0;}
.chat-reaction-picker{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.chat-reaction-btn{width:34px;height:34px;border:1px solid rgba(0,0,0,.08);background:#fff;border-radius:10px;cursor:pointer;font-size:18px;line-height:1;display:inline-flex;align-items:center;justify-content:center;}
.chat-reaction-btn:hover{background:#f8fafc;}


/* --- Chat iPad Textauswahl unterdrücken --- */
.chat-list,
.chat-list *,
.chat-row,
.chat-bubble,
.chat-head,
.chat-user,
.chat-time,
.chat-text,
.chat-reply-preview,
.chat-reply-preview *,
.chat-read-sheet,
.chat-read-sheet *,
.chat-swipe-hint,
.chat-edited{
  -webkit-user-select:none;
  user-select:none;
  -webkit-touch-callout:none;
}
.chat-attachment-file,
.chat-attachment-image-link,
.chat-reaction-pill,
.chat-context-item,
.chat-reaction-btn{
  -webkit-touch-callout:none;
}



/* --- Chat Stabiler Rollback: Receipt-Sheet vorerst aus --- */
.chat-swipe-hint,
.chat-read-sheet{
  display:none !important;
}
.chat-row{
  display:flex !important;
  width:100% !important;
  align-items:flex-end !important;
  justify-content:flex-start;
  padding-right:0 !important;
}
.chat-row.own{
  justify-content:flex-end !important;
}
.chat-row.other{
  justify-content:flex-start !important;
}
.chat-bubble{
  transform:none !important;
  transition:none !important;
  max-width:78%;
}
.chat-list,
.chat-list-modal{
  overflow-y:auto !important;
  overflow-x:hidden !important;
}



/* --- Chat Receipt Popup Click statt Swipe --- */
.chat-status-btn{
  border:0;
  background:transparent;
  padding:0;
  margin:0;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.chat-status-btn:hover .chat-status{
  filter:brightness(.9);
}
.chat-receipt-popup{
  position:fixed;
  z-index:260;
  width:min(280px, calc(100vw - 20px));
  background:#fff;
  border:1px solid rgba(0,0,0,.10);
  border-radius:14px;
  box-shadow:0 14px 34px rgba(15,23,42,.18);
  padding:12px;
}
.chat-receipt-popup-head{
  font-size:13px;
  font-weight:800;
  color:var(--blue);
  margin-bottom:8px;
}
.chat-receipt-popup-section + .chat-receipt-popup-section{
  margin-top:10px;
  padding-top:10px;
  border-top:1px solid rgba(0,0,0,.06);
}
.chat-receipt-popup-title{
  font-size:11px;
  font-weight:800;
  color:#64748b;
  text-transform:uppercase;
  letter-spacing:.03em;
  margin-bottom:5px;
}
.chat-receipt-row{
  display:grid;
  grid-template-columns:1fr auto;
  gap:8px;
  font-size:12px;
  line-height:1.35;
  color:#0f172a;
}


/* --- Chat: Scroll nur bei neuen Nachrichten, iPad-Bildfix, @Mentions, ungelesen --- */
.chat-bubble{
  min-width:0;
  overflow:hidden;
}
.chat-attachment-wrap,
.chat-attachment-image-link{
  display:block;
  width:100%;
  max-width:100%;
  overflow:hidden;
}
.chat-attachment-image{
  display:block;
  width:100%;
  max-width:100%;
  height:auto;
  max-height:320px;
  object-fit:contain;
}
.chat-unread-divider{
  display:flex;
  align-items:center;
  gap:10px;
  width:100%;
  margin:8px 0 2px;
  color:#64748b;
  font-size:11px;
  font-weight:800;
  letter-spacing:.03em;
  text-transform:uppercase;
}
.chat-unread-divider::before,
.chat-unread-divider::after{
  content:"";
  flex:1 1 auto;
  height:1px;
  background:rgba(100,116,139,.28);
}
.chat-date-divider{display:flex;align-items:center;gap:10px;justify-content:center;margin:12px 0 10px;color:#64748b;font-size:11px;font-weight:800;letter-spacing:.02em;text-transform:uppercase}
.chat-date-divider::before,.chat-date-divider::after{content:'';height:1px;flex:1;background:rgba(148,163,184,.35)}
.chat-date-divider span{display:inline-flex;align-items:center;justify-content:center;padding:3px 10px;border-radius:999px;background:#f8fafc;border:1px solid rgba(148,163,184,.25);white-space:nowrap}
.chat-unread-divider span{white-space:nowrap;}
.chat-unread-divider{animation: chatUnreadPulse 1.4s ease-in-out 2;}
@keyframes chatUnreadPulse{0%,100%{opacity:1}50%{opacity:.55}}
.chat-mention-menu{
  position:fixed;
  z-index:280;
  background:#fff;
  border:1px solid rgba(0,0,0,.12);
  border-radius:14px;
  box-shadow:0 12px 30px rgba(15,23,42,.18);
  padding:6px;
  max-width:min(340px, calc(100vw - 24px));
}
.chat-mention-item{
  display:block;
  width:100%;
  border:0;
  background:transparent;
  text-align:left;
  padding:9px 10px;
  border-radius:10px;
  cursor:pointer;
  font:inherit;
  font-weight:700;
  color:#0f172a;
}
.chat-mention-item:hover,
.chat-mention-item.is-active{
  background:#eef6fb;
  color:var(--blue);
}
@media (max-width:820px){
  .chat-attachment-image{max-height:240px;}
}


/* --- Chat neue Nachrichten Hinweis --- */
.order-card-chat,
.modal-card-chat{
  position:relative;
}
.chat-new-messages-btn{
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  z-index:40;
  border:1px solid rgba(0,108,160,.22);
  background:#ffffff;
  color:var(--blue);
  border-radius:999px;
  padding:8px 14px;
  font:inherit;
  font-size:12px;
  font-weight:800;
  box-shadow:0 10px 24px rgba(15,23,42,.16);
  cursor:pointer;
  animation:chatBadgePulse 1.4s ease-in-out infinite;
}
.chat-new-messages-btn span{
  display:inline-block;
  margin-left:4px;
}
.chat-new-messages-btn:hover{
  background:#eef6fb;
}
@keyframes chatBadgePulse{
  0%,100%{ transform:translateX(-50%) scale(1); }
  50%{ transform:translateX(-50%) scale(1.04); }
}
.chat-unread-divider{
  margin:10px 0 4px;
}

.chat-row.chat-search-hidden{display:none !important}
.chat-text mark.chat-search-mark{background:#fff3b0;color:inherit;padding:0 2px;border-radius:4px}
.chat-row.chat-search-current .chat-bubble{box-shadow:0 0 0 2px rgba(0,108,160,.22)}


/* --- MQ final chat search + dropzone responsive tweak --- */
.record-info-btn,
.record-chat-badge{
  border-radius:10px !important;
}

.aufmass-shell.sidebar-collapsed{
  grid-template-columns:56px 1fr !important;
}
.aufmass-shell.sidebar-collapsed .aufmass-sidebar{
  min-width:56px !important;
  width:56px !important;
  max-width:56px !important;
  height:100% !important;
  overflow:hidden !important;
}
.aufmass-shell.sidebar-collapsed .sidebar-card{
  padding:10px 8px !important;
  background:#fff !important;
  border:1px solid var(--line) !important;
  border-radius:14px !important;
  box-shadow:var(--shadow) !important;
  height:100% !important;
  min-height:0 !important;
  overflow:hidden !important;
}
.aufmass-shell.sidebar-collapsed .sidebar-head,
.aufmass-shell.sidebar-collapsed .sidebar-new-record,
.aufmass-shell.sidebar-collapsed .sidebar-search{
  display:none !important;
}
.aufmass-shell.sidebar-collapsed .sidebar-actions{
  display:flex !important;
  justify-content:center !important;
  align-items:center !important;
  margin:0 0 10px 0 !important;
  min-height:40px !important;
}
.aufmass-shell.sidebar-collapsed .sidebar-toggle-btn{
  width:36px !important;
  min-width:36px !important;
  height:36px !important;
  border-radius:12px !important;
}
.aufmass-shell.sidebar-collapsed .record-tree{
  flex:1 1 auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  padding:0 0 2px 0 !important;
  margin:0 !important;
  scrollbar-width:thin;
}
.aufmass-shell.sidebar-collapsed .record-group{
  display:block !important;
  min-height:78px !important;
  border-radius:12px !important;
  overflow:hidden !important;
}
.aufmass-shell.sidebar-collapsed .record-head{
  padding:8px 0 !important;
}
.aufmass-shell.sidebar-collapsed .record-head-main{
  display:flex !important;
  justify-content:center !important;
  align-items:center !important;
  min-height:62px !important;
}
.aufmass-shell.sidebar-collapsed .record-head-text,
.aufmass-shell.sidebar-collapsed .record-head-actions,
.aufmass-shell.sidebar-collapsed .record-head-sub,
.aufmass-shell.sidebar-collapsed .record-head-line,
.aufmass-shell.sidebar-collapsed .record-head-title,
.aufmass-shell.sidebar-collapsed .record-head-status-text,
.aufmass-shell.sidebar-collapsed .record-head-label,
.aufmass-shell.sidebar-collapsed .record-info-btn,
.aufmass-shell.sidebar-collapsed .record-chat-badge,
.aufmass-shell.sidebar-collapsed .record-chat-badge-icon{
  display:none !important;
}
.aufmass-shell.sidebar-collapsed .record-head.active{
  border-left:4px solid var(--blue) !important;
  padding-left:0 !important;
}

.chat-search-wrap{
  position:relative;
  display:block;
  margin-bottom:10px;
}
.chat-search-input{
  min-height:40px;
  padding-right:42px !important;
}
.chat-search-close{
  position:absolute;
  top:50%;
  right:10px;
  transform:translateY(-50%);
  width:24px;
  height:24px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:0;
  background:transparent;
  color:#64748b;
  cursor:pointer;
  font-size:18px;
  line-height:1;
  border-radius:8px;
  z-index:2;
}
.chat-search-close:hover{
  background:#f5f7fb;
  color:#334155;
}

.chat-action-row{
  display:flex;
  justify-content:space-between;
  align-items:center !important;
  gap:10px;
  margin-top:10px;
  padding-top:2px;
  flex-wrap:nowrap;
}
.chat-action-left{
  display:flex;
  align-items:center !important;
  gap:8px;
  flex-wrap:nowrap !important;
  flex:0 0 auto;
}
.chat-dropzone,
.chat-dropzone-inline{
  margin-top:0 !important;
  position:relative !important;
  top:4px !important;
  align-self:center !important;
  min-height:40px !important;
  height:40px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:0 10px !important;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.chat-dropzone-inline{
  flex:1 1 120px !important;
  min-width:96px;
}

@media (max-width:820px){
  .chat-action-row{
    gap:8px;
    flex-wrap:nowrap;
    align-items:center !important;
  }
  .chat-action-left{
    gap:6px;
  }
  .chat-dropzone-inline{
    flex:1 1 84px !important;
    min-width:84px;
    font-size:11px;
    padding:0 8px !important;
  }
}


.order-card-chat{height:100%}
.order-middle-col{height:100%}


/* LEFT column scroll like chat */
.order-left-col > *{
  flex:0 0 auto;
}
.order-left-col{
  overflow:auto;
}

/* RIGHT column scroll like chat */
.order-card-steps > *{
  flex:0 0 auto;
}
.order-card-steps{
  overflow:auto;
}

/* ensure no overflow issues */
.order-dashboard-grid > *{
  min-width:0;
}


/* Left column final: height follows row count, rows distribute evenly */
.order-left-col{
  display:grid !important;
  grid-template-rows:minmax(0,5fr) minmax(0,11fr) !important;
  gap:12px !important;
  min-height:0 !important;
  height:100% !important;
  overflow:hidden !important;
}

.order-card-kunde{
  display:grid !important;
  grid-template-rows:auto minmax(0,1fr) !important;
  min-height:0 !important;
  height:100% !important;
  overflow:hidden !important;
}

.order-card-projekt{
  display:grid !important;
  grid-template-rows:auto minmax(0,8fr) minmax(0,3fr) !important;
  min-height:0 !important;
  height:100% !important;
  overflow:hidden !important;
}

.order-card-kunde .hd,
.order-card-projekt .hd{
  margin-bottom:6px !important;
  align-self:start !important;
}

.order-card-kunde .order-info-list,
.order-card-projekt .order-info-list{
  margin-top:0 !important;
  min-height:0 !important;
  height:100% !important;
  overflow:hidden !important;
  display:grid !important;
  gap:0 !important;
}

.order-card-kunde .order-info-list{
  grid-template-rows:repeat(5, minmax(0,1fr)) !important;
}

.order-card-projekt .order-info-list{
  grid-template-rows:repeat(8, minmax(0,1fr)) !important;
}

.order-card-kunde .info-row,
.order-card-projekt .info-row{
  min-height:0 !important;
  padding:6px 10px !important;
  gap:10px !important;
  align-items:center !important;
}

.order-card-kunde .info-row-label,
.order-card-projekt .info-row-label{
  font-size:11px !important;
  line-height:1.1 !important;
}

.order-card-kunde .info-row-value,
.order-card-projekt .info-row-value{
  font-size:11px !important;
  line-height:1.15 !important;
}

.order-card-projekt .order-notes-box{
  margin-top:6px !important;
  min-height:0 !important;
  height:100% !important;
  display:grid !important;
  grid-template-rows:auto minmax(0,1fr) !important;
}

.order-card-projekt .order-notes-box-inline .small{
  margin-bottom:4px !important;
  font-size:10.5px !important;
}

.order-card-projekt .order-free-text{
  margin-top:0 !important;
  min-height:0 !important;
  height:100% !important;
  padding:8px 10px !important;
  font-size:11px !important;
  line-height:1.2 !important;
}



/* --- Hero Ticket Buttons --- */
.order-hero-ticket-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
  margin-top:2px;
}
.order-hero-ticket-actions .hero-link-btn{
  min-height:34px;
}
.order-hero-ticket-actions .hero-ticket-create-btn{
  background:var(--blue);
  border-color:var(--blue);
  color:#fff;
}
.order-hero-ticket-actions .hero-ticket-create-btn:hover{
  filter:brightness(.96);
}
.order-hero-ticket-actions .hero-ticket-open-btn{
  background:#fff;
}
.order-hero-ticket-actions .hero-link-btn.is-disabled,
.order-hero-ticket-actions .hero-link-btn[aria-disabled="true"]{
  opacity:.55;
  pointer-events:none;
}
@media (max-width:820px){
  .order-hero-ticket-actions{
    width:100%;
    justify-content:flex-start;
  }
}


.order-hero-ticket-actions .hero-ticket-open-btn.is-muted{
  background:#fff;
  border-color:var(--line);
  color:var(--text);
}
.order-hero-ticket-actions .hero-ticket-open-btn.is-ok{
  background:#ecfdf3;
  border-color:rgba(2,122,72,.25);
  color:#027a48;
}
.order-hero-ticket-actions .hero-ticket-open-btn.is-warn{
  background:#fffaeb;
  border-color:rgba(181,71,8,.25);
  color:#b54708;
}
.order-hero-ticket-actions .hero-ticket-open-btn.is-danger{
  background:#fef3f2;
  border-color:rgba(180,35,24,.25);
  color:#b42318;
}
.order-hero-ticket-actions .hero-ticket-open-btn.is-blinking{
  animation:orderTicketBlink 1.1s ease-in-out infinite;
}
@keyframes orderTicketBlink{
  0%,100%{ box-shadow:0 0 0 0 rgba(180,35,24,.00); filter:none; }
  50%{ box-shadow:0 0 0 6px rgba(180,35,24,.14); filter:brightness(.98); }
}


/* --- Auftragsportal Ticket-Modal --- */
.order-tickets-modal-backdrop{
  z-index:120;
}
.order-tickets-modal-card{
  width:min(980px,calc(100vw - 28px));
  max-height:calc(100vh - 28px);
  overflow:hidden;
  display:flex;
  flex-direction:column;
}
.order-tickets-modal-head-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.order-tickets-modal-body{
  min-height:0;
  overflow:auto;
  padding-right:4px;
}
.order-tickets-modal-loading,
.order-tickets-modal-empty{
  padding:14px 2px 4px;
  color:var(--muted);
  font-size:13px;
}
.order-tickets-list{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-top:4px;
}
.order-ticket-row{
  display:flex;
  justify-content:space-between;
  gap:14px;
  padding:12px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
}
.order-ticket-row-main{
  min-width:0;
  flex:1 1 auto;
}
.order-ticket-row-top{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  margin-bottom:8px;
}
.order-ticket-kbd{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:44px;
  height:28px;
  padding:0 8px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  font-size:12px;
  font-weight:800;
  color:#0f172a;
}
.order-ticket-title{
  font-size:15px;
  font-weight:800;
  line-height:1.3;
  color:#0f172a;
  margin-bottom:8px;
}
.order-ticket-meta{
  display:flex;
  gap:8px 14px;
  flex-wrap:wrap;
  color:#475569;
  font-size:12px;
  line-height:1.35;
}
.order-ticket-row-actions{
  display:flex;
  align-items:flex-start;
  gap:8px;
  flex:0 0 auto;
}
.order-ticket-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:28px;
  padding:4px 10px;
  border-radius:10px;
  font-size:12px;
  font-weight:700;
  border:1px solid rgba(0,0,0,.10);
  background:#fff;
}
.order-ticket-pill.danger{
  background:#fef2f2;
  border-color:rgba(185,28,28,.16);
  color:#991b1b;
}
.order-ticket-pill.warn{
  background:#fff7ed;
  border-color:rgba(194,65,12,.18);
  color:#c2410c;
}
.order-ticket-pill.ok{
  background:#ecfdf5;
  border-color:rgba(22,163,74,.16);
  color:#15803d;
}
.order-ticket-pill.blue{
  background:#eef6fb;
  border-color:rgba(0,108,160,.16);
  color:#0b5b86;
}
.order-ticket-pill.muted{
  background:#f8fafc;
  border-color:rgba(15,23,42,.10);
  color:#475569;
}
body.order-tickets-modal-open{
  overflow:hidden;
}
@media (max-width:820px){
  .order-tickets-modal-card{
    width:min(100%,calc(100vw - 16px));
  }
  .order-ticket-row{
    flex-direction:column;
  }
  .order-ticket-row-actions{
    width:100%;
    justify-content:flex-end;
  }
  .order-tickets-modal-head-actions{
    justify-content:flex-start;
  }
}


/* --- Auftragsportal Ticket-Modal reduziert ---
.order-tickets-modal-head-actions{justify-content:flex-end;}
.order-ticket-row-simple{display:block;padding:12px 14px;}
.order-ticket-row-simple .order-ticket-row-top{margin-bottom:6px;}
.order-ticket-row-simple .order-ticket-title{margin-bottom:0;}
.order-ticket-row-actions{display:none !important;}
@media (max-width:820px){
  .order-tickets-modal-head-actions{justify-content:flex-start;}
}


*/
.record-head-actions{
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  gap:6px;
}

.record-ticket-badge{
  width:28px;
  min-width:28px;
  height:28px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:10px;
  border:1px solid var(--line);
  background:#fff;
  color:#475569;
  font-size:12px;
  font-weight:800;
  line-height:1;
  box-shadow:0 1px 4px rgba(0,0,0,.06);
}

.record-ticket-badge.is-hidden{
  display:none !important;
}

.record-ticket-badge.is-danger{
  background:#fef2f2;
  border-color:rgba(185,28,28,.16);
  color:#991b1b;
}

.record-ticket-badge.is-warn{
  background:#fff7ed;
  border-color:rgba(194,65,12,.18);
  color:#c2410c;
}

.record-ticket-badge.is-blinking{
  animation:recordTicketBadgePulse 1.1s ease-in-out infinite;
}

@keyframes recordTicketBadgePulse{
  0%,100%{ box-shadow:0 1px 4px rgba(0,0,0,.06); transform:scale(1); }
  50%{ box-shadow:0 0 0 6px rgba(185,28,28,.10); transform:scale(1.04); }
}


/* --- Ticket-Badge in linker Auftragsliste --- */
.record-head-actions.record-head-actions-stack{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  gap:6px;
}

.record-ticket-badge{
  width:28px;
  height:28px;
  min-width:28px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:10px;
  border:1px solid rgba(0,0,0,.10);
  background:#fff;
  color:#475569;
  font-size:12px;
  font-weight:800;
  line-height:1;
  box-shadow:0 1px 4px rgba(0,0,0,.06);
}

.record-ticket-badge.is-hidden{
  display:none !important;
}

.record-ticket-badge.is-danger{
  background:#fef3f2;
  border-color:rgba(180,35,24,.25);
  color:#b42318;
}

.record-ticket-badge.is-warn{
  background:#fffaeb;
  border-color:rgba(181,71,8,.25);
  color:#b54708;
}

.record-ticket-badge.is-ok{
  background:#ecfdf3;
  border-color:rgba(2,122,72,.25);
  color:#027a48;
}

.record-ticket-badge.is-blinking{
  animation:recordTicketBlink 1.1s ease-in-out infinite;
}

@keyframes recordTicketBlink{
  0%,100%{ box-shadow:0 1px 4px rgba(0,0,0,.06); filter:none; }
  50%{ box-shadow:0 0 0 6px rgba(180,35,24,.14); filter:brightness(.98); }
}


/* --- Material Zusatzdaten Vorgemerkt / Bestellt --- */
.material-date-row{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  margin-top:8px;
}
.material-date-row-bestellt [data-mat-abholdatum-wrap],
.material-date-row-bestellt [data-mat-abholkw-wrap]{
  grid-column:auto;
}
.material-date-static{
  min-height:40px;
  display:flex;
  align-items:center;
  padding:7px 10px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#f8fafc;
  color:#475569;
  font-size:13px;
}
.material-date-meta{
  display:inline-flex;
  flex-wrap:wrap;
  gap:6px;
}
.material-row-subline-office{
  display:grid;
  grid-template-columns:minmax(260px,1.45fr) minmax(240px,1fr);
  gap:10px;
  align-items:end;
}
.material-row-subline-left-office,
.material-row-meta-office{
  min-width:0;
}
.material-row-meta-office{
  justify-content:space-between;
}
@media (max-width:900px){
  .material-date-row,
  .material-row-subline-office{grid-template-columns:1fr;}
}


.material-row-workshop-muted .material-field-muted label,
.material-row-workshop-muted .material-auto-note,
.material-row-workshop-muted .material-date-meta,
.material-row-workshop .material-field-muted .input[readonly],
.material-row-workshop .material-field-muted .input:disabled,
.material-row-workshop .material-field-muted select:disabled{
  color:#8b95a7;
}
.material-row-workshop .material-field-muted .input[readonly],
.material-row-workshop .material-field-muted .input:disabled,
.material-row-workshop .material-field-muted select:disabled{
  background:#f6f7f9;
  border-color:rgba(0,0,0,.12);
}
.material-row-workshop .material-field-muted label{color:#8b95a7;}
