:root{
  --bg:#f6f7f9;
  --card:#fff;
  --text:#111827;
  --muted:#6b7280;
  --border:#e5e7eb;
  --shadow:0 10px 30px rgba(17,24,39,.08);
  --radius:14px;
  --pad:16px;
  --btn:#111827;
  --btnText:#fff;
  --btnSoft:#f3f4f6;
  --focus:#2563eb;
  --radius:5px;

}

*{ box-sizing:border-box; }
html,body{ height:100%; }
body{
  margin:0;
  font-family: 'Lato', system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;
  background:var(--bg);
  color:var(--text);
}

.topbar{
  position:sticky;
  top:0;
  z-index:5;
  background:rgba(246,247,249,.92);
  backdrop-filter: blur(8px);
  border-bottom:1px solid var(--border);
}
.topbar__inner{
  max-width:1200px;
  margin:0 auto;
  padding:14px 14px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}
h1{
  margin:0;
  font-size:18px;
  letter-spacing:-.01em;
}
.topbar__actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

.wrap{
  max-width:1200px;
  margin:0 auto;
  padding:14px;
  display:grid;
  gap:14px;
}

.card{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:var(--pad);
}

.card-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}
h2{
  margin:0;
  font-size:16px;
  color:var(--text);
}
.hint{
  font-size:12px;
  color:var(--muted);
  max-width:520px;
  line-height:1.3;
  margin-top:2px;
}

/* ---------- FORM (compact) ---------- */

.form-grid{
  display:grid;
  grid-template-columns: 1fr 210px 1fr;
  gap:10px 10px;
  align-items:end;
}

.field{ margin:0; }

.field-name{ grid-column: 1; }
.field-dose{ grid-column: 2; }
.field-info{ grid-column: 3; }

.field-times{ grid-column: 1 / -1; margin-top:6px; }
.field-days{ grid-column: 1 / -1; margin-top:2px; }

label{
  display:block;
  font-size:13px;
  color:var(--muted);
  margin-bottom:6px;
}

input[type="text"]{
  width:100%;
  padding:10px 12px;            /* kompakter */
  border:1px solid var(--border);
  border-radius:5px;
  font-size:14px;               /* kompakter */
  outline:none;
  background:#fff;
}
input[type="text"]:focus{
  border-color:var(--focus);
  box-shadow:0 0 0 3px rgba(37,99,235,.15);
}

.label-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:6px;
}
.label{
  font-size:13px;
  color:var(--muted);
}

/* Chips */
.chips{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.chip{
  display:flex;
  align-items:center;
  gap:8px;
  padding:9px 12px;            /* kompakter */
  border:1px solid var(--border);
  border-radius:5px;
  background:#fff;
  cursor:pointer;
  user-select:none;
  color:var(--text);
  font-weight:700;
  font-size:13px;
}
.chip:hover{ background:var(--btnSoft); }
.chip input{ width:18px; height:18px; }

.shortcut-row{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-bottom:10px;
}
.chip-btn{
  font-weight:900;
  border-style:dashed;
}

.weekdays{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  padding:10px;
  border:1px dashed var(--border);
  border-radius:5px;
}
.weekdays label{
  display:flex;
  align-items:center;
  gap:8px;
  margin:0;
  padding:8px 10px;
  border:1px solid var(--border);
  border-radius:5px;
  background:#fff;
  cursor:pointer;
  color:var(--text);
  font-weight:700;
  font-size:13px;
}
.weekdays label:hover{ background:var(--btnSoft); }
.weekdays input{ width:18px; height:18px; }

.micro-hint{
  margin-top:8px;
  font-size:12px;
  color:var(--muted);
}

.form-actions{
  grid-column: 1 / -1;
  display:flex;
  gap:10px;
  margin-top:10px;
}

/* Buttons */
.btn{
  border:1px solid var(--border);
  background:var(--btn);
  color:var(--btnText);
  padding:10px 12px;
  border-radius:5px;
  cursor:pointer;
  font-weight:700;
  font-size:14px;
}
.btn:hover{ filter:brightness(.96); }
.btn:active{ transform:translateY(1px); }
.btn-secondary{
  background:#fff;
  color:var(--text);
}

/* ---------- TABLE ---------- */

.table-wrap{
  overflow:auto;
  border:1px solid var(--border);
  border-radius:5px;
}

.plan-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  overflow:hidden;
  background:#fff;
  min-width: 980px;
}
.plan-table th{
  text-align:left;
  font-size:13px;
  padding:10px;
  background:#eef2f7;
  border-bottom:1px solid var(--border);
  color:var(--text);
  white-space:nowrap;
}
.plan-table td{
  padding:10px;
  border-bottom:1px solid var(--border);
  font-size:14px;
  vertical-align:top;
}
.plan-table tr:last-child td{ border-bottom:none; }
.center{ text-align:center; font-weight:700; }
.actions{ text-align:right; }

.row-actions{
  display:flex;
  justify-content:flex-end;
  gap:8px;
}
.icon-btn{
  border:1px solid var(--border);
  background:#fff;
  border-radius:5px;
  padding:8px 10px;
  cursor:pointer;
  font-weight:700;
  font-size:13px;
}
.icon-btn:hover{ background:var(--btnSoft); }

.empty{
  color:var(--muted);
  font-size:14px;
  padding:8px 0;
}

.below{
  display:flex;
  justify-content:flex-end;
  margin-top:10px;
}
.small-note{
  font-size:12px;
  color:var(--muted);
}

/* Print targets hidden on screen */
.print-area{ display:none; }

/* ---------- RESPONSIVE: stack fields ---------- */
@media (max-width: 900px){
  .form-grid{
    grid-template-columns: 1fr;
  }
  .field-name, .field-dose, .field-info{ grid-column: 1; }
}

/* ---------- PRINT ---------- */
@media print{
  body{ background:#fff !important; }

  /* Topbar ausblenden */
  .topbar{ display:none !important; }

  /* NICHT .wrap ausblenden, sonst verschwindet auch die print-area */
  .wrap{ display:block !important; }

  /* Normale UI-Cards ausblenden */
  .wrap > .card{ display:none !important; }

  /* Print-Inhalte sichtbar machen */
  .print-area{
    display:block !important;
    padding:0 !important;
    margin:0 !important;
  }

  /* Print-Modi */
  body.print-list-only #printPlan{ display:none !important; }
  body.print-plan-only #printList{ display:none !important; }

  /* Tabellen druckfreundlich */
  table{
    border-collapse:collapse !important;
    width:100% !important;
  }
  th, td{
    border:1px solid #000 !important;
    padding:6px 6px !important;
    font-size:11px !important;
    vertical-align:top !important;
  }
  th{
    background:#eee !important;
  }
}
