/* Ατζέντα μεσίτη: ό,τι προσθέτει πάνω στο /tools/teacher/app.css (κοινό πλαίσιο, κάρτες, κουμπιά, διάλογοι). */
.g4{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
.pill.ok{background:#dcebdf;color:#225b39}
.pill.warn{background:#fbe9c8;color:#80530b}
.pre{white-space:pre-wrap}
hr{border:0;border-top:1px solid var(--line2);margin:8px 0}

/* Κινητό: 9 καρτέλες → η κάτω μπάρα κυλά οριζόντια */
@media (max-width:860px){
  body.re .mobilebar{justify-content:flex-start;overflow-x:auto;scrollbar-width:none}
  body.re .mobilebar::-webkit-scrollbar{display:none}
  body.re .mobilebar button{flex:0 0 auto;min-width:68px}
}

/* Ραντεβού */
.appts{display:flex;flex-direction:column;gap:8px}
.appt{display:flex;gap:12px;padding:10px 12px;border:1px solid var(--line2);border-radius:12px;background:var(--paper);cursor:pointer}
.appt:hover{border-color:var(--line)}
.appt.now{border-color:var(--amber);box-shadow:0 0 0 2px color-mix(in srgb,var(--amber) 25%,transparent)}
.appt.done{opacity:.72}
.appt.item{padding:6px 12px;align-items:center}
.appt .t{flex:none;width:54px;display:flex;flex-direction:column;font-size:13px;line-height:1.25}
.appt .t span{color:var(--muted);font-size:12px}
.appt .b{flex:1;min-width:0}
.appt .ai{font-size:15px}
.appt .fbt{color:var(--ink2);font-style:italic;margin-top:2px}
.abtns{gap:6px;margin-top:6px}
.dayitem{font-size:14px;padding:6px 10px;border-radius:9px;background:var(--line2);margin-bottom:6px;cursor:pointer}
.dayitem.hol{background:#f9e3de;color:#8a3324;cursor:default}
.dayitem.mand{background:#fbe9c8;color:#80530b}
.dayitem.deal{background:#dcebdf;color:#225b39}
.dayitem.follow{background:#dde8f3;color:#24527c}
.ni{flex:none;width:26px;text-align:center;font-size:17px}
.list li[data-act]{cursor:pointer}
.fbrow{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 8px}
.fbopt{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:99px;padding:5px 12px;cursor:pointer;font-size:14px}
.fbopt input{margin:0}
.fbopt:has(input:checked){border-color:var(--amber);background:color-mix(in srgb,var(--amber) 14%,transparent)}
.fbbox{margin-top:12px;padding-top:4px;border-top:1px dashed var(--line2)}

/* Εβδομάδα */
.rweek{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
.rday{background:var(--paper);border:1px solid var(--line2);border-radius:12px;padding:8px;min-height:160px;min-width:0}
.rday.today{border-color:var(--amber)}
.rday.we{background:color-mix(in srgb,var(--paper) 70%,var(--line2))}
.rdh{display:flex;align-items:center;gap:6px;margin-bottom:6px}
.rdh .btn{padding:2px 8px}
.rday .dayitem{font-size:12px;padding:4px 7px}
.wap{font-size:13px;padding:5px 7px;border-left:3px solid var(--amber);background:var(--cream);border-radius:0 7px 7px 0;margin-bottom:5px;cursor:pointer;overflow-wrap:anywhere}
.wap.visit{border-left-color:var(--green)}.wap.owner{border-left-color:#8c5bb0}.wap.call{border-left-color:var(--blue)}.wap.notary{border-left-color:var(--red)}
.rdempty{text-align:center;padding-top:20px}
@media (max-width:1000px){.rweek{grid-template-columns:1fr}.rday{min-height:0}.rdempty{display:none}}

/* Ακίνητα */
.rpgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.pcard{background:var(--paper);border:1px solid var(--line2);border-radius:14px;overflow:hidden;cursor:pointer;box-shadow:var(--shadow)}
.pcard:hover{border-color:var(--line)}
.pimg{position:relative;aspect-ratio:4/3;background:var(--line2);display:grid;place-items:center}
.pimg img{width:100%;height:100%;object-fit:cover;display:block}
.pimg > span svg{width:42px;height:42px;color:var(--muted);opacity:.5}
.pcode{position:absolute;top:8px;left:8px;background:var(--forest);color:#ffd99a;font-weight:700;font-size:13px;border-radius:7px;padding:2px 8px}
.pcode.big{position:static;display:inline-block;font-size:14px}
.pst{position:absolute;top:8px;right:8px;font-size:12px;border-radius:99px;padding:2px 8px;background:rgba(255,255,255,.92);color:#1f2a24}
.pst.reserved{background:#fbe9c8}.pst.sold,.pst.rented{background:#dcebdf}.pst.off{background:#e5e1da;color:#6b6455}
.pbody{padding:10px 12px 12px}
.pprice{font-size:18px;font-weight:800}
.pprice small{font-size:13px;font-weight:600;color:var(--muted);margin-left:2px}
.phead{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.phead h2{margin:4px 0 6px;font-size:22px;line-height:1.25}
dl.spec{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px 14px;margin:0}
dl.spec dt{font-size:12px;color:var(--muted)}dl.spec dd{margin:0;font-weight:600}
.featbox{display:flex;flex-wrap:wrap;gap:6px}
.featbox .chip{display:inline-flex;align-items:center;gap:5px}
.featbox .chip input{margin:0}
.featbox .chip:has(input:checked){border-color:var(--amber);background:color-mix(in srgb,var(--amber) 14%,transparent)}
.phgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}
.ph{position:relative;aspect-ratio:4/3;border-radius:9px;overflow:hidden;background:var(--line2)}
.ph img{width:100%;height:100%;object-fit:cover;display:block;cursor:zoom-in}
.ph .cover{position:absolute;left:6px;bottom:6px;font-size:11px;background:var(--forest);color:#ffd99a;border-radius:6px;padding:1px 6px}
.phacts{position:absolute;top:4px;right:4px;display:flex;gap:3px;opacity:0;transition:opacity .15s}
.ph:hover .phacts,.ph:focus-within .phacts{opacity:1}
@media (hover:none){.phacts{opacity:1}}
.phacts button{border:0;background:rgba(0,0,0,.6);color:#fff;border-radius:6px;width:26px;height:26px;cursor:pointer;font-size:14px;line-height:1}
.phview img{width:100%;max-height:70vh;object-fit:contain;display:block;border-radius:8px}
.card h2 label.btn{margin-left:auto}

/* Πελάτες */
.heat{flex:none;font-size:18px;width:26px;text-align:center}

/* Συμφωνίες */
.kanban{display:grid;grid-template-columns:repeat(5,minmax(200px,1fr));gap:10px;overflow-x:auto;padding-bottom:6px}
.kcol{background:var(--line2);border-radius:12px;padding:8px;min-width:0}
.kh{display:flex;justify-content:space-between;padding:2px 4px 8px}
.kcard{background:var(--paper);border:1px solid var(--line2);border-radius:10px;padding:9px 10px;margin-bottom:8px;cursor:pointer;box-shadow:var(--shadow)}
.kmove{margin-top:4px}.kmove .btn{padding:1px 8px}
.kempty{text-align:center;padding:12px 0}
@media (max-width:860px){.kanban{grid-template-columns:1fr}}

/* Οικονομικά */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
.stat{background:var(--paper);border:1px solid var(--line2);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:2px}
.stat b{font-size:22px}
.stat.ok b{color:var(--green)}.stat.bad b{color:var(--red)}.stat.warn b{color:var(--amber-d)}
.bars{display:grid;grid-template-columns:repeat(12,1fr);gap:6px;align-items:end;height:150px}
.bm{display:flex;flex-direction:column;align-items:center;gap:4px;height:100%;font-size:11px;color:var(--muted)}
.bb{flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center;gap:2px}
.bb i{display:block;width:40%;max-width:16px;border-radius:4px 4px 0 0;min-height:1px}
.bb i.in,.dot.in{background:var(--green)}.bb i.ex,.dot.ex{background:var(--red)}
.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin:0 4px 0 8px}

/* Υπολογισμοί */
.calcout{margin-top:14px;padding:12px 14px;background:var(--cream);border:1px solid var(--line2);border-radius:12px;display:flex;flex-direction:column;gap:4px}
