/* Counsellor app: Meena's working day. Four tabs on the wave bar, a plum header per tab, cards for the work.
   This is the only surface with names and risk bands; it reads like a careful notebook, not an alarm panel. */
body.cs{min-height:100svh;background:#DCE7DE;display:flex;justify-content:center}
.phone{position:relative;width:100%;max-width:440px;min-height:100svh;background:var(--bg);overflow:hidden}
@media (min-width:600px){.phone{box-shadow:0 30px 80px -40px rgba(43,35,64,.5)}}
.scr{position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;padding-bottom:110px;opacity:0;visibility:hidden;transform:translateX(12px);transition:opacity .3s var(--ease),transform .4s var(--ease),visibility 0s .4s;background:var(--bg)}
.scr.on{opacity:1;visibility:visible;transform:none;transition:opacity .3s var(--ease),transform .4s var(--ease)}

/* header */
.hd{position:relative;background:var(--plum);color:var(--plum-ink);padding:16px 20px 20px;border-radius:0 0 32px 32px;overflow:hidden}
.hd .row1{display:flex;align-items:center;gap:10px}
.hd .logo{color:var(--plum-ink)}
.hd .logo b{font-size:19px}
.hd .logo svg path:nth-child(2){fill:#FFF3EA}
.hd .role{margin-left:auto;font:500 12px var(--sans);color:var(--plum-ink-2);text-align:right;line-height:1.25}
.lng{height:30px;padding:0 10px;border-radius:99px;border:1px solid rgba(255,255,255,.18);color:var(--plum-ink);font:700 12px var(--display)}
.hd h1{font:800 32px/1.1 var(--display);margin-top:16px;color:#FFF7EC;text-wrap:balance;max-width:70%}
.hd h1 em{font-style:normal;color:var(--coral)}
.hd .sub{color:var(--plum-ink-2);font-size:13.5px;margin-top:6px;max-width:70%}
.hd .fox{position:absolute;right:6px;top:44px;width:26%;pointer-events:none}
.hd .stats{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:16px}
.hd .stats div{padding:11px 12px;border-radius:16px;background:rgba(255,255,255,.07)}
.hd .stats b{display:block;font:800 22px/1 var(--display);color:#FFF7EC}
.hd .stats b.r{color:var(--coral)}
.hd .stats small{display:block;font-size:11px;color:var(--plum-ink-2);margin-top:4px;line-height:1.25}

/* today */
.sec{font:700 13px var(--display);color:var(--ink-3);margin:20px 16px 8px;display:flex;align-items:center;gap:8px}
.sec .n{margin-left:auto;font:700 12px var(--display);color:var(--ink-2)}
.list{display:flex;flex-direction:column;gap:10px;padding:0 16px}
.visit{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:12px;align-items:center;margin:14px 16px 0;padding:14px 16px;border-radius:22px;background:var(--coral);color:var(--plum)}
.visit .d{width:48px;height:48px;border-radius:14px;background:rgba(43,35,64,.12);display:grid;place-items:center;font:800 11px/1.1 var(--display);text-align:center}
.visit .d b{display:block;font-size:19px}
.visit h3{font:800 17px/1.2 var(--display)}
.visit small{display:block;font-size:12.5px;opacity:.8;margin-top:2px}
.visit .go{width:36px;height:36px;border-radius:50%;background:var(--plum);color:var(--plum-ink);display:grid;place-items:center}
.visit .go svg{width:16px;height:16px}
.kase{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;padding:14px 16px 12px;border-radius:22px;background:var(--card);box-shadow:0 1px 0 var(--line);text-align:left;width:100%;transition:transform .2s var(--spring)}
.kase:active{transform:scale(.99)}
.kase.new{animation:arrive 1.4s var(--ease)}
@keyframes arrive{0%{transform:translateY(-12px);opacity:0}40%{opacity:1;box-shadow:0 0 0 6px rgba(224,82,59,.18)}100%{transform:none;box-shadow:0 0 0 0 rgba(224,82,59,0)}}
.kase .nm{font:800 19px/1.15 var(--display)}
.kase .nm small{font:600 12.5px var(--sans);color:var(--ink-3);margin-left:6px}
.kase .live{font:700 10px var(--display);letter-spacing:.06em;color:#fff;background:var(--sindoor);border-radius:6px;padding:2px 6px;margin-left:6px;vertical-align:middle}
.kase .meta{grid-column:1/-1;font-size:13px;color:var(--ink-2)}
.why{display:inline-flex;align-items:center;gap:6px;font:700 12px var(--display);padding:4px 9px;border-radius:99px;background:#F8E9C6;color:#7A5410;justify-self:start;white-space:nowrap}
.why.sh{background:var(--sindoor-soft);color:#9E2A18}
.kase .clk{grid-column:1/-1;display:flex;align-items:center;gap:10px;margin-top:6px}
.kase .clk .t{font:700 12.5px var(--sans);white-space:nowrap;font-variant-numeric:tabular-nums}
.kase .clk .t.over{color:var(--sindoor)}
.kase .clk .tr{flex:1;height:5px;border-radius:3px;background:var(--bg-2);overflow:hidden}
.kase .clk .tr i{display:block;height:100%;background:var(--neem)}
.kase .clk .tr i.warn{background:var(--haldi)}.kase .clk .tr i.over{background:var(--sindoor)}
.mini{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:18px;background:var(--card);box-shadow:0 1px 0 var(--line);width:100%;text-align:left}
.mini .ic{width:38px;height:38px;border-radius:12px;background:var(--bg);display:grid;place-items:center;color:var(--ink-2);flex:0 0 auto}
.mini .ic svg{width:19px;height:19px}
.mini b{display:block;font:700 14.5px var(--display)}
.mini small{display:block;font-size:12.5px;color:var(--ink-3)}
.mini .r{margin-left:auto;font:700 12.5px var(--display);color:var(--coral-2);white-space:nowrap}
.week{margin:14px 16px 0;padding:14px 16px;border-radius:20px;background:var(--card);box-shadow:0 1px 0 var(--line);font-size:13.5px;color:var(--ink-2);line-height:1.5}
.week b{color:var(--ink)}
.empty{padding:18px 16px;color:var(--ink-3);font-size:13.5px}

/* cases: filters + search */
.filters{display:flex;gap:6px;padding:14px 16px 0;overflow-x:auto;scrollbar-width:none}
.filters button{height:34px;padding:0 13px;border-radius:99px;background:var(--card);font:700 12.5px var(--display);color:var(--ink-2);white-space:nowrap;box-shadow:0 1px 0 var(--line)}
.filters button.on{background:var(--plum);color:var(--plum-ink)}
.search{margin:10px 16px 0;position:relative}
.search input{width:100%;height:44px;border-radius:14px;border:0;background:var(--card);padding:0 14px 0 40px;font:600 14.5px var(--sans);box-shadow:0 1px 0 var(--line)}
.search svg{position:absolute;left:13px;top:13px;width:18px;height:18px;color:var(--ink-3)}

/* students: roster */
.sch{margin:16px 16px 0;display:flex;align-items:baseline;gap:8px}
.sch b{font:800 15px var(--display)}
.sch small{color:var(--ink-3);font-size:12px}
.stu{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 14px;border-radius:16px;background:var(--card);box-shadow:0 1px 0 var(--line);width:100%;text-align:left}
.stu .av{width:38px;height:38px;border-radius:50%;background:var(--bg-2);display:grid;place-items:center;font:800 15px var(--display);color:var(--ink-2)}
.stu b{display:block;font:700 14.5px var(--display)}
.stu small{display:block;font-size:12px;color:var(--ink-3)}
.stu .band{font:700 11px var(--display);padding:4px 8px;border-radius:99px;background:var(--bg-2);color:var(--ink-2)}
.stu .band.hi{background:var(--sindoor);color:#fff}.stu .band.md{background:var(--haldi);color:#fff}.stu .band.lo{background:var(--neem);color:#fff}
.stu .band.none{background:transparent;color:var(--ink-4)}
.stu .flagdot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--sindoor);margin-left:6px;vertical-align:middle}

/* sessions */
.form{margin:14px 16px 0;padding:16px;border-radius:22px;background:var(--card);box-shadow:0 1px 0 var(--line);display:grid;grid-template-columns:1fr 1fr;gap:10px}
.form label{display:flex;flex-direction:column;gap:5px;font:700 12px var(--display);color:var(--ink-2)}
.form label.w{grid-column:1/-1}
.form input,.form select,.form textarea{height:42px;border-radius:12px;border:0;background:var(--bg);padding:0 12px;font:600 14px var(--sans);color:var(--ink)}
.form textarea{height:64px;padding:8px 12px;resize:none}
.form .cta{grid-column:1/-1;height:48px;border-radius:14px;background:var(--plum);color:var(--plum-ink);font:700 15px var(--display)}
.form .ok{grid-column:1/-1;font:700 13px var(--display);color:#2E6B48}
.sess{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 14px;border-radius:18px;background:var(--card);box-shadow:0 1px 0 var(--line)}
.sess .d{width:52px;height:52px;border-radius:14px;background:var(--bg-2);display:grid;place-items:center;font:800 10.5px/1.1 var(--display);text-align:center;color:var(--ink-2)}
.sess .d b{display:block;font-size:18px;color:var(--ink)}
.sess h4{font:700 14.5px var(--display)}
.sess small{display:block;font-size:12.5px;color:var(--ink-3)}
.sess .n{font:800 14px var(--display);color:var(--ink-2);white-space:nowrap}

/* case sheet */
.case{position:absolute;inset:0;overflow-y:auto;background:var(--bg);animation:up .4s var(--spring);padding-bottom:130px;z-index:30}
@keyframes up{from{transform:translateY(30px);opacity:0}to{transform:none;opacity:1}}
.chead{padding:14px 20px 18px;background:var(--card);border-bottom:1px solid var(--line)}
.chead .bk{display:inline-flex;align-items:center;gap:6px;height:36px;font:700 14px var(--display);color:var(--ink-2)}
.chead .bk svg{width:20px;height:20px}
.chead h2{font:800 30px/1.1 var(--display);margin-top:8px}
.chead .who{color:var(--ink-2);font-size:14px;margin-top:4px}
.chead .tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.tag{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:99px;font:700 12px var(--display);background:var(--bg-2);color:var(--ink-2)}
.tag.hi{background:var(--sindoor);color:#fff}.tag.md{background:var(--haldi);color:#fff}.tag.lo{background:var(--neem);color:#fff}
.tag.ok{background:#DCEFE3;color:#2E6B48}
.contacts{display:flex;gap:8px;margin-top:12px}
.contacts a{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;height:40px;border-radius:12px;background:var(--bg);font:700 13px var(--display);color:var(--ink);text-decoration:none}
.contacts a svg{width:16px;height:16px;color:var(--coral-2)}
.blk{margin:14px 16px 0;padding:18px;border-radius:24px;background:var(--card);box-shadow:0 1px 0 var(--line)}
.blk h3{font:800 16px var(--display);display:flex;align-items:center;gap:8px}
.blk h3 small{margin-left:auto;font-weight:500;color:var(--ink-3);font-size:12.5px}
/* timeline */
.tl{list-style:none;margin-top:12px;position:relative}
.tl::before{content:"";position:absolute;left:9px;top:8px;bottom:8px;width:2px;background:var(--line-2)}
.tl li{position:relative;padding:0 0 12px 30px;font-size:13.5px}
.tl li i{position:absolute;left:3px;top:3px;width:14px;height:14px;border-radius:50%;background:var(--card);border:3px solid var(--neem)}
.tl li.raised i,.tl li.escalated i{border-color:var(--sindoor)}
.tl li.closed i{background:var(--neem)}
.tl li b{display:block;font:700 14px var(--display)}
.tl li small{color:var(--ink-3);font-size:12px}
.tl li.next{color:var(--ink-3)}
.tl li.next i{border-color:var(--line-2);border-style:dashed}
.spark{width:100%;height:90px;margin-top:10px}
.ans{list-style:none;margin-top:10px}
.ans li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--line);font-size:14px;line-height:1.35}
.ans li .d{display:flex;gap:3px}
.ans li .d i{width:8px;height:16px;border-radius:2px;background:var(--bg-2)}
.ans li .d i.f{background:var(--ink-2)}
.ans li.crit{color:#9E2A18;font-weight:600}
.ans li.crit .d i.f{background:var(--sindoor)}
/* safety plan */
.plan{list-style:none;margin-top:10px;display:flex;flex-direction:column;gap:6px}
.plan li{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:14px;background:var(--bg);font-size:14px}
.plan li i{width:22px;height:22px;border-radius:7px;border:2px solid var(--line-2);display:grid;place-items:center;flex:0 0 auto;color:#fff}
.plan li i svg{width:13px;height:13px;opacity:0}
.plan li.on i{background:var(--neem);border-color:var(--neem)}
.plan li.on i svg{opacity:1}
.chat{display:flex;flex-direction:column;gap:6px;margin-top:10px;max-height:260px;overflow-y:auto}
.chat .m{max-width:84%;padding:9px 13px;border-radius:16px;font-size:14.5px;line-height:1.4}
.chat .m.c{align-self:flex-end;background:var(--plum);color:var(--plum-ink);border-bottom-right-radius:5px}
.chat .m.s{align-self:flex-start;background:var(--bg-2);border-bottom-left-radius:5px}
.chat .m small{display:block;font-size:10.5px;opacity:.65;margin-top:2px}
.say{display:flex;gap:8px;margin-top:10px}
.say input,.blk textarea,.blk select,.blk input[type=date]{flex:1;height:46px;border-radius:14px;border:0;background:var(--bg);padding:0 14px;font:600 15px var(--sans);color:var(--ink);width:100%}
.blk textarea{height:84px;padding:10px 14px;resize:vertical;margin-top:10px}
.say button,.minib{height:46px;padding:0 16px;border-radius:14px;background:var(--plum);color:var(--plum-ink);font:700 14px var(--display);white-space:nowrap}
.minib.soft{background:var(--bg);color:var(--ink)}
.quick{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.quick button{height:34px;padding:0 12px;border-radius:99px;border:0;font:600 13px var(--sans);background:var(--bg)}
.svc{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.svc button{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;text-align:left;padding:12px 14px;border-radius:16px;border:0;background:var(--bg)}
.svc button .k{font:700 10.5px var(--display);letter-spacing:.04em;padding:4px 7px;border-radius:6px;background:var(--coral-soft);color:var(--coral-ink);text-transform:uppercase}
.svc button b{font:600 14px/1.3 var(--sans)}
.svc button small{display:block;color:var(--ink-3);font-size:12px}
.svc button.done{box-shadow:0 0 0 2px var(--neem);background:#EAF5EE}
.slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}
.slots button{height:46px;border-radius:12px;border:0;font:700 13px var(--display);background:var(--bg)}
.slots button.on{background:var(--coral);color:var(--plum)}
.seg2{display:flex;gap:6px;margin-top:10px}
.seg2 button{flex:1;height:40px;border-radius:12px;border:0;background:var(--bg);font:700 13.5px var(--display)}
.seg2 button.on{background:var(--plum);color:var(--plum-ink)}
.conf{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink-3);margin-top:8px}
.conf svg{width:14px;height:14px}
.dock{position:fixed;left:50%;transform:translateX(-50%);bottom:0;width:100%;max-width:440px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:linear-gradient(180deg,rgba(234,242,235,0),var(--bg) 30%);display:flex;gap:8px;z-index:40}
.dock button{flex:1;height:58px;border-radius:20px;font:700 16px var(--display);background:var(--plum);color:var(--plum-ink)}
.dock button.red{background:var(--sindoor);color:#fff}
.dock button.pea{background:var(--neem);color:#fff}
.dock button.soft{flex:0 0 auto;padding:0 18px;background:var(--card);color:var(--ink)}
.toast3{position:fixed;left:50%;transform:translateX(-50%);top:12px;width:calc(100% - 24px);max-width:416px;z-index:60;padding:14px 16px;border-radius:18px;background:var(--sindoor);color:#fff;font:600 14px/1.35 var(--display);box-shadow:0 18px 40px -16px rgba(224,82,59,.6);animation:tin .45s var(--spring)}
.toast3 b{display:block;font:700 15px var(--display)}
.toast3.ok{background:var(--neem)}
@keyframes tin{from{opacity:0;transform:translate(-50%,-10px)}to{opacity:1;transform:translate(-50%,0)}}

/* the wave bar (B2), same as the student app */
.tabs{position:absolute;left:12px;right:12px;bottom:12px;z-index:20;height:68px;--bar:#2B2340;--cup:#F28C6B;--cupink:#2B2340;--off:rgba(255,247,242,.58);--on:#FFF7EC}
.tabs svg.bar{position:absolute;left:0;right:0;bottom:0;width:100%;height:68px;overflow:visible;filter:drop-shadow(0 18px 30px rgba(43,35,64,.4))}
.tabs svg.bar path{fill:var(--bar)}
.tabs .cup{position:absolute;top:4px;left:0;width:40px;height:40px;border-radius:50%;background:var(--cup);color:var(--cupink);display:grid;place-items:center;box-shadow:0 8px 18px -8px rgba(43,35,64,.45);transition:transform .6s var(--spring);z-index:2}
.tabs .cup svg{width:19px;height:19px}
.tabs .cup.land{animation:land .5s cubic-bezier(.34,1.56,.64,1)}
@keyframes land{0%{scale:.92}60%{scale:1.04}100%{scale:1}}
.tabs .tabrow{position:absolute;left:8px;right:8px;bottom:0;height:54px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));z-index:1}
.tabs button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--off);font:700 10.5px var(--display);transition:color .35s}
.tabs button svg{width:22px;height:22px;transition:all .35s var(--spring)}
.tabs button span{transition:transform .35s var(--spring)}
.tabs button.on{color:var(--on)}
.tabs button.on svg{opacity:0;transform:translateY(-10px) scale(.5)}
.tabs button.on span{transform:translateY(-3px)}
.tabs button .bd{position:absolute;top:6px;right:calc(50% - 18px);min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--sindoor);color:#fff;font:700 11px/18px var(--display);text-align:center;box-shadow:0 0 0 2px var(--bar)}
