/* Unitravel administration — design system.
   Editorial, print-like: warm paper, near-black ink, no rounded corners,
   mono for labels and numbers. The brand colours live in the logo; exactly one
   of them (the dark blue) is borrowed as the accent so the logo reads as part
   of the page instead of a sticker on it. */

:root {
  /* paper & ink */
  --ink:#161510; --ink-soft:#33322d; --body:#3a3833; --muted:#5a574c;
  --faint:#6c6960; --ghost:#6f6c62;
  --line:#e6e2d8; --line-soft:#ece9e1; --border:#d8d3c8; --rule:#e2dfd7;
  --paper:#fbfaf7; --card:#ffffff; --wash:#f6f4ef; --panel:#f8f6f2;
  --on-ink:#f4f2ec; --on-ink-soft:#b8b4a8;

  /* from the logo */
  --accent:#00508f; --accent-soft:#0089cf; --warn:#ed1c24;

  --display:'Archivo','Helvetica Neue',Helvetica,Arial,sans-serif;
  --text:'Newsreader',Georgia,'Times New Roman',serif;
  --mono:'Space Mono',ui-monospace,SFMono-Regular,Menlo,monospace;

  --rail:236px; --topbar:56px;
}

*, *::before, *::after { box-sizing:border-box; }
html, body { margin:0; padding:0; }
body { background:var(--paper); color:var(--body); font-family:var(--text);
       font-size:15px; line-height:1.6; -webkit-font-smoothing:antialiased; }
h1,h2,h3,h4 { font-family:var(--display); color:var(--ink); margin:0;
              letter-spacing:-.022em; font-weight:600; }
h1 { font-size:27px; line-height:1.1; letter-spacing:-.03em; }
h2 { font-size:19px; line-height:1.15; }
h3 { font-size:15px; letter-spacing:-.012em; }
p { margin:0 0 12px; }
a { color:var(--ink); text-underline-offset:3px; }
a:hover { color:var(--accent); }

.label { font-family:var(--mono); font-size:9.5px; letter-spacing:.2em;
         text-transform:uppercase; color:var(--ghost); }
.meta  { font-family:var(--mono); font-size:10px; letter-spacing:.05em; color:var(--ghost); }
.num   { font-family:var(--mono); font-variant-numeric:tabular-nums; }
.lead  { font-weight:300; font-size:17px; line-height:1.45; color:var(--muted); max-width:64ch; }

/* ── login ──────────────────────────────────────────────────────────────── */

.split { min-height:100vh; min-height:100dvh; display:grid;
         grid-template-columns:1.05fr .95fr; }
@media (max-width:900px) { .split { grid-template-columns:1fr; } }

.aside { background:var(--ink); color:var(--on-ink); padding:56px 52px;
         display:flex; flex-direction:column; justify-content:center; }
.aside .mark { display:flex; align-items:center; gap:13px; margin-bottom:auto; }
.aside .mark img { height:38px; width:auto; display:block; }
.aside .mark .n { font-family:var(--display); font-weight:600; font-size:15px;
                  letter-spacing:-.015em; color:var(--on-ink); line-height:1.15; }
.aside .mark .p { font-family:var(--mono); font-size:9.5px; letter-spacing:.16em;
                  text-transform:uppercase; color:var(--on-ink-soft); margin-top:3px; }
.aside h1 { color:var(--on-ink); font-size:34px; line-height:1.14; margin:52px 0 16px;
            max-width:16ch; }
.aside p { color:var(--on-ink-soft); font-size:14.5px; line-height:1.66; margin:0; max-width:46ch; }
.aside .chips { display:flex; flex-wrap:wrap; gap:8px; margin:28px 0 auto; }
.aside .chips span { font-family:var(--mono); font-size:10.5px; letter-spacing:.1em;
  text-transform:uppercase; color:var(--on-ink-soft); padding:6px 11px;
  border:1px solid rgba(255,255,255,.18); }
.aside .foot { color:rgba(255,255,255,.42); font-size:11.5px; margin-top:52px;
               font-family:var(--mono); letter-spacing:.06em; }
@media (max-width:900px) {
  .aside { padding:26px 20px 30px; }
  .aside h1 { font-size:25px; margin:24px 0 12px; max-width:none; }
  .aside .foot { display:none; }
}

