/* Plánovací kalendář — styly jen pro plan.html (vrstva nad styles.css). */

:root {
  --border-soft: #EDE5D2;
  --gold: #9A7B2F;
  --wk-bg: #EAE1CB;
  --today-bg: #E2EDE0;
  --labw: 232px;
  --daw: 44px;
  --sumw: 116px;
}

.hdr .hdr-sub { font-family: var(--mono); font-size: .68rem; letter-spacing: .18em; opacity: .65; }

/* atribut hidden musí vyhrát i nad display: flex/grid */
[hidden] { display: none !important; }

/* ---------- layout: kalendář + pravý sloupec ---------- */
.layout { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 1.3rem;
          max-width: 1760px; margin: 0 auto; padding: 1.2rem 1.4rem 2.4rem; align-items: start; }
.layout section { margin-top: 0; }
.cal-main { min-width: 0; }
@media (max-width: 1180px) { .layout { grid-template-columns: minmax(0, 1fr); } }

/* ---------- horní lišta ---------- */
.topbar { display: flex; flex-wrap: wrap; align-items: center; gap: .7rem 1rem; margin-bottom: .85rem; }
.topbar .monthpick { margin-top: 0; justify-content: flex-start; }
.topbar .monthpick .label { font-size: 1.45rem; min-width: 10.5rem; }
.day-actions { margin-bottom: .85rem; }
.day-actions .btn { margin-top: 0; }
.day-actions #btn-correct { margin-left: auto; }
.dy-status { font-family: var(--mono); font-size: .75rem; }

.tabs { display: inline-flex; border: 1px solid var(--border); border-radius: 99px;
        overflow: hidden; background: var(--card); margin-left: auto; }
.tab { padding: .38rem .95rem; font-family: var(--mono); font-size: .74rem; cursor: pointer;
       color: var(--muted); border: none; background: transparent; }
