/* PUERTA – Πάνελ διαχείρισης */
body.admin { background: #f5f3f9; font-size: 15.5px; }
.admin .icon { width: 1.15em; height: 1.15em; }

/* Login */
.auth { min-height: 100vh; display: grid; place-items: center; padding: 24px; background: radial-gradient(900px 500px at 90% -10%, color-mix(in srgb, var(--accent) 30%, transparent), transparent 60%), var(--primary); }
.auth-card { width: 100%; max-width: 420px; background: #fff; border-radius: 22px; padding: 34px; box-shadow: var(--shadow-lg); }
.auth-card .logo { height: 56px; width: auto; max-width: 100%; object-fit: contain; margin: 0 auto 20px; }
.auth-card h1 { font-size: 1.45rem; text-align: center; margin-bottom: 4px; }
.auth-card p.sub { text-align: center; color: var(--muted); margin-bottom: 24px; font-size: .95rem; }
.auth-foot { text-align: center; margin-top: 18px; font-size: .88rem; }

/* Shell */
.shell { display: grid; grid-template-columns: 260px 1fr; min-height: 100vh; }
.side { background: #241a44; color: rgba(255, 255, 255, .75); padding: 20px 14px; position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; gap: 4px; overflow-y: auto; }
.side .logo-box { background: #fff; border-radius: 14px; padding: 10px 12px; margin: 0 6px 18px; display: flex; justify-content: center; }
.side .logo-box img { height: 44px; width: auto; max-width: 100%; object-fit: contain; }
.side .logo-box.clear { background: none; padding: 8px 12px 6px; justify-content: flex-start; }
.side .logo-box.clear img { height: 40px; }
.side a.nav-i { display: flex; align-items: center; gap: 12px; padding: 11px 14px; border-radius: 12px; color: rgba(255, 255, 255, .78); font-weight: 600; font-size: .95rem; }
.side a.nav-i:hover { background: rgba(255, 255, 255, .07); color: #fff; }
.side a.nav-i.on { background: var(--accent); color: #fff; }
.side a.nav-i .badge { margin-left: auto; background: #e5484d; color: #fff; font-size: .72rem; padding: 2px 7px; border-radius: 999px; }
.side .sep { height: 1px; background: rgba(255, 255, 255, .08); margin: 10px 8px; }
.side .grp { font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; color: rgba(255, 255, 255, .4); padding: 12px 14px 4px; font-weight: 700; }
.side .me { margin-top: auto; padding: 14px; border-radius: 14px; background: rgba(255, 255, 255, .06); display: flex; gap: 10px; align-items: center; }
.side .me .av { width: 38px; height: 38px; border-radius: 50%; background: var(--accent); color: #fff; display: grid; place-items: center; font-weight: 700; flex: none; }
.side .me b { display: block; color: #fff; font-size: .92rem; line-height: 1.2; }
.side .me small { color: rgba(255, 255, 255, .55); font-size: .78rem; }
.side .me button { margin-left: auto; background: none; border: 0; color: rgba(255, 255, 255, .6); cursor: pointer; padding: 6px; border-radius: 8px; }
.side .me button:hover { color: #fff; background: rgba(255, 255, 255, .1); }
.main { min-width: 0; }
.scrim { display: none; }
.topbar-a { display: none; }
.content { padding: 30px 34px 60px; max-width: 1180px; }
.page-title { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; margin-bottom: 22px; }
.page-title h1 { font-size: 1.65rem; margin: 0; }
.page-title p { margin: 4px 0 0; color: var(--muted); }
.page-title .acts { display: flex; gap: 10px; flex-wrap: wrap; }

@media (max-width: 900px) {
  .shell { grid-template-columns: 1fr; }
  .side { position: fixed; left: 0; top: 0; bottom: 0; width: 270px; z-index: 80; transform: translateX(-100%); transition: transform .25s; }
  .side.open { transform: none; box-shadow: var(--shadow-lg); }
  .scrim { position: fixed; inset: 0; background: rgba(26, 18, 48, .45); z-index: 70; display: none; }
  .scrim.on { display: block; }
  .topbar-a { display: flex; align-items: center; justify-content: space-between; padding: 10px 14px; background: #fff; border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 30; }
  .topbar-a img { height: 38px; width: auto; }
  .topbar-a button { background: none; border: 0; padding: 8px; cursor: pointer; color: var(--ink); }
  .topbar-a .icon { width: 26px; height: 26px; }
  .content { padding: 20px 14px 60px; }
}

/* Blocks */
.box { background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 22px; }
.box + .box { margin-top: 18px; }
.box h2 { font-size: 1.12rem; margin-bottom: 14px; }
.box-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 14px; flex-wrap: wrap; }
.box-head h2 { margin: 0; }
.kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 20px; }
.kpi { background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 18px; display: flex; gap: 14px; align-items: center; color: var(--ink); }
a.kpi:hover { border-color: var(--accent); color: var(--ink); }
.kpi .ico { width: 46px; height: 46px; border-radius: 12px; display: grid; place-items: center; flex: none; }
.kpi b { font: 800 1.7rem/1 var(--font-head); display: block; }
.kpi small { color: var(--muted); font-size: .85rem; }
@media (max-width: 1000px) { .kpis { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .kpis { grid-template-columns: 1fr 1fr; gap: 10px; } .kpi { padding: 14px; } .kpi .ico { display: none; } }
.two-col { display: grid; grid-template-columns: 1.5fr 1fr; gap: 18px; align-items: start; }
@media (max-width: 1000px) { .two-col { grid-template-columns: 1fr; } }

/* Lists */
.tabs { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 16px; }
.tabs button { padding: 8px 15px; border-radius: 999px; border: 1.5px solid var(--line); background: #fff; font: 600 .9rem var(--font); color: var(--ink); cursor: pointer; }
.tabs button.on { background: var(--primary); border-color: var(--primary); color: #fff; }
.toolbar { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin-bottom: 16px; }
.toolbar .input { max-width: 280px; padding: 10px 12px; }
.toolbar select.input { max-width: 200px; }
.day-h { font: 700 .82rem var(--font); letter-spacing: .08em; text-transform: uppercase; color: var(--muted); margin: 20px 0 8px; }
.day-h:first-child { margin-top: 0; }
.rows { display: grid; gap: 8px; }
.rowi { display: grid; grid-template-columns: 74px 1fr auto; gap: 14px; align-items: center; background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 14px 16px; cursor: pointer; transition: border-color .15s; text-align: left; font: inherit; color: inherit; width: 100%; }
.rowi:hover { border-color: var(--accent); }
.rowi .t { font: 800 1.05rem var(--font-head); color: var(--ink); }
.rowi .t small { display: block; font: 500 .78rem var(--font); color: var(--muted); }
.rowi .who b { color: var(--ink); display: block; }
.rowi .who span { font-size: .86rem; color: var(--muted); display: block; }
.rowi .tags { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.dot { display: inline-block; width: 9px; height: 9px; border-radius: 50%; margin-right: 6px; vertical-align: 1px; }
.dot.management { background: var(--c-management); } .dot.pest { background: var(--c-pest); } .dot.cleaning { background: var(--c-cleaning); }
@media (max-width: 640px) { .rowi { grid-template-columns: 60px 1fr; } .rowi .tags { grid-column: 1 / -1; justify-content: flex-start; } }
.badge { display: inline-flex; align-items: center; gap: 4px; font-size: .75rem; font-weight: 700; padding: 4px 9px; border-radius: 999px; background: var(--bg-tint); color: var(--primary-2); white-space: nowrap; }
.badge.ok { background: color-mix(in srgb, var(--accent) 14%, #fff); color: var(--accent-ink); }
.badge.warn { background: #fdf1d8; color: #8a5a00; }
.badge.err { background: #fde8e6; color: #9b2c20; }
.badge.gray { background: #eef1f4; color: #5b6b7b; }
.badge.blue { background: #e4edfb; color: #2556a8; }
.empty { text-align: center; padding: 40px 20px; color: var(--muted); }
.empty .icon { width: 36px; height: 36px; margin: 0 auto 10px; display: block; opacity: .5; }

table.tbl { width: 100%; border-collapse: collapse; }
.tbl th { text-align: left; font-size: .76rem; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); padding: 10px 12px; border-bottom: 1px solid var(--line); }
.tbl td { padding: 12px; border-bottom: 1px solid var(--line); vertical-align: middle; }
.tbl tr:last-child td { border-bottom: 0; }
.tbl .thumb { width: 64px; height: 40px; border-radius: 8px; object-fit: cover; background: var(--bg-tint); }
.tbl .ttl { font-weight: 600; color: var(--ink); }
.tbl .acts { display: flex; gap: 6px; justify-content: flex-end; }
.scroll-x { overflow-x: auto; }
@media (max-width: 720px) {
  .tbl.stack thead { display: none; }
  .tbl.stack tr { display: grid; grid-template-columns: 64px 1fr; gap: 4px 12px; padding: 12px 0; border-bottom: 1px solid var(--line); }
  .tbl.stack td { border: 0; padding: 2px 0; }
  .tbl.stack td.c-thumb { grid-row: span 3; }
  .tbl.stack td.c-acts .acts { justify-content: flex-start; }
}
.icon-btn { width: 36px; height: 36px; display: inline-grid; place-items: center; border-radius: 10px; border: 1px solid var(--line); background: #fff; cursor: pointer; color: var(--ink); }
.icon-btn:hover { border-color: var(--primary); }
.icon-btn.danger:hover { border-color: var(--danger); color: var(--danger); }
.btn-danger { background: #fff; color: var(--danger); border-color: #f1c4be; }
.btn-danger:hover { background: var(--danger); color: #fff; }

/* Messages */
.msg-i { background: #fff; border: 1px solid var(--line); border-radius: 14px; margin-bottom: 8px; overflow: hidden; }
.msg-i summary { list-style: none; cursor: pointer; padding: 14px 16px; display: grid; grid-template-columns: 1fr auto; gap: 10px; align-items: center; }
.msg-i summary::-webkit-details-marker { display: none; }
.msg-i.new summary b::before { content: ''; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #e5484d; margin-right: 8px; vertical-align: 2px; }
.msg-i summary span { color: var(--muted); font-size: .88rem; }
.msg-i .body { padding: 0 16px 16px; }
.msg-i .reply-i { margin: 0 0 12px 18px; }
.msg-i .reply-i small { display: flex; align-items: center; gap: 6px; color: var(--muted); font-size: .8rem; margin-bottom: 4px; }
.msg-i .reply-i small svg { width: 14px; height: 14px; }
.msg-i .reply-i pre { background: #f1ecfa !important; border-left: 3px solid var(--accent, #7758b3); }
.msg-i textarea { width: 100%; }
.msg-i .body pre { white-space: pre-wrap; font: inherit; background: var(--bg-soft); padding: 14px; border-radius: 12px; margin: 0 0 12px; color: var(--ink); }

/* Forms */
.fgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px; }
.fgrid .full { grid-column: 1 / -1; }
@media (max-width: 640px) { .fgrid { grid-template-columns: 1fr; } }
.admin .field label { font-size: .86rem; }
.admin .field input, .admin .field select, .admin .field textarea { padding: 11px 12px; font-size: .97rem; }
.admin .field input[type=color] { padding: 4px; height: 46px; cursor: pointer; }
.admin .field input[type=number], .admin .field input[type=time], .admin .field input[type=url], .admin .field input[type=password], .admin .field input[type=date] { width: 100%; font: 400 .97rem var(--font); color: var(--ink); background: #fff; border: 1.5px solid var(--line); border-radius: 12px; padding: 11px 12px; }
.admin .field input:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 16%, transparent); }
.switch { display: inline-flex; align-items: center; gap: 10px; cursor: pointer; font-weight: 600; color: var(--ink); font-size: .93rem; }
.switch input { appearance: none; -webkit-appearance: none; width: 42px; height: 24px; border-radius: 999px; background: #cfd8e1; position: relative; cursor: pointer; transition: background .2s; flex: none; margin: 0; }
.switch input::after { content: ''; position: absolute; width: 18px; height: 18px; border-radius: 50%; background: #fff; top: 3px; left: 3px; transition: transform .2s; box-shadow: 0 1px 3px rgba(0, 0, 0, .2); }
.switch input:checked { background: var(--accent); }
.switch input:checked::after { transform: translateX(18px); }
.save-bar { position: sticky; bottom: 0; background: rgba(245, 243, 249, .95); backdrop-filter: blur(6px); padding: 14px 0; margin-top: 18px; display: flex; gap: 10px; justify-content: flex-end; border-top: 1px solid var(--line); z-index: 5; }
.img-field { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; }
.img-field .pv { width: 140px; height: 80px; border-radius: 12px; border: 1px dashed #c6d2de; background: var(--bg-soft) center/contain no-repeat; flex: none; }
.img-field .pv.round { width: 80px; height: 80px; border-radius: 50%; background-size: cover; }
.img-field .pv.sq { width: 64px; height: 64px; }
.img-field .pv.cover { width: 200px; height: 112px; background-size: cover; }
.img-field .ctrls { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; flex: 1; min-width: 220px; }
.img-field .ctrls .input { flex: 1; min-width: 180px; padding: 9px 12px; font-size: .88rem; }

/* Hours table */
.hours { display: grid; gap: 8px; }
.hrow { display: grid; grid-template-columns: 130px 1fr; gap: 12px; align-items: center; padding: 10px 12px; border-radius: 12px; background: var(--bg-soft); }
.hrow .ints { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.hrow .int { display: flex; gap: 6px; align-items: center; }
.hrow input[type=time] { padding: 7px 8px; border: 1.5px solid var(--line); border-radius: 10px; font: .95rem var(--font); background: #fff; }
.hrow .closed { color: var(--muted); font-size: .9rem; }
@media (max-width: 560px) { .hrow { grid-template-columns: 1fr; } }
.chips-in { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.chips-in span { background: #fff; border: 1px solid var(--line); border-radius: 999px; padding: 4px 6px 4px 12px; font-size: .86rem; display: inline-flex; gap: 6px; align-items: center; }
.chips-in button { border: 0; background: var(--bg-soft); width: 22px; height: 22px; border-radius: 50%; cursor: pointer; display: grid; place-items: center; }

/* Repeaters */
.rep { display: grid; gap: 12px; }
.rep-i { border: 1px solid var(--line); border-radius: 14px; padding: 16px; background: #fff; position: relative; }
.rep-i.off { opacity: .6; }
.rep-i .rep-acts { display: flex; gap: 6px; justify-content: flex-end; margin-bottom: 8px; }
.rep-i .rep-h { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 12px; flex-wrap: wrap; }
.rep-i .rep-h b { color: var(--ink); }
.colors { display: flex; gap: 6px; flex-wrap: wrap; }
.colors label { width: 28px; height: 28px; border-radius: 50%; cursor: pointer; position: relative; border: 2px solid #fff; box-shadow: 0 0 0 1px var(--line); }
.colors input { position: absolute; opacity: 0; }
.colors label:has(input:checked) { box-shadow: 0 0 0 2px var(--ink); }

/* Editor */
.ed { border: 1.5px solid var(--line); border-radius: 14px; background: #fff; overflow: hidden; }
.ed:focus-within { border-color: var(--accent); }
.ed-tb { display: flex; flex-wrap: wrap; gap: 4px; padding: 8px; border-bottom: 1px solid var(--line); background: var(--bg-soft); position: sticky; top: 0; z-index: 2; }
.ed-tb button { min-width: 36px; height: 34px; padding: 0 9px; border-radius: 8px; border: 1px solid transparent; background: transparent; cursor: pointer; font: 700 .88rem var(--font); color: var(--ink); display: inline-flex; align-items: center; gap: 4px; }
.ed-tb button:hover { background: #fff; border-color: var(--line); }
.ed-tb .sep { width: 1px; background: var(--line); margin: 4px 4px; }
.ed-area { min-height: 380px; padding: 20px 22px; outline: none; }
.ed-area:empty::before { content: attr(data-ph); color: #9aa8b5; }
.ed-src { width: 100%; min-height: 380px; border: 0; padding: 16px; font: .9rem/1.6 ui-monospace, Menlo, Consolas, monospace; resize: vertical; outline: none; }
.post-grid { display: grid; grid-template-columns: 1fr 320px; gap: 18px; align-items: start; }
@media (max-width: 1000px) { .post-grid { grid-template-columns: 1fr; } }
.title-in { font: 800 1.5rem var(--font-head) !important; border: 0 !important; padding: 4px 0 !important; box-shadow: none !important; color: var(--ink); }
.slug-line { font-size: .85rem; color: var(--muted); display: flex; gap: 4px; align-items: center; flex-wrap: wrap; }
.slug-line input { border: 0; border-bottom: 1px dashed var(--line); font: .85rem var(--font); color: var(--primary-2); padding: 2px; min-width: 200px; flex: 1; }

/* Modal */
.modal { position: fixed; inset: 0; z-index: 120; background: rgba(26, 18, 48, .5); display: grid; place-items: center; padding: 16px; animation: fade .15s; }
.modal .dlg { background: #fff; border-radius: 20px; width: 100%; max-width: 560px; max-height: calc(100vh - 32px); overflow-y: auto; box-shadow: var(--shadow-lg); }
.modal .dlg.wide { max-width: 720px; }
.modal .dh { display: flex; justify-content: space-between; align-items: center; padding: 18px 22px; border-bottom: 1px solid var(--line); position: sticky; top: 0; background: #fff; z-index: 1; }
.modal .dh h2 { margin: 0; font-size: 1.15rem; }
.modal .db { padding: 22px; }
.modal .df { padding: 14px 22px 20px; display: flex; gap: 10px; justify-content: flex-end; flex-wrap: wrap; }
.kv { display: grid; grid-template-columns: 130px 1fr; gap: 10px 14px; margin: 0 0 16px; }
.kv dt { color: var(--muted); font-size: .88rem; }
.kv dd { margin: 0; color: var(--ink); font-weight: 600; word-break: break-word; }
@media (max-width: 480px) { .kv { grid-template-columns: 1fr; gap: 2px; } .kv dd { margin-bottom: 8px; } }
.quick { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 18px; }
.seg { display: inline-flex; flex-wrap: wrap; gap: 6px; }
.seg button { padding: 8px 12px; border-radius: 10px; border: 1.5px solid var(--line); background: #fff; font: 600 .88rem var(--font); cursor: pointer; color: var(--ink); }
.seg button.on { border-color: var(--primary); background: var(--primary); color: #fff; }
.pw-box { display: flex; gap: 8px; align-items: center; background: var(--bg-soft); border-radius: 12px; padding: 12px 14px; font: 700 1.2rem ui-monospace, Menlo, monospace; color: var(--ink); justify-content: space-between; }
.loading { display: flex; gap: 10px; align-items: center; color: var(--muted); padding: 30px 0; }
.u-card { display: grid; grid-template-columns: 46px 1fr auto; gap: 14px; align-items: center; padding: 14px 16px; background: #fff; border: 1px solid var(--line); border-radius: 14px; }
.u-card .av { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; font-weight: 800; color: #fff; background: var(--primary-2); }
.u-card .av.owner { background: #8a5a00; } .u-card .av.admin { background: var(--accent); }
.u-card b { color: var(--ink); }
.u-card .sub { font-size: .86rem; color: var(--muted); }
.u-card .acts { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
@media (max-width: 720px) { .u-card { grid-template-columns: 46px 1fr; } .u-card .acts { grid-column: 1 / -1; justify-content: flex-start; } }
.help { font-size: .86rem; color: var(--muted); margin: 4px 0 0; }
.notice { display: flex; gap: 10px; padding: 12px 14px; background: #fff8e6; border: 1px solid #f5e0a8; border-radius: 12px; color: #6b4a00; font-size: .92rem; margin-bottom: 16px; }

/* Ομάδα: φόρμα + συμπαγής λίστα με σύρσιμο */
.team-form .tf-grid { display: grid; grid-template-columns: 220px 1fr; gap: 18px; align-items: start; }
@media (max-width: 760px) { .team-form .tf-grid { grid-template-columns: 1fr; } }
.tlist { list-style: none; margin: 0; padding: 0; }
.tl-i { display: flex; align-items: center; gap: 12px; padding: 8px 10px; background: #fff; border: 1px solid var(--line); border-radius: 12px; margin-bottom: 6px; }
.tl-i.editing { border-color: var(--accent, #7758b3); box-shadow: 0 0 0 3px rgba(119, 88, 179, .15); }
.tl-i.dragging { box-shadow: 0 12px 30px rgba(30, 26, 48, .22); opacity: .96; }
.tl-h { cursor: grab; touch-action: none; user-select: none; font-size: 20px; line-height: 1; color: var(--muted); padding: 6px 4px; border-radius: 6px; }
.tl-h:hover { background: var(--bg-soft); color: var(--ink); }
.tl-i.dragging .tl-h { cursor: grabbing; }
.tl-av { width: 38px; height: 38px; flex: 0 0 38px; border-radius: 50%; background: #ece6f7 center/cover no-repeat; color: #5e4296; display: grid; place-items: center; font-weight: 700; }
.tl-t { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.tl-t b { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tl-t small { color: var(--muted); font-size: .82rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tl-ph { list-style: none; border: 2px dashed #cfc3ea; border-radius: 12px; margin-bottom: 6px; background: #faf8fe; }
body.no-select { user-select: none; cursor: grabbing; }

/* Νέο ραντεβού από το πάνελ */
.slots { display: flex; flex-wrap: wrap; gap: 6px; }
.slots button { padding: 7px 11px; border-radius: 10px; border: 1.5px solid var(--line); background: #fff; font: 600 .86rem var(--font); cursor: pointer; color: var(--ink); }
.slots button:hover { border-color: var(--accent, #7758b3); }
.slots button.on { border-color: var(--primary); background: var(--primary); color: #fff; }
.slots .loading { padding: 6px 0; }
label.check { display: flex; align-items: center; gap: 8px; font-weight: 600; cursor: pointer; }
label.check input { width: 18px; height: 18px; accent-color: var(--accent, #7758b3); }
label.check input:disabled + * , label.check:has(input:disabled) { opacity: .6; cursor: default; }
.tl-av.sv { color: #fff; }
.tl-av.sv .icon { width: 18px; height: 18px; }
.tl-av.sv.management { background: var(--c-management); } .tl-av.sv.pest { background: var(--c-pest); } .tl-av.sv.cleaning { background: var(--c-cleaning); }
.tl-i.off { opacity: .62; }
.tl-i .switch.sm { font-size: .8rem; gap: 6px; }
.tl-i .switch.sm span { min-width: 62px; color: var(--muted); }
@media (max-width: 600px) { .tl-i .switch.sm span { display: none; } }

/* Χρήστες χωρίς popup */
.role-legend { display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: .84rem; color: var(--muted); margin: -6px 0 12px; }
.tl-av.u { color: #fff; font-size: .82rem; }
.tl-av.u.owner { background: #b7791f; } .tl-av.u.admin { background: #2f855a; } .tl-av.u.employee { background: #3b6fd8; }
.u-row .tl-t b { white-space: normal; }
.u-row .tl-t b .badge { vertical-align: 1px; margin-left: 2px; }
.u-acts { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
@media (max-width: 760px) { .u-row { flex-wrap: wrap; } .u-acts { width: 100%; justify-content: flex-start; padding-left: 50px; } }
.armed, .icon-btn.armed, .btn.armed { background: #fdecea !important; color: #b42318 !important; border-color: #f3b4ae !important; width: auto !important; padding: 0 10px; gap: 6px; display: inline-flex; align-items: center; font: 600 .8rem var(--font); }
.cred-box { border: 2px solid var(--accent, #7758b3); }
.cred-box h2 { display: flex; align-items: center; gap: 8px; }

/* ================= Οικονομικά ================= */
.mt-1 { margin-top: 6px; }
.fgrid.three { grid-template-columns: repeat(3, 1fr); }
.fgrid .span2 { grid-column: span 2; }
@media (max-width: 900px) { .fgrid.three { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .fgrid.three { grid-template-columns: 1fr; } .fgrid .span2 { grid-column: auto; } }
.two-col.eq { grid-template-columns: 1fr 1fr; }
@media (max-width: 1000px) { .two-col.eq { grid-template-columns: 1fr; } }
.fin-bar .input { max-width: 190px; }
.fin-kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 18px; }
@media (max-width: 1100px) { .fin-kpis { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .fin-kpis { grid-template-columns: 1fr; } }
.fkpi { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 14px 16px; display: flex; flex-direction: column; gap: 2px; min-width: 0; border-top: 4px solid #d9d4e6; }
.fkpi small { color: var(--muted); font-weight: 600; font-size: .8rem; text-transform: uppercase; letter-spacing: .03em; }
.fkpi b { font-size: 1.35rem; color: var(--ink); font-variant-numeric: tabular-nums; }
.fkpi span { color: var(--muted); font-size: .78rem; }
.fkpi.in { border-top-color: #7758b3; } .fkpi.out { border-top-color: #e08a3c; }
.fkpi.pos { border-top-color: #2f855a; } .fkpi.pos b { color: #276749; }
.fkpi.neg { border-top-color: #c53030; } .fkpi.neg b { color: #b42318; }
.fkpi.warn { border-top-color: #d69e2e; }
.legend { display: flex; gap: 14px; font-size: .84rem; color: var(--muted); }
.legend span { display: inline-flex; align-items: center; gap: 6px; }
.legend i { width: 12px; height: 12px; border-radius: 3px; display: inline-block; }
.chart-w { position: relative; }
.fchart { width: 100%; height: auto; display: block; }
.fchart .grid { stroke: #ece9f2; stroke-width: 1; }
.fchart .base { stroke: #b9b3c8; stroke-width: 1; }
.fchart .ax { fill: #7b768c; font-size: 11px; font-family: inherit; }
.fchart .hit { fill: transparent; cursor: default; }
.fchart .hit.on { fill: rgba(119, 88, 179, .07); }
.ctip { position: absolute; top: 4px; width: 190px; background: #1e1a30; color: #fff; border-radius: 10px; padding: 10px 12px; font-size: .82rem; pointer-events: none; opacity: 0; transition: opacity .12s; display: flex; flex-direction: column; gap: 3px; z-index: 2; }
.ctip.on { opacity: 1; }
.ctip span { display: flex; align-items: center; gap: 6px; }
.ctip i { width: 9px; height: 9px; border-radius: 2px; }
.ctip em { font-style: normal; margin-left: auto; font-variant-numeric: tabular-nums; }
.ctip .res { border-top: 1px solid rgba(255, 255, 255, .2); padding-top: 4px; margin-top: 2px; }
.tbl-wrap { overflow-x: auto; }
.tbl { width: 100%; border-collapse: collapse; font-size: .9rem; margin-top: 8px; }
.tbl th { text-align: left; color: var(--muted); font-weight: 600; font-size: .8rem; padding: 8px 10px; border-bottom: 1px solid var(--line); }
.tbl td { padding: 8px 10px; border-bottom: 1px solid #f0edf5; font-variant-numeric: tabular-nums; }
.tbl .r { text-align: right; white-space: nowrap; }
.tbl .neg { color: #b42318; } .tbl .warn { color: #b7791f; font-weight: 600; }
.tbl tr.tot td, .tbl tr.carry td { font-weight: 700; background: #faf8fd; }
.tbl tr.fut td { color: #aaa4b8; }
.hbars { display: grid; gap: 8px; }
.hb { display: grid; grid-template-columns: minmax(90px, 38%) 1fr auto; gap: 10px; align-items: center; font-size: .88rem; }
.hb-l { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hb-t { background: #f3f0f8; border-radius: 4px; height: 10px; overflow: hidden; }
.hb-t i { display: block; height: 100%; border-radius: 0 4px 4px 0; }
.hb b { font-variant-numeric: tabular-nums; font-size: .86rem; }
.mini-list { list-style: none; margin: 0 0 8px; padding: 0; }
.mini-list li { border-bottom: 1px solid #f0edf5; }
.mini-list li:last-child { border-bottom: 0; }
.mini-list a, .mini-list .mini-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 9px 2px; color: inherit; text-decoration: none; }
.mini-list a:hover { background: #faf8fd; }
.mini-list a > span:first-child, .mini-row > span:first-child { display: flex; flex-direction: column; min-width: 0; }
.mini-list small { color: var(--muted); font-size: .8rem; }
.fin-set summary { cursor: pointer; list-style: none; }
.fin-set summary::-webkit-details-marker { display: none; }
.fin-set summary h2 { display: inline-flex !important; align-items: center; gap: 8px; margin: 0; }
.in-eur { position: relative; }
.in-eur input { padding-right: 30px; text-align: right; font-variant-numeric: tabular-nums; }
.in-eur span { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); color: var(--muted); pointer-events: none; }
.tx-form.income { border-top: 4px solid #7758b3; } .tx-form.expense { border-top: 4px solid #e08a3c; }
.seg button .icon { width: 15px; height: 15px; vertical-align: -3px; }
.files { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 8px; }
.fchip { display: flex; align-items: center; gap: 8px; border: 1px solid var(--line); border-radius: 10px; padding: 4px 6px 4px 4px; background: #fff; max-width: 280px; }
.fthumb { width: 40px; height: 40px; border-radius: 7px; background: #f3f0f8 center/cover no-repeat; flex: none; display: grid; place-items: center; font: 700 .7rem var(--font); color: #b42318; text-decoration: none; }
.fname { font-size: .84rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ink); }
.file-btn { cursor: pointer; }
.fin-sum { display: flex; flex-wrap: wrap; gap: 6px 16px; align-items: baseline; font-size: .88rem; color: var(--muted); margin-bottom: 10px; }
.fin-sum .in { color: #5e4296; font-weight: 600; } .fin-sum .out { color: #b1621f; font-weight: 600; }
.tx-row { cursor: pointer; }
.tx-row:hover { border-color: #cfc3ea; }
.tl-av.tx { color: #fff; } .tl-av.tx .icon { width: 18px; height: 18px; }
.tl-av.tx.income { background: #7758b3; } .tl-av.tx.expense { background: #e08a3c; }
.tx-d { font-size: .82rem; color: var(--muted); width: 74px; flex: none; font-variant-numeric: tabular-nums; }
.tx-amt { font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
.tx-amt.expense { color: #b1621f; }
.clip { display: inline-flex; align-items: center; gap: 2px; color: var(--muted); font-size: .8rem; }
.clip .icon { width: 14px; height: 14px; }
@media (max-width: 700px) { .tx-row, .ct-h { flex-wrap: wrap; } .tx-d { width: auto; } .tx-row .tl-t { flex-basis: calc(100% - 60px); order: 1; } .tx-row .tx-d { order: 0; } .tx-row .tx-amt, .tx-row .badge, .tx-row .clip { order: 2; } }
.ct-row, .q-row { display: block; }
.ct-h { display: flex; align-items: center; gap: 12px; cursor: pointer; }
.ct-h .chev { color: var(--muted); transition: transform .15s; display: inline-flex; }
.ct-row.open .chev { transform: rotate(180deg); }
.tl-av.ct { color: #fff; } .tl-av.ct.customer { background: #7758b3; } .tl-av.ct.supplier { background: #e08a3c; } .tl-av.ct.both { background: #3b6fd8; }
.ccard { border-top: 1px solid var(--line); margin-top: 10px; padding-top: 12px; }
.ccard h3 { font-size: .95rem; margin: 14px 0 4px; }
.ccard-k { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 12px; }
.ccard-k div { background: var(--bg-soft, #f6f4fa); border-radius: 10px; padding: 8px 12px; display: flex; flex-direction: column; min-width: 130px; }
.ccard-k small { color: var(--muted); font-size: .76rem; }
.ccard-k b { font-variant-numeric: tabular-nums; }
.ccard-k .warn { background: #fdf3e1; } .ccard-k .warn b { color: #975a16; }
.kv.sm { grid-template-columns: 120px 1fr; gap: 6px 12px; font-size: .9rem; }
.tl-av.q { background: #ece6f7; color: #5e4296; } .tl-av.q .icon { width: 18px; height: 18px; }
.q-acts { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0 0 50px; }
.q-acts .ok { color: #276749; border-color: #b7dfc6; }
.q-panel { margin: 10px 0 2px 50px; padding: 12px; border-radius: 12px; background: #faf8fd; border: 1px solid #e6def5; }
@media (max-width: 640px) { .q-acts, .q-panel { margin-left: 0; } }
.qitems { margin: 16px 0 6px; }
.qi-h, .qi { display: grid; grid-template-columns: minmax(0, 1fr) 70px 70px 100px 80px 100px 34px; gap: 8px; align-items: start; }
.qi-h { font-size: .78rem; font-weight: 700; color: var(--muted); padding: 0 2px 6px; border-bottom: 1px solid var(--line); margin-bottom: 8px; }
.qi { margin-bottom: 8px; }
.qi textarea { min-height: 42px; resize: vertical; overflow: hidden; }
.qi input, .qi select, .qi textarea { width: 100%; }
.qi input[data-f=qty], .qi input[data-f=price] { text-align: right; }
.qline { padding-top: 10px; font-weight: 700; font-variant-numeric: tabular-nums; }
.qi-h .r, .qline { text-align: right; }
@media (max-width: 760px) {
  .qi-h { display: none; }
  .qi { grid-template-columns: 1fr 1fr 1fr; background: #faf8fd; padding: 8px; border-radius: 10px; }
  .qi textarea { grid-column: 1 / -1; } .qline { grid-column: span 2; text-align: left; }
}
.qtot { margin: 8px 0 16px auto; max-width: 320px; display: grid; gap: 4px; }
.qtot div { display: flex; justify-content: space-between; font-variant-numeric: tabular-nums; }
.qtot span { color: var(--muted); }
.qtot .g { border-top: 2px solid var(--primary); padding-top: 6px; margin-top: 4px; font-size: 1.1rem; }
.qtot .g b { color: var(--primary); }
.nc { background: #faf8fd; border: 1px dashed #d9d0ec; border-radius: 12px; padding: 12px; }
.two-col.eq > .box + .box { margin-top: 0; }
.two-col.eq { margin-top: 18px; }
[data-form] > .box, [data-cred] > .box, [data-sumbox] + .two-col, [data-year] > .box, [data-pays] > .box { margin-bottom: 18px; }
.two-col + details.box, .two-col + .box { margin-top: 18px; }
.field .file-btn { width: auto; display: inline-flex; align-self: flex-start; justify-self: start; }
.field .file-btn .icon { margin-right: 4px; }
.qi textarea.input { font: inherit; line-height: 1.4; padding: 9px 12px; }
.qi .input { padding-left: 10px; padding-right: 10px; }

/* Μαζική εισαγωγή */
.imp-help { margin: 0 0 10px; padding-left: 20px; color: var(--muted); font-size: .9rem; line-height: 1.6; }
.imp-paste { width: 100%; min-height: 150px; font: .85rem/1.45 ui-monospace, Menlo, Consolas, monospace; white-space: pre; overflow: auto; }
.imp-cols { display: flex; gap: 10px; overflow-x: auto; padding-bottom: 8px; }
.imp-col { flex: 0 0 190px; border: 1px solid var(--line); border-radius: 12px; padding: 10px; background: #fff; display: flex; flex-direction: column; gap: 8px; }
.imp-h { font-weight: 700; font-size: .88rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.imp-col select { width: 100%; padding: 8px 10px; font-size: .85rem; }
.imp-s { display: flex; flex-direction: column; gap: 3px; }
.imp-s span { font-size: .8rem; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; background: #faf8fd; border-radius: 6px; padding: 3px 7px; }
.imp-prev { max-height: 520px; overflow: auto; }
.imp-prev .tbl td { white-space: nowrap; max-width: 260px; overflow: hidden; text-overflow: ellipsis; }
.tbl tr.err td { background: #fdecea; }
.imp-err { color: #b42318; font-weight: 600; }
.seg[data-what] button .icon { width: 16px; height: 16px; vertical-align: -3px; }

/* Φίλτρα ραντεβού */
.bk-dates { align-items: center; flex-wrap: wrap; gap: 10px; }
.bk-dates label { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; font-size: .88rem; color: var(--muted); }
.bk-dates .input[type=date] { width: auto; min-width: 150px; }
.bk-dates .seg button { padding: 6px 10px; font-size: .82rem; }
.bk-count { margin: -4px 0 10px; font-size: .86rem; }
.bk-count:empty { display: none; }
.tl-i .tl-on { border: 0; cursor: pointer; font: inherit; font-size: .74rem; font-weight: 700; white-space: nowrap; }
.tl-i .tl-on:hover { filter: brightness(.95); }
@media (max-width: 600px) { .bk-dates label { flex: 1 1 45%; } .bk-dates .input[type=date] { min-width: 0; width: 100%; } }
.seg button { display: inline-flex; align-items: center; gap: 6px; }
.seg button .icon { width: 15px; height: 15px; }


/* Ολοήμερες εργασίες */
.ad-list { width: 100%; background: #f7f5fb; border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; }
.ad-list ul { margin: 0 0 8px; padding: 0; list-style: none; }
.ad-list li { padding: 6px 0; border-bottom: 1px dashed var(--line); font-size: .9rem; }
.ad-list li:last-child { border-bottom: 0; }
.ad-list p { margin: 0 0 6px; font-size: .9rem; }
.ad-list .ad-note { margin: 4px 0 0; color: var(--primary); display: flex; gap: 6px; align-items: center; }

/* Προσφορές ανά κατηγορία */
.qkind { margin-top: 4px; }
.qkind button { display: inline-flex; align-items: center; gap: 6px; }
.qkind button .icon { width: 16px; height: 16px; }
.kp { margin: 14px 0 6px; padding: 16px; border-radius: 14px; background: #faf8fd; border: 1px solid #e6def5; }
.kp .fgrid { margin: 0; }
.kp-svcs { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 4px; }
.kchip { display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; border-radius: 12px; border: 1.5px solid var(--line); background: #fff; font-weight: 600; font-size: .9rem; cursor: pointer; }
.kchip.on { border-color: var(--accent, #7758b3); background: color-mix(in srgb, var(--accent, #7758b3) 10%, #fff); color: var(--primary); }
.kchip input { accent-color: var(--accent, #7758b3); }
.kp-box { margin-top: 12px; padding: 14px; background: #fff; border: 1px solid var(--line); border-radius: 12px; }
.kp-t { display: flex; align-items: center; gap: 8px; font-weight: 700; color: var(--primary); margin-bottom: 10px; }
.kp-t small { font-weight: 500; color: var(--muted); }
.kp-row { display: grid; grid-template-columns: minmax(160px, 220px) 1fr; gap: 14px; align-items: end; }
.kp-row .help { margin: 0 0 4px; }
.kp-freqs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.kp-f { border: 1.5px solid var(--line); border-radius: 12px; padding: 10px; display: grid; gap: 8px; opacity: .6; }
.kp-f.on { opacity: 1; border-color: color-mix(in srgb, var(--accent, #7758b3) 45%, #fff); }
.kp-f .check { font-weight: 700; }
.kp-main { font-size: .78rem; color: var(--muted); display: flex; gap: 6px; align-items: center; }
.kp-sum { display: flex; justify-content: space-between; align-items: center; margin-top: 12px; padding: 12px 16px; border-radius: 12px; background: var(--primary); color: #fff; }
.kp-sum span { opacity: .85; font-size: .9rem; }
.kp-sum b { font-size: 1.25rem; }
.pl-lines { display: grid; gap: 8px; }
.pl-line { border: 1.5px solid var(--line); border-radius: 12px; background: #fff; }
.pl-line.on { border-color: color-mix(in srgb, var(--accent, #7758b3) 45%, #fff); }
.pl-h { display: flex; align-items: center; gap: 10px; padding: 12px 14px; cursor: pointer; }
.pl-h b { flex: 1; }
.pl-pr { font-weight: 700; color: var(--primary); }
.pl-b { display: none; padding: 0 14px 12px; }
.pl-line.on .pl-b { display: block; }
.pl-grid { overflow-x: auto; }
.pl-grid table { border-collapse: collapse; width: 100%; min-width: 640px; }
.pl-grid th { font-size: .75rem; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); padding: 6px 4px; text-align: center; }
.pl-grid td { padding: 4px; }
.pl-grid .input { width: 100%; padding: 8px; text-align: right; }
.sig-prev { height: 70px; border: 1px dashed var(--line); border-radius: 10px; display: grid; place-items: center; margin-bottom: 8px; background: #fff; }
.sig-prev img { max-height: 62px; max-width: 100%; }
@media (max-width: 700px) { .kp-freqs { grid-template-columns: 1fr; } .kp-row { grid-template-columns: 1fr; } }
.field .in-eur input, .kp .in-eur input { padding-right: 34px !important; }
.kp-f .in-eur input { width: 100%; padding: 9px 64px 9px 10px !important; border: 1.5px solid var(--line); border-radius: 10px; font: 600 .95rem var(--font); background: #fff; }
.kp-f .in-eur span { font-size: .8rem; }
.qkind { margin-bottom: 6px; }
.pr-rows { display: grid; gap: 6px; margin-top: 4px; }
.pr-hd, .pr-row { display: grid; grid-template-columns: 1.6fr 1fr 1fr 110px; gap: 10px; align-items: center; }
.pr-hd { font-size: .74rem; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); font-weight: 700; }
.pr-row > span { font-weight: 600; font-size: .92rem; }
.pr-row .input { width: 100%; padding: 9px 10px; }
.pr-row .r, .pr-hd .r { text-align: right; }
.in-u { position: relative; }
.in-u input { padding-right: 84px !important; text-align: right; }
.in-u em { position: absolute; right: 10px; top: 50%; transform: translateY(-50%); font-style: normal; color: var(--muted); font-size: .8rem; pointer-events: none; }
@media (max-width: 700px) { .pr-hd { display: none; } .pr-row { grid-template-columns: 1fr 1fr; } .pr-row > span { grid-column: 1 / -1; } }

/* Διαχείριση πολυκατοικιών */
.page-title .back { display: inline-flex; align-items: center; gap: 6px; font-size: .88rem; margin-bottom: 6px; }
.page-title .back .icon { width: 16px; height: 16px; }
.bm-tbl tr.click { cursor: pointer; }
.bm-tbl tr.click:hover td { background: #faf8fd; }
.bm-tbl td small { font-size: .8rem; }
.tbl .ok-t { color: #1c7a4a; }
.input.sm { padding: 6px 8px; font-size: .88rem; min-width: 56px; }
.input.r, .bm-edit .r input { text-align: right; }
.bm-edit td { padding: 4px 4px; }
.bm-edit td:nth-child(1) .input { width: 64px; } .bm-edit td:nth-child(2) .input { width: 56px; }
.bm-edit td:nth-child(3) .input, .bm-edit td:nth-child(4) .input { min-width: 150px; padding: 6px 8px; font-size: .88rem; }
.bm-edit td .input.sm.r { width: 76px; }
.bm-edit tfoot td { border-top: 2px solid var(--line); }
.tbl tr.bm-pay > td { background: #faf8fd; }
.bm-payf { display: flex; gap: 12px; align-items: flex-end; flex-wrap: wrap; }
.bm-payf .field { margin: 0; flex: 1 1 140px; }
.bm-contacts { display: grid; gap: 10px; padding: 6px 4px; }
.bm-contacts h4 { margin: 0 0 6px; font-size: .9rem; color: var(--primary); }
.bm-mbar { display: flex; justify-content: space-between; gap: 14px; align-items: center; flex-wrap: wrap; }
.bm-months { display: flex; gap: 6px; flex-wrap: wrap; }
.bm-months button { display: grid; text-align: left; padding: 7px 12px; border-radius: 12px; border: 1.5px solid var(--line); background: #fff; font: 600 .88rem var(--font); cursor: pointer; color: var(--ink); }
.bm-months button small { font-weight: 500; font-size: .72rem; color: var(--muted); }
.bm-months button.iss small { color: #1c7a4a; }
.bm-months button.on { border-color: var(--primary); background: var(--primary); color: #fff; }
.bm-months button.on small { color: rgba(255,255,255,.8); }
.bm-newm { display: inline-flex; align-items: center; gap: 8px; font-size: .86rem; color: var(--muted); font-weight: 600; }
.bm-newm input { padding: 7px 10px; border: 1.5px solid var(--line); border-radius: 10px; font: inherit; }
.bm-exp-h, .bm-exp { display: grid; grid-template-columns: 2fr 1.6fr 1.3fr 1fr 120px 36px; gap: 8px; align-items: center; }
.bm-exp-h { font-size: .74rem; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); font-weight: 700; padding: 0 2px 6px; }
.bm-exp { margin-bottom: 6px; }
.bm-exp .input { padding: 8px 10px; font-size: .9rem; width: 100%; }
.bm-exp-tot { display: flex; justify-content: flex-end; gap: 16px; padding: 8px 46px 0 0; font-size: .95rem; }
.bm-exp-tot span { color: var(--muted); }
.bm-cat { display: grid; grid-template-columns: 2fr 1.4fr 1fr 36px; gap: 8px; margin-bottom: 6px; }
.bm-cat .input { padding: 8px 10px; }
.bm-res tfoot td { border-top: 2px solid var(--line); background: #faf8fd; }
.link-btn { background: none; border: 0; color: var(--accent); cursor: pointer; font: inherit; font-size: .82rem; text-decoration: underline; padding: 0 4px; }
@media (max-width: 900px) { .bm-exp-h { display: none; } .bm-exp { grid-template-columns: 1fr 1fr; padding: 10px; border: 1px solid var(--line); border-radius: 12px; } .bm-exp [data-e=desc] { grid-column: 1 / -1; } .bm-cat { grid-template-columns: 1fr 1fr; } }
.bm-exp .in-eur input.input { padding-right: 30px !important; text-align: right; }
.bm-res td:nth-child(2) { white-space: nowrap; max-width: 160px; overflow: hidden; text-overflow: ellipsis; }

/* ---- Διαχείριση πολυκατοικιών (2): συνεργάτες, πάγιες, βλάβες ---- */
.bm-desc { position: relative; display: flex; align-items: center; gap: 6px; }
.bm-desc .input { flex: 1; min-width: 0; }
.bm-rec { display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 7px; background: var(--bg-tint); color: var(--primary-2); flex: none; }
.bm-rec .icon { width: 14px; height: 14px; }
input.input.linked { border-color: color-mix(in srgb, var(--accent) 55%, #fff); background: color-mix(in srgb, var(--accent) 6%, #fff); }
@media (max-width: 900px) { .bm-exp .bm-desc { grid-column: 1 / -1; } }
.bm-rect .input { padding: 8px 9px; font-size: .88rem; min-width: 110px; }
.bm-rect td:first-child .input { min-width: 180px; }
.bm-rect .in-eur .input { min-width: 90px; padding-right: 28px !important; text-align: right; }
.wk-bar { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 10px; }
.wk-bar .seg button small { background: rgba(0,0,0,.08); border-radius: 99px; padding: 0 6px; font-size: .75rem; }
.wk-bar .seg button.on small { background: rgba(255,255,255,.25); }
.wk-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #e5484d; margin-right: 6px; vertical-align: 2px; }
.wk-grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 16px; align-items: start; }
@media (max-width: 1100px) { .wk-grid { grid-template-columns: 1fr; } }
.wk-grid .fgrid.three { grid-template-columns: repeat(2, 1fr); }
.fgrid.two { grid-template-columns: 1fr 1fr; }
@media (max-width: 640px) { .fgrid.two, .wk-grid .fgrid.three { grid-template-columns: 1fr; } }
.chk { display: flex !important; align-items: center; gap: 8px; font-weight: 500 !important; margin: 4px 0; cursor: pointer; }
.chk input { width: auto !important; }
.wk-ph { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.wk-ph span { position: relative; }
.wk-ph img { width: 96px; height: 72px; object-fit: cover; border-radius: 10px; border: 1px solid var(--line); display: block; }
.wk-ph .icon-btn { position: absolute; top: -8px; right: -8px; width: 26px; height: 26px; background: #fff; box-shadow: 0 2px 8px rgba(0,0,0,.15); }
.wk-tl { border-left: 2px solid var(--line); margin-left: 4px; padding-left: 16px; display: grid; gap: 14px; }
.wk-tl > div { position: relative; }
.wk-tl > div:before { content: ""; position: absolute; left: -22px; top: 4px; width: 10px; height: 10px; border-radius: 50%; background: var(--primary); }
.wk-tl > div.int:before { background: #b9b3c9; }
.wk-tl > div.res:before { background: #e5484d; }
.wk-tl small { color: var(--muted); }
.wk-tl p { margin: 4px 0 0; white-space: pre-wrap; }
.wk-tbl td { vertical-align: top; }
.bm-rect td.rec-d { min-width: 240px; }
.bm-rect td.rec-d .input { display: block; width: 100%; }
.bm-rect td.rec-d .input + .input { margin-top: 6px; font-size: .84rem; }
.bm-rect input[type=month] { min-width: 0; width: 150px; }
.bm-rect select.input { min-width: 0; }
.bm-rect td:nth-child(2) select.input { min-width: 160px; }
.notice.ok-n { background: color-mix(in srgb, var(--accent) 12%, #fff); border-color: color-mix(in srgb, var(--accent) 35%, #fff); color: var(--accent-ink); }
.bm-pins { display: grid; gap: 8px; }
.bm-pin { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; }
.bm-pin > span { display: flex; flex-direction: column; min-width: 200px; flex: 1; }
.bm-pin code { font: 800 1.25rem/1 var(--font-head); letter-spacing: .22em; color: var(--primary-2); background: var(--bg-tint); padding: 8px 12px; border-radius: 10px; }
.on-steps { margin: 8px 0 14px; padding-left: 20px; display: grid; gap: 6px; }
.on-steps code, .on-urls code { background: var(--bg-tint); padding: 2px 6px; border-radius: 6px; font-size: .85rem; }
.on-urls { display: grid; gap: 8px; }
.on-urls > div { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; border: 1px solid var(--line); border-radius: 10px; padding: 8px 10px; }
.on-urls small { min-width: 200px; }
.on-urls code { flex: 1; word-break: break-all; }
.rf-log { white-space: pre-wrap; word-break: break-all; font: .78rem/1.45 ui-monospace, Menlo, monospace; background: #f6f5fa; border: 1px solid var(--line); border-radius: 10px; padding: 12px; max-height: 420px; overflow: auto; margin-top: 10px; }

/* Ιστορικό & αλλαγή προσώπων διαμερίσματος */
.bm-hist { border-top: 1px dashed var(--line, #e5e1ee); padding-top: 8px; }
.bm-hist h4 { display: flex; align-items: center; gap: 6px; margin: 0 0 6px; font-size: .9rem; color: var(--primary); }
.bm-hist h4 svg { width: 15px; height: 15px; }
.bm-hist ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.bm-hist li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 10px; border: 1px solid var(--line, #e5e1ee); border-radius: 10px; background: #fbfaff; }
.bm-hist li > span { display: grid; gap: 2px; min-width: 220px; flex: 1; }
.bm-hist li .bm-payf { width: 100%; }
.bm-hist b.neg, .bm-debt b.neg { color: #b42318; }
.bm-chg { border: 1.5px solid #d9d2ea; border-radius: 12px; padding: 10px 12px; background: #fbf9ff; }
.bm-chg h4 { margin: 0 0 8px; }
.bm-debt { margin: 8px 0 4px; padding: 8px 10px; background: #fff; border-radius: 10px; border: 1px solid var(--line, #e5e1ee); }
.bm-debt p { margin: 0 0 6px; }
.bm-debt .rad { display: flex; gap: 8px; align-items: center; padding: 3px 0; font-size: .92rem; cursor: pointer; }
.ct-apts { margin-top: 10px; }
.ct-apts .mini-list small b.neg { color: #b42318; }

/* Παραστατικά δαπανών & πληρωμή δαπάνης */
.fchip { display: inline-flex; align-items: center; gap: 2px; margin: 2px 4px 2px 0; padding: 2px 4px 2px 8px; border-radius: 999px; background: #f5f2fb; border: 1px solid #e5dff3; font-size: .8rem; max-width: 100%; }
.fchip a { display: inline-flex; align-items: center; gap: 4px; color: #5b43a0; text-decoration: none; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fchip button { border: 0; background: none; cursor: pointer; color: #8a879a; padding: 2px 4px; line-height: 1; font-size: .95rem; display: inline-flex; }
.fchip button:hover { color: #34255e; }
.fchip.priv { background: #f4f4f6; border-style: dashed; }
.fchip.priv a { color: #6b6782; }
.bm-fcell { min-width: 160px; }
.bm-exp-files { margin: -4px 0 10px; padding: 0 2px; display: flex; flex-wrap: wrap; align-items: center; gap: 2px; font-size: .85rem; }
.paydlg-sum { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 12px; background: #f7f5fc; border-radius: 12px; margin-bottom: 12px; }
.paydlg-sum span { display: grid; gap: 2px; }
.paydlg-sum small { color: #6b6782; }
.paydlg-sum > b { font-size: 1.15rem; color: #34255e; white-space: nowrap; }
.modal .db .fgrid + .fgrid:not(:empty), .modal .db .fgrid + .field, .modal .db .field + .field { margin-top: 14px; }
.modal .db .fgrid:empty { display: none; }
.app-ver { padding: 6px 14px 10px; font-size: .72rem; color: rgba(255,255,255,.45); letter-spacing: .02em; }

/* Εσωτερική πλοήγηση ενότητας (Διαχείριση πολυκατοικιών) */
#hubnav.hubnav { position: sticky; top: 0; z-index: 30; margin: -4px 0 18px; padding: 10px 0 0; background: #f5f3f9; }
.hubnav .hub-t { display: flex; align-items: center; gap: 8px; font: 700 .72rem/1 Commissioner, Inter, Arial; letter-spacing: .12em; text-transform: uppercase; color: var(--accent, #7758b3); margin: 0 0 8px 2px; }
.hubnav .hub-t svg { width: 15px; height: 15px; }
.hubnav .hub-tabs { display: flex; gap: 4px; padding: 5px; background: #fff; border: 1px solid var(--line, #e7e3f0); border-radius: 16px; box-shadow: 0 6px 18px -12px rgba(52, 37, 94, .35); overflow-x: auto; scrollbar-width: none; }
.hubnav .hub-tabs::-webkit-scrollbar { display: none; }
.hubnav .hub-tabs a { flex: none; display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; border-radius: 11px; color: #4a4560; font-weight: 600; font-size: .92rem; text-decoration: none; white-space: nowrap; transition: background .15s, color .15s; }
.hubnav .hub-tabs a svg { width: 17px; height: 17px; opacity: .8; }
.hubnav .hub-tabs a:hover { background: #f5f2fb; color: #34255e; }
.hubnav .hub-tabs a.on { background: var(--primary, #34255e); color: #fff; box-shadow: 0 4px 12px -6px rgba(52, 37, 94, .6); }
.hubnav .hub-tabs a.on svg { opacity: 1; }
.hubnav .hub-tabs em { font-style: normal; font-size: .72rem; font-weight: 700; padding: 2px 7px; border-radius: 99px; background: #efeaf8; color: #5b43a0; }
.hubnav .hub-tabs em.warn { background: #fdf1d8; color: #8a5a00; }
.hubnav .hub-tabs em.err { background: #fde8e6; color: #9b2c20; }
.hubnav .hub-tabs a.on em { background: rgba(255, 255, 255, .18); color: #fff; }
@media (max-width: 760px) { #hubnav.hubnav { margin-top: 0; position: static; padding-top: 0; } .hubnav .hub-tabs a { padding: 8px 11px; font-size: .88rem; } }

/* ===== Απεντόμωση: πρόγραμμα εργαζομένων ===== */
.pc-board-box { padding-top: 14px; }
.pc-bar { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; }
.pc-nav { display: flex; align-items: center; gap: 6px; }
.pc-nav b { margin-left: 8px; font-size: 1.02rem; color: var(--primary); }
.pc-flt { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.seg.sm button { padding: 7px 12px; font-size: .86rem; }
.pc-scroll { overflow-x: auto; border: 1px solid var(--line); border-radius: 14px; }
.pc-grid { display: grid; min-width: 1040px; }
.pc-h { position: sticky; top: 0; background: #faf9fd; padding: 10px 8px; font: 700 .8rem Inter, Arial; color: #4a4560; border-bottom: 1px solid var(--line); text-align: center; z-index: 1; }
.pc-h.today { color: #fff; background: var(--accent); }
.pc-emp { display: flex; gap: 8px; align-items: flex-start; padding: 10px; border-bottom: 1px solid var(--line); background: #fff; position: sticky; left: 0; z-index: 2; border-right: 1px solid var(--line); }
.pc-emp b { display: block; font-size: .9rem; line-height: 1.2; }
.pc-emp small { color: var(--muted, #6b6782); font-size: .75rem; }
.dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; flex: none; margin-top: 4px; }
.pc-cell { position: relative; min-height: 92px; padding: 6px 6px 26px; border-bottom: 1px solid var(--line); border-left: 1px solid #f0edf6; display: flex; flex-direction: column; gap: 5px; transition: background .12s; }
.pc-cell.today { background: #fbf9ff; }
.pc-cell.sun { background: #fafafa; }
.pc-cell.over { background: #efe9fb; outline: 2px dashed var(--accent); outline-offset: -3px; }
.pc-add { position: absolute; left: 6px; right: 6px; bottom: 4px; height: 20px; border: 1px dashed transparent; border-radius: 7px; background: none; color: transparent; cursor: pointer; font-weight: 700; }
.pc-cell:hover .pc-add { border-color: #d9d2ea; color: var(--accent); }
.pc-card { border-radius: 9px; padding: 6px 8px; background: #f5f2fb; border-left: 3px solid var(--accent); cursor: pointer; font-size: .8rem; line-height: 1.25; display: grid; gap: 1px; box-shadow: 0 1px 2px rgba(52, 37, 94, .06); }
.pc-card:hover { box-shadow: 0 4px 12px -4px rgba(52, 37, 94, .3); }
.pc-card .t { font-weight: 700; color: #34255e; display: flex; align-items: center; gap: 3px; font-size: .74rem; }
.pc-card b { font-size: .82rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pc-card small { color: #6b6782; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pc-card.c-clean { background: #e9f6f1; border-left-color: #1f8a70; }
.pc-card.c-mgmt { background: #eef3fc; border-left-color: #2f6fd1; }
.pc-card.done { opacity: .72; }
.pc-card.done .t { color: #1f6b55; }
.pc-card.late { border-left-color: #c0392b; background: #fdeeec; }
.pc-card.drag { opacity: .4; }
.pc-mlist { display: none; }
.pc-mday { margin-bottom: 12px; }
.pc-mday h4 { margin: 0 0 6px; font-size: .9rem; color: var(--primary); }
.pc-mday.today h4 { color: var(--accent); }
.pc-mday .pc-card { margin-bottom: 6px; }
.pc-mday .pc-card small.emp { font-weight: 700; }
@media (max-width: 760px) { .pc-scroll { display: none; } .pc-mlist { display: block; } .pc-nav b { width: 100%; margin: 6px 0 0; } }
.pc-due .box-head h2 { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.pc-due-l { display: grid; gap: 6px; max-height: 340px; overflow-y: auto; }
.pc-due-i { display: flex; align-items: center; gap: 12px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 11px; flex-wrap: wrap; }
.pc-due-i > span:first-child { flex: 1 1 220px; display: grid; gap: 1px; }
.pc-due-i small { color: #6b6782; }
.pc-due-i .when { font-weight: 700; color: #8a5a00; white-space: nowrap; }
.pc-due-i.late .when { color: #b42318; }
.pc-due-i .acts { display: flex; gap: 8px; align-items: center; }
.pc-vhead { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 12px; }
.pc-row2 { display: flex; gap: 8px; }
.pc-row2 > * { flex: 1; min-width: 0; }
.pc-mini { display: inline-flex; align-items: center; gap: 4px; font-size: .78rem; margin-top: 4px; color: var(--accent); }
.pc-chk { display: flex; align-items: center; gap: 8px; font-size: .9rem; cursor: pointer; }
.pc-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.pc-chip { border: 1.5px solid #ddd7ea; background: #fff; border-radius: 99px; padding: 5px 11px; font: 600 .82rem Inter, Arial; color: #4a4560; cursor: pointer; }
.pc-chip.on { background: var(--primary); border-color: var(--primary); color: #fff; }
.pc-prod { display: grid; grid-template-columns: 1.4fr 1.3fr 1fr .7fr .5fr auto; gap: 6px; margin-bottom: 6px; }
.pc-prod input { width: 100%; min-width: 0; }
@media (max-width: 640px) { .pc-prod { grid-template-columns: 1fr 1fr; } }
.pc-plist { display: grid; gap: 6px; }
.pc-ph, .pc-pr { display: grid; grid-template-columns: 1.4fr 1.3fr 1fr .6fr 1fr auto; gap: 8px; align-items: center; }
.pc-ph span { font: 700 .72rem Inter, Arial; letter-spacing: .08em; text-transform: uppercase; color: #6b6782; }
@media (max-width: 760px) { .pc-ph { display: none; } .pc-pr { grid-template-columns: 1fr 1fr; padding-bottom: 8px; border-bottom: 1px solid var(--line); } }
tr.click { cursor: pointer; }
tr.click:hover td { background: #faf8fe; }
tr.off td { opacity: .6; }

/* ===== Απεντόμωση: ημερολόγιο (ημέρα/εβδομάδα) ===== */
.pc-pt { align-items: flex-end; }
.pc-pt p { text-transform: none; }
.pc-tools { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 0 0 14px; }
.pc-tools .pc-nav { display: flex; gap: 6px; align-items: center; }
.pc-tb { height: 42px; border: 1px solid var(--line, #e2ddec); background: #fff; border-radius: 10px; padding: 0 14px; font: 600 .95rem Inter, Arial; color: #1d1633; cursor: pointer; }
.pc-tb:hover { border-color: #cfc6e4; }
button.pc-tb[data-prev], button.pc-tb[data-next] { width: 42px; padding: 0; font-size: 1.3rem; line-height: 1; }
.pc-date { padding: 0 12px; cursor: text; }
.pc-sel { padding-right: 30px; min-width: 190px; }
.pc-seg { display: inline-flex; border: 1px solid var(--line, #e2ddec); border-radius: 10px; overflow: hidden; background: #fff; }
.pc-seg button { height: 40px; padding: 0 18px; border: 0; background: none; font: 600 .95rem Inter, Arial; color: #6b6782; cursor: pointer; }
.pc-seg button.on { background: #efeaf8; color: var(--primary, #34255e); }
.pc-cx { display: inline-flex; gap: 8px; align-items: center; font-size: .95rem; color: #4a4560; cursor: pointer; }
.pc-cx input { width: 18px; height: 18px; }
.pc-cal { background: #fff; border: 1px solid var(--line, #e2ddec); border-radius: 16px; overflow: hidden; }
.pc-scrollx { overflow: auto; max-height: calc(100vh - 250px); min-height: 420px; }
.pc-inner { display: grid; position: relative; }
.pc-corner, .pc-colh { position: sticky; top: 0; z-index: 4; background: #fff; border-bottom: 1px solid var(--line, #e2ddec); }
.pc-corner { left: 0; z-index: 5; }
.pc-colh { display: flex; gap: 8px; align-items: flex-start; padding: 12px 14px; border-left: 1px solid var(--line, #e2ddec); min-height: 62px; }
.pc-colh b { display: block; font-size: .98rem; color: #1d1633; }
.pc-colh small { color: #6b6782; font-size: .82rem; }
.pc-colh.today b { color: var(--accent, #7758b3); }
.pc-colh.today { box-shadow: inset 0 -3px 0 var(--accent, #7758b3); }
.pc-axis { position: sticky; left: 0; z-index: 3; background: #fff; }
.pc-axis div { position: absolute; right: 10px; transform: translateY(-50%); font-size: .8rem; color: #6b6782; }
.pc-axis div:first-child { transform: translateY(3px); }
.pc-col { position: relative; border-left: 1px solid var(--line, #e2ddec); background-color: #f8f7fa; background-image: linear-gradient(to bottom, #e6e2ee 1px, transparent 1px); cursor: copy; }
.pc-col.today { background-color: #fbf9ff; }
.pc-col.sun { background-color: #f3f2f5; }
.pc-col.over { background-color: #efe9fb; }
.pc-ghost { display: none; position: absolute; left: 4px; right: 4px; height: 22px; border-radius: 6px; background: rgba(119, 88, 179, .12); border: 1px dashed rgba(119, 88, 179, .5); color: var(--accent, #7758b3); font: 600 .74rem Inter, Arial; padding: 3px 8px; pointer-events: none; white-space: nowrap; overflow: hidden; }
.pc-now { position: absolute; left: 0; right: 0; height: 2px; background: #c0392b; z-index: 2; pointer-events: none; }
.pc-now:before { content: ""; position: absolute; left: -5px; top: -4px; width: 10px; height: 10px; border-radius: 50%; background: #c0392b; }
.pc-ev { position: absolute; z-index: 1; border-radius: 9px; padding: 5px 8px; background: #fff; border: 1px solid #e3ddef; border-left: 4px solid var(--ec, #7758b3); box-shadow: 0 2px 6px -3px rgba(29, 22, 51, .25); overflow: hidden; cursor: pointer; font-size: .8rem; line-height: 1.25; display: flex; flex-direction: column; gap: 1px; }
.pc-ev:hover { z-index: 3; box-shadow: 0 8px 18px -8px rgba(29, 22, 51, .45); }
.pc-ev .t { font-weight: 700; font-size: .74rem; color: #34255e; white-space: nowrap; }
.pc-ev .t i { font-style: normal; background: var(--ec); color: #fff; border-radius: 5px; padding: 0 4px; margin-left: 2px; font-size: .68rem; }
.pc-ev b { font-size: .84rem; color: #1d1633; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pc-ev small { color: #6b6782; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pc-ev.c-clean { background: #f1faf6; }
.pc-ev.c-mgmt { background: #f2f6fd; }
.pc-ev.done { background: #eef8f3; border-left-color: #1f8a70; }
.pc-ev.done .t { color: #1f6b55; }
.pc-ev.late { background: #fdeeec; border-left-color: #c0392b; }
.pc-ev.canc { opacity: .55; text-decoration: line-through; border-left-color: #9a96ab; cursor: default; }
.pc-ev.drag { opacity: .35; }
.pc-blk { position: absolute; left: 0; right: 0; z-index: 0; background: repeating-linear-gradient(135deg, rgba(154, 150, 171, .16) 0 8px, rgba(154, 150, 171, .05) 8px 16px); border-top: 1px solid #d6d1e2; border-bottom: 1px solid #d6d1e2; cursor: pointer; }
.pc-blk span { position: sticky; top: 64px; display: inline-block; margin: 6px; padding: 2px 8px; border-radius: 6px; background: #fff; border: 1px solid #ddd8e8; font: 600 .74rem Inter, Arial; color: #6b6782; }
.pc-duebar { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; background: #fff8e8; border: 1px solid #f2ddb0; border-radius: 14px; padding: 8px 10px 8px 14px; margin-bottom: 12px; }
.pc-duebar.late { background: #fff1ef; border-color: #f2c9c3; }
.pc-duet { display: flex; align-items: center; gap: 10px; border: 0; background: none; cursor: pointer; font: 500 .94rem Inter, Arial; color: #4a3500; text-align: left; flex: 1; }
.pc-duet svg { width: 18px; height: 18px; flex: none; }
.pc-duet .red { color: #b42318; }
.pc-duebar + .pc-due-l { margin: -4px 0 14px; padding: 10px; background: #fff; border: 1px solid var(--line); border-radius: 14px; }
@media (max-width: 760px) { .pc-scrollx { max-height: calc(100vh - 200px); } .pc-tb { height: 38px; } .pc-sel { min-width: 0; flex: 1; } .pc-colh { padding: 10px; } }
/* --- Πρόγραμμα εργασιών: συνεργείο, ωράριο, καθαριότητα, προσωπικό --- */
.pc-chip.emp { display: inline-flex; align-items: center; gap: 6px; }
.pc-chip.emp .dot { width: 9px; height: 9px; border-radius: 50%; background: var(--ec); }
.pc-chip.emp.on { background: var(--ec); border-color: var(--ec); }
.pc-chip.emp.on .dot { background: #fff; }
.pc-chip.dim:not(.on) { opacity: .55; border-style: dashed; }
.pc-warn { color: #a05a00; font-weight: 600; font-size: .8rem; }
.pc-off { position: absolute; left: 0; right: 0; z-index: 0; background: repeating-linear-gradient(135deg, rgba(120, 116, 140, .07) 0 6px, rgba(120, 116, 140, .13) 6px 12px); pointer-events: auto; }
.pc-off.full span { position: sticky; top: 64px; display: inline-block; margin: 8px; padding: 2px 8px; border-radius: 6px; background: #fff; border: 1px solid #e3ddef; font: 600 .74rem Inter, Arial; color: #8a86a0; }
.pc-ev.crew { border-left-width: 6px; }
.pc-cl { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 6px; }
.pc-cl .pc-cli { display: flex; margin: 0; align-items: center; gap: 9px; padding: 9px 11px; border: 1.5px solid #e3ddef; border-radius: 10px; cursor: pointer; font-size: .9rem; background: #fff; }
.pc-cl .pc-cli input { flex: 0 0 18px; margin: 0; width: 18px; height: 18px; accent-color: #1f8a70; }
.pc-cli.on { border-color: #1f8a70; background: #f1faf6; }
.pc-stl { display: grid; gap: 14px; }
.pc-st { margin: 0; }
.pc-st-h { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.pc-st-h input[type=color] { width: 34px; height: 34px; border: 0; padding: 0; background: none; cursor: pointer; border-radius: 50%; }
.pc-st-h span { flex: 1; display: flex; flex-direction: column; }
.pc-st-h small { color: #6b6782; }
.pc-st-g { display: grid; grid-template-columns: 1fr 1.25fr; gap: 18px; }
.pc-st-g .lbl { display: block; font-weight: 700; font-size: .8rem; color: #4a4560; margin-bottom: 7px; }
.pc-st-g .pc-chk { margin-top: 10px; }
.pc-hours { display: grid; gap: 5px; }
.pc-hr { display: grid; grid-template-columns: 78px 1fr 14px 1fr; gap: 6px; align-items: center; }
.pc-hr label { display: flex; gap: 6px; align-items: center; font-weight: 600; font-size: .85rem; }
.pc-hr input[type=time] { padding: 5px 7px; border: 1px solid #ddd7ea; border-radius: 8px; font: inherit; min-width: 0; }
.pc-hr.off input[type=time], .pc-hr.off span { opacity: .35; pointer-events: none; }
@media (max-width: 760px) { .pc-st-g { grid-template-columns: 1fr; } }
/* --- Αιτήματα προς έγκριση --- */
.pend-box { border: 1.5px solid #f0c27a; background: #fffaf1; }
.pend-box h2 { display: flex; align-items: center; gap: 8px; }
.pend-box h2 svg { width: 18px; height: 18px; color: #b26b00; }
.pend-l { display: grid; gap: 8px; }
.pend-i { display: grid; grid-template-columns: 120px 1fr auto; gap: 12px; align-items: center; background: #fff; border: 1px solid #f1dfbf; border-radius: 12px; padding: 10px 12px; }
.pend-i .when, .pend-i .who { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.pend-i small { color: #6b6782; }
.pend-i .acts { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.pend-i .red { color: #b42318; font-weight: 600; }
.pend-n { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.pend-n > span:first-of-type { flex: 1; min-width: 220px; }
.pc-ev.pend { border-style: dashed; border-left-style: solid; background: repeating-linear-gradient(135deg, #fff 0 8px, #fff7e8 8px 16px); }
.pc-ev .pq { font-style: normal; background: #d9822b; color: #fff; border-radius: 5px; padding: 0 5px; font-size: .66rem; }
@media (max-width: 700px) { .pend-i { grid-template-columns: 1fr; } .pend-i .acts { justify-content: flex-start; } }
/* --- Αναζήτηση πελάτη --- */
.pp-box { position: absolute; left: 0; right: 0; top: 100%; z-index: 60; margin-top: 4px; background: #fff; border: 1px solid #ddd7ea; border-radius: 12px; box-shadow: 0 14px 30px -12px rgba(29, 22, 51, .35); overflow: hidden; max-height: 320px; overflow-y: auto; }
.pp-box button { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; width: 100%; text-align: left; border: 0; background: none; padding: 9px 12px; cursor: pointer; font: inherit; border-bottom: 1px solid #f0edf5; }
.pp-box button:last-child { border-bottom: 0; }
.pp-box button:hover, .pp-box button.on { background: #f4f0fb; }
.pp-box b { font-size: .92rem; color: #1d1633; }
.pp-box small { font-size: .78rem; color: #6b6782; }
.pc-free label { display: block; font-weight: 700; font-size: .82rem; margin-bottom: 6px; }
.pc-free .slots { display: flex; flex-wrap: wrap; gap: 6px; }
/* --- Τιμή & πληρωμή ραντεβού --- */
.money-box { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; padding: 12px 14px; border: 1px solid #e3ddef; border-radius: 12px; background: #faf9fc; }
.money-box .mb-k { display: flex; gap: 18px; flex-wrap: wrap; }
.money-box .mb-k div { display: flex; flex-direction: column; }
.money-box .mb-k small { font-size: .74rem; color: #6b6782; }
.money-box .mb-k b { font-size: 1.02rem; }
.money-box .mb-k .warn b { color: #b26b00; }
.money-box .mb-k .ok b { color: #1f8a70; }
.money-box > small { flex-basis: 100%; }
.nb-pr { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.nb-pr input[type=text] { max-width: 140px; }
.nb-pr select { max-width: 150px; }
.nb-pr .check { margin: 0; }
.ct-bks { margin-top: 6px; }
.pc-allday { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; margin: 0 0 10px; padding: 8px 10px; background: #fff; border: 1px solid #e3ddef; border-radius: 12px; font-size: .85rem; }
.pc-allday > b { margin-right: 4px; color: #4a4560; }
.pc-ad { display: inline-flex; flex-direction: column; align-items: flex-start; border: 1px solid #ddd7ea; border-left: 4px solid #2f6fd1; background: #f6f8fd; border-radius: 8px; padding: 4px 9px; cursor: pointer; font: inherit; text-align: left; }
.pc-ad span { font-weight: 700; font-size: .82rem; } .pc-ad small { font-size: .72rem; color: #6b6782; }
/* --- Πολυκατοικίες: επιτροπή, έγγραφα, συνελεύσεις, συμφωνητικά, μηνύματα --- */
.bm5-t td { vertical-align: middle; }
.bm5-t .input { min-width: 0; padding: 6px 8px; font-size: .85rem; }
.bm5-t .input.sm { max-width: 120px; }
.vis-office { color: #6b6782; } .vis-committee { color: #a05a00; } .vis-owners { color: #2f6fd1; }
.ga-list { display: grid; gap: 8px; }
.ga-i { display: grid; grid-template-columns: 110px 1fr auto; gap: 12px; align-items: center; text-align: left; border: 1px solid #e3ddef; background: #fff; border-radius: 12px; padding: 10px 12px; cursor: pointer; font: inherit; }
.ga-i:hover { border-color: var(--primary); }
.ga-i .when, .ga-i .who { display: flex; flex-direction: column; } .ga-i small { color: #6b6782; }
.ag-r { display: flex; gap: 6px; align-items: center; margin-bottom: 6px; } .ag-r .n { width: 20px; color: #6b6782; font-weight: 700; } .ag-r .input:first-of-type { flex: 1; } .ag-r .input.sm { max-width: 120px; }
.ga-k .kpi b.ok { color: #1f8a70; } .ga-k .kpi b.neg { color: #b42318; }
.ga-it { padding: 10px 0; border-bottom: 1px solid #efecf4; } .ga-it small b.ok { color: #1f8a70; } .ga-it small b.neg { color: #b42318; }
.ga-bar { display: flex; height: 8px; border-radius: 6px; overflow: hidden; background: #eee; margin: 6px 0 4px; } .ga-bar .y { background: #1f8a70; } .ga-bar .n { background: #b42318; } .ga-bar .a { background: #c9c4d6; }
.ga-t select.vv-yes { color: #1f8a70; font-weight: 700; } .ga-t select.vv-no { color: #b42318; font-weight: 700; }
.agk { border: 1px solid #e3ddef; border-radius: 12px; padding: 10px 12px; margin-bottom: 10px; }
.agk-h { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; } .agk-h b { flex: 1; }
.mini-l { margin: 4px 0 10px 18px; padding: 0; font-size: .86rem; max-height: 220px; overflow: auto; } .mini-l.warn { color: #a05a00; }
.vis-sel { min-width: 210px; padding: 6px 8px; font-size: .85rem; }
.bm5-log { list-style: none; margin: 0; padding: 0; }
.bm5-log li { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid #efecf4; }
.bm5-log li > span:first-child { display: flex; flex-direction: column; } .bm5-log small { color: #6b6782; }
.sg-box { border: 1px solid #e3ddef; border-radius: 12px; padding: 8px 12px; background: #faf9fc; }
.sg-r { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 6px 0; border-bottom: 1px dashed #e3ddef; }
.sg-r > span:first-child { flex: 1; display: flex; flex-direction: column; min-width: 180px; } .sg-r small { color: #6b6782; }
.sg-pad { width: 100%; height: 180px; border: 1.5px dashed #7758b3; border-radius: 10px; background: #fbfaff; touch-action: none; display: block; }
/* Καρτέλες πολυκατοικίας: κύριες + υπο-καρτέλες */
.bm-tabs { margin-bottom: 8px; }
.bm-tabs button { padding: 8px 16px; font-size: .9rem; }
.bm-sub { display: flex; flex-wrap: wrap; gap: 2px 18px; border-bottom: 1px solid #e3ddef; margin: 0 0 16px; padding: 0 4px; }
.bm-sub button { background: none; border: 0; border-bottom: 2.5px solid transparent; padding: 7px 2px; font: 600 .86rem var(--font, Inter); color: #6b6782; cursor: pointer; margin-bottom: -1px; }
.bm-sub button:hover { color: var(--primary); }
.bm-sub button.on { color: var(--primary); border-bottom-color: var(--primary); }
@media (max-width: 700px) { .bm-tabs, .bm-sub { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; } .bm-tabs button, .bm-sub button { flex: none; white-space: nowrap; } }
.cs-kind { margin: -4px 0 12px; } .cs-filt button { padding: 6px 12px; font-size: .82rem; }
.bm-tbl .pos { color: #1f8a70; font-weight: 600; } .bm-tbl .neg { color: #b42318; font-weight: 600; }
/* Πλοήγηση Google Maps (2.27) */
.pc-gmap { position: absolute; top: 4px; right: 4px; width: 28px; height: 28px; border-radius: 8px; display: grid; place-items: center; background: var(--accent, #7758b3); color: #fff; box-shadow: 0 2px 6px -2px rgba(29, 22, 51, .45); }
.pc-gmap .icon { width: 15px; height: 15px; }
.pc-gmap:hover { filter: brightness(1.1); }
.pc-ev:has(.pc-gmap) .t, .pc-ev:has(.pc-gmap) b { padding-right: 30px; }
.pc-route { display: inline-flex; align-items: center; gap: 4px; margin-top: 4px; font-size: .74rem; font-weight: 700; color: #fff; background: var(--accent, #7758b3); border-radius: 999px; padding: 3px 9px; text-decoration: none; width: max-content; }
.pc-colh .pc-route .icon { width: 12px; height: 12px; }
.pc-go { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 2px 0 14px; }
.pc-go small { flex: 1 1 100%; }
.bm-nav { display: inline-flex; align-items: center; gap: 5px; margin-left: 8px; font-size: .85rem; font-weight: 700; color: var(--accent, #7758b3); }
@media (max-width: 640px) { .pc-go .btn { flex: 1; justify-content: center; } }
/* Εκτυπώσεις & αποθεματικό (2.28) */
.bm-prints { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: -6px 0 16px; }
.kpi.click { cursor: pointer; } .kpi.click:hover { border-color: #cfc6e4; }
.rsv-apts { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
/* Υπενθυμίσεις & SMS (2.29) */
.crm-h { text-transform: uppercase; letter-spacing: .06em; font-size: .95rem; color: #6b6782; font-weight: 700; }
.crm-box h3 { font-size: 1.02rem; margin: 0 0 4px; color: #1d1633; }
.crm-row { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.crm-sw { display: flex; flex-wrap: wrap; gap: 22px; margin-top: 8px; }
.crm-sw.col { flex-direction: column; gap: 10px; }
.crm-radio { display: flex; flex-wrap: wrap; gap: 26px; margin: 8px 0 4px; }
.crm-radio label { display: inline-flex; align-items: center; gap: 10px; cursor: pointer; font-size: .93rem; }
.crm-radio input { width: 22px; height: 22px; accent-color: var(--accent, #7758b3); }
.crm-f { margin-top: 10px; }
.crm-f .req { color: #e2554f; }
.crm-key { display: flex; gap: 8px; align-items: center; }
.crm-key input { flex: 1; min-width: 0; }
.crm-test { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px; margin-top: 16px; }
.crm-test .field { margin: 0; min-width: 200px; }
.crm-ex { margin-top: 14px; padding: 10px 12px; border-radius: 10px; background: #f6f3fb; display: flex; flex-direction: column; gap: 4px; }
.crm-ex code { font: 500 .85rem/1.45 ui-monospace, Menlo, monospace; color: #34255e; white-space: pre-wrap; word-break: break-word; }
.crm-cron { margin-top: 14px; } .crm-cron summary { cursor: pointer; font-weight: 600; color: var(--accent, #7758b3); }
.rsv-split td small { color: #6b6782; }
@media (max-width: 760px) { .crm-row { grid-template-columns: 1fr; gap: 14px; } }
.rsv-apts[hidden], [data-fmeth][hidden] { display: none !important; }
/* 5 κάρτες οικονομικής εικόνας (2.30) */
.kpis.k5 { grid-template-columns: repeat(5, 1fr); gap: 12px; }
.kpis.k5 .kpi { padding: 16px 14px; gap: 10px; }
.kpis.k5 .kpi b { font-size: 1.45rem; }
@media (max-width: 1280px) { .kpis.k5 .kpi .ico { display: none; } }
@media (max-width: 1000px) { .kpis.k5 { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 560px) { .kpis.k5 { grid-template-columns: 1fr 1fr; } }
.k5s { opacity: .75; font-size: .92em; }
.msg-t .msg-s { max-width: 460px; } .msg-t .msg-s small { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
/* Ιστορικό μεταβολών πολυκατοικίας (2.32) */
.hist-day { font-weight: 700; color: #34255e; margin: 16px 0 6px; font-size: .9rem; text-transform: capitalize; }
.hist-day:first-child { margin-top: 0; }
.hist-i { display: grid; grid-template-columns: 52px 1fr; gap: 10px; padding: 9px 0 9px 10px; border-left: 3px solid #d9d2ea; margin-left: 4px; }
.hist-i + .hist-i { border-top: 1px dashed #ece7f5; }
.hist-i.c-fin { border-left-color: #1f8a70; } .hist-i.c-apt { border-left-color: #7758b3; } .hist-i.c-work { border-left-color: #d9822b; } .hist-i.c-msg { border-left-color: #2f6fd1; } .hist-i.c-ga { border-left-color: #c2417a; } .hist-i.c-set { border-left-color: #8a8699; }
.hist-t { font: 600 .82rem Inter, Arial; color: #6b6782; padding-top: 2px; }
.hist-x { font-size: .93rem; color: #1d1633; }
.hist-d { margin: 4px 0 4px 16px; padding: 0; font-size: .84rem; color: #4a4560; }
.hist-d li { margin: 1px 0; }
/* Ταμεία & δραστηριότητα χρηστών (2.33) */
.uc-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 14px; margin-bottom: 18px; }
.uc-card { background: #fff; border: 1px solid #e3ddef; border-radius: 14px; padding: 16px; cursor: pointer; }
.uc-card.on { border-color: var(--accent, #7758b3); box-shadow: 0 0 0 2px rgba(119, 88, 179, .18); }
.uc-h b { font-size: 1.02rem; color: #1d1633; }
.uc-bal { margin: 10px 0; padding: 10px 12px; border-radius: 10px; background: #f6f3fb; }
.uc-bal small { display: block; color: #6b6782; font-size: .8rem; } .uc-bal b { font-size: 1.45rem; color: #1d1633; } .uc-bal b.neg { color: #b4472e; }
.uc-row { display: flex; justify-content: space-between; gap: 10px; font-size: .88rem; padding: 2px 0; }
.uc-act { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 14px; }
.uc-chip { text-align: left; background: #fff; border: 1px solid #e3ddef; border-radius: 12px; padding: 10px 14px; cursor: pointer; font: inherit; }
.uc-chip.on { border-color: var(--accent, #7758b3); background: #f6f3fb; } .uc-chip b { display: block; color: #1d1633; } .uc-chip small { color: #6b6782; }
.pc-colr { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; } .pc-colr .in-eur { max-width: 150px; } .pc-colr select { max-width: 150px; }
.uc-per { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; } .uc-per input { max-width: 170px; }
.uc-who { padding: 14px 18px; } .uc-who summary { cursor: pointer; } .uc-who .crm-sw { margin-top: 6px; }
.uc-per { flex-wrap: nowrap !important; } .uc-per input.input { width: 165px; max-width: 165px; flex: none; }
@media (max-width: 560px) { .uc-per { flex-wrap: wrap !important; } .uc-per input.input { width: 140px; } }
/* Πρακτικό με υπογραφές (2.36) */
.ag-r { flex-wrap: wrap; } .ag-r .ag-prop { flex: 1 1 100%; min-height: 44px; margin: 4px 0 6px 26px; font-size: .88rem; }
.ga-prop { margin: 6px 0 4px; padding: 8px 10px; background: #f6f3fb; border-radius: 8px; font-size: .9rem; color: #3d3a50; }
.ga-prop small { display: block; font-weight: 700; color: #6b6782; font-size: .75rem; text-transform: uppercase; letter-spacing: .04em; }
.msig { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 10px; }
.msig-r { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid #e3ddef; border-radius: 12px; background: #fff; }
.msig-r.done { background: #f2faf6; border-color: #bfe3d2; }
.msig-w { flex: 1; min-width: 0; } .msig-w small { display: block; color: #6b6782; font-size: .78rem; } .msig-w b { color: #1d1633; } .msig-w input { margin-top: 3px; }
.msig-r .btn { padding: 10px 14px; }
/* 2.40 τύπος υπηρεσίας πολυκατοικίας */
.bm-modes{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.bm-mode-opt{display:flex;gap:10px;align-items:flex-start;border:1.5px solid var(--line,#e3e6ea);border-radius:12px;padding:12px 14px;cursor:pointer;background:var(--card,#fff)}
.bm-mode-opt.on{border-color:var(--primary);box-shadow:0 0 0 3px rgba(52,37,94,.08)}
.bm-mode-opt input{margin-top:3px}
.bm-mode-opt b{display:block;margin-bottom:3px}
.bm-mode-opt small{color:var(--muted,#66707a);line-height:1.4;display:block}
.page-title h1 .bm-mode{font-size:.75rem;vertical-align:middle;font-weight:600}
.bm-modeinfo{display:flex;gap:10px;align-items:flex-start}
.bm-modeinfo svg{flex:0 0 auto;width:18px;height:18px;margin-top:2px}
@media(max-width:640px){.bm-modes{grid-template-columns:1fr}}
/* βάση δεδομένων */
.db-hash{font:600 .82rem Menlo,Consolas,monospace;background:var(--bg-tint,#f4f1fa);border-radius:10px;padding:10px 12px;word-break:break-all;user-select:all}
.db-prog{margin-top:12px}.db-bar{height:8px;background:#ece8f4;border-radius:6px;overflow:hidden}.db-bar span{display:block;height:100%;width:0;background:var(--primary);transition:width .4s}
.db-log{margin-top:10px;font-size:.88rem;line-height:1.6}.db-ul{margin:0;padding-left:18px;line-height:1.7}
.mod-row{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--line,#ece8f4);cursor:pointer}
.mod-row:last-of-type{border-bottom:0}.mod-row input{margin-top:4px}.mod-row b{display:block}.mod-row small{color:var(--muted,#66707a)}
.viva-own { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); }
.viva-own h3 { margin: 0 0 10px; font-size: 1rem; }
.tn-acts { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.tn-acts .btn { white-space: nowrap; }
