body.admin { background: var(--paper); }
.admin-wrap { padding: 26px 20px 60px; }
.top-link { color: #B8C7D2; font-size: 13px; text-decoration: none; margin-left: 14px; }
.top-link:hover { color: #fff; }
.as-btn { background: none; border: 0; cursor: pointer; font: inherit; }

.panel {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 18px 20px;
}
.panel h2 { font-family: var(--font-display); font-size: 17px; margin: 0 0 12px; }
.panel h3 { font-family: var(--font-display); font-size: 13px; margin: 14px 0 8px; color: var(--muted); text-transform: uppercase; letter-spacing: .04em; }
.panel label { display: block; font-size: 13px; font-weight: 600; margin-bottom: 12px; }
.panel textarea {
  display: block; width: 100%; margin-top: 5px; border: 1px solid var(--line); border-radius: 8px;
  padding: 8px 10px; font: inherit; font-weight: 400; background: #fff; resize: vertical; box-sizing: border-box;
}
.panel input[type=text], .panel input[type=password], .panel input[type=number],
.panel input[type=search], .panel select {
  display: block; width: 100%; margin-top: 5px;
  height: 40px; border: 1px solid var(--line); border-radius: 8px;
  padding: 0 10px; font: inherit; font-weight: 400; background: #fff;
}
.row3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.muted { color: var(--muted); font-size: 13px; }
.err { color: #A33A2A; font-size: 13px; min-height: 18px; margin-top: 8px; }

.admin-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; align-items: start; }
.login-panel { max-width: 380px; margin: 8vh auto 0; }

.btn-primary {
  background: var(--amber); color: var(--navy);
  border: 0; border-radius: 8px; height: 44px; padding: 0 22px;
  font-family: var(--font-display); font-weight: 700; font-size: 15px; cursor: pointer;
}
.btn-primary:hover { background: var(--amber-dark); color: #fff; }
.btn-primary[disabled] { opacity: .6; cursor: wait; }
.btn-secondary {
  background: #fff; color: var(--navy);
  border: 1px solid var(--navy); border-radius: 8px; height: 40px; padding: 0 14px;
  font: inherit; font-weight: 600; cursor: pointer;
}

.radio-line { font-weight: 500 !important; display: flex !important; gap: 8px; align-items: center; }
.radio-line input { accent-color: var(--amber-dark); }
.op-tools { display: flex; gap: 10px; align-items: center; margin: 8px 0; }
.op-tools input { height: 36px !important; margin-top: 0 !important; flex: 1; }
.op-list {
  max-height: 340px; overflow: auto;
  border: 1px solid var(--line); border-radius: 8px; padding: 8px 10px;
  display: flex; flex-direction: column; gap: 4px;
}
.op-item { display: flex; gap: 8px; align-items: center; font-size: 13px; font-weight: 400; }
.op-item input { accent-color: var(--amber-dark); }
.op-item .code { color: var(--muted); font-size: 11px; margin-left: auto; }

.perop-list { display: flex; flex-direction: column; gap: 6px; margin-bottom: 10px; }
.perop-row {
  display: flex; gap: 8px; align-items: center; font-size: 13px;
  background: var(--paper); border: 1px solid var(--line); border-radius: 8px; padding: 6px 10px;
}
.perop-row b { font-family: var(--font-display); }
.perop-row .pct { margin-left: auto; }
.perop-row button { background: none; border: 0; color: #A33A2A; cursor: pointer; font-size: 15px; }
.perop-add { display: grid; grid-template-columns: 1fr 90px auto; gap: 8px; align-items: center; }
.perop-add select, .perop-add input { margin-top: 0 !important; height: 40px !important; }

.savebar {
  position: sticky; bottom: 0; margin-top: 18px;
  background: var(--card); border: 1px solid var(--line); border-radius: var(--radius);
  padding: 12px 18px; display: flex; justify-content: space-between; align-items: center;
  box-shadow: 0 -4px 20px rgba(16,41,59,.06);
}

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

/* rekomendacje */
.rec-results { display: flex; flex-direction: column; gap: 4px; margin-top: 8px; }
.rec-result {
  display: flex; gap: 8px; align-items: center; font-size: 13px;
  border: 1px dashed var(--line); border-radius: 8px; padding: 6px 10px;
}
.rec-result .muted { margin-left: auto; }
.rec-result button {
  background: var(--amber); border: 0; border-radius: 6px;
  padding: 3px 10px; font: inherit; font-weight: 600; cursor: pointer; color: var(--navy);
}

/* zakładki */
.tabs { display: flex; gap: 4px; border-bottom: 2px solid var(--line); margin-bottom: 18px; flex-wrap: wrap; }
.tab {
  border: 0; background: none; font: inherit; font-weight: 600; font-size: 14px;
  padding: 10px 18px; cursor: pointer; color: var(--muted);
  border-bottom: 3px solid transparent; margin-bottom: -2px;
}
.tab:hover { color: var(--ink); }
.tab.active { color: var(--navy); border-bottom-color: var(--amber); }
.tabpane { display: none; }
.tabpane.active { display: block; }

/* rekomendacje dwukolumnowo */
.rec-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 10px; align-items: start; }
.rec-list { max-height: 460px; }
@media (max-width: 800px) { .rec-cols { grid-template-columns: 1fr; } }

/* schematy */
.schema-builder { background: var(--paper); border: 1px solid var(--line); border-radius: 10px; padding: 14px; margin-bottom: 16px; }
.schema-amenities { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; margin: 10px 0; font-size: 13px; }
.schema-amenities label { display: flex; gap: 6px; align-items: center; margin: 0; font-weight: 400; }
.schema-actions { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.schema-list { display: flex; flex-direction: column; gap: 8px; }
.schema-item { border: 1px solid var(--line); border-radius: 9px; padding: 10px 14px; background: #fff; }
.schema-item-head { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.schema-item b { font-family: var(--font-display); }
.schema-link { display: flex; gap: 8px; align-items: center; margin-top: 8px; }
.schema-link input { flex: 1; height: 36px; border: 1px solid var(--line); border-radius: 7px; padding: 0 10px; font: inherit; font-size: 12px; background: var(--paper); }
.schema-link button { background: var(--navy); color: #fff; border: 0; border-radius: 7px; padding: 0 14px; height: 36px; cursor: pointer; font: inherit; font-weight: 600; }
.schema-del { background: none; border: 0; color: #A33A2A; cursor: pointer; font-size: 16px; }

/* --- Operatorzy per zakładka wyszukiwarki --- */
#tabOpsBlocks details {
  border: 1px solid var(--border, #d8dee9);
  border-radius: 8px;
  padding: 10px 14px;
  margin-bottom: 10px;
  background: #fff;
}
#tabOpsBlocks summary {
  cursor: pointer;
  font-weight: 600;
  padding: 4px 0;
}
#tabOpsBlocks .op-tools { margin-top: 8px; }
#tabOpsBlocks .op-list { max-height: 260px; }

/* --- Kuratorowane listy (kolejność + widoczność) --- */
.cur-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; align-items: start; }
.cur-list { display: flex; flex-direction: column; gap: 4px; max-height: 360px; overflow: auto; border: 1px solid var(--border, #d8dee9); border-radius: 8px; padding: 8px; background: #fff; }
.cur-row { display: flex; align-items: center; gap: 8px; padding: 4px 6px; border-radius: 6px; }
.cur-row:hover { background: #f5f7fa; }
.cur-name { flex: 1; font-size: 14px; }
.cur-move { border: 1px solid var(--border, #d8dee9); background: #fff; border-radius: 6px; width: 26px; height: 24px; cursor: pointer; font-size: 10px; line-height: 1; }
.cur-move:hover { background: #eef2f7; }
@media (max-width: 700px) { .cur-cols { grid-template-columns: 1fr; } }

/* Długie listy w panelu — zawsze przewijane, nie wypychają układu */
.rec-list { max-height: 420px; overflow: auto; }
#recHotels { border: 1px solid var(--line, #d8dee9); border-radius: 8px; padding: 8px; }
.cur-row.dragging { opacity: .5; }
.cur-row { cursor: grab; }
.cur-row:active { cursor: grabbing; }

/* --- etap43: ulubieni operatorzy (checkbox wg ulubionych + drag&drop) --- */
.fav-bar { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 4px 0 8px; }
.fav-toggle { display: flex; align-items: center; gap: 6px; font-weight: 600; font-size: 13px; cursor: pointer; }
.fav-toggle input { accent-color: var(--amber-dark); }
.op-item-fav { cursor: grab; padding: 4px 6px; border-radius: 6px; border: 1px solid transparent; }
.op-item-fav:hover { background: #f5f7fa; border-color: #e3e7ee; }
.op-item-fav.dragging { opacity: .5; background: #eef3fb; }
.op-grip { color: #9aa6b6; cursor: grab; user-select: none; font-size: 14px; line-height: 1; }
.op-item-fav .op-name { flex: 0 1 auto; }
.op-list-fav { display: flex; flex-direction: column; gap: 2px; }

/* ===== etap48: ustawienia graficzne (motyw) ===== */
.theme-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px 20px; margin-top: 8px; }
.theme-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: start; }
.theme-controls { display: flex; flex-direction: column; gap: 10px; }
.theme-controls label { font-size: 13px; font-weight: 600; color: var(--navy); }
.theme-controls label.clr { display: grid; grid-template-columns: 1fr 44px 72px; align-items: center; gap: 8px; }
.theme-controls input[type=color] { width: 44px; height: 30px; padding: 0; border: 1px solid #d5dbe4; border-radius: 6px; cursor: pointer; }
.theme-controls input[type=text].hex, .theme-controls input[type=number] { height: 32px; }
.theme-controls input.hex { text-transform: uppercase; font-family: monospace; font-size: 12px; }

/* podgląd karty — miniatura listingu */
.theme-preview { position: sticky; top: 16px; }
.tc-card {
  --tc-font: inherit; --tc-cta:#E25303; --tc-cta-text:#fff; --tc-price-border:#E25303;
  --tc-transport:#6DCFF6; --tc-stars:#E39B2D; --tc-name-color:#001F70; --tc-name-size:22px;
  --tc-text:#6DCFF6; --tc-price-bg:#FBFAF6; --tc-body-bg:#fff;
  display: grid; grid-template-columns: 90px 1fr 130px; border: 1px solid #e3e7ee;
  border-radius: 12px; overflow: hidden; font-family: var(--tc-font); background: #fff;
  box-shadow: 0 4px 16px rgba(0,31,112,.08);
}
.tc-photo { background: #dfe8f2; display: flex; align-items: center; justify-content: center; color: #91a3ba; font-size: 12px; }
.tc-body { padding: 12px 14px; display: flex; flex-direction: column; gap: 5px; background: var(--tc-body-bg); }
.tc-loc { color: var(--tc-text); font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.tc-titlerow { display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; }
.tc-name { color: var(--tc-name-color); font-size: var(--tc-name-size); font-weight: 800; line-height: 1.15; }
.tc-stars { color: var(--tc-stars); font-size: 13px; letter-spacing: 1px; }
.tc-chips { display: flex; gap: 5px; flex-wrap: wrap; align-items: center; }
.tc-chip { font-size: 11px; background: #f1f5f9; border-radius: 20px; padding: 2px 9px; color: #001F70; }
.tc-transport { color: var(--tc-transport); font-size: 18px; }
.tc-price { background: var(--tc-price-bg); border-left: 4px solid var(--tc-price-border); padding: 12px; display: flex; flex-direction: column; justify-content: center; align-items: flex-end; gap: 4px; }
.tc-price-main { color: #001F70; font-weight: 800; font-size: 18px; }
.tc-price-total { color: #7a8aa0; font-size: 11px; }
.tc-cta { margin-top: 6px; background: var(--tc-cta); color: var(--tc-cta-text); border: none; border-radius: 8px; padding: 7px 12px; font-size: 12px; font-weight: 700; cursor: pointer; }
@media (max-width: 900px) { .theme-layout, .theme-grid { grid-template-columns: 1fr; } .theme-preview { position: static; } }

/* ===== etap52: skracacz linków ===== */
.sl-form { display: flex; flex-direction: column; gap: 12px; }
.sl-list { display: flex; flex-direction: column; gap: 10px; }
.sl-item { display: grid; grid-template-columns: 1fr auto auto; gap: 16px; align-items: center; padding: 12px 14px; border: 1px solid #e3e7ee; border-radius: 10px; background: #fff; }
.sl-item.inactive { opacity: .55; }
.sl-item-main { min-width: 0; }
.sl-item-short { display: flex; align-items: center; gap: 8px; font-weight: 600; }
.sl-item-short a { color: var(--amber-dark); text-decoration: none; word-break: break-all; }
.sl-item-target { color: var(--muted); font-size: 12px; margin-top: 2px; word-break: break-all; }
.sl-item-clicks { text-align: center; }
.sl-item-clicks b { display: block; font-size: 22px; color: var(--navy); }
.sl-item-clicks span { font-size: 11px; color: var(--muted); }
.sl-item-actions { display: flex; gap: 6px; }
.btn-mini { padding: 6px 12px; border: 1px solid #d5dbe4; background: #fff; border-radius: 7px; font-size: 12px; font-weight: 600; cursor: pointer; color: var(--navy); }
.btn-mini:hover { border-color: var(--amber-dark); color: var(--amber-dark); }
.btn-mini.danger:hover { border-color: #d33; color: #d33; }
.sl-copy { font-size: 11px; }

.sl-modal { position: fixed; inset: 0; background: rgba(16,41,59,.5); display: flex; align-items: center; justify-content: center; z-index: 100; }
.sl-modal[hidden] { display: none; }
.sl-modal-box { background: #fff; border-radius: 14px; padding: 24px; width: min(560px, 92vw); max-height: 86vh; overflow: auto; position: relative; }
.sl-modal-close { position: absolute; top: 14px; right: 14px; border: none; background: #f0f3f8; width: 30px; height: 30px; border-radius: 50%; cursor: pointer; font-size: 14px; }
.sl-stats-total { font-size: 15px; margin: 8px 0 16px; }
.sl-stats-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.sl-stats-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.sl-stats-table th { text-align: left; color: var(--muted); font-weight: 600; border-bottom: 1px solid #e3e7ee; padding: 4px 6px; }
.sl-stats-table td { padding: 4px 6px; border-bottom: 1px solid #f0f3f8; }
@media (max-width: 720px) { .sl-item { grid-template-columns: 1fr; } .sl-stats-cols { grid-template-columns: 1fr; } }

/* etap53: szerokie pole długiego URL w skracaczu */
#slTarget { width: 100%; resize: vertical; min-height: 72px; font-family: monospace; font-size: 13px; line-height: 1.5; padding: 10px 12px; }