.tab.active { background: var(--green); color: #F2EAD8; }

/* ---------- editor návrhu + prázdný stav ---------- */
#plan-editor { margin-bottom: .95rem; }
.empty-state { text-align: center; padding: 2.2rem 1.4rem; }
.empty-state .es-title { font-family: var(--serif); font-size: 1.35rem; color: var(--green); }
.empty-state .es-sub { font-family: var(--mono); font-size: .76rem; color: var(--muted);
                       margin: .55rem auto .95rem; max-width: 36rem; }

/* ---------- kalendářní karta ---------- */
.cal-card { background: var(--card); border: 1px solid var(--border); border-radius: var(--radius);
            overflow: hidden; }
.cal-wrap { overflow-x: auto; position: relative; }
.cal-grid { display: grid; width: max-content; }

/* sticky popisky vlevo + Σ vpravo */
.lab { position: sticky; left: 0; z-index: 3; background: var(--card);
       border-right: 1px solid var(--border); border-bottom: 1px solid var(--border-soft);
       padding: .4rem .65rem; box-shadow: 6px 0 8px -6px rgba(32, 48, 31, .14); }
.lab .ln { font-size: .78rem; font-weight: 600; line-height: 1.2; }
.lab .lm { font-family: var(--mono); font-size: .6rem; color: var(--muted); margin-top: .16rem; }
.lab select.rowline { display: block; margin-top: .3rem; font-family: var(--mono); font-size: .62rem;
                      padding: .08rem .2rem; max-width: 100%; }
.lab.head .lm { text-transform: uppercase; letter-spacing: .06em; }
.lab.head, .sum.head { border-bottom: 1px solid var(--border); }
.lab.notelab .ln { font-family: var(--mono); font-size: .6rem; letter-spacing: .08em;
                   text-transform: uppercase; color: var(--muted); font-weight: 700; }

.sum { position: sticky; right: 0; z-index: 3; background: var(--card);
       border-left: 1px solid var(--border); border-bottom: 1px solid var(--border-soft);
       padding: .3rem .5rem .25rem; box-shadow: -6px 0 8px -6px rgba(32, 48, 31, .14); }
.sum .sv { font-family: var(--mono); font-size: .7rem; white-space: nowrap; }
.sum .sv b { color: var(--green); font-size: .78rem; }
.sum .sv .sd { color: var(--muted); font-size: .62rem; }
.sum .sb { height: 5px; background: var(--cream); border: 1px solid var(--border);
           border-radius: 99px; overflow: hidden; display: flex; margin-top: .22rem; }
.sum .sb i { display: block; height: 100%; background: var(--green-soft); }
.sum .sb i.pi { background: repeating-linear-gradient(45deg, #B89B5E 0 4px, #E8DCBE 4px 8px); }
.sum .spd { font-family: var(--mono); font-size: .55rem; color: var(--gold); margin-top: .12rem; }
.sum .snan { font-family: var(--mono); font-size: .55rem; color: var(--muted); margin-top: .1rem; }
.sum .srozpis { font-family: var(--mono); font-size: .58rem; margin-top: .14rem; color: var(--muted); }
.sum .srozpis.sum-ok { color: var(--ok); }
.sum .srozpis.sum-diff { color: var(--gold); }
.sum.head { display: flex; align-items: center; font-family: var(--mono); font-size: .64rem;
            color: var(--muted); text-transform: uppercase; letter-spacing: .06em; }

/* hlavičky dnů */
.dh { text-align: center; padding: .3rem 0 .28rem; border-bottom: 1px solid var(--border);
      border-right: 1px solid var(--border-soft); }
.dh .wd { display: block; font-family: var(--mono); font-size: .56rem; color: var(--muted);
          letter-spacing: .04em; text-transform: uppercase; }
.dh .dn { display: block; font-family: var(--mono); font-size: .8rem; font-weight: 700; color: var(--green); }
.dh.we { background: var(--wk-bg); }
.dh.we .dn { color: var(--muted); }
.dh.tdh { background: var(--green); }
.dh.tdh .dn, .dh.tdh .wd { color: #F2EAD8; }
.dh .hol { display: block; font-family: var(--mono); font-size: .5rem; color: var(--danger); }

/* denní buňky */
.c { position: relative; min-height: 52px; display: flex; flex-direction: column; align-items: center;
     justify-content: center; gap: 2px; border-right: 1px solid var(--border-soft);
     border-bottom: 1px solid var(--border-soft); font-family: var(--mono); overflow: hidden; }
.c .p { font-size: .58rem; color: var(--muted); line-height: 1; }
.c .a { font-size: .76rem; font-weight: 700; color: var(--ink); line-height: 1.1; }
.c .dot { color: #D8CFB8; font-size: .8rem; }
.c.we { background: var(--wk-bg); }
.c.tdc { background: var(--today-bg);
         box-shadow: inset 1px 0 0 var(--green-soft), inset -1px 0 0 var(--green-soft); }
.c.okc .a { color: var(--ok); }
.c.part .a { color: var(--gold); }
.c.zero { background: #F3DED8; }
.c.zero .a { color: var(--danger); }
.c.pendc { background: repeating-linear-gradient(45deg, #F5ECD4 0 5px, #EBDFBE 5px 10px); }
.c input.ce { width: calc(var(--daw) - 8px); font-family: var(--mono); font-size: .72rem;
              text-align: center; border: 1px solid var(--border); border-radius: 6px;
              background: #fff; padding: 2px 0; outline: none; appearance: textfield; }
.c input.ce::-webkit-outer-spin-button,
.c input.ce::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.c input.ce:focus { border-color: var(--green-soft); box-shadow: 0 0 0 1px var(--green-soft); }
.c.we input.ce { background: transparent; color: var(--muted); }
.c.dirty { box-shadow: inset 0 0 0 2px #B89B5E; }
.c.tdc.dirty { box-shadow: inset 0 0 0 2px #B89B5E; }
.c .pr { font-size: .62rem; font-weight: 700; line-height: 1; }
.c .pr.ok { color: var(--ok); }
.c .pr.part { color: var(--gold); }
.c .pr.zero { color: var(--danger); }
.c .pr.pend { color: var(--gold); }

/* poznámky dne */
.c.nc { min-height: 24px; font-size: .68rem; color: var(--muted); }
.c.nc.ed { cursor: pointer; }
.c.nc.ed:hover { outline: 2px solid var(--green-soft); outline-offset: -2px; background: #fff; }
.c.nc.has { color: var(--green); font-weight: 700; }

/* skupinové pruhy */
.grow { grid-column: 1 / -1; background: #EFE7D2; border-bottom: 1px solid var(--border);
        padding: .34rem 0; display: flex; align-items: center; min-height: 30px; }
.ginner { position: sticky; left: 12px; z-index: 1; background: #EFE7D2; flex: none;
          display: inline-flex; gap: .8rem; align-items: center; width: max-content;
          padding-right: 10px; }
.gtitle { font-family: var(--mono); font-size: .66rem; letter-spacing: .13em;
          text-transform: uppercase; color: var(--green); font-weight: 700; }
.gchip { font-family: var(--mono); font-size: .62rem; color: var(--muted); }
.gchip b.bad { color: var(--danger); }
.stchips { display: inline-flex; gap: .3rem; align-items: center;
           font-family: var(--mono); font-size: .58rem; color: var(--muted); }
.stchip { border: 1px solid var(--border); background: var(--card); border-radius: 99px;
          padding: .08rem .45rem; white-space: nowrap; }
.stchip b { color: var(--green); font-weight: 600; }
.stchip .pnd { color: var(--gold); }
.pndtx { color: var(--gold); }

/* bandy — měsíční swimlane bez denních buněk */
.lanecell { position: relative; min-height: 46px; border-bottom: 1px solid var(--border-soft); }
.band { position: absolute; top: 0; bottom: 0; background: var(--wk-bg); opacity: .55; }
.band.tdy { background: var(--today-bg); opacity: 1;
            box-shadow: inset 1px 0 0 var(--green-soft), inset -1px 0 0 var(--green-soft); }
.lanebar { position: absolute; top: 50%; transform: translateY(-50%); left: 3px; right: 3px;
           height: 26px; border-radius: 99px; border: 1px solid var(--border); background: #F6F1E2;
           z-index: 1; display: flex; align-items: center; }
.lanebar span { position: sticky; left: calc(var(--labw) + 10px); margin-left: 8px;
                font-family: var(--mono); font-size: .62rem; white-space: nowrap;
                color: #F2EAD8; background: var(--green-soft); border-radius: 99px;
                padding: .1rem .5rem; line-height: 1.3; }
.lanebar.offb { border-style: dashed; background: transparent; }
.lanebar.offb span { color: var(--muted); background: var(--card); border: 1px dashed var(--border); }
.lanebar.pendb { background: repeating-linear-gradient(45deg, #F5ECD4 0 6px, #EBDFBE 6px 12px); }
.lanebar.pendb span { color: var(--gold); background: #F5ECD4; border: 1px solid #B89B5E; }

/* Σ den */
.c.tot { min-height: 40px; background: #F1EAD8; }
.c.tot.we { background: var(--wk-bg); }
.c.tot.tdc { background: var(--today-bg); }
.lab.tot, .sum.tot { background: #F1EAD8; }
.lab.tot .ln { font-family: var(--mono); font-size: .66rem; text-transform: uppercase;
               letter-spacing: .08em; color: var(--muted); font-weight: 700; }

/* legenda */
.callegend { display: flex; flex-wrap: wrap; gap: .4rem 1rem; padding: .55rem .9rem;
             border-top: 1px solid var(--border); font-family: var(--mono); font-size: .64rem;
             color: var(--muted); align-items: center; }
.sw { display: inline-block; width: 11px; height: 11px; border-radius: 3px;
      border: 1px solid var(--border); vertical-align: -1px; margin-right: .3rem; }
.sw.c0 { background: var(--card); }
.sw.g { background: #E4EDE2; border-color: var(--ok); }
.sw.o { background: #F5ECD4; border-color: #B89B5E; }
.sw.r { background: #F3DED8; border-color: var(--danger); }
.sw.h { background: repeating-linear-gradient(45deg, #F5ECD4 0 3px, #EBDFBE 3px 6px); }
.sw.w { background: var(--wk-bg); }
.sw.t { background: var(--today-bg); border-color: var(--green-soft); }

/* seznam */
.list-card { padding: .9rem 1.1rem; overflow-x: auto; }
.list-card table.tbl { min-width: 640px; }
.list-card .mut { color: var(--muted); }
.list-card tr.sumrow td { border-top: 2px solid var(--border); border-bottom: none;
                          font-weight: 700; font-family: var(--mono); }
.minibar { height: 7px; background: var(--cream); border: 1px solid var(--border);
           border-radius: 99px; overflow: hidden; min-width: 90px; }
.minibar i { display: block; height: 100%; background: var(--green-soft); }

/* ---------- pravý sloupec ---------- */
.rail { display: flex; flex-direction: column; gap: 1.05rem; }
@media (max-width: 1180px) { .rail { display: grid; grid-template-columns: 1fr 1fr; align-items: start; } }
@media (max-width: 720px) { .rail { grid-template-columns: 1fr; } }
.rail h3 { font-family: var(--mono); font-size: .66rem; letter-spacing: .13em;
           text-transform: uppercase; color: var(--muted); margin-bottom: .45rem; }
.rail h3 .h3sub { letter-spacing: .04em; font-weight: 400; opacity: .75; }
.rail .toolbar { margin: 0 0 .55rem; }
.rail .kpis { grid-template-columns: 1fr 1fr; gap: .6rem; }
.rail .kpi { border-radius: 14px; padding: .6rem .75rem; }
.rail .kpi .n { font-size: 1.55rem; }
.rail .row { padding: .55rem .75rem; }
.fulfil .big { font-family: var(--serif); font-size: 2.3rem; color: var(--green); line-height: 1; }
.fulfil .fbar { height: 9px; background: var(--cream); border: 1px solid var(--border);
                border-radius: 99px; overflow: hidden; display: flex; margin: .5rem 0 .35rem; }
.fulfil .fbar i { display: block; height: 100%; background: var(--green-soft); }
.fulfil .fbar i.pi { background: repeating-linear-gradient(45deg, #B89B5E 0 5px, #E8DCBE 5px 10px); }
.fulfil .sub { font-family: var(--mono); font-size: .68rem; color: var(--muted); }
.fulfil .sub b { color: var(--ink); }
#plan-history .history { margin-top: 0; }
#plan-history .who { color: var(--ink); }

/* popover poznámky dne */
.note-pop { position: absolute; z-index: 70; background: var(--card); border: 1px solid var(--border);
            border-radius: 12px; box-shadow: 0 8px 22px rgba(32, 48, 31, .18); padding: .6rem .7rem;
            display: flex; flex-direction: column; gap: .45rem; width: 250px; }
.note-pop .np-day { font-family: var(--mono); font-size: .64rem; color: var(--muted);
                    text-transform: capitalize; }
.note-pop input { width: 100%; }
.note-pop .np-actions { display: flex; gap: .4rem; justify-content: flex-end; margin-top: 0; }

@media (max-width: 720px) {
  :root { --labw: 150px; --daw: 38px; --sumw: 96px; }
  .layout { padding: .9rem .8rem 2rem; }
  .topbar .monthpick .label { font-size: 1.2rem; min-width: 8.5rem; }
  .tabs { margin-left: 0; }
  .hdr-meta { display: none; }
}

/* varování u čísla zakázky (duplicitní číslo) */
.of-warn {
  color: #8a4b12;
  background: #fdf3e2;
  border: 1px solid #e2b96f;
  border-radius: 8px;
  padding: 6px 10px;
  margin: 6px 0 2px;
  font-size: 0.85rem;
}
.inp-warn { border-color: #c98a2b !important; }

/* zařazení zakázky do plánu přímo z karty zakázky */
.order-head .btn.small {
  font-size: .72rem;
  padding: .25rem .6rem;
  margin-left: 8px;
  white-space: nowrap;
}

/* ---------- pohled „Měsíční plán" ---------- */
.plan-view { display: flex; flex-direction: column; gap: 1.15rem; }
.pv-h { font-family: var(--mono); font-size: .66rem; letter-spacing: .13em;
        text-transform: uppercase; color: var(--muted); margin-bottom: .45rem; }

/* nezařazené zakázky */
.pv-unplanned { padding: .25rem .95rem; }
.un-row { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .8rem;
          padding: .6rem 0; border-bottom: 1px solid var(--border-soft); }
.un-row:last-child { border-bottom: none; }
.un-id { font-weight: 600; }
.un-cust, .un-due { font-family: var(--mono); font-size: .76rem; color: var(--muted); }
.un-qty { font-family: var(--mono); font-size: .78rem; color: var(--muted); margin-left: auto; }
.un-qty b { color: var(--ink); }
.un-row .btn.primary { white-space: nowrap; }
.un-empty { font-family: var(--mono); font-size: .74rem; color: var(--muted); padding: .45rem 0; }
@media (max-width: 720px) {
  .un-qty { margin-left: 0; }
  .un-row .btn.primary { flex-basis: 100%; text-align: center; }
}

/* přehled plánu (jen pro čtení) */
.pv-status { display: flex; align-items: center; flex-wrap: wrap; gap: .4rem .7rem;
             margin-bottom: .55rem; }
.pv-info { font-family: var(--mono); font-size: .72rem; color: var(--muted); }
.pv-table { overflow-x: auto; }
.pv-table table.tbl { min-width: 560px; }
.pv-table .mut { color: var(--muted); }
.pv-table tr.sumrow td { border-top: 2px solid var(--border); border-bottom: none;
                         font-weight: 700; font-family: var(--mono); }

/* čip „N zakázek mimo plán" v liště denních akcí */
.pv-chip { margin-left: auto; border-color: #B89B5E; background: #F5ECD4; color: #7A5E1D;
           border-radius: 99px; font-size: .72rem; }
.pv-chip:hover { background: #EFE3C2; }

/* měsíc bez potvrzeného plánu (kalendář/seznam) */
.pv-noplan { padding: 1.1rem 1.2rem; font-family: var(--mono); font-size: .76rem;
             color: var(--muted); }

/* editor: povinný důvod korekce potvrzeného plánu */
.pl-reason { display: flex; flex-direction: column; gap: .2rem; flex: 1; min-width: 13rem;
             font-family: var(--mono); font-size: .68rem; letter-spacing: .06em;
             text-transform: uppercase; color: var(--muted); }
.pl-reason .inp { text-transform: none; letter-spacing: normal; }
.pl-reason-warn { font-family: var(--mono); font-size: .66rem; color: var(--danger);
                  text-transform: none; letter-spacing: normal; }
