/* Γραφείο θεραπευτή: ό,τι προσθέτει πάνω στο /tools/teacher/app.css (κοινό πλαίσιο, κάρτες, κουμπιά, διάλογοι).
   Οι κανόνες ραντεβού/εβδομάδας/οικονομικών είναι ίδιοι με του Γραφείου μεσίτη (realtor.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.session{border-left-color:var(--green)}.wap.eval{border-left-color:#8c5bb0}.wap.parent,.wap.school{border-left-color:var(--blue)}.wap.call{border-left-color:var(--muted)}
.wap.st-cancel,.wap.st-late,.wap.st-noshow{opacity:.55;text-decoration:line-through}.wap.st-done{opacity:.8}
.rdempty{text-align:center;padding-top:20px}
@media (max-width:1000px){.rweek{grid-template-columns:1fr}.rday{min-height:0}.rdempty{display:none}}

/* Πελάτες */

/* Οικονομικά */
.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}


dl.spec{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:6px 14px;margin:0}
dl.spec dt{font-size:12px;color:var(--muted)}dl.spec dd{margin:0;font-weight:600}
.phead{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.phead h2{font-size:22px;line-height:1.25}
.featbox{display:flex;flex-wrap:wrap;gap:6px}
.featbox .chip{display:inline-flex;align-items:center;gap:5px}
.featbox .chip input{margin:0}
.warnc{color:var(--amber-d)}
.sech{margin:18px 0 8px;font-size:15px;color:var(--muted)}
.linkish{border:0;background:none;padding:0;color:var(--amber-d);cursor:pointer;font:inherit;text-align:left}
.ctabs{margin-bottom:14px}
.appt.st-cancel,.appt.st-late,.appt.st-noshow{opacity:.6}
.appt.st-done{opacity:.85}

/* Θεραπευόμενοι */
.cgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.ccard{background:var(--paper);border:1px solid var(--line2);border-radius:14px;padding:12px 14px;cursor:pointer;box-shadow:var(--shadow);min-width:0}
.ccard:hover{border-color:var(--line)}
.ccard .ell{display:block}
.cmeta{margin-top:8px}
.avatar{flex:none;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:700;font-size:14px;letter-spacing:.5px}
.avatar.lg{width:52px;height:52px;font-size:18px}
.prow{margin-top:4px}
.scheds{display:flex;flex-wrap:wrap;gap:8px}
.sesslist{display:flex;flex-direction:column;gap:8px}
.sess{border:1px solid var(--line2);border-radius:12px;padding:9px 12px;cursor:pointer;display:flex;flex-direction:column;gap:3px}
.sess:hover{border-color:var(--line)}
.sess.st-cancel,.sess.st-late,.sess.st-noshow{opacity:.65}

/* Στόχοι */
.ggrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px}
.gcard{background:var(--paper);border:1px solid var(--line2);border-left:4px solid var(--amber);border-radius:12px;padding:10px 12px;cursor:pointer}
.gcard.met{border-left-color:var(--green)}.gcard.stop{border-left-color:var(--line);opacity:.7}
.spark{flex:none;overflow:visible}
.spark polyline{fill:none;stroke:var(--amber-d);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.spark circle{fill:var(--amber-d)}
.spark .tgt{stroke:var(--green);stroke-dasharray:3 3;stroke-width:1}
.sgoals{display:flex;flex-direction:column;gap:8px}
.sgoal{border:1px solid var(--line2);border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:6px}
.lvls{display:flex;gap:4px;flex-wrap:wrap}
.lvl{cursor:pointer}
.lvl input{position:absolute;opacity:0;pointer-events:none}
.lvl span{display:grid;place-items:center;width:36px;height:32px;border:1px solid var(--line);border-radius:8px;font-weight:600}
.lvl input:checked+span{background:var(--amber);border-color:var(--amber);color:#2a1d07}
.lvl input:focus-visible+span{outline:2px solid var(--amber-d)}
.lvl.none span{font-weight:400;color:var(--muted)}
.chips.phr{margin:2px 0 6px}
.chips.phr .chip{font-size:12.5px;padding:3px 9px}
.gtpls{max-height:200px;overflow:auto}
.gtpls .chip{text-align:left}
.mrow{padding:8px 0;border-bottom:1px solid var(--line2)}
.mrow:last-child{border-bottom:0}

/* ΕΟΠΥΥ */
.qbar.sm{height:5px;margin-top:5px}
.tbl{width:100%;border-collapse:collapse;font-size:14px}
.tbl th,.tbl td{text-align:left;padding:7px 6px;border-bottom:1px solid var(--line2);vertical-align:top}
.tbl th{font-size:12px;color:var(--muted);font-weight:600}
.tbl tr[data-act]{cursor:pointer}
.warnbox{border-color:var(--amber)}
.stat.bad b{color:var(--red)}

/* Κρυπτογράφηση */
.lockmark{font-size:12px}
.lock{min-height:100vh;display:grid;place-items:center;padding:16px;background:var(--bg)}
.lockcard{width:100%;max-width:420px}
.lockico{font-size:38px;text-align:center}
.lockcard h2{text-align:center;margin:6px 0}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.5px}
.rcbox{font-size:19px;text-align:center;padding:14px;border:2px dashed var(--amber);border-radius:12px;background:var(--cream);margin:10px 0;word-break:break-all;user-select:all}
.encpros{margin:6px 0 12px;padding-left:18px}
.encpros li{margin-bottom:3px}
.progress{position:fixed;inset:0;z-index:90;background:rgba(20,26,22,.55);display:grid;place-items:center}
.progress>div{background:var(--paper);color:var(--ink);padding:18px 22px;border-radius:14px;box-shadow:var(--shadow);display:flex;flex-direction:column;align-items:center;gap:8px;max-width:calc(100vw - 32px);text-align:center}
.progress small{color:var(--muted)}
.spin{width:26px;height:26px;border:3px solid var(--line);border-top-color:var(--amber);border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@media (max-width:1000px){.rweek.six{grid-template-columns:1fr}}
@media (min-width:1001px){.rweek.six{grid-template-columns:repeat(6,minmax(0,1fr))}}
