/* ==================================================
   CSS VARIABLES & THEMES
   ================================================== */
:root, [data-theme="light"] {
  --bg:#f5f5f0; --bg2:#ffffff; --bg3:#eeeee8; --border:#d5d5cc;
  --text:#1a1a1a; --text2:#555555; --text3:#888888;
  --accent:#cc0a1e; --accent-light:#fde8ea; --accent-hover:#a80818;
  --green:#2d7d46; --red:#cc0a1e; --yellow:#d4a017; --blue:#2874a6;
  --logo-color:#cc0a1e;
  --today:rgba(45,125,70,0.07);
  --shadow:0 1px 3px rgba(0,0,0,0.08);
  --modal-overlay:rgba(0,0,0,0.3);
  --topbar-bg:#ffffff; --topbar-border:#e0e0d8;
  --card-bg:#ffffff; --card-hover:#fef5f5;
  --chip-bg:#fde8ea; --chip-text:#cc0a1e;
  --input-bg:#f8f8f5; --input-border:#d0d0c8;
}
[data-theme="dark"] {
  --bg:#0f1117; --bg2:#1a1d27; --bg3:#252833; --border:#2d3040;
  --text:#e4e4e7; --text2:#a1a1aa; --text3:#71717a;
  --accent:#ff4d5e; --accent-light:rgba(255,77,94,0.12); --accent-hover:#e0354a;
  --green:#22c55e; --red:#ff4d5e; --yellow:#eab308; --blue:#3b82f6;
  --logo-color:#ff4d5e;
  --today:rgba(99,102,241,0.08);
  --shadow:0 1px 3px rgba(0,0,0,0.3);
  --modal-overlay:rgba(0,0,0,0.55);
  --topbar-bg:#1a1d27; --topbar-border:#2d3040;
  --card-bg:#1a1d27; --card-hover:#252833;
  --chip-bg:rgba(99,102,241,0.15); --chip-text:#a5b4fc;
  --input-bg:#0f1117; --input-border:#2d3040;
}
[data-theme="ocean"] {
  --bg:#eef4f8; --bg2:#ffffff; --bg3:#dce8f0; --border:#bdd0de;
  --text:#1a2f3e; --text2:#4a6a7e; --text3:#7a9ab0;
  --accent:#0077b6; --accent-light:#e0f2fe; --accent-hover:#005f92;
  --green:#0ea572; --red:#d63031; --yellow:#d4a017; --blue:#0077b6;
  --logo-color:#cc0a1e;
  --today:rgba(0,119,182,0.07);
  --shadow:0 1px 3px rgba(0,50,100,0.1);
  --modal-overlay:rgba(0,30,60,0.3);
  --topbar-bg:#ffffff; --topbar-border:#bdd0de;
  --card-bg:#ffffff; --card-hover:#e8f2f8;
  --chip-bg:#e0f2fe; --chip-text:#0077b6;
  --input-bg:#f0f7fb; --input-border:#bdd0de;
}
[data-theme="sunset"] {
  --bg:#fdf6f0; --bg2:#ffffff; --bg3:#f5ebe0; --border:#e0cfc0;
  --text:#2d1e14; --text2:#6b5040; --text3:#9a8575;
  --accent:#c0542e; --accent-light:#fde8e0; --accent-hover:#a84520;
  --green:#3a8a48; --red:#c0392b; --yellow:#d4860a; --blue:#2874a6;
  --logo-color:#cc0a1e;
  --today:rgba(192,84,46,0.07);
  --shadow:0 1px 3px rgba(60,30,0,0.1);
  --modal-overlay:rgba(40,20,0,0.3);
  --topbar-bg:#ffffff; --topbar-border:#e0cfc0;
  --card-bg:#ffffff; --card-hover:#faf0e8;
  --chip-bg:#fde8e0; --chip-text:#c0542e;
  --input-bg:#faf5f0; --input-border:#e0cfc0;
}
[data-theme="forest"] {
  --bg:#f0f4ec; --bg2:#ffffff; --bg3:#e0e8d8; --border:#c0ccb5;
  --text:#1a2a15; --text2:#4a6040; --text3:#7a9070;
  --accent:#3a7a2e; --accent-light:#e4f2e0; --accent-hover:#2e6222;
  --green:#3a7a2e; --red:#c0392b; --yellow:#b8930a; --blue:#2874a6;
  --logo-color:#cc0a1e;
  --today:rgba(58,122,46,0.07);
  --shadow:0 1px 3px rgba(0,40,0,0.08);
  --modal-overlay:rgba(10,30,5,0.3);
  --topbar-bg:#ffffff; --topbar-border:#c0ccb5;
  --card-bg:#ffffff; --card-hover:#e8f0e2;
  --chip-bg:#e4f2e0; --chip-text:#3a7a2e;
  --input-bg:#f5f8f2; --input-border:#c0ccb5;
}
@keyframes ai-pulse-delete {
  0%,100% { opacity:1; box-shadow:0 0 0 0 rgba(255,0,0,0.4); }
  50% { opacity:0.4; box-shadow:0 0 12px 4px rgba(255,0,0,0.6); }
}
@keyframes ai-pulse-create {
  0%,100% { box-shadow:0 0 0 0 rgba(0,200,0,0.3); }
  50% { box-shadow:0 0 14px 6px rgba(0,200,0,0.5); }
}
@keyframes ai-pulse-update {
  0%,100% { box-shadow:0 0 0 0 rgba(0,100,255,0.3); }
  50% { box-shadow:0 0 14px 6px rgba(0,100,255,0.5); }
}
.ai-pulse-delete { animation: ai-pulse-delete 0.5s ease-in-out 8; z-index:10; position:relative; }
.ai-pulse-create { animation: ai-pulse-create 0.5s ease-in-out 8; z-index:10; position:relative; }
.ai-pulse-update { animation: ai-pulse-update 0.5s ease-in-out 8; z-index:10; position:relative; }
.cal-event-creator { position:absolute; top:2px; right:5px; width:16px; height:16px; border-radius:50%; font-size:7px; font-weight:700; color:#fff; display:flex; align-items:center; justify-content:center; border:2px solid #d4a017; box-shadow:0 0 3px rgba(212,160,23,0.5); z-index:1; }
.cal-event.done { background:#2a2a2a !important; border-left-color:#555 !important; color:#777 !important; }
[data-theme="dark"] .cal-event.done .cal-event-title { color:#777; }
[data-theme="dark"] .cal-event.done .cal-event-time,[data-theme="dark"] .cal-event.done .cal-event-obj { color:#666 !important; }
[data-theme="dark"] .cal-event { color:#1a1a1a; }
[data-theme="dark"] .cal-event-time { color:#333; }
[data-theme="dark"] .cal-event-obj { color:#444; }
[data-theme="dark"] .cal-day.weekend { background:rgba(255,255,255,0.03); }

/* ==================================================
   BASE
   ================================================== */
html { height:100%; }
body { font-family:'Segoe UI',-apple-system,BlinkMacSystemFont,sans-serif; background:var(--bg); color:var(--text); height:100dvh; height:100vh; display:flex; flex-direction:column; overflow:hidden; }
#app { display:flex; flex-direction:column; flex:1; min-height:0; overflow:hidden; }
.middle-row { display:flex; flex:1; min-height:0; overflow:hidden; }
button { cursor:pointer; font-family:inherit; }
input,select,textarea { font-family:inherit; }
.avatar { display:inline-flex; align-items:center; justify-content:center; border-radius:50%; color:#fff; font-weight:700; line-height:1; flex-shrink:0; width:28px; height:28px; font-size:11px; }

/* ==================================================
   TOPBAR & NAVIGATION
   ================================================== */
/* ══════════════════════════════════════════════════════
   TOPBAR
   ══════════════════════════════════════════════════════ */
.topbar { height:80px; background:var(--topbar-bg); border-bottom:1px solid var(--topbar-border); display:flex; align-items:center; padding:0 16px; gap:8px; flex-shrink:0; box-shadow:var(--shadow); z-index:20; }
.topbar-brand { display:flex; align-items:center; height:78px; }
.topbar-brand svg { height:83px; width:auto; }
.topbar-tabs { display:flex; gap:2px; margin-left:12px; }
.tab-btn { padding:7px 14px; border-radius:6px; background:none; border:none; color:var(--text2); font-size:13px; font-weight:600; transition:all 0.15s; }
.tab-btn:hover { color:var(--text); background:var(--bg3); }
.tab-btn.active { color:var(--accent); background:var(--accent-light); }
.topbar-right { margin-left:auto; display:flex; align-items:center; gap:8px; }
.topbar-user { font-size:12px; color:var(--text2); font-weight:500; }
.topbar-user-first { display:none; }
.btn-sm { padding:5px 10px; border-radius:6px; border:1px solid var(--border); background:var(--bg2); color:var(--text2); font-size:12px; font-weight:500; transition:all .15s; }
.btn-sm:hover { border-color:var(--accent); color:var(--accent); }
.theme-menu { position:relative; }
.theme-menu-dropdown { position:absolute; top:100%; right:0; background:var(--bg2); border:1px solid var(--border); border-radius:8px; box-shadow:0 4px 16px rgba(0,0,0,0.15); z-index:50; margin-top:4px; min-width:140px; overflow:hidden; }
.theme-opt { display:flex; align-items:center; gap:8px; padding:8px 14px; font-size:12px; cursor:pointer; border:none; background:none; width:100%; color:var(--text); font-weight:500; }
.theme-opt:hover { background:var(--bg3); }
.theme-opt.active { color:var(--accent); font-weight:700; }
.theme-dot { width:14px; height:14px; border-radius:50%; border:2px solid var(--border); flex-shrink:0; }
.cal-view-toggle .btn-sm { padding:4px 12px; font-size:12px; border-radius:6px; border:1px solid var(--border); background:var(--bg2); color:var(--text2); cursor:pointer; transition:all .15s; }
.cal-view-toggle .btn-sm:hover { border-color:var(--accent); color:var(--accent); }
.cal-view-toggle .btn-sm.active { background:var(--accent); color:#fff; border-color:var(--accent); }

/* ==================================================
   LAYOUT
   ================================================== */
/* ══════════════════════════════════════════════════════
   MAIN LAYOUT — Calendar+Chat split
   ══════════════════════════════════════════════════════ */
.main { flex:1; display:flex; overflow:hidden; min-height:0; }
.content-panel { flex:1; overflow:auto; position:relative; min-width:0; min-height:0; padding-bottom:56px; display:flex; flex-direction:column; }
.login-wrap { display:flex; align-items:center; justify-content:center; height:100dvh; height:100vh; background:var(--bg); }
.login-box { width:340px; max-width:90vw; padding:36px; background:var(--card-bg); border:1px solid var(--border); border-radius:14px; text-align:center; box-shadow:0 8px 30px rgba(0,0,0,0.1); }
.login-box h2 { font-size:24px; margin-bottom:4px; color:var(--accent); font-weight:800; }
.login-box .sub { font-size:13px; color:var(--text2); margin-bottom:22px; }
.login-box input { width:100%; margin-bottom:10px; padding:11px 14px; background:var(--input-bg); border:1px solid var(--input-border); border-radius:8px; color:var(--text); font-size:14px; text-align:center; }
.login-box input:focus { outline:none; border-color:var(--accent); }
.login-box button { width:100%; padding:11px; background:var(--accent); border:none; border-radius:8px; color:#fff; font-size:14px; font-weight:700; transition:background .15s; }
.login-box button:hover { background:var(--accent-hover); }
/* ── AI ASISTENT v2 ── */
.content-panel { padding-bottom:52px; }
.ai-bar { position:fixed; bottom:0; left:0; right:0; display:flex; align-items:center; gap:6px; padding:6px 10px; background:var(--bg); border-top:1px solid var(--border); z-index:24; overflow:visible; }
.ai-bar textarea { flex:1; padding:8px 12px; border:1px solid var(--input-border); border-radius:8px; background:var(--input-bg); color:var(--text); font-size:13px; resize:none; overflow-y:auto; height:36px; max-height:120px; min-width:0; font-family:inherit; line-height:1.4; box-sizing:border-box; transition:height 0.1s ease; }
.ai-bar textarea:focus { outline:none; border-color:var(--accent); }
.ai-bar .ai-mic { width:36px; height:36px; border-radius:50%; border:none; background:var(--accent); color:#fff; font-size:16px; cursor:pointer; flex-shrink:0; display:flex; align-items:center; justify-content:center; transition:all .15s; }
.ai-bar .ai-mic.recording { background:#ef4444; animation:pulse 1s infinite; }
.ai-bar .ai-send { width:36px; height:36px; border-radius:50%; border:none; background:var(--accent); color:#fff; font-size:14px; cursor:pointer; flex-shrink:0; display:flex; align-items:center; justify-content:center; transition:all .15s; }
.ai-bar .ai-send:hover,.ai-bar .ai-mic:hover { opacity:0.85; }
.ai-overlay { position:fixed; bottom:52px; left:0; right:0; max-height:50vh; overflow-y:auto; background:var(--bg2); border-top:1px solid var(--border); z-index:23; padding:10px 14px; display:flex; flex-direction:column; gap:6px; }
.ai-bubble { padding:8px 12px; border-radius:10px; font-size:13px; line-height:1.5; max-width:90%; word-break:break-word; }
.ai-bubble.user { background:var(--accent); color:#fff; align-self:flex-end; border-bottom-right-radius:4px; }
.ai-bubble.ai { background:var(--bg3); border:1px solid var(--border); align-self:flex-start; border-bottom-left-radius:4px; }
.ai-bubble .ai-tag { display:inline-block; background:var(--green); color:#fff; font-size:10px; padding:1px 6px; border-radius:4px; margin-right:4px; font-weight:600; }
.ai-recording-hint { font-size:10px; color:#ef4444; font-weight:600; display:flex; align-items:center; gap:4px; position:absolute; top:-18px; left:10px; pointer-events:none; }
.ai-recording-dot { width:6px; height:6px; border-radius:50%; background:#ef4444; animation:pulse 1s infinite; }
.chat-sidebar { position:fixed; top:0; right:-320px; width:300px; height:100%; background:var(--bg2); border-left:1px solid var(--border); z-index:60; transition:right 0.25s ease; display:flex; flex-direction:column; box-shadow:-4px 0 20px rgba(0,0,0,0.15); }
.chat-sidebar.open { right:0; }
.chat-sidebar-header { padding:12px 14px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--border); flex-shrink:0; }
.chat-sidebar-header h3 { font-size:15px; font-weight:700; margin:0; }
.chat-sidebar-body { flex:1; overflow-y:auto; padding:10px; }
.chat-sidebar-msg { margin-bottom:8px; padding:8px 10px; border-radius:8px; font-size:12px; line-height:1.5; }
.chat-sidebar-msg.user { background:var(--accent-light); color:var(--text); text-align:right; }
.chat-sidebar-msg.ai { background:var(--card-bg); color:var(--text); }
.chat-sidebar-msg .msg-time { font-size:10px; color:var(--text3); margin-top:2px; }
.chat-sidebar-overlay { position:fixed; top:0; left:0; right:0; bottom:0; background:rgba(0,0,0,0.3); z-index:59; }
.mobile-tabs { display:none; height:auto; background:var(--topbar-bg); border-top:1px solid var(--topbar-border); justify-content:space-evenly; align-items:center; flex-shrink:0; position:fixed; bottom:0; left:0; right:0; z-index:25; overflow:hidden; padding:6px 0; padding-bottom:calc(6px + env(safe-area-inset-bottom, 0px)); box-sizing:border-box; }
.mobile-tab { display:flex; flex-direction:column; align-items:center; gap:0; background:none; border:none; color:var(--text3); font-size:9px; font-weight:600; padding:0 2px; min-width:0; flex:1; line-height:1.2; }
.mobile-tab.active { color:var(--accent); }
.mobile-tab-icon { font-size:16px; }
.empty-state { padding:40px; text-align:center; color:var(--text3); font-size:13px; }
.desktop-only { display:inline-flex; }
.mobile-only { display:none; }

/* ==================================================
   CALENDAR & DASHBOARD
   ================================================== */
.cal-header { display:flex; align-items:center; padding:12px 16px; gap:12px; position:sticky; top:0; z-index:5; background:var(--bg); }
.cal-title { font-size:17px; font-weight:700; color:var(--text); }
.cal-nav { display:flex; gap:4px; }
.cal-nav button { width:30px; height:30px; border-radius:6px; border:1px solid var(--border); background:var(--bg2); color:var(--text2); font-size:15px; display:flex; align-items:center; justify-content:center; transition:all .15s; }
.cal-nav button:hover { border-color:var(--accent); color:var(--accent); background:var(--accent-light); }
.cal-view-toggle { display:flex; gap:2px; margin-left:auto; }
.cal-dow-row { display:grid; grid-template-columns:repeat(7,1fr); border-left:2px solid var(--border); border-top:2px solid var(--border); border-bottom:none; }
.cal-grid { display:grid; grid-template-columns:repeat(7,1fr); border-left:2px solid var(--border); border-top:1px solid var(--border); }
.cal-grid.cal-week { display:grid; grid-template-columns:repeat(7,1fr); flex:1; min-height:0; }

.cal-dow { text-align:center; font-size:10px; font-weight:600; color:var(--text3); padding:2px 0; text-transform:uppercase; line-height:1; }
.cal-day { position:relative; min-height:110px; padding:3px 4px; border-right:2px solid var(--border); border-bottom:2px solid var(--border); cursor:pointer; transition:background 0.15s; background:var(--bg2); overflow:hidden; }
.cal-day-week { min-height:0; flex:1; overflow-y:auto; }
.cal-day:hover { background:var(--card-hover); }
.cal-day.today { background:var(--today); box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 45%, transparent); }
.cal-day.other { opacity:0.3; pointer-events:none; background:var(--bg); }
.cal-day.weekend { background:rgba(0,0,0,0.025); }
.cal-day.drag-over { background:var(--accent-light); outline:2px dashed var(--accent); }
.cal-day-num { font-size:11px; font-weight:600; margin-bottom:2px; color:var(--text2); }
.cal-day.today .cal-day-num { color:var(--accent); font-weight:800; }
.cal-day.weekend .cal-day-num { color:var(--text3); }
.cal-event { font-size:10px; padding:3px 5px; border-radius:4px; margin-bottom:2px; cursor:grab; color:#1a1a1a; font-weight:500; border-left:3px solid transparent; line-height:1.3; position:relative; }
.cal-event.done { background:#e8e8e8 !important; border-left-color:#bbb !important; color:#999 !important; }
.cal-event.done .cal-event-title { color:#999; }
.cal-event.done .cal-event-time,.cal-event.done .cal-event-obj { color:#aaa !important; }
.cal-event-title { font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cal-event-meta { display:flex; align-items:center; gap:3px; margin-top:1px; }
.cal-event-time { font-size:9px; color:#444; font-weight:600; }
.cal-event-obj { font-size:9px; color:#555; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cal-event-avatars { display:flex; margin-left:auto; margin-right:20px; flex-shrink:0; }
.cal-event-avatars .avatar { width:16px; height:16px; font-size:7px; margin-left:-3px; border:1.5px solid #fff; }
.cal-event-avatars .avatar:first-child { margin-left:0; }
.cal-personal-triangles { position:absolute; top:0; right:0; display:flex; gap:1px; z-index:2; pointer-events:none; }
.cal-personal-tri { width:0; height:0; border-style:solid; border-width:0 20px 20px 0; border-color:transparent; position:relative; }
.cal-personal-tri span { position:absolute; top:2px; right:-17px; font-size:7px; font-weight:700; color:#fff; pointer-events:none; }
.cal-event.span-start { border-radius:4px 0 0 4px; margin-right:-4px; }
.cal-event.span-mid { border-radius:0; margin-left:-4px; margin-right:-4px; border-left:none; }
.cal-event.span-end { border-radius:0 4px 4px 0; margin-left:-4px; border-left:none; }

/* === Mesicni kalendar: tydenni radky + vodorovne pruhy vicedennich zakazek (v3.7.76) === */
.cal-month { display:flex; flex-direction:column; border-left:2px solid var(--border); border-top:1px solid var(--border); }
.cal-week-row { position:relative; display:flex; flex-direction:column; }
.cal-week-cells { display:grid; grid-template-columns:repeat(7,1fr); flex:1; }
/* prekryvna vrstva s pruhy (nad bunkami, pod cisly dni) */
.cal-week-spans { position:absolute; left:0; right:0; top:18px; display:grid; grid-template-columns:repeat(7,1fr); grid-auto-rows:18px; row-gap:2px; column-gap:0; z-index:4; pointer-events:none; }
.cal-span { position:relative; pointer-events:auto; height:18px; display:flex; align-items:center; gap:4px; font-size:10px; font-weight:600; color:#1a1a1a; padding:0 6px; border-radius:5px; border-left:3px solid transparent; cursor:grab; overflow:hidden; white-space:nowrap; box-shadow:0 1px 1px rgba(0,0,0,.08); }
.cal-span:hover { filter:brightness(.96); }
.cal-span.no-l { border-top-left-radius:0; border-bottom-left-radius:0; border-left:none; }
.cal-span.no-r { border-top-right-radius:0; border-bottom-right-radius:0; }
.cal-span.done { background:#e8e8e8 !important; border-left-color:#bbb !important; color:#999 !important; }
.cal-span-txt { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; flex:0 1 auto; min-width:0; }
.cal-span-time { font-weight:700; margin-right:4px; }
.cal-span-obj { font-weight:700; }
.cal-span-arrow { flex:0 0 auto; font-weight:900; opacity:.6; }
.cal-span-arrow.cse-r { position:absolute; right:3px; top:50%; transform:translateY(-50%); }
.cal-span-avatars { display:flex; flex:0 0 auto; position:absolute; top:50%; right:4px; transform:translateY(-50%); }
.cal-span-avatars .avatar { width:15px; height:15px; font-size:7px; margin-left:-3px; border:1.5px solid #fff; }
.cal-span-avatars .avatar:first-child { margin-left:0; }
.cal-span-spacer { width:1px; }
/* bunky: vse zkraceno na nahled (nic nepretece pres sloupce) */
.cal-week-cells .cal-day { overflow:hidden; }
.cal-week-cells .cal-event-title { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.dash { padding:16px; max-width:1780px; }
.dash-section { margin-bottom:20px; }
.dash-section-title { font-size:12px; font-weight:700; color:var(--text3); text-transform:uppercase; letter-spacing:0.5px; margin-bottom:8px; display:flex; align-items:center; gap:8px; }
.dash-count { background:var(--bg3); padding:1px 8px; border-radius:10px; font-size:11px; font-weight:600; }
.dash-count.overdue { background:var(--red); color:#fff; }

.cal-filter { display:flex; gap:6px; padding:6px 14px; flex-wrap:wrap; align-items:center; border-bottom:1px solid var(--border); background:var(--bg2); }
.cal-filter-label { font-size:11px; color:var(--text3); font-weight:600; text-transform:uppercase; letter-spacing:.3px; }
.cal-filter-chip { padding:3px 10px; border-radius:14px; font-size:11px; font-weight:600; border:2px solid transparent; cursor:pointer; transition:all .15s; opacity:0.5; }
.cal-filter-chip.active { opacity:1; border-color:currentColor; }
.cal-next-week-label { font-size:11px; font-weight:600; color:var(--text3); text-transform:uppercase; letter-spacing:.5px; padding:6px 14px 2px; border-top:2px solid var(--border); margin-top:2px; }
.cal-next-week .cal-day-next { min-height:60px; max-height:80px; overflow:hidden; opacity:0.7; font-size:11px; }
.cal-next-week .cal-day-num { font-size:10px; }
.cal-event-mini { padding:1px 4px; margin-bottom:1px; border-radius:3px; border-left:2px solid; font-size:10px; line-height:1.3; }
.cal-event-mini .cal-event-title { font-size:10px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cal-event-more { font-size:9px; color:var(--text3); text-align:center; }

/* ==================================================
   TASKS & TREE VIEW
   ================================================== */
.obj-card-task .task-prio { flex-shrink:0; }
.task-row { display:flex; align-items:center; gap:14px; padding:12px 22px; border-radius:8px; border:1px solid var(--border); margin-bottom:6px; cursor:pointer; transition:all 0.15s; background:var(--card-bg); border-left:5px solid transparent; border-right:5px solid transparent; width:100%; box-sizing:border-box; min-height:60px; }
.task-row:hover { border-color:var(--accent); border-left-width:5px; border-right-width:5px; background:var(--card-hover); box-shadow:var(--shadow); }
.task-row[draggable=true] { cursor:grab; }
.task-prio { width:7px; height:7px; border-radius:50%; flex-shrink:0; display:none; }
.task-obj { font-size:13px; font-weight:700; color:var(--text); width:160px; min-width:160px; max-width:160px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; flex-shrink:0; }
.task-title { flex:1; font-size:13px; font-weight:500; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.task-files-badge { font-size:18px; color:var(--text2); display:flex; align-items:center; gap:4px; flex-shrink:0; min-width:30px; }
.task-files-count { font-size:12px; font-weight:600; }
.task-avatar-col { display:flex; align-items:center; flex-shrink:0; min-width:120px; width:120px; }
.task-avatar-col .avatar { margin-left:-6px; border:2px solid var(--card-bg); }
.task-avatar-col .avatar:first-child { margin-left:0; }
.task-dates { display:flex; flex-direction:row; align-items:center; justify-content:flex-end; flex-shrink:0; min-width:180px; gap:10px; }
.td-block { display:flex; flex-direction:column; align-items:flex-start; line-height:1.2; }
.td-date { font-size:13px; font-weight:700; color:var(--text); white-space:nowrap; }
.td-date .td-dow { color:var(--text2); font-weight:500; text-transform:lowercase; }
.td-time { font-size:12px; font-weight:600; color:var(--text2); white-space:nowrap; }
.td-arrow { color:var(--text3); font-weight:800; flex-shrink:0; font-size:13px; }
/* zpětná kompatibilita pro stará místa */
.task-date-line { font-size:12px; font-weight:600; color:var(--text); white-space:nowrap; }
.task-date-line .day-name { color:var(--text2); font-weight:500; }
.task-remaining { font-size:12px; font-weight:700; white-space:nowrap; flex-shrink:0; min-width:100px; text-align:right; }
.task-remaining.late { color:var(--red); }
.task-remaining.soon { color:var(--orange, #e67e22); }
.task-remaining.ok { color:var(--green); }
.task-priority-flag { font-size:18px; font-weight:900; flex-shrink:0; width:20px; text-align:center; line-height:1; }
.task-priority-flag.urgent { color:var(--red); }
.task-priority-flag.high { color:var(--orange, #e67e22); }

/* Vertical week view */
.cal-week-vertical { display:flex; flex-direction:column; gap:2px; flex:1; min-height:0; }
.cal-week-day { display:flex; align-items:stretch; border:1px solid var(--border); border-radius:6px; background:var(--card-bg); min-height:0; flex:1; cursor:pointer; transition:background .15s; }
.cal-week-day:hover { background:var(--card-hover); }
.cal-week-day.today { border-color:var(--accent); border-width:1px; background:var(--today, color-mix(in srgb, var(--accent) 8%, var(--card-bg))); box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 40%, transparent); }
.cal-week-day.weekend { background:color-mix(in srgb, var(--bg3) 80%, var(--border)); }
.cal-week-day-header { width:70px; min-width:70px; padding:6px 8px; border-right:1px solid var(--border); display:flex; flex-direction:column; justify-content:center; }
.cal-week-day-name { font-size:13px; font-weight:700; color:var(--text); text-transform:uppercase; }
.cal-week-day-num { font-size:12px; color:var(--text2); }
.cal-week-day-events { flex:1; display:flex; flex-direction:row; flex-wrap:wrap; gap:4px; padding:6px 8px; align-items:flex-start; align-content:flex-start; overflow-y:auto; }
.cal-week-vertical .cal-event { font-size:12px; padding:5px 8px; border-left-width:4px; flex:0 0 calc(25% - 3px); min-width:0; box-sizing:border-box; }
.cal-week-vertical .cal-event-title { white-space:normal; overflow:visible; text-overflow:initial; font-size:12px; font-weight:600; line-height:1.3; }
.cal-week-vertical .cal-event-meta { font-size:11px; gap:6px; margin-top:2px; flex-wrap:wrap; }
.cal-week-vertical .cal-event-time { font-size:11px; }
.cal-week-vertical .cal-event-obj { font-size:11px; white-space:normal; overflow:visible; }
.cal-week-vertical .cal-event-avatars .avatar { width:18px; height:18px; font-size:8px; }
.cal-week-day-mini { min-height:32px; }
.cal-week-day-mini .cal-week-day-header { width:70px; min-width:70px; padding:4px 8px; }
.cal-week-day-mini .cal-week-day-events { padding:4px 6px; }
.cal-next-week .cal-week-day { opacity:0.7; }
.tree { padding:14px 18px; max-width:1100px; }
.tree-obj { margin-bottom:12px; border:1px solid var(--border); border-radius:10px; background:var(--card-bg); overflow:hidden; box-shadow:var(--shadow); }
.tree-obj-head { padding:10px 14px; display:flex; align-items:center; gap:10px; cursor:pointer; background:var(--bg3); border-bottom:1px solid var(--border); transition:background .15s; }
.tree-obj-head:hover { background:var(--card-hover); }
.tree-obj-arrow { font-size:10px; color:var(--text3); width:16px; transition:transform .2s; }
.tree-obj-arrow.open { transform:rotate(90deg); }
.tree-obj-name { font-weight:700; font-size:14px; flex:1; }
.tree-obj-count { font-size:11px; color:var(--text3); background:var(--bg); padding:2px 9px; border-radius:10px; font-weight:600; }
.tree-obj-add { font-size:12px; color:var(--accent); background:var(--accent-light); border:1px solid transparent; padding:3px 10px; border-radius:6px; font-weight:600; cursor:pointer; transition:all .15s; }
.tree-obj-add:hover { border-color:var(--accent); background:var(--accent); color:#fff; }
.tree-table-head { display:grid; grid-template-columns:7px 1fr 100px 100px 1.5fr; gap:10px; padding:6px 14px; font-size:10px; font-weight:700; color:var(--text3); text-transform:uppercase; letter-spacing:0.3px; border-bottom:1px solid var(--border); background:var(--bg); }
.tree-task-row { display:grid; grid-template-columns:7px 1fr 100px 100px 1.5fr; gap:10px; padding:8px 14px; align-items:center; border-bottom:1px solid var(--border); cursor:pointer; transition:background .15s; }
.tree-task-row:last-child { border-bottom:none; }
.tree-task-row:hover { background:var(--card-hover); }
.tree-task-done { opacity:0.45; background:var(--bg2) !important; }
.tree-task-done:hover { opacity:0.65; }
.tree-task-done .tree-task-date { color:var(--text3) !important; }
.tree-task-done .avatar { opacity:0.5; }
.tree-task-title { font-size:13px; font-weight:500; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.tree-task-date { font-size:12px; color:var(--text2); font-weight:500; }
.tree-task-date.overdue { color:var(--red); font-weight:700; }
.tree-task-date.soon { color:var(--yellow); font-weight:700; }
.tree-task-desc { font-size:11px; color:var(--text3); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.tree-add-row { padding:6px 14px; }
.tree-add-btn { font-size:12px; color:var(--accent); background:none; border:1px dashed var(--border); padding:5px 12px; border-radius:6px; font-weight:600; cursor:pointer; transition:all .15s; width:100%; text-align:left; }
.tree-add-btn:hover { border-color:var(--accent); background:var(--accent-light); }

/* ==================================================
   OBJECTS
   ================================================== */
.obj-cards { display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:8px; padding:10px 14px; }
.obj-card { background:var(--bg2); border-radius:10px; border:1px solid var(--border); overflow:hidden; cursor:pointer; transition:box-shadow .15s, transform .15s; display:flex; flex-direction:column; }
.obj-card:hover { box-shadow:0 4px 16px rgba(0,0,0,0.08); transform:translateY(-1px); }
.obj-card-head { padding:6px 10px; font-weight:700; font-size:12px; border-bottom:1px solid rgba(0,0,0,0.06); display:flex; justify-content:space-between; align-items:center; cursor:pointer; transition:background 0.15s; }
.obj-card-head:hover { background:rgba(0,0,0,0.04); }
.obj-card-head .obj-count { font-size:11px; font-weight:500; background:rgba(0,0,0,0.06); padding:2px 8px; border-radius:10px; }
.obj-card-body { padding:4px 8px 6px; display:flex; flex-direction:column; gap:2px; min-height:20px; max-height:140px; overflow-y:auto; flex:1; }
.obj-card-task { display:flex; align-items:center; gap:4px; padding:2px 4px; border-radius:4px; font-size:11px; background:rgba(0,0,0,0.02); }
.obj-card-task:hover { background:rgba(0,0,0,0.05); }
.obj-card-task-title { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:500; }
.obj-card-task-date { font-size:11px; color:var(--text2); white-space:nowrap; }
.obj-card-empty { color:var(--text3); font-size:12px; padding:6px; text-align:center; }
.obj-card-add { display:flex; justify-content:center; padding:6px; border-top:1px solid var(--border); margin-top:auto; }
.obj-card-add button { font-size:11px; }
.obj-personal-separator { grid-column: 1 / -1; display:flex; align-items:center; gap:10px; padding:8px 0 4px 0; margin-top:4px; }
.obj-personal-separator::before, .obj-personal-separator::after { content:''; flex:1; border-top:1px dashed var(--border); }
.obj-personal-separator span { font-size:11px; color:var(--text3); font-weight:600; text-transform:uppercase; letter-spacing:0.5px; white-space:nowrap; }
.obj-card.obj-card-personal { opacity:0.75; border-style:dashed !important; }
.obj-card.obj-card-personal:hover { opacity:1; }
.obj-personal-separator { grid-column: 1 / -1; display:flex; align-items:center; gap:10px; padding:8px 0 4px 0; margin-top:4px; }
.obj-personal-separator::before, .obj-personal-separator::after { content:''; flex:1; border-top:1px dashed var(--border); }
.obj-personal-separator span { font-size:11px; color:var(--text3); font-weight:600; text-transform:uppercase; letter-spacing:0.5px; white-space:nowrap; }
.obj-card.obj-card-personal { opacity:0.75; border-style:dashed !important; }
.obj-card.obj-card-personal:hover { opacity:1; }

/* ==================================================
   TECHNICIANS
   ================================================== */
.tech-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(270px,1fr)); gap:12px; padding:14px 18px; }
.tech-card { background:var(--card-bg); border:1px solid var(--border); border-radius:10px; padding:16px; display:flex; gap:14px; align-items:center; cursor:pointer; transition:all 0.15s; box-shadow:var(--shadow); }
.tech-card:hover { border-color:var(--accent); box-shadow:0 2px 8px rgba(0,0,0,0.1); }
.tech-card .avatar { width:44px; height:44px; font-size:15px; border:none; }
.tech-card-name { font-weight:700; font-size:14px; }
.tech-card-meta { font-size:12px; color:var(--text2); margin-top:2px; }
.tech-card-role { display:inline-block; font-size:10px; padding:2px 8px; border-radius:4px; background:var(--chip-bg); color:var(--chip-text); margin-top:4px; font-weight:600; }

/* ==================================================
   MODALS, BUTTONS & FORMS
   ================================================== */
.modal-bg { position:fixed; inset:0; background:var(--modal-overlay); z-index:100; display:flex; align-items:center; justify-content:center; }
.modal { background:var(--bg2); border:1px solid var(--border); border-radius:12px; width:75vw; max-width:1200px; max-height:92vh; overflow-y:auto; padding:28px 32px; box-shadow:0 12px 40px rgba(0,0,0,0.2); }
.modal-draggable { position:relative; }
.modal-topbar { display:flex; gap:6px; align-items:center; padding-bottom:8px; margin-bottom:8px; border-bottom:1px solid var(--border); background:var(--bg2); z-index:5; }
.modal h3 { font-size:16px; font-weight:700; margin-bottom:16px; }
.modal label { display:block; font-size:11px; color:var(--text3); text-transform:uppercase; font-weight:600; margin:14px 0 4px; letter-spacing:0.3px; }
.modal input,.modal select,.modal textarea { width:100%; padding:6px 8px; background:var(--input-bg); border:1px solid var(--input-border); border-radius:6px; color:var(--text); font-size:13px; transition:border-color .15s; }
.modal input:focus,.modal select:focus,.modal textarea:focus { outline:none; border-color:var(--accent); }
.modal textarea { min-height:60px; resize:vertical; }
.modal-actions { display:flex; gap:8px; justify-content:flex-end; margin-top:20px; }
.btn { padding:9px 16px; border-radius:6px; border:1px solid var(--border); background:var(--bg3); color:var(--text); font-size:13px; font-weight:600; transition:all .15s; }
.btn:hover { border-color:var(--accent); }
.btn-primary { background:#2563eb; color:#fff; border-color:#2563eb; }
.btn-primary:hover { background:#1d4ed8; border-color:#1d4ed8; }
.btn-danger { background:#ef4444; color:#fff; border-color:#ef4444; }
.btn-danger:hover { background:#dc2626; border-color:#dc2626; }
.btn-success { background:#16a34a; color:#fff; border-color:#16a34a; }
.btn-success:hover { background:#15803d; border-color:#15803d; }
.btn-return { background:#64748b; color:#fff; border-color:#64748b; }
.btn-return:hover { background:#475569; border-color:#475569; }
.date-range-row { display:flex; gap:8px; align-items:center; }
.date-range-row input { flex:1; }
.date-range-sep { font-size:12px; color:var(--text3); font-weight:600; flex-shrink:0; }
.dropdown { position:relative; }
.dropdown-trigger { width:100%; padding:8px 10px; background:var(--input-bg); border:1px solid var(--input-border); border-radius:6px; color:var(--text); font-size:13px; text-align:left; display:flex; flex-wrap:wrap; gap:4px; min-height:38px; align-items:center; cursor:pointer; transition:border-color .15s; }
.dropdown-trigger:hover { border-color:var(--accent); }
.dropdown-chip { display:inline-flex; align-items:center; gap:4px; background:var(--chip-bg); color:var(--chip-text); padding:2px 8px; border-radius:4px; font-size:11px; font-weight:600; }
.dropdown-chip .x { cursor:pointer; color:var(--text3); font-size:13px; }
.dropdown-chip .x:hover { color:var(--red); }
.dropdown-list { position:absolute; top:100%; left:0; right:0; background:var(--bg2); border:1px solid var(--border); border-radius:8px; max-height:200px; overflow-y:auto; z-index:10; margin-top:2px; box-shadow:0 4px 16px rgba(0,0,0,0.15); }
.dropdown-item { padding:8px 12px; font-size:13px; cursor:pointer; display:flex; align-items:center; gap:8px; transition:background .1s; }
.dropdown-item:hover { background:var(--bg3); }
.dropdown-item.selected { background:var(--accent-light); }
.file-section { margin-top:12px; }
.file-drop { border:2px dashed var(--border); border-radius:8px; padding:14px; text-align:center; color:var(--text3); font-size:12px; cursor:pointer; transition:all .15s; }
.file-drop:hover, .file-drop.dragover { border-color:var(--accent); background:var(--accent-light); color:var(--accent); }
.file-drop input { display:none; }
.file-list { margin-top:8px; }
.file-item { display:flex; align-items:center; gap:8px; padding:6px 8px; border-radius:6px; background:var(--bg); margin-bottom:4px; font-size:12px; }
.file-item-icon { font-size:16px; flex-shrink:0; }
.file-item-name { flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:500; }
.file-item-size { color:var(--text3); font-size:11px; flex-shrink:0; }
.file-item-del { background:none; border:none; color:var(--text3); font-size:14px; cursor:pointer; padding:2px 4px; border-radius:4px; }
.file-item-del:hover { color:var(--red); background:var(--accent-light); }
.file-uploading { color:var(--accent); font-size:11px; padding:4px 0; }
.comment-section { margin-top:16px; border-top:1px solid var(--border); padding-top:12px; }
.comment-list { max-height:250px; overflow-y:auto; margin:8px 0; }
.comment-item { padding:8px 10px; margin-bottom:6px; background:var(--bg); border-radius:8px; font-size:12px; }
.comment-header { display:flex; align-items:center; gap:6px; margin-bottom:4px; }
.comment-header strong { font-size:12px; }
.comment-date { color:var(--text3); font-size:10px; margin-left:auto; }
.comment-del { background:none; border:none; color:var(--text3); font-size:14px; cursor:pointer; padding:0 4px; margin-left:4px; }
.comment-del:hover { color:var(--red); }
.comment-text { color:var(--text); line-height:1.4; white-space:pre-wrap; }
.comment-files { margin-top:4px; display:flex; gap:6px; flex-wrap:wrap; }
.comment-file-link { font-size:11px; color:var(--blue); text-decoration:none; padding:2px 6px; background:var(--bg2); border-radius:4px; border:1px solid var(--border); }
.comment-file-link:hover { background:var(--accent-light); }
.comment-input-row { display:flex; gap:8px; margin-top:8px; }
.comment-input-row textarea { padding:8px; border-radius:8px; border:1px solid var(--input-border); background:var(--input-bg); color:var(--text); font-size:12px; resize:vertical; }

/* ==================================================
   CHAT & AVATARS
   ================================================== */

/* ==================================================
   REVISIONS & NOTES
   ================================================== */
.rev-grid { display:grid; grid-template-columns:repeat(12, 1fr); gap:6px; overflow-x:auto; min-width:0; }
.rev-col { min-width:0; }
.rev-month-header { font-size:12px; font-weight:700; text-transform:uppercase; text-align:center; padding:8px 4px; background:var(--bg2); border-radius:8px 8px 0 0; border:1px solid var(--border); border-bottom:2px solid var(--border); color:var(--text2); }
.rev-month-header.rev-current { background:#e53935; color:#fff; border-color:#c62828; font-weight:800; box-shadow:0 2px 8px rgba(229,57,53,0.35); }
.rev-empty { text-align:center; padding:16px 4px; color:var(--text3); font-size:12px; border:1px solid var(--border); border-top:0; border-radius:0 0 8px 8px; }
.rev-item { padding:8px 6px; border:1px solid var(--border); border-top:0; cursor:pointer; transition:background .15s; font-size:12px; }
.rev-item:last-child { border-radius:0 0 8px 8px; }
.rev-item:hover { background:var(--bg2); }
.rev-obj-name { font-weight:600; font-size:11px; line-height:1.3; margin-bottom:3px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rev-status-badge { display:inline-block; font-size:10px; padding:1px 6px; border-radius:6px; font-weight:600; }
.rev-planned .rev-status-badge { background:#e3f2fd; color:#1565c0; }
.rev-done .rev-status-badge { background:#e8f5e9; color:#2e7d32; }
.rev-postponed .rev-status-badge { background:#fff3e0; color:#e65100; }
.rev-cancelled .rev-status-badge { background:#fce4ec; color:#c62828; }
.rev-notes { font-size:10px; color:var(--text3); margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
/* revision card colors by type */
.rev-item.rev-RKP { border-left-color: #1565c0 !important; }
.rev-item.rev-PKC { border-left-color: #2e7d32 !important; }
.rev-type-badge { display:inline-block; font-size:10px; font-weight:700; padding:1px 6px; border-radius:3px; margin-right:3px; }
.rev-type-badge.RKP { background:#e3f2fd; color:#1565c0; }
.rev-type-badge.PKC { background:#e8f5e9; color:#2e7d32; }
.rev-tech-chips { display:flex; gap:2px; flex-wrap:wrap; margin-top:2px; }
.rev-tech-chip { font-size:9px; padding:1px 4px; border-radius:3px; background:var(--bg3); color:var(--text2); font-weight:600; }
.rev-item[draggable=true] { cursor:grab; }
.rev-item[draggable=true]:active { cursor:grabbing; opacity:0.6; }
.rev-month.drag-over-rev { background:var(--accent-light) !important; outline:2px dashed var(--accent); }
/* object color picker */
.obj-color-palette { display:flex; gap:4px; flex-wrap:wrap; margin-top:4px; }
.obj-color-swatch { width:28px; height:28px; border-radius:6px; cursor:pointer; border:2px solid transparent; transition:all 0.15s; }
.obj-color-swatch:hover { transform:scale(1.15); }
.obj-color-swatch.active { border-color:var(--text1); box-shadow:0 0 0 2px var(--bg), 0 0 0 4px var(--text1); }
.obj-detail-section { margin-top:16px; padding-top:12px; border-top:1px solid var(--border); }
.obj-detail-section label { font-size:11px; color:var(--text3); display:block; margin-bottom:4px; }
.obj-files-list { display:flex; flex-direction:column; gap:4px; margin-top:4px; }
.obj-file-link { display:flex; align-items:center; gap:6px; padding:6px 10px; background:var(--bg2); border-radius:6px; text-decoration:none; color:var(--text1); font-size:12px; }
.obj-file-link:hover { background:var(--bg3); }
[data-theme="dark"] .rev-type-badge.RKP { background:rgba(21,101,192,0.15); }
[data-theme="dark"] .rev-type-badge.PKC { background:rgba(46,125,50,0.15); }
.note-card { background:var(--bg2); border:1px solid var(--border); border-radius:10px; padding:12px 14px; border-left:4px solid; }
.note-card-title { font-weight:700; font-size:14px; margin-bottom:4px; }
.note-card-content { font-size:13px; color:var(--text2); white-space:pre-wrap; line-height:1.5; }
.note-card-meta { display:flex; justify-content:space-between; align-items:center; margin-top:8px; font-size:10px; color:var(--text3); }
.note-card-actions { display:flex; gap:6px; }
.note-card-actions button { background:none; border:none; font-size:14px; cursor:pointer; opacity:0.5; }
.note-card-actions button:hover { opacity:1; }
.note-new { display:flex; flex-direction:column; gap:8px; padding:14px 18px; border-bottom:1px solid var(--border); }
.note-new textarea { width:100%; min-height:60px; border:1px solid var(--border); border-radius:8px; padding:8px 10px; font-family:inherit; font-size:13px; resize:vertical; }

/* ==================================================
   USER ADMIN
   ================================================== */
.activity-section { margin-top:12px; border-top:1px solid var(--border); padding-top:8px; }
.activity-list { max-height:300px; overflow-y:auto; margin-top:6px; display:flex; flex-direction:column; gap:4px; }
.activity-item { padding:8px 10px; border-radius:6px; font-size:11px; color:var(--text2); }
.activity-header { display:flex; align-items:center; gap:6px; }
.activity-author { font-weight:600; color:var(--text); }
.activity-action { flex:1; }
.activity-date { color:var(--text3); font-size:10px; flex-shrink:0; }
.activity-details { margin-top:4px; padding-left:28px; font-size:10px; color:var(--text3); }
.activity-detail-line { padding:1px 0; }
.ua-grid { display:flex; flex-direction:column; gap:10px; padding:14px 18px; }
.ua-card { background:var(--bg2); border:1px solid var(--border); border-radius:10px; padding:14px; cursor:pointer; transition:box-shadow .15s; }
.ua-card:hover { box-shadow:0 2px 12px rgba(0,0,0,0.08); }
.ua-header { display:flex; align-items:center; gap:10px; margin-bottom:10px; }
.ua-info { flex:1; }
.ua-name { font-weight:600; font-size:14px; }
.ua-role { font-size:11px; color:var(--text3); text-transform:uppercase; }
.ua-status { font-size:11px; font-weight:700; padding:3px 10px; border-radius:20px; }
.ua-status.online { background:#dcfce7; color:#166534; }
.ua-status.recent { background:#fef9c3; color:#854d0e; }
.ua-status.offline { background:var(--bg1); color:var(--text3); }
.ua-stats { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.ua-stat { background:var(--bg1); border-radius:6px; padding:8px 10px; }
.ua-stat-label { font-size:10px; color:var(--text3); text-transform:uppercase; letter-spacing:.3px; }
.ua-stat-value { font-size:13px; font-weight:600; margin-top:2px; }
.ua-login-row { display:flex; justify-content:space-between; padding:6px 0; border-bottom:1px solid var(--border); font-size:13px; }
.ua-ip { color:var(--text3); font-size:12px; }
.ua-action-row { padding:6px 0; border-bottom:1px solid var(--border); font-size:12px; cursor:pointer; transition:background .15s; }
.ua-action-row:hover { background:var(--bg1); }
.ua-action-header { display:flex; gap:6px; align-items:center; }
.ua-action-icon { font-size:14px; min-width:20px; text-align:center; }
.ua-action-time { color:var(--text3); font-size:11px; min-width:90px; }
.ua-action-desc { flex:1; font-weight:500; }
.ua-action-entity { color:var(--accent); font-weight:600; }
.ua-action-chevron { color:var(--text3); font-size:10px; transition:transform .2s; }
.ua-action-row.expanded .ua-action-chevron { transform:rotate(90deg); }
.ua-action-detail { padding:6px 0 6px 26px; font-size:11px; color:var(--text2); display:none; }
.ua-action-row.expanded .ua-action-detail { display:block; }
.ua-action-detail-field { display:flex; gap:4px; padding:2px 0; }
.ua-action-detail-label { font-weight:600; color:var(--text3); min-width:60px; }
.ua-action-detail-val { word-break:break-word; }
.ua-action-badge { padding:2px 8px; border-radius:4px; font-size:10px; font-weight:700; color:#fff; display:none; }

/* ==================================================
   WORKLOG (VÝKAZ)
   ================================================== */
.wl-container { padding: 10px 40px; max-width: 1100px; width: 100%; box-sizing: border-box; margin: 0; display:flex; flex-direction:column; flex:1; min-height:0; align-self:flex-start; }
.wl-header { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; flex-wrap: wrap; flex-shrink: 0; }
.wl-header select { padding: 6px 10px; border-radius: 6px; border: 1px solid #ccc; font-size: 14px; }
.wl-header .wl-month-nav { display: flex; align-items: center; gap: 6px; }
.wl-header .wl-month-nav button { background: #f3f3f3; border: 1px solid #ddd; border-radius: 6px; padding: 4px 10px; cursor: pointer; font-size: 16px; }
.wl-header .wl-month-nav button:hover { background: #e5e5e5; }
.wl-header .wl-month-label { font-size: 16px; font-weight: 600; min-width: 140px; text-align: center; }
.wl-table-wrap { overflow: auto; flex: 1; min-height: 0; }
.wl-table-wrap.scrolled { flex-direction: column; }
.wl-day-row { padding:6px 12px; border-bottom:1px solid var(--border, #ccc); cursor:pointer; display:flex; flex-wrap:nowrap; gap:6px 10px; align-items:center; font-size:13px; width:100%; box-sizing:border-box; }
.wl-day-row:hover { background:#f8f8ff; }
.wl-day-row.wl-past { font-weight:600; }
.wl-day-row.wl-future { opacity:0.45; font-weight:300; }
.wl-day-row.wl-today { background:color-mix(in srgb, var(--accent, #b71c1c) 8%, var(--card-bg, #fff)); border-left:4px solid var(--accent, #b71c1c); font-weight:700; }
.wl-day-row.wl-weekend { background:color-mix(in srgb, #4caf50 8%, var(--card-bg, #fff)); border-left:3px solid #66bb6a; }
.wl-day-row.wl-future.wl-weekend { background:color-mix(in srgb, #4caf50 5%, var(--card-bg, #fff)); border-left:3px solid #a5d6a7; }
.wl-day-date { min-width:42px; font-size:13px; font-weight:600; }
.wl-day-name { min-width:24px; color:var(--text3, #888); font-size:12px; }
.wl-day-entries { flex:1; font-size:12px; color:var(--text2, #555); min-width:0; overflow:hidden; }
.wl-day-hours { min-width:36px; text-align:right; font-size:12px; font-weight:700; color:var(--accent, #b71c1c); }
.wl-day-entries .wl-entry-chip { display:inline-block; background:var(--accent-light, #e8f0fe); border-radius:4px; padding:1px 6px; margin:1px 2px; font-size:12px; cursor:pointer; white-space:nowrap; }
.wl-day-entries .wl-entry-chip:hover { background:#d0e0fd; }
.wl-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.wl-table th { background: #f5f5f5; padding: 8px 10px; text-align: left; font-weight: 600; border-bottom: 2px solid #ddd; position: sticky; top: 0; z-index: 1; }
.wl-table td { padding: 7px 10px; border-bottom: 1px solid #eee; }
.wl-table tr:hover { background: #f8f8ff; cursor: pointer; }
.wl-table .day-col { color: #888; font-size: 12px; }
.wl-total { text-align: right; font-weight: 700; font-size: 16px; padding: 10px 10px 0; color: #333; }
.wl-add-btn { background: #d32f2f; color: #fff; border: none; border-radius: 50%; width: 48px; height: 48px; font-size: 24px; cursor: pointer; position: fixed; bottom: 130px; right: 20px; box-shadow: 0 2px 8px rgba(0,0,0,0.3); z-index: 100; }
.wl-add-btn:hover { background: #b71c1c; }
.wl-modal-overlay { display: none; pointer-events: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.5); z-index: 9999; justify-content: center; align-items: center; padding: 20px; }
.wl-modal-overlay.open { display: flex; pointer-events: auto; }
.wl-modal { background: #fff; border-radius: 12px; padding: 20px 24px; width: 100%; max-width: 480px; box-shadow: 0 8px 32px rgba(0,0,0,0.3); }
.wl-modal h3 { margin: 0 0 16px 0; font-size: 18px; display: flex; justify-content: space-between; align-items: center; }
.wl-modal .wl-close { background: none; border: none; font-size: 22px; cursor: pointer; color: #666; }
.wl-modal label { display: block; font-size: 13px; font-weight: 600; color: #555; margin: 10px 0 4px; }
.wl-modal input, .wl-modal select, .wl-modal textarea { width: 100%; padding: 8px 10px; border: 1px solid #ccc; border-radius: 6px; font-size: 14px; box-sizing: border-box; }
.wl-modal textarea { height: 60px; resize: vertical; }
.wl-modal .wl-time-row { display: flex; gap: 10px; align-items: center; }
.wl-modal .wl-time-row > div { flex: 1; }
.wl-modal .wl-actions { display: flex; gap: 10px; margin-top: 16px; }
.wl-modal .wl-actions button { flex: 1; padding: 10px; border: none; border-radius: 8px; font-size: 15px; font-weight: 600; cursor: pointer; }
.wl-modal .wl-save { background: #2563eb; color: #fff; }
.wl-modal .wl-save:hover { background: #1d4ed8; }
.wl-modal .wl-delete { background: #ef4444; color: #fff; }
.wl-modal .wl-delete:hover { background: #dc2626; }
.wl-modal .wl-cancel { background: var(--bg3); color: var(--text); border: 1px solid var(--border); }
/* Worklog audit history */
.wlh-panel { margin:12px 0 0; padding:14px; background:var(--card-bg,#fff); border:1px solid var(--border,#e5e5e5); border-radius:10px; }
.wlh-panel h3 { font-size:14px; font-weight:700; margin:0 0 10px; display:flex; align-items:center; gap:8px; cursor:pointer; }
.wlh-timeline { display:flex; flex-direction:column; gap:0; position:relative; padding-left:24px; }
.wlh-timeline::before { content:""; position:absolute; left:8px; top:6px; bottom:6px; width:2px; background:var(--border,#ddd); }
.wlh-item { position:relative; padding:8px 0 8px 8px; border-bottom:1px solid var(--border-light,#f0f0f0); }
.wlh-item:last-child { border-bottom:none; }
.wlh-item::before { content:""; position:absolute; left:-20px; top:14px; width:10px; height:10px; border-radius:50%; border:2px solid var(--border,#ccc); background:#fff; }
.wlh-item.wlh-create::before { background:#4caf50; border-color:#4caf50; }
.wlh-item.wlh-update::before { background:#2196f3; border-color:#2196f3; }
.wlh-item.wlh-delete::before { background:#f44336; border-color:#f44336; }
.wlh-meta { font-size:11px; color:var(--text3,#999); display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.wlh-action { font-weight:600; font-size:12px; }
.wlh-action.create { color:#4caf50; } .wlh-action.update { color:#2196f3; } .wlh-action.delete { color:#f44336; }
.wlh-detail { font-size:11px; color:var(--text2,#666); margin-top:3px; line-height:1.5; }
.wlh-detail .wlh-field { display:inline-block; background:var(--card-hover,#fef5f5); padding:1px 5px; border-radius:3px; margin:1px 2px; }
/* Task history always visible redesign */
.task-timeline { display:flex; flex-direction:column; gap:0; position:relative; padding-left:28px; margin-top:8px; }
.task-timeline::before { content:""; position:absolute; left:10px; top:6px; bottom:6px; width:2px; background:var(--border,#ddd); }
.tl-item { position:relative; padding:8px 10px; border-radius:8px; margin-bottom:4px; }
.tl-item::before { content:""; position:absolute; left:-22px; top:12px; width:12px; height:12px; border-radius:50%; border:2px solid var(--border,#ccc); background:#fff; z-index:1; }
.tl-item.tl-create::before { background:#4caf50; border-color:#388e3c; }
.tl-item.tl-update::before { background:#2196f3; border-color:#1976d2; }
.tl-item.tl-delete::before { background:#f44336; border-color:#c62828; }
.tl-item.tl-comment::before { background:#ff9800; border-color:#f57c00; }
.tl-item.tl-assign::before { background:#9c27b0; border-color:#7b1fa2; }
.tl-item.tl-status::before { background:#00bcd4; border-color:#0097a7; }
.tl-item.tl-file::before { background:#795548; border-color:#5d4037; }
.tl-icon { font-size:13px; margin-right:4px; }
.tl-header { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.tl-author { font-weight:600; font-size:12px; }
.tl-action { font-size:11px; color:var(--text2,#666); }
.tl-time { font-size:10px; color:var(--text3,#999); margin-left:auto; white-space:nowrap; }
.tl-details { font-size:11px; color:var(--text2,#666); margin-top:3px; line-height:1.5; }
.tl-details .tl-field { display:inline-block; background:var(--card-hover,#f5f5f5); padding:1px 5px; border-radius:3px; margin:1px 2px; }

/* === WORKLOG GRID TABLE === */
.wl-grid { width:100%; border-collapse:collapse; font-size:13px; }
.wl-grid thead th { background:var(--bg3, #f5f5f0); padding:8px 10px; text-align:left; font-weight:700; font-size:12px; text-transform:uppercase; letter-spacing:0.3px; color:var(--text2, #555); border-bottom:2px solid var(--border, #bbb); position:sticky; top:0; z-index:1; white-space:nowrap; }
.wl-grid tbody td { padding:5px 10px; border-bottom:1px solid var(--border, #ddd); border-right:1px solid var(--border, #eee); vertical-align:middle; }
.wl-grid tbody td:last-child { border-right:none; }
.wl-grid .wl-row { cursor:pointer; transition:background 0.1s; }
.wl-grid .wl-row:hover { background:var(--card-hover, #fef5f5) !important; }
.wl-grid .wl-row.wl-weekend { background:color-mix(in srgb, #4caf50 18%, var(--card-bg, #fff)); }
.wl-grid .wl-row.wl-today { background:color-mix(in srgb, var(--accent, #cc0a1e) 8%, var(--card-bg, #fff)); }
.wl-grid .wl-row.wl-today td { border-top:2px solid var(--accent, #cc0a1e); border-bottom:2px solid var(--accent, #cc0a1e); }
.wl-grid .wl-row.wl-today td:first-child { border-left:3px solid var(--accent, #cc0a1e); }
.wl-grid .wl-row.wl-today td:last-child { border-right:3px solid var(--accent, #cc0a1e); }
.wl-grid .wl-td-fond { text-align:center; font-size:12px; white-space:nowrap; }
.wl-grid .wl-row.wl-future { opacity:0.35; }
.wl-grid .wl-row.wl-past td { border-bottom:1px solid var(--border,#ddd); }
.wl-grid .wl-row.wl-day-end:not(.wl-today) td { border-bottom:2px solid var(--text3,#999); }
.wl-grid .wl-row:not(.wl-today) .wl-td-date,
.wl-grid .wl-row:not(.wl-today) .wl-td-day,
.wl-grid .wl-row:not(.wl-today) .wl-td-fond { border-bottom:2px solid var(--text3,#999) !important; }
.wl-grid .wl-td-date { font-weight:600; white-space:nowrap; min-width:55px; }
.wl-grid .wl-td-day { color:var(--text3, #888); min-width:28px; }
.wl-grid .wl-td-time { text-align:center; font-size:12px; min-width:45px; color:var(--text2); }
.wl-grid .wl-td-hours { text-align:center; min-width:50px; color:var(--accent, #cc0a1e); }
.wl-grid .wl-td-activity { min-width:70px; font-size:12px; }
.wl-grid .wl-td-location { font-size:12px; min-width:80px; white-space:nowrap; }
.wl-grid .wl-td-desc { font-size:12px; color:var(--text2, #555); min-width:250px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.wl-grid .wl-total-row { border-top:2px solid var(--text, #333); }
.wl-grid .wl-total-row td { padding:8px 10px; font-size:14px; background:var(--bg3, #f5f5f0); }

/* ==================================================
   OTHER
   ================================================== */
/* ══════════════════════════════════════════════════════
   BASE
   ══════════════════════════════════════════════════════ */
* { margin:0; padding:0; box-sizing:border-box; }
@keyframes pulse { 0%,100%{transform:scale(1)} 50%{transform:scale(1.1)} }
.notes-grid { display:flex; flex-direction:column; gap:10px; padding:14px 18px; }


/* ==================================================
   RESPONSIVE: (min-width: 769px)
   ================================================== */
@media (min-width: 769px) {


}


/* ==================================================
   RESPONSIVE: (max-width: 1200px)
   ================================================== */
@media (max-width: 1200px) {

.rev-grid { grid-template-columns:repeat(6, 1fr); }

}


/* ==================================================
   RESPONSIVE: (max-width: 480px)
   ================================================== */
@media (max-width: 480px) {

.rev-grid { grid-template-columns:repeat(2, 1fr); }

}


/* ==================================================
   RESPONSIVE: (max-width: 768px) — MOBILNÍ LAYOUT v3.5.01
   ================================================== */
@media (max-width: 768px) {

  /* ===== TOPBAR — kompaktní proužek ===== */
  .topbar { height:44px; padding:0 6px; gap:0; padding-top:env(safe-area-inset-top, 0px); justify-content:space-between; }
  .topbar-brand { height:36px; display:flex; align-items:center; flex-shrink:0; }
  .topbar-brand svg { height:36px; width:auto; }
  .topbar .desktop-only { display:inline !important; font-size:7px !important; margin-left:-2px !important; margin-bottom:10px !important; opacity:0.5 !important; }
  .topbar-tabs { display:none; }
  .topbar-right { margin-left:auto; gap:6px; flex-shrink:0; }
  .topbar-user-full { display:none !important; }
  .topbar-user-first { display:inline !important; font-size:11px; font-weight:600; max-width:60px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .topbar-right .btn-sm { font-size:11px; padding:2px 5px; min-width:0; }
  .topbar-right .btn-sm:last-child { font-size:10px; padding:2px 4px; }

  /* ===== HISTORIE PANEL — na celou šířku mobilu ===== */
  .history-panel { position:fixed !important; top:44px !important; left:0 !important; right:0 !important; width:100vw !important; max-width:100vw !important; max-height:calc(100dvh - 44px - 52px) !important; border-radius:0 !important; margin-top:0 !important; }

  /* ===== SPODNÍ NAVIGAČNÍ TABY ===== */
  .mobile-tabs { display:flex !important; position:fixed !important; bottom:0 !important; left:0; right:0;
                 background:var(--topbar-bg); z-index:25; overflow:hidden; }
  .ai-bar { bottom:calc(40px + env(safe-area-inset-bottom, 0px)) !important; padding:4px 8px; z-index:24; border-top:none !important; }
  .chat-sidebar { width:85vw; max-width:320px; top:calc(44px + env(safe-area-inset-top, 0px)); height:calc(100% - 44px - 52px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px)); }
  .ai-overlay { bottom:calc(80px + env(safe-area-inset-bottom, 0px)) !important; max-height:40vh; z-index:23; }

  /* ===== LAYOUT — body, main, content ===== */
  body { overflow:hidden; height:100vh; height:100dvh; }
  .main { flex:1; display:flex; flex-direction:column; overflow:hidden; min-height:0; }
  .content-panel {
    flex:1; min-height:0; overflow-y:auto; -webkit-overflow-scrolling:touch;
    padding-bottom:calc(100px + env(safe-area-inset-bottom, 0px));
    display:flex; flex-direction:column; justify-content:flex-start; align-items:stretch;
  }
  .desktop-only { display:none !important; }
  .mobile-only { display:block !important; }

  /* ===== KALENDÁŘ — přes celou plochu ===== */
  .content-panel > div[style*="cal"],
  .content-panel > div:first-child:not(.dash):not(.tree):not(.tech-grid):not(.obj-cards):not(.rev-grid):not(.wl-container) {
    flex:1; display:flex; flex-direction:column; min-height:0;
  }
  .cal-header { flex-shrink:0; padding:6px 8px; gap:6px; }
  .cal-header .btn-sm { padding:3px 8px; font-size:11px; }
  .cal-header h2 { font-size:14px; }
  .cal-filter { gap:3px; flex-wrap:wrap; padding:3px 8px; }
  .cal-filter-label { display:none; }
  .cal-filter-chip { font-size:10px; padding:2px 6px; }
  .cal-dow-row { border-top:1px solid var(--border) !important; border-left:1px solid var(--border) !important; }
  .cal-grid { flex:1 !important; min-height:0 !important; border-top:none !important; }
  .cal-month { flex:1; min-height:0; border-top:none !important; }
  .cal-week-cells .cal-day{ min-height:64px; overflow:hidden; }
  .cal-week-spans{ top:16px; grid-auto-rows:16px; }
  .cal-span{ height:16px; font-size:9px; padding:0 4px; }
  .cal-dayview { flex:1 1 auto; min-height:0; overflow-y:auto; -webkit-overflow-scrolling:touch; padding-bottom:130px; box-sizing:border-box; }
  .cal-chat-wrap { flex-shrink:0; }
  .cal-next-week-label { flex-shrink:0; }
  .cal-day { min-height:0; padding:2px 3px; overflow:hidden; }
  .cal-day-week { min-height:calc(60dvh - 30px); min-height:calc(60vh - 30px); }
  .cal-view-toggle .btn-sm { padding:3px 8px; font-size:11px; }
  .cal-event { font-size:9px; padding:2px 3px; white-space:normal; }
  .cal-event-title { white-space:normal; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
  .cal-event-meta { display:none; }
  .cal-event-avatars { display:none; }
  .cal-event-creator { display:none; }
  .cal-dow { padding:0 !important; margin:0 !important; font-size:9px !important; line-height:1 !important; border-right:1px solid var(--border); height:10px !important; max-height:10px !important; overflow:hidden !important; box-sizing:border-box !important; }
  .cal-dow:last-child { border-right:none; }
  .cal-event-meta { display:none; }
  .cal-event-avatars { display:none; }

  /* ===== ÚKOLY (.dash) — přes celou plochu, scrollovatelné ===== */
  .content-panel > .dash {
    flex:1; display:flex; flex-direction:column; min-height:0;
    overflow-y:auto; padding:10px 12px;
    padding-bottom:calc(56px + 52px + env(safe-area-inset-bottom, 0px));
  }

  /* ===== OBJEKTY — kartičky s obsahem (NE proužky) ===== */
  .content-panel > .tree {
    flex:1; display:flex; flex-direction:column; min-height:0;
    overflow-y:auto;
    padding-bottom:calc(56px + 52px + env(safe-area-inset-bottom, 0px));
  }
  .obj-cards {
    display:flex !important; flex-direction:column !important;
    gap:8px !important; padding:8px !important;
  }
  .obj-card {
    border-radius:8px !important; border:1px solid var(--border) !important;
    box-shadow:var(--shadow) !important;
  }
  .obj-card-head { padding:10px 12px !important; font-size:14px !important; }
  .obj-card-body {
    display:flex !important; flex-direction:column !important;
    padding:4px 8px 6px !important; gap:2px !important;
    max-height:120px !important; overflow-y:auto !important;
  }
  .obj-card-add { display:none !important; }
  .obj-card-empty { display:none !important; }
  .tree-table-head { display:none; }
  .tree-task-row { grid-template-columns:7px 1fr auto; }
  .tree-task-row .tree-task-desc { display:none; }
  .tree-task-row .tree-task-date:last-of-type { display:none; }

  /* ===== TECHNICI — přes celou plochu ===== */
  .content-panel > .tech-grid {
    flex:unset; display:grid;
    grid-template-columns:1fr !important; gap:8px !important; padding:8px !important;
    padding-bottom:calc(56px + 52px + env(safe-area-inset-bottom, 0px)) !important;
  }

  /* ===== CHAT — jen 1 řádek inputu (56px), fixně nad taby ===== */
  /* mobilní sidebar: msgs+label viditelné */
  /* mobilní sidebar: msgs+label viditelné */


  /* ===== OSTATNÍ MOBILNÍ ÚPRAVY ===== */
  .modal { padding:10px; max-width:95vw; }
  .modal-topbar .btn { flex:0 1 auto; min-width:0; font-size:11px !important; padding:8px 10px !important; text-align:center; white-space:nowrap; }
  .date-range-row { flex-direction:column; }
  .login-wrap { padding-top:env(safe-area-inset-top, 0px); padding-bottom:env(safe-area-inset-bottom, 0px); }
  .rev-grid { grid-template-columns:repeat(3, 1fr); }
  .wl-container { position:static !important; flex:1 !important; min-height:0 !important; padding:0 !important; margin:0 !important; display:flex !important; flex-direction:column !important; overflow:hidden !important; max-width:100% !important; width:100% !important; align-self:stretch !important; }
  .wl-table-wrap { flex:1 !important; min-height:0 !important; max-height:none !important; overflow:auto !important; -webkit-overflow-scrolling:touch !important; touch-action:pan-x pan-y !important; overscroll-behavior:contain !important; }
  .wl-header { padding:0 8px; margin-bottom:6px !important; }
  .wl-header .wl-month-label { font-size:14px !important; min-width:110px !important; }
  .wl-header .wl-month-nav button { padding:3px 8px !important; }
  .wl-day-row { padding:5px 8px !important; gap:6px !important; font-size:13px !important; border-bottom:1px solid var(--border, #ccc) !important; }
  .wl-day-date { min-width:34px !important; font-size:12px !important; }
  .wl-day-name { min-width:18px !important; font-size:11px !important; }
  .wl-day-entries { font-size:11px !important; }
  .wl-day-entries .wl-entry-chip { font-size:11px !important; padding:1px 4px !important; margin:0 2px !important; }
  .wl-day-hours { min-width:28px !important; font-size:11px !important; }
  .wl-table { font-size:13px; }
  .wl-table th, .wl-table td { padding:6px 6px; }
  .wl-grid { font-size:12px; }
  .wl-grid thead th { padding:5px 6px; font-size:11px; }
  .wl-grid tbody td { padding:4px 5px; font-size:12px; }
  .wl-grid .wl-td-time { min-width:35px; font-size:10px; }
  .wl-grid .wl-td-hours { min-width:38px; font-size:11px; }
  .wl-grid .wl-td-desc { max-width:120px; font-size:10px; }
  .wl-grid .wl-td-activity { min-width:50px; font-size:10px; }
  .wl-add-btn { bottom:80px; right:14px; }
.wl-th-date, .wl-th-day { font-size:0 !important; padding:4px 2px !important; width:0; }
.wl-th-fond, .wl-td-fond { display:none !important; }
.wl-th-hours { font-size:0 !important; }
.wl-th-hours::after { content:'Hod'; font-size:10px; letter-spacing:0; text-transform:none; }
.wl-th-activity { font-size:0 !important; }
.wl-th-activity::after { content:'Typ'; font-size:10px; letter-spacing:0; text-transform:none; }
.wl-grid .wl-td-date { padding:4px 2px !important; min-width:30px !important; font-size:11px !important; }
.wl-grid .wl-td-day { padding:4px 1px !important; min-width:14px !important; font-size:11px !important; }
.wl-grid .wl-td-time { width:40px !important; max-width:40px !important; min-width:40px !important; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; padding:4px 2px !important; font-size:11px !important; }
.wl-grid .wl-td-hours { width:40px !important; max-width:40px !important; min-width:40px !important; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; padding:4px 2px !important; font-size:11px !important; }
.wl-grid .wl-td-activity { width:40px !important; max-width:40px !important; min-width:40px !important; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; padding:4px 2px !important; font-size:10px !important; }
.wl-grid .wl-td-location { width:50px !important; max-width:50px !important; min-width:50px !important; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; padding:4px 3px !important; font-size:11px !important; }
.wl-grid .wl-td-desc { min-width:0 !important; max-width:none !important; padding:4px 3px !important; font-size:11px !important; }

  /* ===== TASK ROW — mobilní 2-řádkový layout ===== */
  .task-row { flex-wrap:wrap; gap:3px 6px; padding:8px 10px; width:100% !important; }
  .task-obj { width:auto; min-width:0; max-width:35vw; font-size:12px; order:1; flex-shrink:0; overflow:hidden; text-overflow:ellipsis; }
  .task-unread-dot { order:2; }
  .task-avatar-col { min-width:auto; width:auto !important; order:3; }
  .task-avatar-col .avatar { width:20px !important; height:20px !important; font-size:8px !important; }
  .task-creator { width:20px !important; height:20px !important; font-size:8px !important; margin-right:10px !important; margin-left:0 !important; }
  .task-dates { min-width:auto; order:5; margin-left:auto; text-align:right; }
  .task-date-line { font-size:11px; }
  .task-remaining { min-width:unset !important; font-size:11px; order:6; text-align:right; }
  .task-priority-flag { order:4; font-size:16px; }
  .task-title { width:100%; order:10; font-size:12px; flex-basis:100%; margin-top:1px; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .task-files-badge { font-size:15px; order:11; flex-shrink:0; }

  /* ===== MODAL OBJEKTU — mobilní single column ===== */
  .modal-card { max-width:100vw !important; width:100vw !important; margin:0 !important; border-radius:0 !important; max-height:100dvh !important; }
  .modal-card [style*="grid-template-columns:1fr 1fr"] { grid-template-columns:1fr !important; }

  /* ===== WEEK VIEW — úzký sloupec data na mobilu ===== */
  .cal-week-day-header { width:52px !important; min-width:52px !important; padding:4px 6px !important; }
  .cal-week-vertical { flex:0 0 auto !important; min-height:auto !important; }
  .cal-week-day { flex:0 0 auto !important; min-height:54px !important; }
  .cal-week-day-events { flex-direction:row !important; flex-wrap:wrap !important; overflow:visible !important; align-content:flex-start !important; }
  .cal-week-vertical .cal-event { flex:0 0 calc(50% - 2px) !important; width:auto !important; }
  .cal-week-day-name { font-size:11px !important; }
  .cal-week-day-num { font-size:10px !important; }

  .cal-week-day-events { flex-direction:row !important; flex-wrap:wrap !important; overflow:visible !important; align-content:flex-start !important; }
  .cal-week-vertical .cal-event { flex:0 0 calc(50% - 2px) !important; width:auto !important; }
  /* ===== TASK MODAL — mobilní kompaktní ===== */
  .modal-topbar { flex-wrap:nowrap; gap:4px; }
  .modal-topbar h3 { font-size:13px; }
  .modal-topbar .btn { font-size:11px !important; padding:8px 8px !important; min-width:0 !important; white-space:nowrap; }
  .modal-topbar .btn-sm { font-size:11px !important; padding:8px 8px !important; }
  .modal.modal-draggable { max-width:100vw !important; width:100vw !important; margin:0 !important; max-height:100dvh !important; border-radius:0 !important; }

}

/* ===== HISTORIE ZMĚN ===== */
.history-toggle { position:relative; margin-left:8px; }
.history-panel { position:absolute; top:100%; right:0; margin-top:8px; background:var(--bg2); border:1px solid var(--border); border-radius:10px; box-shadow:0 8px 32px rgba(0,0,0,0.18); z-index:100; width:420px; max-height:75vh; display:flex; flex-direction:column; }
.history-header { display:flex; align-items:center; gap:8px; padding:12px 14px 8px; border-bottom:1px solid var(--border); flex-wrap:wrap; }
.history-title { font-size:14px; font-weight:700; color:var(--text); }
.history-filters { display:flex; gap:3px; margin-left:auto; }
.history-filter-btn { background:none; border:1px solid var(--border); border-radius:4px; padding:2px 8px; font-size:11px; color:var(--text2); cursor:pointer; transition:all .15s; }
.history-filter-btn:hover { border-color:var(--accent); color:var(--accent); }
.history-filter-btn.active { background:var(--accent); color:#fff; border-color:var(--accent); }
.history-close { background:none; border:none; font-size:20px; color:var(--text3); cursor:pointer; padding:0 4px; line-height:1; margin-left:6px; }
.history-close:hover { color:var(--text); }
.history-list { overflow-y:auto; flex:1; padding:6px 0; }
.history-empty { padding:24px; text-align:center; color:var(--text3); font-size:13px; }
.history-day-label { font-size:11px; font-weight:700; color:var(--text3); text-transform:uppercase; padding:8px 14px 4px; letter-spacing:0.5px; position:sticky; top:0; background:var(--bg2); z-index:1; }
.history-item { display:flex; align-items:center; gap:8px; padding:7px 14px; transition:background .1s; }
.history-item:hover { background:var(--bg3); }
.history-item.reversed { opacity:0.45; }
.history-item-icon { width:26px; height:26px; border-radius:6px; display:flex; align-items:center; justify-content:center; font-size:13px; flex-shrink:0; }
.history-item-icon.create { background:#e8f5e9; color:#2e7d32; }
.history-item-icon.update { background:#e3f2fd; color:#1565c0; }
.history-item-icon.delete { background:#ffebee; color:#c62828; }
.history-item-icon.merge { background:#f3e5f5; color:#7b1fa2; }
.history-item-icon.assign { background:#fff8e1; color:#f57f17; }
.history-item-body { flex:1; min-width:0; }
.history-item-label { font-size:12px; color:var(--text); line-height:1.3; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.history-item-meta { font-size:11px; color:var(--text3); margin-top:1px; }
.history-undo-btn { background:none; border:1px solid var(--border); border-radius:5px; padding:3px 10px; font-size:11px; color:var(--text2); cursor:pointer; transition:all .15s; white-space:nowrap; }
.history-undo-btn:hover { border-color:var(--accent); color:var(--accent); background:var(--accent-light); }
.history-reversed-badge { font-size:10px; color:var(--text3); background:var(--bg3); padding:2px 7px; border-radius:4px; white-space:nowrap; }
.history-load-more { padding:8px 14px; text-align:center; }
[data-theme="dark"] .history-item-icon.create { background:rgba(46,125,50,0.15); }
[data-theme="dark"] .history-item-icon.update { background:rgba(21,101,192,0.15); }
[data-theme="dark"] .history-item-icon.delete { background:rgba(198,40,40,0.15); }
[data-theme="dark"] .history-item-icon.merge { background:rgba(123,31,162,0.15); }
[data-theme="dark"] .history-item-icon.assign { background:rgba(245,127,23,0.15); }

/* Rozklikávací detail položky historie (staré→nové / celý obsah) */
.history-item-wrap { border-bottom:1px solid transparent; }
.history-item.expandable { cursor:pointer; }
.history-chevron { font-size:9px; color:var(--text3); transition:transform .15s; flex-shrink:0; }
.history-chevron.open { transform:rotate(90deg); }
.history-item-detail { padding:4px 14px 10px 46px; background:var(--bg3); font-size:12px; }
.history-detail-empty { color:var(--text3); font-style:italic; padding:4px 0; }
.history-detail-row { display:flex; gap:8px; padding:3px 0; align-items:baseline; border-top:1px solid var(--border); }
.history-detail-row:first-child { border-top:none; }
.history-detail-label { color:var(--text3); min-width:78px; flex-shrink:0; font-weight:600; }
.history-detail-val { color:var(--text); word-break:break-word; }
.history-detail-diff { display:flex; gap:6px; align-items:baseline; flex-wrap:wrap; }
.history-detail-diff .hd-old { color:#c62828; text-decoration:line-through; opacity:0.8; word-break:break-word; }
.history-detail-diff .hd-arrow { color:var(--text3); }
.history-detail-diff .hd-new { color:#2e7d32; font-weight:600; word-break:break-word; }
[data-theme="dark"] .history-detail-diff .hd-old { color:#ef9a9a; }
[data-theme="dark"] .history-detail-diff .hd-new { color:#a5d6a7; }

.cal-next-week-label, .cal-next-week { display:none !important; }


.task-creator { display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px; border-radius:50%; font-size:10px; font-weight:700; color:#fff; flex-shrink:0; border:2px solid #d4a017; box-shadow:0 0 3px rgba(212,160,23,0.5); margin-right:14px; }
.task-unread-dot { width:8px; height:8px; border-radius:50%; background:var(--red, #e74c3c); flex-shrink:0; margin-right:-4px; }
.notif-bell-wrap { position:relative; cursor:pointer; }
.notif-bell-wrap .notif-count { position:absolute; top:-4px; right:-6px; background:var(--red, #e74c3c); color:#fff; font-size:9px; font-weight:700; min-width:14px; height:14px; border-radius:7px; display:flex; align-items:center; justify-content:center; padding:0 3px; }
.notif-panel { position:absolute; right:0; top:32px; width:320px; max-height:400px; overflow-y:auto; background:var(--card-bg); border:1px solid var(--border); border-radius:8px; box-shadow:var(--shadow); z-index:100; padding:8px 0; }
.notif-item { padding:8px 14px; border-bottom:1px solid var(--border); cursor:pointer; display:flex; gap:8px; align-items:flex-start; }
.notif-item:hover { background:var(--card-hover); }
.notif-item:last-child { border-bottom:none; }
.notif-item.unread { background:rgba(52,152,219,0.06); }
.notif-item .notif-dot { width:6px; height:6px; border-radius:50%; background:var(--accent); flex-shrink:0; margin-top:5px; }
.notif-item .notif-dot.read { background:transparent; }
.notif-body { flex:1; min-width:0; }
.notif-body .notif-title { font-size:12px; font-weight:600; }
.notif-body .notif-text { font-size:11px; color:var(--text2); margin-top:2px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.notif-body .notif-time { font-size:10px; color:var(--text3); margin-top:2px; }


/* ── DateRange picker (kalendář s rozsahem) v3.7.35 ── */
.drp{position:relative;display:block;width:100%;}
.drp-field{display:flex;align-items:center;gap:8px;width:100%;box-sizing:border-box;padding:9px 12px;
  border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text);
  font-size:13px;cursor:pointer;text-align:left;transition:border-color .15s;}
.drp-field:hover{border-color:var(--accent);}
.drp-field.drp-empty-field .drp-text{color:var(--text3);}
.drp-ico{font-size:14px;flex-shrink:0;line-height:1;}
.drp-text{flex:1;font-weight:600;}
.drp-pop{position:absolute;z-index:5000;top:calc(100% + 6px);left:0;
  background:var(--bg);border:1px solid var(--border);border-radius:12px;
  box-shadow:0 10px 30px var(--shadow,rgba(0,0,0,.25));padding:12px;width:300px;max-width:92vw;}
.drp-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
.drp-title{font-weight:700;font-size:14px;color:var(--text);}
.drp-nav{border:none;background:var(--bg2);color:var(--text);width:30px;height:30px;border-radius:8px;
  font-size:18px;line-height:1;cursor:pointer;}
.drp-nav:hover{background:var(--accent-light);color:var(--accent);}
.drp-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;}
.drp-dow{margin-bottom:4px;}
.drp-dow span{text-align:center;font-size:11px;font-weight:700;color:var(--text3);padding:2px 0;}
.drp-day{border:none;background:transparent;color:var(--text);height:36px;border-radius:8px;
  font-size:13px;cursor:pointer;padding:0;transition:background .1s;}
.drp-day:hover:not(:disabled){background:var(--accent-light);}
.drp-day:disabled{cursor:default;visibility:hidden;}
.drp-today{box-shadow:inset 0 0 0 1px var(--accent);font-weight:700;}
.drp-inrange{background:var(--accent-light);border-radius:0;}
.drp-start,.drp-end,.drp-single{background:var(--accent)!important;color:#fff!important;font-weight:700;}
.drp-start{border-top-right-radius:0;border-bottom-right-radius:0;}
.drp-end{border-top-left-radius:0;border-bottom-left-radius:0;}
.drp-allday{display:flex;align-items:center;gap:6px;margin-top:10px;font-size:12px;color:var(--text2);cursor:pointer;user-select:none;}
.drp-allday input{width:auto;margin:0;cursor:pointer;}
.drp-times{display:flex;gap:10px;margin-top:10px;}
.drp-times label{flex:1;font-size:12px;color:var(--text2);display:flex;align-items:center;gap:6px;}
.drp-times input{flex:1;padding:6px 8px;border:1px solid var(--border);border-radius:6px;
  background:var(--bg);color:var(--text);font-size:13px;}
.drp-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px;
  padding-top:8px;border-top:1px solid var(--border);}
.drp-hint{font-size:10px;color:var(--text3);flex:1;text-align:center;}
.drp-clear{border:none;background:transparent;color:var(--text3);font-size:12px;cursor:pointer;padding:4px 6px;}
.drp-clear:hover{color:var(--red);}
.drp-done{border:none;background:var(--accent);color:#fff;font-size:12px;font-weight:600;
  border-radius:6px;padding:6px 14px;cursor:pointer;}

/* ── VoiceMic (chytrý diktafon) v3.7.36 ── */
.vmic{position:relative;display:inline-flex;flex-direction:column;align-items:flex-end;gap:3px;vertical-align:middle;}
.vmic-btn{background:none;border:none;cursor:pointer;font-size:16px;line-height:1;padding:2px;opacity:.55;transition:opacity .15s,transform .1s;}
.vmic-btn:hover{opacity:1;}
.vmic-btn.rec{opacity:1;color:#ef4444;animation:vmicPulse 1s infinite;}
.vmic-btn.busy{opacity:1;cursor:wait;}
@keyframes vmicPulse{0%,100%{transform:scale(1);}50%{transform:scale(1.18);}}
.vmic-model{font-size:9px;font-weight:800;line-height:1;width:16px;height:16px;border-radius:50%;
  border:1px solid var(--border);background:var(--bg2);color:var(--text2);cursor:pointer;padding:0;}
.vmic-model:hover{border-color:var(--accent);color:var(--accent);}
.vmic-mode{font-size:9px;font-weight:800;line-height:1;height:16px;padding:0 6px;border-radius:8px;border:1px solid var(--border);background:var(--bg2);color:var(--text2);cursor:pointer;white-space:nowrap;}
.vmic-mode:hover{border-color:var(--accent);color:var(--accent);}
.vmic-live{position:absolute;top:calc(100% + 4px);right:0;z-index:6000;max-width:280px;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;background:var(--accent);color:#fff;font-size:11px;
  padding:4px 8px;border-radius:6px;box-shadow:0 4px 12px var(--shadow,rgba(0,0,0,.25));}
.vmic-err{position:absolute;top:calc(100% + 4px);right:0;z-index:6000;max-width:300px;white-space:normal;
  background:#fde8ea;color:#b91c1c;font-size:11px;padding:4px 8px;border-radius:6px;border:1px solid #f5c2c7;
  box-shadow:0 4px 12px var(--shadow,rgba(0,0,0,.25));}


/* ── v3.7.39: mikrofon ovládání zřetelnější na PC + mobilní popisky tlačítek ── */
@media (min-width:769px){
  .vmic-btn{font-size:19px;}
  .vmic-model{width:19px;height:19px;font-size:10px;}
  .vmic-mode{height:19px;font-size:10px;padding:0 8px;}
  .vmic-model,.vmic-mode{font-weight:800;background:var(--bg3);}
}
@media (max-width:768px){
  .bl{display:none;}
}
/* v3.7.42: mobil — ikonová topbar tlačítka (Smazat/Hotovo/Zrušit/Uložit/Vrátit) stejně velká */
@media (max-width:768px){
  .btn:has(.bl){
    min-width:44px !important;
    height:40px !important;
    padding:0 8px !important;
    font-size:18px !important;
    line-height:1 !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    box-sizing:border-box !important;
  }
}


/* v3.7.43: mobil — zakázky hlavička (řazení pod tlačítko, Provádí jen admin, bez Vytvořil) */
@media (max-width:768px){
  .dash-header{flex-direction:column-reverse !important;align-items:stretch !important;gap:6px !important;}
  .dash-add{align-self:flex-end;}
  .np-hide-mobile{display:none !important;}
  .dash-sort{flex-wrap:wrap;}
  .dash-sort .dash-sort-lbl{min-width:0 !important;}
  .dash-sort .cal-filter-chip{font-size:10px;padding:2px 7px;}
}


/* v3.7.47: popis – mikrofon rozprostřít svisle (nahoře/uprostřed/dole) + mobil objekt+termín na 1 řádek */
.vmic-tall{display:flex;}
.vmic-tall .vmic{height:100%;justify-content:space-between;}
@media (max-width:768px){
  .tm-obj{flex:1 1 40% !important;}
  .tm-term{flex:1 1 52% !important;}
  .tm-tech{flex:1 1 100% !important;}
}


/* v3.7.49: Nastavení notifikací — čisté řádky zaškrtávátek */
.modal label.nf-row{display:flex;align-items:center;gap:10px;margin:0 0 12px;font-size:14px;text-transform:none;color:var(--text);font-weight:400;letter-spacing:0;cursor:pointer;}
.modal label.nf-row input{width:18px;height:18px;margin:0;flex-shrink:0;cursor:pointer;}
.modal label.nf-main{font-weight:600;font-size:15px;margin-bottom:16px;}
.nf-sec{font-size:11px;text-transform:uppercase;color:var(--text3);font-weight:600;letter-spacing:0.3px;margin:0 0 8px;}


/* v3.7.51: PC kalendář — flexibilní výška dnů + výplň obrazovky + výrazné +N */
.cal-more{font-size:11px;font-weight:700;color:var(--accent);background:var(--accent-light);border:1px solid var(--accent);border-radius:6px;padding:2px 6px;margin-top:3px;text-align:center;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:3px;}
.cal-more:hover{background:var(--accent);color:#fff;}
@media (min-width:769px){
  .cal-grid:not(.cal-week){ grid-auto-rows: minmax(calc((100vh - 160px) / 6), auto); }
  .cal-day{ overflow:visible !important; min-height:auto; }
  .cal-week-row{ min-height: calc((100vh - 165px) / 6); }
  .cal-week-cells .cal-day{ overflow:hidden !important; min-height:auto; }
  .cal-week-vertical{ flex:0 0 auto !important; min-height:auto !important; }
  .cal-week-day{ flex:0 0 auto !important; min-height:calc((100vh - 160px) / 7) !important; }
  .cal-week-day-events{ overflow:visible !important; }
}


/* v3.7.52: denní detail (klik na den) + srovnání týdne + objekt v náhledu */
.cal-dayview{display:flex;flex-direction:column;gap:10px;padding:10px 14px;}
.cal-dayview-head{display:flex;align-items:center;gap:10px;}
.cal-dayview-title{font-size:17px;font-weight:700;color:var(--text);flex:1;text-align:center;}
.cal-dayview-list{display:flex;flex-direction:column;gap:8px;}
.cal-dayview-item{border-left:5px solid var(--accent);border-radius:8px;padding:10px 14px;cursor:pointer;color:#1a1a1a;box-shadow:0 1px 3px rgba(0,0,0,0.08);}
.cal-dayview-item:hover{filter:brightness(0.97);}
.cal-dayview-obj{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:0.3px;opacity:0.75;}
.cal-dayview-act{font-size:15px;font-weight:600;margin:2px 0 5px;line-height:1.3;}
.cal-dayview-meta{display:flex;align-items:center;gap:10px;font-size:12px;color:#333;}
.cal-dayview-avatars{display:flex;gap:2px;margin-left:auto;}
@media (max-width:768px){
  .cal-week-day-events{ display:grid !important; grid-template-columns:1fr 1fr !important; gap:4px !important; overflow:visible !important; align-content:start !important; }
  .cal-week-day-events > .cal-note, .cal-week-day-events > .cal-note-add{ grid-column:1 / -1 !important; }
  .cal-week-vertical .cal-event{ width:auto !important; margin:0 !important; }
  .cal-week-vertical .cal-event-title{ display:-webkit-box !important; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; white-space:normal; }
  .cal-event-meta{ display:block !important; margin-top:2px; }
  .cal-event-meta .cal-event-time{ display:inline !important; font-weight:700; }
  .cal-event-avatars{ display:none !important; }
  .cal-event-obj{ display:block !important; font-size:10px !important; font-weight:600; color:#222; white-space:nowrap !important; overflow:hidden; text-overflow:ellipsis; }
  .cet-full{ display:none !important; }
  .cet-short{ display:inline !important; }
}


/* v3.7.55: + pozn. doprava dolů, v náhledu pořadí čas+objekt nahoře (tučně), činnost dole */
.cal-week-day{ position:relative; }
.cal-note-add{ position:absolute !important; right:6px; bottom:5px; font-size:10px; color:var(--accent); cursor:pointer; opacity:0.65; z-index:3; padding:1px 6px; border-radius:4px; white-space:nowrap; }
.cal-note-add:hover{ opacity:1; background:var(--accent-light); }
.cal-day .cal-note-add{ right:4px; bottom:3px; }
.cal-event-meta{ margin-top:0 !important; margin-bottom:1px; }
.cal-event-obj{ font-weight:700 !important; color:#222 !important; }
[data-theme="dark"] .cal-event-obj{ color:#2a2a2a !important; }
.cal-week-vertical .cal-event-meta{ margin-top:0 !important; margin-bottom:3px; }
.cal-event-title{ font-weight:500; }
.cet-short{ display:none; }
.cet-full{ display:inline; }

/* ═══ NÁSTĚNKA (sticky notes) — v3.7.71 ═══ */
.board-view { display:flex; flex-direction:column; height:100%; min-height:0; }
.board-toolbar { display:flex; align-items:center; gap:14px; padding:12px 16px; flex-wrap:wrap; border-bottom:1px solid var(--border); }
.board-hint { font-size:12px; color:var(--text3); }
.sticky-wall { position:relative; flex:1 1 auto; min-height:480px; overflow:auto;
  background-color:#efe7d6;
  background-image:radial-gradient(rgba(120,100,70,0.16) 1px, transparent 1px);
  background-size:22px 22px; }
[data-theme="dark"] .sticky-wall { background-color:#2a2722; background-image:radial-gradient(rgba(255,255,255,0.05) 1px, transparent 1px); }
.board-empty { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); text-align:center;
  color:#6b6151; font-size:15px; line-height:1.7; max-width:420px; }
[data-theme="dark"] .board-empty { color:#b8ad98; }

.sticky { position:absolute; width:196px; min-height:150px; display:flex; flex-direction:column;
  border-radius:3px; box-shadow:0 6px 14px rgba(0,0,0,0.22); color:#2b2b2b;
  transition:box-shadow .12s ease, transform .12s ease; transform:rotate(-1deg); }
.sticky:nth-of-type(2n) { transform:rotate(1.2deg); }
.sticky:nth-of-type(3n) { transform:rotate(-0.4deg); }
.sticky:hover { box-shadow:0 10px 20px rgba(0,0,0,0.28); }
.sticky.dragging { transform:rotate(0deg) scale(1.04); box-shadow:0 16px 30px rgba(0,0,0,0.34); z-index:1000; cursor:grabbing; }
.sticky-bar { display:flex; align-items:center; justify-content:space-between; gap:6px; padding:5px 7px;
  cursor:grab; border-radius:3px 3px 0 0; background:rgba(0,0,0,0.06); touch-action:none; }
.sticky-bar:active { cursor:grabbing; }
.sticky-colors { display:flex; gap:4px; }
.sticky-dot { width:13px; height:13px; border-radius:50%; cursor:pointer; border:1.5px solid rgba(255,255,255,0.7); box-shadow:0 0 0 1px rgba(0,0,0,0.12); }
.sticky-dot.active { outline:2px solid rgba(0,0,0,0.45); outline-offset:1px; }
.dot-yellow{background:#ffd400;} .dot-green{background:#5fcf5f;} .dot-blue{background:#5aa9f0;}
.dot-pink{background:#ff7fbf;} .dot-orange{background:#ff9e3d;} .dot-purple{background:#b07ef0;}
.sticky-del { border:none; background:transparent; font-size:18px; line-height:1; color:rgba(0,0,0,0.4); cursor:pointer; padding:0 2px; }
.sticky-del:hover { color:#c0392b; }
.sticky-text { flex:1 1 auto; border:none; background:transparent; resize:none; outline:none;
  padding:8px 10px; font-size:14.5px; line-height:1.4; color:#2b2b2b; font-family:'Segoe Print','Comic Sans MS',var(--font,sans-serif); }
.sticky-text::placeholder { color:rgba(0,0,0,0.32); }
.sticky-foot { display:flex; align-items:center; justify-content:flex-end; gap:8px; padding:4px 8px 7px; }
.sticky-saving { font-size:10px; color:rgba(0,0,0,0.4); margin-right:auto; }
.sticky-promote { border:none; background:rgba(0,0,0,0.10); color:#2b2b2b; font-size:11px; font-weight:600;
  padding:3px 8px; border-radius:10px; cursor:pointer; }
.sticky-promote:hover { background:rgba(0,0,0,0.20); }

.sticky-yellow { background:#fff6a8; }
.sticky-green  { background:#c7f5c0; }
.sticky-blue   { background:#cbe6ff; }
.sticky-pink   { background:#ffcfe6; }
.sticky-orange { background:#ffd9a3; }
.sticky-purple { background:#e6d4ff; }

@media (max-width:720px){
  .board-hint { display:none; }
  .sticky { width:160px; min-height:130px; }
  .sticky-wall { min-height:70vh; }
}

/* ═══ NÁSTĚNKA — sdílení (v3.7.73) ═══ */
.sticky-avatars { display:flex; align-items:center; gap:0; margin-left:auto; }
.sticky-avatars.clickable { cursor:pointer; }
.sticky-av { width:21px; height:21px; font-size:8px; margin-left:-5px; border:1.5px solid rgba(255,255,255,0.85); box-shadow:0 0 0 1px rgba(0,0,0,0.10); }
.sticky-av:first-child { margin-left:0; }
.sticky-av.is-owner { border-color:#d4a017; box-shadow:0 0 0 1px rgba(212,160,23,0.5); }
.sticky-share-add { width:21px; height:21px; margin-left:3px; border-radius:50%; border:1.5px dashed rgba(0,0,0,0.35);
  display:inline-flex; align-items:center; justify-content:center; font-size:14px; line-height:1; color:rgba(0,0,0,0.45); background:rgba(255,255,255,0.35); }
.sticky-avatars.clickable:hover .sticky-share-add { border-color:rgba(0,0,0,0.6); color:rgba(0,0,0,0.7); }
.sticky-from { font-size:10px; font-weight:600; color:rgba(0,0,0,0.5); }
.sticky.shared .sticky-bar { cursor:default; }
.sticky.shared { box-shadow:0 6px 14px rgba(0,0,0,0.18); }
.sticky.shared .sticky-text { cursor:default; }

.share-list { display:flex; flex-direction:column; gap:4px; max-height:320px; overflow-y:auto; }
.share-item { display:flex; align-items:center; gap:10px; padding:7px 9px; border-radius:8px; cursor:pointer; border:1.5px solid transparent; font-size:14px; }
.share-item:hover { background:var(--hover,rgba(0,0,0,0.04)); }
.share-item.on { background:rgba(37,99,235,0.10); border-color:var(--accent,#2563eb); }
.share-check { color:var(--accent,#2563eb); font-weight:800; width:16px; text-align:center; }