.signin { display:grid; place-items:center; padding:52px 44px; }
.signin .box { width:100%; max-width:360px; }
.signin h2 { font-size:22px; letter-spacing:-.02em; margin:0 0 6px; }
.signin .sub { color:var(--muted); font-size:13.5px; line-height:1.55; margin:0 0 26px; }
@media (max-width:900px) { .signin { padding:34px 20px 48px; place-items:start center; } }

/* ── shell ──────────────────────────────────────────────────────────────── */

.shell { display:grid; grid-template-columns:var(--rail) minmax(0,1fr); min-height:100vh; }
@media (max-width:900px) { .shell { grid-template-columns:1fr; } }

.rail { background:var(--panel); border-right:1px solid var(--line);
        display:flex; flex-direction:column; position:sticky; top:0; height:100vh; }
@media (max-width:900px) { .rail { position:static; height:auto; } }
.rail .head { padding:14px 18px; border-bottom:1px solid var(--line);
              display:flex; align-items:center; gap:11px; }
.rail .head img { height:30px; width:auto; display:block; }
.rail .head .n { font-family:var(--display); font-weight:600; font-size:13px;
                 color:var(--ink); line-height:1.15; }
.rail .head .p { font-family:var(--mono); font-size:9px; letter-spacing:.14em;
                 text-transform:uppercase; color:var(--ghost); margin-top:2px; }
.rail nav { padding:14px 0 20px; overflow-y:auto; flex:1; }
.rail .group { font-family:var(--mono); font-size:9px; letter-spacing:.2em;
  text-transform:uppercase; color:var(--ghost); padding:14px 18px 6px; }
.rail a.item { display:flex; align-items:baseline; gap:9px; padding:7px 18px;
  color:var(--muted); text-decoration:none; font-family:var(--display);
  font-size:13px; font-weight:500; border-left:2px solid transparent; }
.rail a.item .k { font-family:var(--mono); font-size:9.5px; color:var(--ghost);
                  width:14px; flex:0 0 auto; }
.rail a.item:hover { color:var(--ink); background:var(--wash); }
.rail a.item[aria-current="page"] { color:var(--ink); border-left-color:var(--accent);
                                    background:var(--card); }
.rail a.item .count { margin-left:auto; font-family:var(--mono); font-size:9.5px;
                      color:var(--ghost); }
.rail .foot { border-top:1px solid var(--line); padding:11px 18px;
              display:flex; align-items:center; gap:10px; }
.rail .foot .who { font-family:var(--display); font-size:12px; font-weight:500;
                   color:var(--ink); }
.rail .foot .out { margin-left:auto; }

.main { min-width:0; display:flex; flex-direction:column; }

/* ── top bar: the prompt lives here, for people and for the agent ───────── */

.topbar { position:sticky; top:0; z-index:20; background:rgba(251,250,247,.94);
  backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line); padding:9px 22px;
  display:flex; align-items:center; gap:14px; min-height:var(--topbar); }
.prompt { flex:1; display:flex; align-items:center; gap:0; min-width:0; }
.prompt .sigil { font-family:var(--mono); font-size:12px; color:var(--ghost);
  border:1px solid var(--border); border-right:0; background:var(--card);
  padding:0 10px; height:36px; display:grid; place-items:center; flex:0 0 auto; }
.prompt input { flex:1; min-width:0; height:36px; font-family:var(--text);
  font-size:14px; padding:0 12px; border:1px solid var(--border);
  background:var(--card); color:var(--ink); }
.prompt input:focus { outline:2px solid var(--accent); outline-offset:-1px; }
.prompt button { height:36px; padding:0 15px; flex:0 0 auto; }
.topbar .kbd { font-family:var(--mono); font-size:9px; letter-spacing:.1em;
  text-transform:uppercase; color:var(--ghost); border:1px solid var(--rule);
  padding:3px 6px; }

.answer { border:1px solid var(--rule); border-left:3px solid var(--accent);
  background:var(--card); margin:0 22px; margin-top:14px; padding:13px 16px; }
.answer[hidden] { display:none; }
.answer .label { display:block; margin-bottom:5px; }
.answer .body { font-size:14px; color:var(--ink-soft); white-space:pre-wrap; }
.answer .links { margin-top:9px; display:flex; flex-wrap:wrap; gap:8px; }

