/* Project Components — interní systém, vizuální identita v1 */
@font-face { font-family:'Space Grotesk'; src:url('/static/fonts/SpaceGrotesk.ttf'); }
@font-face { font-family:'IBM Plex Sans'; src:url('/static/fonts/IBMPlexSans.ttf'); }
@font-face { font-family:'IBM Plex Mono'; src:url('/static/fonts/IBMPlexMono-Regular.ttf'); font-weight:400; }
@font-face { font-family:'IBM Plex Mono'; src:url('/static/fonts/IBMPlexMono-Medium.ttf'); font-weight:500; }

:root {
  --yellow:#FFC90D; --ink:#16263D; --steel:#5C6C7B; --text:#3A4654;
  --mut:#8A929B; --line:#E1E5E9; --line2:#EEF0F2; --grid:#F0F3F5;
}
* { margin:0; padding:0; box-sizing:border-box; }
body {
  font-family:'IBM Plex Sans',sans-serif; font-size:14px; color:var(--text);
  background:
    repeating-linear-gradient(0deg, var(--grid) 0 1px, transparent 1px 38px),
    repeating-linear-gradient(90deg, var(--grid) 0 1px, transparent 1px 38px),
    #fff;
  min-height:100vh;
}
a { color:var(--ink); }

/* horní pruh */
.top { background:var(--yellow); border-bottom:1px solid var(--ink);
  display:flex; align-items:center; justify-content:space-between;
  padding:0 28px; height:58px; position:sticky; top:0; z-index:10; }
.top img { height:22px; display:block; }
.top nav { display:flex; gap:2px; }
.top nav a { font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.1em;
  text-transform:uppercase; text-decoration:none; color:var(--ink);
  padding:7px 11px; border:1px solid transparent; }
