/* RT-Kundenportal 5.0.0 Alpha 5
   Einheitliche Bootstrap-5.3.8-Oberfläche */
:root{
  --radius:12px;
  --bs-primary:#006ab5;
  --bs-primary-rgb:0,106,181;
  --bs-secondary:#5f6b7a;
  --bs-success:#009416;
  --bs-success-rgb:0,148,22;
  --bs-warning:#eda509;
  --bs-danger:#c22515;
  --bs-danger-rgb:194,37,21;
  --bs-body-color:#333333;
  --bs-body-bg:#f3f5f8;
  --bs-border-color:#dce2ea;
  --bs-border-radius:12px;
  --bs-border-radius-sm:12px;
  --bs-border-radius-lg:12px;
  --bs-border-radius-xl:12px;
  --bs-border-radius-xxl:12px;
  --bs-focus-ring-color:rgba(0,106,181,.25);
}

html,body{min-height:100%;}
body{color:var(--bs-body-color);background:var(--bs-body-bg);}
a{text-decoration:none;}

/* App-Shell: Navigation bleibt auf allen internen Seiten erhalten. */
.app-shell{grid-template-columns:240px minmax(0,1fr);}
.sidebar{position:sticky;top:0;height:100vh;overflow-y:auto;padding:16px;gap:16px;}
.sidebar .nav-link{color:var(--text);border-radius:12px;padding:10px 12px;}
.sidebar .nav-link:hover{background:#eef5fa;color:var(--primary2);}
.sidebar .nav-link.active{background:var(--primary);color:#fff;font-weight:700;}
.topbar{min-height:86px;height:auto;gap:12px;flex-wrap:wrap;}
.content{max-width:none;width:100%;}
.frame-content{height:calc(100vh - 86px);overflow:hidden;background:var(--bg);}
.app-content-frame{display:block;width:100%;height:100%;border:0;background:var(--bg);}
.embedded-page{background:var(--bg);}

/* Einheitlicher Radius 12 px für alle rechteckigen Bedienelemente. */
.card,.panel,.stat,.forms-section,.forms-card,.project-progress,.customer-task,
.task-management-head,.task-anchor-nav,.protected-report-head,.protected-report-shell,
.system-page .panel,.health-row,.permission-item,.search-result,.message-bubble,
.thread-details,.reply-box,.mail-workspace,.mail-layout,.mail-editor,.mail-row,
.mail-attachments a,.url-mode-card,.code-block,.plain-list li,.auth-card,.install-card,
.modal-card,.alert,.toast,.loading,.empty,details,.table-responsive,
input:not([type="checkbox"]):not([type="radio"]),select,textarea,.form-control,.form-select,
.input-group-text,.btn,.nav-link,.status-badge,.status-tag,.user-pill,.traffic-label,
.task-progress-large,.unread-count,.form-preview-step,.form-info-box,.form-answer,
.signature-box,.signature-wrap,.completion-panel,.form-progressbar,.notification-item,
.communication-list,.thread-card,.reply-box,.mail-folder,.mail-reader,.mail-list,
.project-card,.search-results,.table,.table-responsive{border-radius:12px!important;}

/* Runde Statuspunkte bleiben bewusst kreisförmig. */
.traffic,.health-dot,.traffic-label::before{border-radius:50%!important;}

/* Bootstrap-Komponenten und bestehende Kompatibilitätsklassen. */
.btn{min-height:38px;padding:.5rem .85rem;border:1px solid transparent;font-weight:700;line-height:1.25;}
.btn.primary,.btn.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff;}
.btn.primary:hover,.btn.btn-primary:hover{background:var(--primary2);border-color:var(--primary2);color:#fff;}
.btn.secondary,.btn.btn-outline-secondary{background:#fff;border-color:var(--line);color:var(--text);}
.btn.secondary:hover,.btn.btn-outline-secondary:hover{background:#eef3f8;border-color:#cbd5df;color:var(--text);}
.btn.warning,.btn.btn-warning{background:#fff6df;border-color:#efcf7e;color:#805700;}
.btn.danger,.btn.btn-danger{background:#fff0ee;border-color:#efb4ad;color:var(--danger);}
.btn.compact{min-height:34px;padding:.375rem .65rem;font-size:.875rem;}

input:not([type="checkbox"]):not([type="radio"]),select,textarea,
.form-control,.form-select{min-height:38px;border:1px solid var(--line);background:#fff;color:var(--text);padding:.5rem .75rem;}
input:focus,select:focus,textarea:focus,.form-control:focus,.form-select:focus{
  border-color:#75b8e5;box-shadow:0 0 0 .25rem rgba(0,106,181,.18);outline:0;
}
input[type="checkbox"],input[type="radio"]{width:1rem;height:1rem;flex:0 0 auto;}

.table{--bs-table-bg:#fff;--bs-table-border-color:var(--line);margin-bottom:0;}
.table>:not(caption)>*>*{padding:.75rem;vertical-align:middle;}
.table thead th{background:#f7f9fb;font-weight:700;}
.table-responsive{border:1px solid var(--line);overflow:auto;background:#fff;}
.card,.panel,.stat,.forms-section{box-shadow:none;}

/* Mindestens 5 px Abstand zwischen Bedienelementen und Boxen. */
.toolbar,.actions,.task-action-group,.report-generate-controls,.backup-actions,
.inline-form,.global-search,.mail-reader-actions,.mail-attachments,.mail-forward-attachments,
.mail-editor-tools,.message-files,.reply-options,.form-nav,.stack,.grid,.stats,.form-grid,
.system-grid,.task-split-grid,.relocation-grid,.forms-grid,.forms-stack,.admin-grid{
  gap:max(5px,var(--component-gap,10px));
}
.card+.card,.panel+.panel,.forms-section+.forms-section{margin-top:5px;}
.btn+.btn,a.btn+form,form+.btn,form+form{margin-inline-start:5px;}

/* Aufgabenlisten sind reguläre Seiten, keine Dialoge. */
.project-task-page{display:grid;gap:12px;}
.project-task-page .table-responsive{width:100%;}
.task-management-page{background:var(--bg);padding:16px;}
.task-management-head,.task-anchor-nav,.task-management-main{width:100%;max-width:none;}
.task-management-main{padding:0 0 24px;}
.task-management-head{margin-bottom:10px;}
.task-anchor-nav{margin-bottom:12px;}

/* Native Dialoge erhalten ausschließlich Bootstrap-nahe Darstellung. */
dialog{width:min(900px,calc(100vw - 32px));}
dialog::backdrop{background:rgba(33,37,41,.55);}
.modal-card{border:1px solid var(--line);box-shadow:var(--bs-box-shadow-lg);}

@media(max-width:900px){
  .app-shell{grid-template-columns:1fr;}
  .sidebar{position:relative;height:auto;display:flex;}
  .sidebar .nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));}
  .frame-content{height:calc(100vh - 180px);}
  .topbar{padding:12px 16px;}
}
@media(max-width:600px){
  .sidebar .nav{grid-template-columns:1fr;}
  .frame-content{height:calc(100vh - 220px);}
  .btn+.btn,a.btn+form,form+.btn,form+form{margin-inline-start:0;margin-top:5px;}
}


/* Eingebettete Unterseiten belegen immer den gesamten rechten Inhaltsbereich. */
.embedded-page.auth-bg,
.embedded-page.task-management-page{
  min-height:100%;
  padding:16px;
  background:var(--bs-body-bg);
}
.embedded-page .system-page,
.embedded-page .install-card,
.embedded-page .task-management-main,
.embedded-page .forms-content{
  width:100%;
  max-width:none;
  margin:0;
}
.embedded-page .system-page,
.embedded-page .install-card{
  padding:0;
  background:transparent;
  border:0;
  box-shadow:none;
}
.embedded-page .system-page>h1,
.embedded-page .install-card>h1{margin-bottom:1rem;}
.embedded-page .task-management-head{margin-top:0;}
.embedded-page .task-management-head>a[target="_top"]{display:none;}

/* Bootstrap-Formstruktur auch für ältere Templates. */
label{margin-bottom:0;}
label>input:not([type="checkbox"]):not([type="radio"]),
label>select,label>textarea{margin-top:5px;}
button,.btn,.form-control,.form-select{border-radius:12px!important;}
.row,.d-flex,.btn-group,.input-group{--bs-gutter-x:max(5px,1rem);}
.btn-toolbar,.btn-group,.nav,.pagination{gap:5px;}

/* Unterseiten und Tabellen bleiben im Inhaltsframe responsiv. */
.system-page,.task-management-main,.forms-content{overflow-wrap:anywhere;}
.table-scroll,.table-responsive{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;}
@media(max-width:900px){
  .embedded-page.auth-bg,.embedded-page.task-management-page{padding:12px;}
  .app-content-frame{min-height:720px;}
}

.table{overflow:hidden;}
.notification-item+.notification-item,.message-bubble+.message-bubble{margin-top:5px;}
