/* AH-PANEL-001: pełny panel klienta (karty, tabele, kalendarz pokoi, wykresy). Kolory z panel.css. */
main.app{max-width:1180px}
.hero{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}
.hero h1{margin:2px 0 0}
.hero .lead{margin:4px 0 0;font-size:.9rem}
.switch{flex-direction:row;align-items:center;flex-wrap:wrap;margin:0}
.switch select{width:auto}
select{font:inherit;padding:11px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink)}
.tabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin;position:sticky;top:0;z-index:5;background:var(--bg);padding-top:8px}
.tabs a{white-space:nowrap;padding:8px 14px;border-radius:999px;border:1px solid var(--line);color:var(--ink);text-decoration:none;font-weight:600;font-size:.95rem;background:var(--surface)}
.tabs a.on{background:var(--deep);border-color:var(--deep);color:#fff}
.tabs a.lock{color:var(--muted)}
.tabs a.lock::after{content:" +";color:var(--lamp)}
.card.wide{padding:22px}
.card h2:first-child,.row h2{margin-top:0}
.row{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:8px}
.row .btn{align-self:center}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.tile{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:2px}
.tile span{font-size:.85rem;color:var(--muted)}
.tile b{font:800 1.7rem/1.2 "Bricolage Grotesque",system-ui,sans-serif;color:var(--ink)}
.tile small{font-size:.82rem;color:var(--muted)}
.todo{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}
.todo li{display:grid;grid-template-columns:130px 1fr auto;gap:12px;align-items:baseline;padding:12px 14px;border-radius:12px;background:var(--bg)}
.todo li a{color:var(--accent);white-space:nowrap}
.chart{width:100%;height:170px;display:block}
.chart rect{fill:var(--accent)}
.chart rect:hover{fill:var(--lamp)}
.xl{display:flex}
.xl span{flex:1;font-size:.72rem;color:var(--muted);text-align:center;white-space:nowrap;overflow:visible}
.scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
table.list{width:100%;border-collapse:collapse;font-size:.93rem}
table.list th{text-align:left;font-weight:600;color:var(--muted);font-size:.82rem;padding:8px 10px;border-bottom:2px solid var(--line);white-space:nowrap}
table.list td{padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:top}
table.list td.num{text-align:right;white-space:nowrap}
table.list tr.cancel td{color:var(--muted);text-decoration:line-through}
table.list tr.up td{background:var(--ok-bg)}
table.list tr.down td{background:var(--lamp-soft)}
table.list tr.past td{color:var(--muted)}
table.list a{color:var(--accent)}
table.cal{border-collapse:separate;border-spacing:2px;font-size:.78rem;min-width:900px;width:100%;table-layout:fixed}
table.cal th{font-weight:600;color:var(--muted);padding:4px 2px;text-align:center;line-height:1.25}
table.cal tbody th{text-align:left;color:var(--ink);font-size:.9rem;width:74px}
table.cal thead th:first-child{width:74px}
table.cal th.we{color:var(--accent)}
table.cal th.today{background:var(--lamp-soft);border-radius:8px;color:var(--ink)}
table.cal td{height:34px;background:var(--bg);border-radius:6px;padding:0}
table.cal td.today{background:var(--lamp-soft)}
table.cal td.stay a{display:block;height:100%;padding:8px 6px;border-radius:6px;color:#fff;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}
table.cal td.b a{background:#2a6fb0}
table.cal td.a a{background:#d0505b}
table.cal td.d a{background:var(--accent)}
.nav a{color:var(--accent);margin-left:10px}
.filters{flex-direction:row;flex-wrap:wrap;align-items:center;margin:0 0 6px}
.filters input{flex:1;min-width:200px}
.filters button{align-self:auto}
.grid{display:grid;grid-template-columns:minmax(180px,300px) 1fr;gap:10px 16px;align-items:center;margin-top:10px}
.grid label{font-weight:600}
.grid label small{display:block;font-weight:400;color:var(--muted);font-size:.82rem;line-height:1.35}
.grid button{grid-column:2}
.grid .lbl{color:var(--muted);font-size:.92rem}
.grid .val{font-weight:600}
form.grid{display:grid;flex-direction:initial}
.stack{display:flex;flex-direction:column;gap:20px;margin:0}
.pitch{border-color:var(--lamp)}
@media (max-width:700px){
  .todo li{grid-template-columns:1fr}
  .grid{grid-template-columns:1fr}
  .grid button{grid-column:1}
  .card{padding:18px}
  .tile b{font-size:1.35rem}
}
.card a:not(.btn){color:var(--accent)}
.chart-max{margin:0 0 4px;font-size:.8rem;color:var(--muted)}
.chartbox{display:grid;grid-template-columns:auto 1fr;gap:8px}
.yl{display:flex;flex-direction:column;justify-content:space-between;height:170px;font-size:.72rem;color:var(--muted);text-align:right;line-height:1;margin-top:-.35em}
.chart line.grid{stroke:var(--line);stroke-width:.25;vector-effect:non-scaling-stroke}
.steps{border-color:var(--lamp)}
.steps .row b{font-size:1.1rem;color:var(--accent)}
.checklist{margin:6px 0 0;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:8px}
.checklist li{padding:10px 14px;border-radius:12px;background:var(--bg)}
.checklist li span{display:inline-block;width:1.4em;font-weight:700;color:var(--muted)}
.checklist li.ok{color:var(--muted)}
.checklist li.ok span{color:var(--ok)}
input[type=file]{padding:10px}
label.check{display:flex;gap:10px;align-items:flex-start;font-weight:400;margin-top:8px}
label.check input{width:auto;margin-top:6px}
.plan input[type=checkbox]{width:auto;margin:0}
textarea{font:inherit;font-size:.85rem;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);width:100%}
input[readonly]{width:100%;font-size:.85rem}
.rooms{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin-top:10px}
.room{display:flex;flex-direction:column;gap:4px;text-decoration:none;color:var(--ink);border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--bg);padding-bottom:12px}
.room img,.room .nophoto{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.room .nophoto{display:flex;align-items:center;justify-content:center;background:var(--lamp-soft);color:var(--muted);font-size:.9rem}
.room b,.room small{padding:0 12px}
.room small{color:var(--muted)}
.photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-bottom:12px}
.photos figure{margin:0}
.photos img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;display:block}
.rez-note{color:var(--accent);font-weight:600}
.rez-auto{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.rez-auto select{flex:1;min-width:160px}
.rez-przydzial{color:var(--accent);font-weight:600}
[hidden]{display:none!important}
/* AH-PANEL-012: graficzny kalendarz dat */
.dp-in{cursor:pointer}
.dp{position:absolute;z-index:50;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 32px rgba(0,0,0,.18);padding:12px;max-width:calc(100vw - 16px)}
.dp-ms{display:flex;gap:18px}
.dp-m{width:252px}
.dp-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.dp-h b{text-transform:capitalize}
.dp-h button,.dp-f button{border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:8px;padding:4px 10px;font:inherit;cursor:pointer}
.dp-g{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.dp-g i{font-style:normal;font-size:.75rem;color:var(--muted);text-align:center;padding:4px 0}
.dp-g button{border:0;background:none;color:var(--ink);font:inherit;padding:8px 0;border-radius:8px;cursor:pointer}
.dp-g button:hover:not(:disabled){background:var(--lamp-soft)}
.dp-g button.today{font-weight:700;text-decoration:underline}
.dp-g button.busy{background:var(--line);color:var(--muted)}
.dp-g button.in{background:var(--lamp-soft)}
.dp-g button.sel{background:var(--deep);color:#fff}
.dp-g button:disabled{color:var(--muted);opacity:.45;cursor:default}
.dp-f{margin:8px 0 0;font-size:.82rem;color:var(--muted);display:flex;gap:8px;align-items:center;flex-wrap:wrap}
@media (max-width:560px){.dp-m{width:calc(100vw - 42px)}}
/* AH-PANEL-013: raport kanałów */
progress.share{width:90px;height:8px;accent-color:var(--accent)}
form.inline{display:flex;gap:8px;align-items:center}
/* AH-PANEL-015: faktura */
.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:6px 0 14px}
.actions form{margin:0}
/* AH-PANEL-016: kalendarz cen i dostępności */
table.cal-grid{border-collapse:separate;border-spacing:2px;font-size:.8rem}
table.cal-grid th{font-weight:600;color:var(--muted);padding:4px;text-align:center;white-space:nowrap;font-size:.75rem}
table.cal-grid th.we{color:var(--accent)}
table.cal-grid tbody th{position:sticky;left:0;background:var(--surface);text-align:left;color:var(--ink);min-width:70px;z-index:1}
table.cal-grid tbody th small{display:block;font-weight:400;color:var(--muted);max-width:120px;overflow:hidden;text-overflow:ellipsis}
table.cal-grid td{padding:0;min-width:56px;border-radius:8px;background:var(--bg);border:1px solid var(--line)}
table.cal-grid td a,table.cal-grid td span{display:flex;flex-direction:column;align-items:center;padding:6px 2px;color:var(--ink);text-decoration:none;min-height:40px}
table.cal-grid td b{font-weight:700}
table.cal-grid td i{font-style:normal;font-size:.65rem;color:var(--muted);white-space:nowrap}
table.cal-grid td.busy.src-b,.lg.src-b{background:rgba(37,99,235,.2)}
table.cal-grid td.busy.src-a,.lg.src-a{background:rgba(220,38,38,.18)}
table.cal-grid td.busy.src-d,.lg.src-d{background:var(--ok-bg)}
table.cal-grid td.closed,.lg.closed{background:var(--line);opacity:.8}
table.cal-grid td a:hover{outline:2px solid var(--accent);border-radius:8px}
.lg{display:inline-block;padding:1px 8px;border-radius:6px;font-size:.8rem;color:var(--ink)}
.checks{display:flex;flex-wrap:wrap;gap:4px 14px}
.checks label.check{margin-top:0}
/* AH-PANEL-017: udostępnianie faktury (Wydruk, PDF, Wyślij mailem) */
details.share{display:inline-block;position:relative;vertical-align:middle;margin-left:6px}
details.share summary{list-style:none;cursor:pointer;color:var(--accent);padding:2px 6px;border-radius:8px;border:1px solid var(--line);display:inline-flex}
details.share summary::-webkit-details-marker{display:none}
details.share[open] summary{background:var(--lamp-soft)}
details.share .menu{position:absolute;right:0;top:calc(100% + 4px);z-index:20;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 24px rgba(0,0,0,.16);padding:6px;min-width:170px;display:flex;flex-direction:column}
details.share .menu form{margin:0}
details.share .menu button{width:100%;text-align:left;background:none;border:0;color:var(--ink);font:inherit;padding:8px 10px;border-radius:8px;cursor:pointer}
details.share .menu button:hover{background:var(--bg)}
/* AH-PANEL-018: karta „Dziś” i wydruk */
.card h3{margin:18px 0 6px;font-size:1rem}
@media print{header.top,.tabs,.hero,.notice,.noprint,section.card:not(.wide){display:none!important}body,main,.card{background:#fff!important;color:#000!important;box-shadow:none!important;border:0!important}table.list td,table.list th{color:#000!important}}
/* AH-PANEL-025: wiadomości z portali */
.msgs{display:flex;flex-direction:column;gap:12px}
.msg{border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:var(--bg)}
.msg.new{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}
.msg header{display:flex;gap:8px;flex-wrap:wrap;align-items:baseline}
.msg header span{color:var(--muted);font-size:.85rem}
.msg header em{margin-left:auto;font-style:normal;font-size:.75rem;color:var(--accent)}
.msg .body{white-space:normal;margin:8px 0}
/* AH-PANEL-027: karta meldunkowa do druku */
body.karta{background:#fff;color:#000;font-family:Arial,sans-serif}
body.karta main{max-width:720px;margin:24px auto;padding:0 16px}
body.karta table{width:100%;border-collapse:collapse;margin-top:12px}
body.karta th,body.karta td{border:1px solid #bbb;padding:8px;text-align:left;vertical-align:top;font-size:14px}
body.karta th{width:35%;background:#f3f3f3}
body.karta .sig{margin-top:40px}
/* AH-PANEL-030 */
input.mini{width:80px}
