/* =========================================================
   AAAS Capture – Light Theme
   ruhig · professionell · workshop-tauglich
   ========================================================= */

:root{
  --bg:#f6f8fb;
  --surface:#ffffff;
  --text:#1f2937;
  --muted:#6b7280;
  --border:#e5e7eb;
  --accent:#2563eb;
  --accent-soft:#e0e7ff;
  --radius:14px;
  --shadow:0 8px 24px rgba(0,0,0,.06);
}

*{ box-sizing:border-box; }

body{
  margin:0;
  font:14px/1.5 system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--text);
  background:var(--bg);
}

/* =========================================================
   Layout
   ========================================================= */

.container{
  max-width:1100px;
  margin:0 auto;
  padding:0 20px;
}

.layout{
  display:block;
  padding:20px 0 28px;
}

.layout > .card{
  margin-bottom:16px;
}

/* =========================================================
   Topbar / Navigation
   ========================================================= */

.topbar{
  position:sticky;
  top:0;
  z-index:1050;
  background:var(--surface);
  border-bottom:1px solid var(--border);
}

.topbar__inner{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding:14px 0;
}

.brand__title{
  font-weight:800;
  letter-spacing:.2px;
}

.brand__subtitle{
  font-size:12px;
  color:var(--muted);
  margin-top:2px;
}