.top nav a.on, .top nav a:hover { border-color:var(--ink); background:#fff; }
.top .who { font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:.08em;
  color:var(--ink); }
.top .who a { color:var(--ink); }

.wrap { max-width:1180px; margin:26px auto 60px; padding:0 28px; }

h1 { font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:26px;
  color:var(--ink); letter-spacing:-.01em; margin-bottom:4px; }
.sub { font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:.16em;
  text-transform:uppercase; color:var(--mut); margin-bottom:22px; }

.bar { display:flex; gap:10px; align-items:center; margin-bottom:16px; flex-wrap:wrap; }
.bar .sp { flex:1; }

/* tlačítka */
.btn { display:inline-block; font-family:'IBM Plex Mono',monospace; font-size:11px;
  letter-spacing:.1em; text-transform:uppercase; text-decoration:none; cursor:pointer;
  padding:9px 16px; border:1px solid var(--ink); background:#fff; color:var(--ink);
  border-radius:5px; }
.btn:hover { background:var(--line2); }
.btn.pri { background:var(--yellow); }
.btn.pri:hover { background:#f5bf00; }
.btn.ink { background:var(--ink); color:#fff; }
.btn.sm { padding:5px 10px; font-size:10px; }

/* tabulky */
table.list { width:100%; border-collapse:collapse; background:#fff; border:1px solid var(--ink); }
table.list th { background:var(--ink); color:#fff; font-family:'IBM Plex Mono',monospace;
  font-weight:400; font-size:9.5px; letter-spacing:.14em; text-transform:uppercase;
  padding:9px 12px; text-align:left; }
table.list td { padding:9px 12px; border-bottom:1px solid var(--line2); font-size:13px; }
table.list tr:hover td { background:#FFFBEB; }
table.list .r { text-align:right; font-family:'IBM Plex Mono',monospace; font-size:12px; white-space:nowrap; }
table.list a.hl { font-weight:600; text-decoration:none; }
table.list a.hl:hover { text-decoration:underline; }

/* stavy */
.st { font-family:'IBM Plex Mono',monospace; font-size:9.5px; letter-spacing:.1em;
  text-transform:uppercase; padding:3px 8px; border:1px solid var(--line);
  border-radius:3px; color:var(--steel); white-space:nowrap; }
.st.y { background:var(--yellow); border-color:var(--ink); color:var(--ink); }
.st.g { background:#E8F5E9; border-color:#9CCC9C; color:#2E7D32; }
.st.r { background:#FDECEA; border-color:#F5C6C6; color:#B3261E; }
.st.i { background:var(--ink); border-color:var(--ink); color:#fff; }

/* formuláře */
form.card, .card { background:#fff; border:1px solid var(--ink); padding:22px 26px; }
.grid { display:grid; grid-template-columns:repeat(12,1fr); gap:14px 16px; }
.f { display:flex; flex-direction:column; gap:4px; }
.f label { font-family:'IBM Plex Mono',monospace; font-size:9px; letter-spacing:.16em;
  text-transform:uppercase; color:var(--mut); }
.f input, .f select, .f textarea {
  font-family:'IBM Plex Sans',sans-serif; font-size:13.5px; color:var(--ink);
  border:1px solid var(--line); border-radius:4px; padding:8px 10px; background:#fff; }
.f input:focus, .f select:focus, .f textarea:focus { outline:2px solid var(--yellow); border-color:var(--ink); }
.c2{grid-column:span 2}.c3{grid-column:span 3}.c4{grid-column:span 4}
.c6{grid-column:span 6}.c8{grid-column:span 8}.c12{grid-column:span 12}

/* položky dokladu */
table.pol { width:100%; border-collapse:collapse; margin-top:6px; }
table.pol th { font-family:'IBM Plex Mono',monospace; font-size:9px; letter-spacing:.12em;
  text-transform:uppercase; color:var(--mut); text-align:left; padding:4px 6px;
  border-bottom:1px solid var(--ink); }
table.pol td { padding:4px 4px; vertical-align:top; }
table.pol input { width:100%; font-family:'IBM Plex Sans'; font-size:13px;
  border:1px solid var(--line); border-radius:3px; padding:6px 8px; }
table.pol input.r, table.pol td.r { text-align:right; font-family:'IBM Plex Mono',monospace; font-size:12px; }
table.pol .del { color:#B3261E; cursor:pointer; font-size:16px; text-decoration:none; padding:4px 6px; }

.sumbox { background:var(--yellow); border:1px solid var(--ink); padding:12px 18px;
  display:flex; justify-content:space-between; align-items:center; margin-top:14px; }
.sumbox .t { font-family:'IBM Plex Mono',monospace; font-size:9.5px; letter-spacing:.16em;
  text-transform:uppercase; color:var(--ink); }
.sumbox .v { font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:22px; color:var(--ink); }

/* dashboard */
.tiles { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:22px; }
.tile { background:#fff; border:1px solid var(--ink); padding:14px 16px; }
.tile .k { font-family:'IBM Plex Mono',monospace; font-size:9px; letter-spacing:.16em;
  text-transform:uppercase; color:var(--mut); }
.tile .v { font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:24px;
  color:var(--ink); margin-top:4px; }
.cols { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.panel { background:#fff; border:1px solid var(--ink); }
.panel h2 { font-family:'IBM Plex Mono',monospace; font-weight:500; font-size:10px;
  letter-spacing:.16em; text-transform:uppercase; color:#fff; background:var(--ink);
  padding:8px 14px; }
.panel .in { padding:6px 14px 12px; }
.panel table { width:100%; border-collapse:collapse; }
.panel td { padding:6px 2px; border-bottom:1px solid var(--line2); font-size:12.5px; }

.flash { border:1px solid var(--ink); background:#FFFBEB; padding:10px 14px;
  margin-bottom:16px; font-size:13px; }
.mono { font-family:'IBM Plex Mono',monospace; }
.mut { color:var(--mut); }
.autoc { position:absolute; background:#fff; border:1px solid var(--ink); z-index:30;
  max-height:220px; overflow:auto; min-width:340px; box-shadow:3px 3px 0 rgba(22,38,61,.12); }
.autoc div { padding:7px 10px; cursor:pointer; font-size:12.5px; border-bottom:1px solid var(--line2); }
.autoc div:hover { background:#FFFBEB; }

/* login */
.login { max-width:400px; margin:9vh auto; }
.login .logo { text-align:center; margin-bottom:26px; }
.login .logo img { height:34px; }