/* ── page ───────────────────────────────────────────────────────────────── */

.page { padding:26px 22px 60px; max-width:1320px; width:100%; }
.page > header { margin-bottom:20px; }
.page > header .label { display:block; margin-bottom:7px; }
.page > header .lead { margin-top:8px; }

.grid { display:grid; gap:14px; grid-template-columns:repeat(auto-fill,minmax(232px,1fr)); }

.card { border:1px solid var(--line); background:var(--card); padding:16px 17px; }
.card .label { display:block; margin-bottom:8px; }
.card .big { font-family:var(--display); font-weight:600; font-size:29px;
             color:var(--ink); line-height:1; letter-spacing:-.03em; }
.card .note { color:var(--muted); font-size:13px; margin:8px 0 0; }
.card.quiet { background:var(--panel); }

.panel { border:1px solid var(--line); background:var(--card); }
.panel > .hd { padding:13px 17px; border-bottom:1px solid var(--line);
               display:flex; align-items:center; gap:12px; }
.panel > .hd h2 { font-size:14px; }
.panel > .hd .right { margin-left:auto; }
.panel > .bd { padding:15px 17px; }

/* tables */
table.list { width:100%; border-collapse:collapse; background:var(--card); }
table.list th { font-family:var(--mono); font-size:9px; letter-spacing:.18em;
  text-transform:uppercase; color:var(--ghost); text-align:left; font-weight:400;
  padding:9px 12px; border-bottom:1px solid var(--border); white-space:nowrap; }
table.list td { padding:10px 12px; border-bottom:1px solid var(--line-soft);
                font-size:14px; vertical-align:top; }
table.list tr:hover td { background:var(--wash); }
table.list td.n { font-family:var(--mono); font-variant-numeric:tabular-nums;
                  font-size:12.5px; color:var(--muted); white-space:nowrap; }
table.list td .t { font-family:var(--display); font-weight:500; font-size:14px;
                   color:var(--ink); letter-spacing:-.01em; }
table.list td .s { color:var(--faint); font-size:12.5px; }

/* forms */
label { display:block; font-family:var(--mono); font-size:9.5px; letter-spacing:.14em;
        text-transform:uppercase; color:var(--ghost); margin:0 0 5px; }
input[type=text], input[type=search], input[type=password], input[type=number], select, textarea {
  width:100%; font-family:var(--text); font-size:15px; padding:10px 12px;
  border:1px solid var(--border); background:var(--card); color:var(--ink); }
input:focus, select:focus, textarea:focus { outline:2px solid var(--ink); outline-offset:-1px; }
.field { margin-bottom:14px; }
.row { display:flex; gap:10px; flex-wrap:wrap; align-items:flex-end; }
.row .field { margin-bottom:0; }
.row .grow { flex:1; min-width:180px; }

button, .btn { display:inline-flex; align-items:center; justify-content:center; gap:8px;
  min-height:40px; padding:0 16px; background:var(--card); color:var(--ink);
  border:1px solid var(--border); font-family:var(--display); font-weight:500;
  font-size:13px; cursor:pointer; text-decoration:none; }
button:hover, .btn:hover { border-color:var(--ink); }
button.primary, .btn.primary { background:var(--ink); color:var(--paper); border-color:var(--ink); }
button.primary:hover { opacity:.86; border-color:var(--ink); }
button.wide { width:100%; min-height:46px; font-size:14px; }
button.small, .btn.small { min-height:31px; padding:0 11px; font-size:12px; }

/* bits */
.flash { border:1px solid var(--rule); border-left:3px solid var(--ink);
  background:var(--wash); padding:11px 14px; margin:0 0 18px; font-size:13.5px;
  line-height:1.5; color:var(--ink-soft); }
.flash[hidden] { display:none; }
.flash.bad { border-left-color:var(--warn); }

.tag { display:inline-block; font-family:var(--mono); font-size:9.5px;
  letter-spacing:.12em; text-transform:uppercase; color:var(--muted);
  border:1px solid var(--rule); padding:3px 7px; }
.stars { font-family:var(--mono); font-size:11px; color:var(--accent-soft);
         letter-spacing:.08em; white-space:nowrap; }

.empty { border:1px dashed var(--border); background:var(--panel); padding:34px 20px;
         text-align:center; color:var(--muted); }
