.jess{padding-bottom:2rem}.jess [hidden]{display:none!important}.jess-loading{color:var(--muted)}.j-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.25rem}.j-card+.j-card{margin-top:1rem}.j-stack{flex-direction:column;gap:.75rem;display:flex}.j-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.j-between{justify-content:space-between}.j-err{color:#b3261e;margin:.25rem 0 0}.j-ok{color:var(--leaf);margin:.25rem 0 0}.j-small{color:var(--muted);font-size:.9rem}.jess label{flex-direction:column;gap:.3rem;font-size:.95rem;font-weight:600;display:flex}.jess input,.jess select,.jess textarea{font:inherit;color:var(--ink);border:2px solid var(--line);background:#fff;border-radius:12px;width:100%;padding:.6rem .75rem;font-weight:400}.jess input:focus,.jess select:focus,.jess textarea:focus{border-color:var(--sky);outline:none}.jess textarea{resize:vertical;min-height:84px}.j-btn{font:inherit;border:2px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer;border-radius:999px;min-height:46px;padding:.65rem 1.1rem;font-weight:700}.j-btn:hover:not(:disabled){border-color:var(--ink)}.j-btn:disabled{opacity:.5;cursor:default}.j-btn.primary{background:var(--sky);border-color:var(--sky);color:#fff}.j-btn.big{width:100%;min-height:56px;font-size:1.1rem}.j-btn.warn{border-color:var(--coral);color:#a8371d}.j-link{font:inherit;color:var(--sky);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;padding:.25rem .1rem;text-decoration:underline}.j-hello{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.j-hello h1{margin:.25rem 0}.j-menu{flex-wrap:wrap;gap:.25rem .75rem;font-size:.95rem;display:flex}.j-today{background:#eef8f1;border-color:#bfe3cc}.j-today h2{margin:.2rem 0 .5rem}.j-plan{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.j-plan b{min-width:6.5rem;color:var(--muted);font-weight:600;display:inline-block}.j-chips{flex-wrap:wrap;gap:.4rem;margin:.25rem 0 .75rem;display:flex}.j-chip{font:inherit;border:2px solid var(--line);color:var(--ink);cursor:pointer;background:#fff;border-radius:999px;min-height:40px;padding:.4rem .8rem;font-size:.92rem;font-weight:600}.j-chip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}.j-notice{background:#fff4d6;border:1px solid #f1d58a;border-radius:14px;padding:.75rem 1rem}.j-hist{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.j-hist details{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:.7rem 1rem}.j-hist summary{cursor:pointer;justify-content:space-between;gap:.75rem;font-weight:600;display:flex}.j-hist summary span{color:var(--muted);white-space:nowrap;font-weight:400}.j-band{background:var(--paper-2);font-variant-numeric:tabular-nums;border-radius:8px;place-items:center;min-width:2.6rem;padding:.05rem .4rem;font-weight:800;display:inline-grid}.j-talkbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.j-talkbar h1{margin:0;font-size:1.3rem}.j-timer{font-variant-numeric:tabular-nums;color:var(--muted)}.j-log{flex-direction:column;gap:.6rem;padding:.5rem 0 1rem;display:flex}.j-msg{flex-direction:column;gap:.35rem;max-width:88%;display:flex}.j-msg.me{align-self:flex-end;align-items:flex-end}.j-msg.jess-msg{align-self:flex-start}.j-bub{white-space:pre-wrap;overflow-wrap:anywhere;border-radius:18px;padding:.6rem .9rem;line-height:1.5}.me .j-bub{background:var(--sky);color:#fff;border-bottom-right-radius:6px}.jess-msg .j-bub{background:var(--card);border:1px solid var(--line);border-bottom-left-radius:6px}.j-who{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:.75rem;font-weight:700}.j-fix{background:#fff4d6;border-radius:14px;padding:.5rem .8rem;font-size:.95rem}.j-fix.native{background:#eaf5ff}.j-fix s{color:#b3261e}.j-fix ins{color:var(--leaf);font-weight:700;text-decoration:none}.j-fix small{color:var(--muted);display:block}.j-replay{font:inherit;color:var(--sky);cursor:pointer;background:0 0;border:0;align-self:flex-start;padding:0 .2rem;font-size:.85rem}.j-dock{background:var(--paper);border-top:1px solid var(--line);padding:.5rem 0 calc(.5rem + env(safe-area-inset-bottom,0px));flex-direction:column;align-items:center;gap:.4rem;display:flex;position:sticky;bottom:0}.j-status{text-align:center;min-height:1.4em;color:var(--muted);margin:0;font-size:.92rem;font-weight:600}.j-status.err{color:#b3261e}.j-mic{cursor:pointer;background:var(--sky);color:#fff;width:76px;height:76px;box-shadow:0 0 0 calc(var(--lvl,0) * 22px) #2f6fd638;border:0;border-radius:50%;place-items:center;transition:box-shadow 80ms linear,background .2s;display:grid;position:relative}.j-mic svg{width:34px;height:34px}.j-mic[data-mode=listening]{background:var(--coral);box-shadow:0 0 0 calc(6px + var(--lvl,0) * 26px) #ef6b4a40}.j-mic[data-mode=speaking]{background:var(--leaf)}.j-mic[data-mode=thinking],.j-mic[data-mode=transcribing]{background:var(--muted);cursor:progress}.j-mic:disabled{opacity:.7}.j-dock-row{justify-content:center;gap:.4rem;width:100%;display:flex}.j-dock-row .j-btn{flex:1 1 0;min-width:0;min-height:40px;padding:.4rem .5rem;font-size:.88rem}.j-type{gap:.5rem;width:100%;display:flex}.j-type input{flex:1;min-width:0}.j-score{text-align:center;padding:.5rem 0}.j-score b{font-size:3rem;line-height:1;display:block}.j-list{margin:.25rem 0 0;padding-left:1.1rem}.j-list li{margin:.25rem 0}.j-table-wrap{overflow-x:auto}.j-table{border-collapse:collapse;width:100%;font-size:.92rem}.j-table th,.j-table td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:.5rem}.j-table th{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem}.j-pill{background:var(--paper-2);border-radius:999px;padding:.05rem .5rem;font-size:.78rem;font-weight:700;display:inline-block}.j-pill.on{color:#1f6b47;background:#e3f4ea}.j-pill.off{color:#a8371d;background:#fde7e2}.j-grid2{gap:.75rem;display:grid}@media (width>=640px){.j-grid2{grid-template-columns:1fr 1fr}}@media (prefers-reduced-motion:reduce){.j-mic{transition:none}}.jess label.j-check{flex-direction:row;align-items:flex-start;gap:.5rem;font-weight:500;display:flex}.jess label.j-check input{flex:none;width:1.1rem;height:1.1rem;min-height:0;margin-top:.3rem;padding:0}
