/* Free-assessment panel and AI assistant (Ravi, 12 Oct). Uses the site's own colour tokens (site-v1.css).
   /assets/ is cached for a year: any change here goes into assistant-v2.css. */

/* ---- panel ---- */
.assess{position:fixed;inset:0;z-index:100;display:none;align-items:flex-start;justify-content:center;background:rgba(4,9,16,.72);padding:4vh 16px;overflow-y:auto}
.assess:target,.assess.is-open{display:flex}
.assess-card{background:var(--panel);color:var(--ink);border:1px solid var(--line);width:100%;max-width:600px;border-radius:var(--radius-m);padding:26px 26px 20px;box-shadow:0 24px 70px rgba(0,0,0,.45);position:relative;font-size:16px;line-height:1.5}
.assess-card h2{margin:0 40px 8px 0;font-size:1.45rem;line-height:1.2;max-width:none}
.assess-lead{margin:0 0 18px;color:var(--soft)}
.assess-close{position:absolute;top:12px;right:12px;width:38px;height:38px;border-radius:var(--radius-s);border:0;background:transparent;font-size:26px;line-height:38px;text-align:center;color:var(--soft);text-decoration:none;cursor:pointer}
.assess-close:hover,.assess-close:focus-visible{background:var(--raised);color:var(--ink)}
.assess form{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px;align-items:end}
.assess .full{grid-column:1/-1}
.assess label{display:grid;gap:5px;font-weight:500;font-size:.92rem;min-width:0;color:var(--ink)}
.assess .hint{font-weight:400;color:var(--muted);font-size:.84rem}
.assess input,.assess select,.msc-card input{font:inherit;font-size:.96rem;padding:10px 11px;border:1px solid var(--line);border-radius:var(--radius-s);width:100%;box-sizing:border-box;background:var(--bg);color:var(--ink);min-width:0}
.assess input:focus-visible,.assess select:focus-visible,.msc-card input:focus-visible{outline:2px solid var(--teal);outline-offset:1px}
.assess input[aria-invalid=true],.msc-card input[aria-invalid=true]{border-color:var(--red)}
.assess .tick,.msc-card .tick{display:flex;gap:10px;align-items:flex-start;font-weight:400;color:var(--soft);font-size:.92rem}
.assess .tick input,.msc-card .tick input{width:18px;height:18px;margin:2px 0 0;flex:none;accent-color:var(--teal)}
.assess-actions{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:center}
.assess-actions .btn{border:0}
.assess-actions .btn[disabled]{opacity:.6;cursor:wait}
.assess-chat{font-size:.95rem}
.assess-msg{margin:0;font-size:.95rem;color:var(--soft);min-height:1.2em}
.assess-msg.bad{color:#ff9a9a}
.assess-done{display:none;padding:6px 0 4px}
.assess-done p{font-size:1.05rem}
.assess.sent form,.assess.sent .assess-lead{display:none}
.assess.sent .assess-done{display:block}
.assess-plain,.assess-privacy,.msc-note{font-size:.84rem;color:var(--muted);margin:14px 0 0}
.assess-privacy a,.msc-note a{color:var(--soft)}
.ts-box:empty{display:none}
@media (max-width:600px){
  .assess{padding:0}
  .assess-card{border-radius:0;min-height:100%;padding:22px 16px 18px;border:0}
  .assess form{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:no-preference){.assess.is-open .assess-card{animation:assess-in .18s ease-out}}
@keyframes assess-in{from{transform:translateY(8px);opacity:.6}to{transform:none;opacity:1}}

/* ---- AI assistant ---- */
.msc-bubble{position:fixed;right:18px;bottom:18px;z-index:90;height:52px;padding:0 18px 0 14px;border-radius:999px;border:0;cursor:pointer;background:var(--teal);color:#06231b;box-shadow:0 8px 24px rgba(0,0,0,.35);display:flex;align-items:center;gap:8px;font:600 .95rem/1 var(--body)}
.msc-bubble:hover{background:#5ee3c1}
.msc-bubble:focus-visible{outline:3px solid var(--ink);outline-offset:2px}
.msc-bubble svg{width:22px;height:22px;flex:none}
.msc-panel{position:fixed;right:18px;bottom:82px;z-index:95;width:min(400px,calc(100vw - 32px));height:min(620px,calc(100vh - 110px));background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius-m);box-shadow:0 24px 70px rgba(0,0,0,.5);display:flex;flex-direction:column;font:400 15px/1.5 var(--body)}
.msc-panel[hidden]{display:none}
.msc-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 12px 12px 16px;border-bottom:1px solid var(--line)}
.msc-head b{font:600 1rem/1.2 var(--display)}
.msc-head span{display:block;font-size:.78rem;color:var(--muted);font-weight:400}
.msc-head button{border:0;background:none;font-size:24px;cursor:pointer;color:var(--soft);width:36px;height:36px;border-radius:var(--radius-s)}
.msc-head button:hover{background:var(--raised);color:var(--ink)}
.msc-log{flex:1;overflow-y:auto;padding:14px 14px 6px;display:flex;flex-direction:column;gap:9px}
.msc-m{max-width:88%;padding:9px 12px;border-radius:12px;white-space:pre-wrap;overflow-wrap:anywhere}
.msc-a{background:var(--raised);align-self:flex-start;border-bottom-left-radius:4px}
.msc-v{background:var(--teal-dim);color:#fff;align-self:flex-end;border-bottom-right-radius:4px}
.msc-a a{color:#6fe6c8}
.msc-err{color:#ff9a9a;font-size:.9rem;align-self:flex-start}
.msc-quick{display:flex;flex-wrap:wrap;gap:7px;align-self:flex-start;max-width:100%}
.msc-quick button,.msc-slots button{border:1px solid var(--teal-dim);background:transparent;color:var(--ink);border-radius:999px;padding:7px 12px;font:500 .88rem/1.2 var(--body);cursor:pointer;text-align:left}
.msc-quick button:hover,.msc-slots button:hover{background:rgba(47,214,173,.12);border-color:var(--teal)}
.msc-quick button[disabled],.msc-slots button[disabled]{opacity:.5;cursor:default}
.msc-slots{display:grid;grid-template-columns:1fr 1fr;gap:7px;align-self:stretch}
.msc-slots button{border-radius:var(--radius-s)}
.msc-card{align-self:stretch;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-s);padding:12px;display:grid;gap:9px}
.msc-card label{display:grid;gap:4px;font-size:.85rem;color:var(--soft)}
.msc-card input{padding:8px 10px;font-size:.92rem}
.msc-card .btn{justify-self:start;border:0;padding:10px 16px}
.msc-link{align-self:flex-start}
.msc-ts{padding:0 14px}
.msc-form{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--line)}
.msc-form input{flex:1;min-width:0;font:inherit;padding:10px 11px;border:1px solid var(--line);border-radius:var(--radius-s);background:var(--bg);color:var(--ink)}
.msc-form input:focus-visible{outline:2px solid var(--teal);outline-offset:1px}
.msc-form button{border:0;border-radius:var(--radius-s);background:var(--teal);color:#06231b;font:600 .95rem var(--body);padding:0 15px;cursor:pointer}
.msc-form button[disabled]{opacity:.6;cursor:wait}
.msc-note{margin:0;padding:0 14px 10px;font-size:.76rem;line-height:1.4}
.msc-left{font-size:.78rem;color:var(--muted);align-self:center}
@media (max-width:600px){
  .msc-panel{right:0;bottom:0;width:100vw;height:100%;border-radius:0;border:0}
  .msc-bubble{right:14px;bottom:14px;height:48px}
  .msc-bubble .msc-label{display:none}
  .msc-bubble{padding:0 13px}
}