.empty .label { display:block; margin-bottom:8px; }

.pager { display:flex; align-items:center; gap:10px; margin-top:16px; }
.pager .where { font-family:var(--mono); font-size:10px; color:var(--ghost);
                margin-left:auto; letter-spacing:.06em; }

.split-2 { display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:20px; align-items:start; }
@media (max-width:1080px) { .split-2 { grid-template-columns:1fr; } }

dl.facts { margin:0; display:grid; grid-template-columns:auto 1fr; gap:7px 16px; }
dl.facts dt { font-family:var(--mono); font-size:9.5px; letter-spacing:.14em;
              text-transform:uppercase; color:var(--ghost); padding-top:3px; }
dl.facts dd { margin:0; font-size:14px; color:var(--ink-soft); }

.gallery { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:8px; }
.gallery img { width:100%; height:108px; object-fit:cover; display:block;
               border:1px solid var(--line); background:var(--wash); }

.prose { font-size:14.5px; line-height:1.7; color:var(--ink-soft); }
.prose p { margin:0 0 11px; }

/* ── hotel detail: text layer ───────────────────────────────────────────── */

.langbar { display:flex; align-items:center; gap:8px; margin-top:14px; flex-wrap:wrap; }
.langbar .label { margin-right:2px; }
form.inline { display:inline; }

.tag.own  { border-color:var(--accent); color:var(--accent); background:var(--card); }
.tag.warn { border-color:var(--warn); color:var(--warn); }
button.tag.own { min-height:0; padding:3px 7px; cursor:pointer; font-family:var(--mono); }

.section .hd .right { display:flex; gap:6px; align-items:center; }

details.editor > summary { list-style:none; cursor:pointer; position:relative; }
details.editor > summary::-webkit-details-marker { display:none; }
details.editor > summary .more { font-family:var(--mono); font-size:9.5px;
  letter-spacing:.14em; text-transform:uppercase; color:var(--ghost);
  border:1px solid var(--rule); padding:3px 7px; display:inline-block; margin-top:9px; }
details.editor > summary:hover .more { border-color:var(--ink); color:var(--ink); }
details.editor[open] > summary .prose { display:none; }
details.editor[open] > summary .more::after { content:" · zavřít"; }
details.editor textarea { font-family:var(--text); font-size:14.5px; line-height:1.6; }

button.wand { margin-top:9px; }
button.wand:hover { border-color:var(--accent); color:var(--accent); }

.variants { border-top:1px solid var(--line-soft); margin-top:14px; padding-top:12px; }
.variants .label { display:block; margin-bottom:7px; }
details.variant { border:1px solid var(--line); background:var(--panel);
                  padding:8px 11px; margin-bottom:6px; }
details.variant > summary { cursor:pointer; font-family:var(--display);
  font-size:12.5px; font-weight:500; color:var(--muted); display:flex;
  align-items:center; gap:8px; }
details.variant > summary::-webkit-details-marker { color:var(--ghost); }
details.variant .prose { margin-top:9px; font-size:13.5px; }

figure.shot { margin:0; border:1px solid var(--line); background:var(--card); }
figure.shot img { width:100%; height:112px; object-fit:cover; display:block; }
figure.shot.off { opacity:.4; }
figure.shot figcaption { padding:6px; }
figure.shot .cap input { width:100%; font-size:12px; padding:5px 7px; }
figure.shot .acts { display:flex; gap:4px; margin-top:5px; }
figure.shot .acts button { min-height:24px; padding:0 7px; font-size:10.5px; flex:1; }

table.list.bare td { border-bottom:1px solid var(--line-soft); padding:7px 0; }
.chips-row { display:flex; flex-wrap:wrap; gap:5px; }
ol.plain { margin:0; padding-left:18px; font-size:13.5px; color:var(--ink-soft); }
ol.plain li { margin-bottom:3px; }
ul.plain-ul { margin:0; padding-left:18px; font-size:14px; color:var(--ink-soft); }
ul.plain-ul li { margin-bottom:7px; }

/* ── slovník vybavení ───────────────────────────────────────────────────── */
.namebox { display:flex; align-items:center; gap:7px; }
.namebox input { flex:1; min-width:120px; font-size:13.5px; padding:6px 9px; }
tr.muted-row td { opacity:.45; }
