:root{
  --bg:#eef5fb;--panel:#ffffff;--ink:#102033;--muted:#64748b;--line:#dbe7f2;
  --brand:#0099c8;--brand2:#006c9b;--good:#16a34a;--warn:#eab308;--bad:#dc2626;
  --shadow:0 18px 40px rgba(15,23,42,.12);--radius:20px;
}
*{box-sizing:border-box} body{margin:0;font-family:Inter,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--ink)}
.hidden{display:none!important}.login-shell{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 20% 10%,#c7f3ff 0,#eef5fb 38%,#dbeafe 100%)}
.login-card{width:min(460px,92vw);background:rgba(255,255,255,.9);backdrop-filter:blur(16px);padding:34px;border-radius:28px;box-shadow:var(--shadow);border:1px solid rgba(255,255,255,.9)}
.brand{display:flex;gap:14px;align-items:center;margin-bottom:26px}.brand.small{margin:0 0 26px}.brand h1,.brand h2{margin:0}.brand p{margin:3px 0 0;color:var(--muted);font-size:.92rem}.logo{width:54px;height:54px;border-radius:18px;background:linear-gradient(135deg,var(--brand),var(--brand2));display:grid;place-items:center;color:white;font-weight:800;font-size:1.2rem;box-shadow:0 10px 24px rgba(0,153,200,.3)}
.app{display:grid;grid-template-columns:286px minmax(0,1fr);min-height:100vh}.sidebar{background:#0f2738;color:white;padding:22px;display:flex;flex-direction:column;gap:18px;position:sticky;top:0;height:100vh}.sidebar .brand p{color:#bae6fd}.sidebar nav{display:flex;flex-direction:column;gap:8px}.sidebar button{width:100%;text-align:left;border:0;border-radius:14px;padding:12px 14px;background:transparent;color:#dbeafe;cursor:pointer;font-weight:650}.sidebar button:hover,.sidebar button.active{background:rgba(255,255,255,.12);color:white}.sidebar .ghost{margin-top:auto;border:1px solid rgba(255,255,255,.2);text-align:center}
.content{min-width:0;padding:30px;max-width:1500px;width:100%}.headline{margin-bottom:22px}.headline h1{font-size:2.1rem;margin:0 0 8px}.headline p{margin:0;color:var(--muted)}.view{display:none}.view.active{display:block}.grid{display:grid;gap:22px}.grid.two{grid-template-columns:minmax(0,460px) minmax(0,1fr)}.grid.compact{gap:12px}.grid.two.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.grid>*,.kpis>*{min-width:0}#tenantStructureContext090 .grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}#tenantStructureContext090 .kpi{overflow-wrap:anywhere}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:0 10px 26px rgba(15,23,42,.06)}.card h2{margin:0 0 16px}.wide{overflow:auto}.stack{display:flex;flex-direction:column;gap:14px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}hr{width:100%;border:0;border-top:1px solid var(--line);margin:8px 0}
label{display:flex;flex-direction:column;gap:7px;font-size:.88rem;font-weight:700;color:#334155}input,select,textarea{font:inherit;border:1px solid #cbd5e1;border-radius:14px;padding:12px 13px;background:#f8fafc;color:var(--ink);outline:none;transition:.15s}input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 4px rgba(0,153,200,.14);background:white}textarea{resize:vertical}button{font:inherit}.primary{border:0;border-radius:14px;background:linear-gradient(135deg,var(--brand),var(--brand2));color:white;padding:12px 16px;font-weight:800;cursor:pointer;box-shadow:0 10px 22px rgba(0,108,155,.22)}.primary:hover{filter:brightness(.98);transform:translateY(-1px)}.ghost{border:1px solid var(--line);background:white;color:var(--ink);border-radius:14px;padding:11px 14px;cursor:pointer;font-weight:750}.hint{color:var(--muted);font-size:.86rem}.error{color:var(--bad);min-height:18px}
.kpis{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:16px;margin-bottom:22px}.kpi{background:white;border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:0 8px 18px rgba(15,23,42,.06)}.kpi strong{display:block;font-size:2rem}.kpi span{color:var(--muted);font-weight:700}.badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:5px 10px;font-size:.8rem;font-weight:800;background:#e2e8f0}.badge.good{background:#dcfce7;color:#166534}.badge.warn{background:#fef9c3;color:#854d0e}.badge.bad{background:#fee2e2;color:#991b1b}
.list{display:flex;flex-direction:column;gap:12px}.list-item{border:1px solid var(--line);border-radius:16px;padding:14px;background:#f8fafc}.list-item h3{margin:0 0 7px}.list-item p{margin:4px 0;color:var(--muted)}.table{overflow:auto}.table table{width:100%;border-collapse:separate;border-spacing:0 8px}.table th{text-align:left;color:var(--muted);font-size:.82rem}.table td,.table th{padding:10px}.table tr.data{background:#f8fafc}.table tr.data td:first-child{border-radius:12px 0 0 12px}.table tr.data td:last-child{border-radius:0 12px 12px 0}.output{white-space:pre-wrap;min-height:420px;background:#0f172a;color:#e2e8f0;border-radius:18px;padding:18px;overflow:auto}.plan-card{min-height:650px}.plan-canvas{position:relative;min-height:560px;border:2px dashed #cbd5e1;border-radius:18px;overflow:hidden;background:#f8fafc;display:grid;place-items:center}.plan-canvas img{display:block;max-width:100%;max-height:760px;width:100%;object-fit:contain}.placeholder{color:var(--muted);font-weight:800}.marker{position:absolute;transform:translate(-50%,-50%);border:3px solid white;box-shadow:0 8px 18px rgba(15,23,42,.25);width:42px;height:42px;border-radius:999px;display:grid;place-items:center;color:white;font-weight:900;cursor:pointer;background:var(--brand2)}.marker span{position:absolute;top:42px;white-space:nowrap;background:#0f172a;color:white;border-radius:10px;padding:4px 8px;font-size:.78rem}.marker.access_point{background:#0284c7}.marker.printer{background:#7c3aed}.marker.cabinet,.marker.server_room{background:#334155}.marker.client_workspace{background:#16a34a}.marker.firewall{background:#dc2626}.marker.switch{background:#ea580c}.marker.ups{background:#ca8a04}.answer{display:grid;grid-template-columns:1fr 120px;gap:10px;align-items:start;border:1px solid var(--line);border-radius:15px;padding:12px;margin:8px 0;background:#f8fafc}.answer textarea{grid-column:1/-1}.answer small{color:var(--muted)}#toast{position:fixed;z-index:10001;right:22px;bottom:78px;max-width:calc(100vw - 44px);overflow-wrap:anywhere;pointer-events:none;background:#0f172a;color:white;border-radius:14px;padding:13px 16px;box-shadow:var(--shadow);opacity:0;transform:translateY(12px);transition:.2s}#toast.show{opacity:1;transform:translateY(0)}
@media(max-width:980px){.app{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.content{padding:18px}.grid.two,.grid.two.compact,.kpis{grid-template-columns:1fr}.plan-card{min-height:480px}.plan-canvas{min-height:420px}.sidebar nav{display:grid;grid-template-columns:1fr 1fr}.sidebar .ghost{margin-top:0}}

/* v0.4.5 Rack / Cabinet module additions - appended to original v0.4.4-compatible design */
.rack-visual{border:1px solid var(--line); border-radius:16px; padding:10px; background:linear-gradient(180deg,#f8fafc,#eef2f7); max-width:520px}
.rack-unit{display:grid; grid-template-columns:80px 1fr; gap:10px; align-items:center; min-height:26px; padding:4px 8px; border-bottom:1px solid rgba(15,23,42,.08); font-size:.9rem}
.rack-unit:last-child{border-bottom:0}
.rack-unit b{font-variant-numeric:tabular-nums; color:var(--muted)}
.rack-unit.occupied{background:rgba(0,153,200,.10); border-left:4px solid var(--brand); border-radius:8px; margin:2px 0}
.rack-unit.occupied span{font-weight:700;color:var(--ink)}
.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width: 900px){.grid.three{grid-template-columns:1fr}}

/* Custom Checklist Designer UI v0.5.4 START */
.cc-designer,.cc-runs{margin-bottom:22px}.cc-template-detail{border:1px solid var(--line);background:#f8fafc;border-radius:16px;padding:14px}.cc-section{border:1px solid var(--line);border-radius:16px;background:#fff;padding:14px;margin:10px 0}.cc-section h4{margin:0 0 8px}.cc-question{border-left:4px solid var(--brand);background:#f8fafc;border-radius:12px;padding:10px;margin:8px 0}.cc-question small,.cc-meta{color:var(--muted)}.cc-check{display:flex;flex-direction:row;align-items:center;gap:10px}.cc-check input{width:auto}.cc-answer-card{border:1px solid var(--line);border-radius:16px;background:#f8fafc;padding:14px;margin:12px 0}.cc-answer-card h4{margin:0 0 6px}.cc-answer-grid{display:grid;grid-template-columns:1fr 150px;gap:10px}.cc-answer-grid textarea{grid-column:1/-1}.cc-doc-preview{min-height:260px}.cc-actions{display:flex;gap:10px;flex-wrap:wrap}.cc-status-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.cc-run-title{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.cc-run-title h3{margin:0}.cc-empty{border:1px dashed var(--line);border-radius:16px;padding:16px;color:var(--muted);background:#f8fafc}@media(max-width:900px){.cc-answer-grid{grid-template-columns:1fr}.cc-run-title{display:block}}
/* Custom Checklist Designer UI v0.5.4 END */


/* innDocsAI v0.5.5 Custom Checklist Designer Hardening */
.designer-readonly-banner {
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: 10px;
  padding: 10px 12px;
  margin: 8px 0 14px 0;
  font-weight: 600;
}
.designer-readonly-disabled {
  opacity: 0.55;
  cursor: not-allowed !important;
}
.designer-inline-error {
  border: 1px solid rgba(255,255,255,0.20);
  border-radius: 8px;
  padding: 8px 10px;
  margin: 8px 0;
}
.designer-status-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 1px solid rgba(255,255,255,0.16);
  border-radius: 999px;
  padding: 3px 9px;
  font-size: 0.85rem;
  line-height: 1.4;
}



/* innDocsAI v0.5.7 Custom Checklist Designer Audit */
.cc-doc-preview { white-space: pre-wrap; }

/* innDocsAI v0.5.8 Custom Checklist PDF Export */
.custom-checklist-pdf-export-note {
  font-size: 0.9rem;
  opacity: 0.85;
  margin-top: 0.5rem;
}

/* innDocsAI v0.5.9 Custom Checklist Export UI */
.inndoc-059-export-panel {
  position: relative;
  margin-top: 1rem;
  width: 100%;
  padding: 0.85rem;
  border: 1px solid rgba(0, 0, 0, 0.14);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18);
  backdrop-filter: blur(8px);
}
.inndoc-059-title {
  font-weight: 700;
  margin-bottom: 0.55rem;
}
.inndoc-059-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}
.inndoc-059-actions button,
.inndoc-059-modal-close {
  cursor: pointer;
  border-radius: 8px;
  border: 1px solid rgba(0, 0, 0, 0.16);
  padding: 0.45rem 0.65rem;
  background: #fff;
}
.inndoc-059-status {
  margin-top: 0.55rem;
  font-size: 0.85rem;
  opacity: 0.84;
}
.inndoc-059-status.is-error {
  color: #b00020;
  opacity: 1;
}
.inndoc-059-modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 9100;
  background: rgba(0, 0, 0, 0.42);
  padding: 3vh 3vw;
}
.inndoc-059-modal.is-open {
  display: block;
}
.inndoc-059-modal-card {
  max-width: 1100px;
  max-height: 92vh;
  margin: 0 auto;
  background: #fff;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.28);
}
.inndoc-059-modal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.9rem 1rem;
  border-bottom: 1px solid rgba(0, 0, 0, 0.12);
}
.inndoc-059-modal-body {
  max-height: 78vh;
  overflow: auto;
  padding: 1rem;
}
.inndoc-059-modal-body pre {
  white-space: pre-wrap;
  word-break: break-word;
  margin: 0;
}
@media print {
  .inndoc-059-export-panel,
  .inndoc-059-modal {
    display: none !important;
  }
}


/* innDocsAI v0.6.7 Admin Systemstatus Dashboard */
.inndoc-067-toggle{position:fixed;right:18px;bottom:18px;z-index:9998;border:0;border-radius:999px;padding:10px 16px;box-shadow:0 8px 24px rgba(0,0,0,.18);cursor:pointer;font-weight:700}
.inndoc-067-panel{position:fixed;right:18px;bottom:70px;width:min(560px,calc(100vw - 36px));max-height:78vh;overflow:auto;z-index:9999;background:var(--card-bg,#fff);color:var(--text,#1f2937);border:1px solid rgba(0,0,0,.12);border-radius:18px;box-shadow:0 22px 60px rgba(0,0,0,.22);display:none}
.inndoc-067-panel.open{display:block}
.inndoc-067-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid rgba(0,0,0,.10)}
.inndoc-067-close{border:0;background:transparent;font-size:24px;line-height:1;cursor:pointer;color:inherit}
.inndoc-067-body{padding:14px 16px}
.inndoc-067-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:14px}
.inndoc-067-grid label{display:block;font-size:12px;opacity:.7;margin-bottom:4px}
.inndoc-067-badge{display:inline-block;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700;background:#e5e7eb;color:#111827}
.inndoc-067-badge.ok{background:#dcfce7;color:#166534}.inndoc-067-badge.warn{background:#fef9c3;color:#854d0e}.inndoc-067-badge.bad{background:#fee2e2;color:#991b1b}
.inndoc-067-panel pre{white-space:pre-wrap;max-height:210px;overflow:auto;background:rgba(0,0,0,.04);padding:10px;border-radius:10px;font-size:12px}
.inndoc-067-reports{list-style:none;margin:0;padding:0;display:grid;gap:8px}.inndoc-067-reports li{display:flex;justify-content:space-between;gap:8px;align-items:center;border:1px solid rgba(0,0,0,.08);border-radius:10px;padding:8px}.inndoc-067-reports span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inndoc-067-reports button,.inndoc-067-actions button{border-radius:8px;border:1px solid rgba(0,0,0,.15);padding:6px 10px;cursor:pointer}.inndoc-067-error{color:#991b1b;font-weight:700}

/* BEGIN INNDOC_NETWORK_DISCOVERY_FRONTEND_071 */
.inndoc-discovery-nav-btn {
  margin: 0.35rem;
  padding: 0.55rem 0.8rem;
  border: 1px solid rgba(0,0,0,0.15);
  border-radius: 0.6rem;
  background: #fff;
  cursor: pointer;
  font-weight: 600;
}
body > .inndoc-discovery-nav-btn {
  position: fixed;
  right: 1rem;
  bottom: 1rem;
  z-index: 1000;
  box-shadow: 0 0.5rem 1.5rem rgba(0,0,0,0.18);
}
.inndoc-discovery-root {
  margin: 1rem 0;
}
.inndoc-discovery-card {
  border: 1px solid rgba(0,0,0,0.1);
  border-radius: 1rem;
  padding: 1rem;
  background: #fff;
  box-shadow: 0 0.25rem 1rem rgba(0,0,0,0.06);
}
.inndoc-discovery-head {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: flex-start;
  margin-bottom: 1rem;
}
.inndoc-discovery-head h2,
.inndoc-discovery-box h3 {
  margin-top: 0;
}
.inndoc-discovery-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1rem;
}
.inndoc-discovery-box {
  border: 1px solid rgba(0,0,0,0.08);
  border-radius: 0.8rem;
  padding: 1rem;
  margin: 1rem 0;
  background: rgba(0,0,0,0.015);
}
.inndoc-discovery-box label {
  display: block;
  margin: 0.6rem 0;
  font-weight: 600;
}
.inndoc-discovery-box input,
.inndoc-discovery-box select,
.inndoc-discovery-box textarea {
  width: 100%;
  box-sizing: border-box;
  margin-top: 0.25rem;
  padding: 0.5rem;
  border: 1px solid rgba(0,0,0,0.18);
  border-radius: 0.45rem;
}
.inndoc-discovery-message {
  min-height: 1.2rem;
  margin: 0.5rem 0;
  font-weight: 600;
}
.inndoc-discovery-message.ok { color: #1b7f3a; }
.inndoc-discovery-message.error { color: #b00020; }
.inndoc-discovery-note {
  font-size: 0.9rem;
  opacity: 0.75;
}
.inndoc-discovery-table-wrap {
  overflow: auto;
}
.inndoc-discovery-table-wrap table {
  width: 100%;
  border-collapse: collapse;
}
.inndoc-discovery-table-wrap th,
.inndoc-discovery-table-wrap td {
  border-bottom: 1px solid rgba(0,0,0,0.08);
  padding: 0.5rem;
  text-align: left;
  vertical-align: top;
}
.inndoc-discovery-actions {
  white-space: nowrap;
}
.inndoc-discovery-actions button {
  margin-right: 0.35rem;
  margin-bottom: 0.25rem;
}
/* END INNDOC_NETWORK_DISCOVERY_FRONTEND_071 */


/* v0.8.3 - gruppierte Seitenleiste */
.sidebar nav{display:flex;flex-direction:column;gap:14px;}

/* v0.8.3-menu-hotfix2 - Sidebar Accordion */
.inndoc-nav-accordion{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.inndoc-nav-group{
  display:flex;
  flex-direction:column;
  gap:4px;
}
.inndoc-nav-group-title{
  color:rgba(255,255,255,.82);
  font-size:.83rem;
  font-weight:800;
  padding:8px 10px 4px 10px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  cursor:pointer;
  user-select:none;
}
.inndoc-nav-group-title:hover{
  color:#fff;
}
.inndoc-nav-chevron{
  opacity:.7;
  transform:rotate(-90deg);
  transition:transform .15s ease;
}
.inndoc-nav-group.open .inndoc-nav-chevron{
  transform:rotate(0deg);
}
.inndoc-nav-group-items{
  display:none;
  flex-direction:column;
  gap:4px;
}
.inndoc-nav-group.open .inndoc-nav-group-items{
  display:flex;
}
.inndoc-nav-group-items button{
  margin-left:8px;
  width:calc(100% - 8px);
}

.document-readable{overflow-wrap:anywhere}.document-readable table{width:100%;border-collapse:collapse;margin:18px 0;table-layout:fixed}.document-readable td,.document-readable th{padding:9px;border:1px solid var(--line);vertical-align:top;text-align:left}.document-readable th{background:#eef5fb}.document-readable h2{margin-top:30px;border-bottom:1px solid var(--line);padding-bottom:8px}.document-readable li{margin:8px 0}.document-readable .toolbar{flex-wrap:wrap}