.nav{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

.nav.nav--stacked{
  display:flex;
  flex-direction:column;
  gap:12px;
  align-items:flex-end;
}

.nav.nav--stacked .nav__group{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:flex-end;
}

.nav.nav--stacked .nav__separator{
  width:100%;
  height:1px;
  background:var(--border);
  margin:2px 0;
}

.nav__link{
  text-decoration:none;
  font-size:13px;
  padding:8px 12px;
  border-radius:999px;
  color:#6b7280;
  color:var(--muted, #6b7280);
  border:1px solid #e5e7eb;
  border:1px solid var(--border, #e5e7eb);
  background:#ffffff;
  background:var(--surface, #ffffff);
}

.nav__link:hover{
  color:#1f2937;
  color:var(--text, #1f2937);
  border-color:#d1d5db;
}

.nav__link--active{
  color:#2563eb;
  color:var(--accent, #2563eb);
  border-color:#2563eb;
  border-color:var(--accent, #2563eb);
  background:#e0e7ff;
  background:var(--accent-soft, #e0e7ff);
}

.nav__link--danger{
  color:#dc2626;
  border-color:#fecaca;
  background:#fef2f2;
}

.nav__link--danger:hover{
  color:#fff;
  background:#dc2626;
  border-color:#dc2626;
}

.nav__link--user{
  display:block;
  color:var(--text);
  border:none;
  background:transparent;
  cursor:default;
  font-weight:500;
}

.nav__link--user:hover{
  border:none;
  color:var(--text);
}

.nav__link--role{
  display:block;
  font-size:11px;
  color:var(--muted);
  margin-top:2px;
}

/* =========================================================
   Dropdown Navigation
   ========================================================= */

.nav__dropdown{
  position:relative;
  padding-bottom:8px;
  margin-bottom:-8px;
}

.nav__dropdown-toggle{
  display:inline-flex;
  align-items:center;
  gap:6px;
  cursor:pointer;
}

.nav__dropdown-toggle::after{
  content:'▾';
  font-size:10px;
  opacity:0.7;
}

.nav__dropdown-menu{
  display:none;
  position:absolute;
  top:calc(100% + 4px);
  left:0;
  min-width:180px;
  background:#ffffff;
  background:var(--surface, #ffffff);
  border:1px solid #e5e7eb;
  border:1px solid var(--border, #e5e7eb);
  border-radius:12px;
  box-shadow:0 8px 24px rgba(0,0,0,.06);
  box-shadow:var(--shadow, 0 8px 24px rgba(0,0,0,.06));
  padding:8px 0;
  z-index:9999;
}

/* Unsichtbare Brücke zwischen Toggle und Dropdown-Menü */
.nav__dropdown-menu::before{
  content:'';
  position:absolute;
  top:-12px;
  left:0;
  right:0;
  height:12px;
}

.nav__dropdown-menu--right{
  left:auto;
  right:0;
}

.nav__dropdown:hover .nav__dropdown-menu,
.nav__dropdown:focus-within .nav__dropdown-menu{
  display:block;
}

.nav__dropdown-item,
.nav__dropdown-menu a.nav__dropdown-item,
.nav__dropdown-menu button.nav__dropdown-item{
  display:block;
  padding:8px 14px;
  font-size:13px;
  color:#6b7280;
  color:var(--muted, #6b7280);
  text-decoration:none;
  white-space:nowrap;
  border:none;
  border-radius:0;
  background:transparent;
  width:100%;
  text-align:left;
  cursor:pointer;
  font-weight:normal;
}

.nav__dropdown-item:hover,
.nav__dropdown-menu a.nav__dropdown-item:hover,
.nav__dropdown-menu button.nav__dropdown-item:hover{
  background:#f6f8fb;
  background:var(--bg, #f6f8fb);
  color:#1f2937;
  color:var(--text, #1f2937);
  opacity:1;
}

.nav__dropdown-item--active,
.nav__dropdown-menu a.nav__dropdown-item--active{
  color:#2563eb;
  color:var(--accent, #2563eb);
  background:#e0e7ff;
  background:var(--accent-soft, #e0e7ff);
}

.nav__dropdown-item--danger,
.nav__dropdown-menu button.nav__dropdown-item--danger{
  color:#dc2626;
}

.nav__dropdown-item--danger:hover,
.nav__dropdown-menu button.nav__dropdown-item--danger:hover{
  background:#fef2f2;
  color:#dc2626;
}

.nav__dropdown-divider{
  height:1px;
  background:#e5e7eb;
  background:var(--border, #e5e7eb);
  margin:6px 0;
}

.nav__dropdown-label{
  display:block;
  padding:8px 14px 4px;
  font-size:11px;
  color:#6b7280;
  color:var(--muted, #6b7280);
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:0.5px;
}

/* Compact single-line topbar */
.topbar--compact .topbar__inner{
  align-items:center;
  padding:10px 0;
}

.topbar--compact .nav{
  align-items:center;
}

.topbar--compact .nav--main{
  gap:6px;
}

.topbar--compact .nav--user{
  margin-left:auto;
  gap:8px;
}

/* =========================================================
   Cards
   ========================================================= */

.card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:16px;
}

.card__header h1{
  margin:0 0 6px;
  font-size:18px;
}

.card__header p{
  margin:0;
  color:var(--muted);
}

/* =========================================================
   Sections & Text
   ========================================================= */

.section{
  margin-top:16px;
  padding-top:16px;
  border-top:1px solid var(--border);
}

.section__title{
  font-size:14px;
  font-weight:700;
  margin:0 0 6px;
}

.help{
  font-size:13px;
  color:var(--muted);
  margin:0 0 12px;
}

/* =========================================================
   Forms
   ========================================================= */

label{
  display:flex;
  flex-direction:column;
  gap:6px;
  margin:10px 0;
}

label span{
  font-size:12px;
  color:var(--muted);
}

input[type="text"],
input[type="number"],
select{
  width:100%;
  padding:10px 12px;
  border-radius:10px;
  border:1px solid var(--border);
  background:var(--surface);
  color:var(--text);
  outline:none;
}

input[type="text"]:focus,
input[type="number"]:focus,
select:focus{
  border-color:var(--accent);
  box-shadow:0 0 0 3px rgba(37,99,235,.12);
}

.grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}

.grid3{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:12px;
}

@media (max-width:900px){
  .grid3{ grid-template-columns:1fr; }
}

@media (max-width:720px){
  .grid{ grid-template-columns:1fr; }
}

/* =========================================================
   Readonly / Badges
   ========================================================= */

.readonly{
  padding-top:6px;
}

.readonly__label{
  display:block;
  font-size:12px;
  color:var(--muted);
  margin-bottom:6px;
}

.readonly__hint{
  font-size:12px;
  color:var(--muted);
  margin-top:6px;
}

.badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 12px;
  border-radius:999px;
  border:1px solid var(--border);
  background:var(--bg);
  color:var(--text);
  font-size:14px;
  font-weight:700;
  line-height:1.5;
}

.badge small{
  font-weight:600;
  color:var(--muted);
}

/* =========================================================
   Actions / Buttons
   ========================================================= */

.actions{
  display:flex;
  gap:12px;
  align-items:center;
  margin-top:16px;
  flex-wrap:wrap;
}

.btn{
  padding:10px 14px;
  border-radius:10px;
  border:1px solid var(--border);
  background:var(--surface);
  color:var(--text);
  font-weight:600;
  cursor:pointer;
  text-decoration:none;
  font-size:14px;
}

.btn:hover{
  border-color:#d1d5db;
}

.btn--primary{
  background:var(--accent);
  color:#ffffff;
  border-color:var(--accent);
}

.btn--primary:hover{
  background:#1d4ed8;
}

/* =========================================================
   Awareness Model Info
   ========================================================= */

.modelGrid{
  display:grid;
  grid-template-columns:1fr 3fr;
  gap:14px;
}

@media (max-width:900px){
  .modelGrid{ grid-template-columns:1fr; }
}

.modelInfo{
  border:1px solid var(--border);
  border-radius:12px;
  padding:14px;
  background:var(--bg);
}

.modelInfo h3{
  margin:0 0 8px;
  font-size:14px;
}

.modelInfo h4{
  margin:12px 0 6px;
  font-size:13px;
}

.modelInfo p,
.modelInfo ul{
  font-size:13px;
  color:var(--muted);
}

.modelInfo ul{
  padding-left:18px;
}

/* =========================================================
   Target Groups
   ========================================================= */

.tgBlock{
  border:1px solid var(--border);
  border-radius:12px;
  padding:14px;
  background:var(--bg);
  margin-top:12px;
}

.tgBlock__title{
  font-size:13px;
  font-weight:700;
  margin-bottom:6px;
}

.tgMeasure{
  border:1px solid var(--border);
  border-radius:12px;
  padding:14px;
  background:var(--bg);
  margin-top:12px;
}

.tgMeasure__title{
  font-size:13px;
  font-weight:700;
  margin-bottom:10px;
}

.tgMatrix{
  border:1px solid var(--border);
  border-radius:12px;
  padding:14px;
  background:var(--bg);
  margin-top:12px;
}

.tgMatrix__title{
  font-size:13px;
  font-weight:700;
  margin-bottom:10px;
}

/* =========================================================
   Switch Row / Checkboxes
   ========================================================= */

.switchRow{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--bg);
}

.switchRow input[type="checkbox"]{
  width:18px;
  height:18px;
  margin:0;
}

.checkGrid{
  display:grid;
  grid-template-columns:repeat(5, minmax(0, 1fr));
  gap:10px;
}

.checkGrid2{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}

@media (max-width:900px){
  .checkGrid{ grid-template-columns:1fr 1fr; }
  .checkGrid2{ grid-template-columns:1fr; }
}

.checkItem{
  display:flex;
  align-items:center;
  gap:8px;
  padding:10px 12px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--surface);
  margin:0;
}

.checkItem input[type="checkbox"]{
  width:18px;
  height:18px;
  margin:0;
}

/* =========================================================
   Info Boxes
   ========================================================= */

.infoBox{
  border:1px solid var(--border);
  background:var(--bg);
  border-radius:12px;
  padding:14px;
}

.infoBox h3{
  margin:0 0 8px;
  font-size:14px;
}

.infoBox p{
  margin:0 0 8px;
  color:var(--muted);
}

.fieldHint{
  font-size:11px;
  color:var(--muted);
  margin-top:2px;
  line-height:1.3;
}

/* =========================================================
   Live JSON
   ========================================================= */

pre{
  margin:0;
  padding:14px;
  border-radius:12px;
  border:1px solid var(--border);
  background:var(--bg);
  overflow:auto;
  max-height:60vh;
  font-size:12px;
  line-height:1.5;
  font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
}

/* =========================================================
   Footer
   ========================================================= */

.footer{
  border-top:1px solid var(--border);
  padding:14px 0;
  color:var(--muted);
  font-size:12px;
}

.footer__inner{
  padding:0 20px;
}
