:root{--ink: #22283f;--ink-soft: #494f68;--paper: #f7f6f2;--card: #ffffff;--peacock: #0e6e6b;--peacock-deep: #0a5451;--peacock-soft: #e3f0ee;--gold: #b8891f;--line: #e2dfd6;--muted: #6e7284;--font-display: "Fraunces", Georgia, serif;--font-body: "Karla", system-ui, -apple-system, sans-serif;--font-data: ui-monospace, "SF Mono", Menlo, monospace}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-body);font-size:16px;line-height:1.55;color:var(--ink);background:var(--paper)}button{font:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--peacock);outline-offset:2px}.wordmark{font-family:var(--font-display);font-weight:600;font-size:1.5rem;letter-spacing:-.015em;display:inline-flex;align-items:baseline;gap:.18rem;color:var(--ink)}.wordmark-large{font-size:2.6rem;gap:.24rem}.wordmark-lede,.wordmark-tail{line-height:1}.wordmark-tail{color:var(--ink-soft)}.wordmark-eye{width:.55em;height:.55em;border-radius:50%;background:radial-gradient(circle at center,var(--ink) 0 24%,var(--gold) 24% 52%,var(--peacock) 52% 100%);transform:translateY(-.05em)}.shell{display:flex;height:100%}.sidebar{width:280px;flex-shrink:0;display:flex;flex-direction:column;background:var(--card);border-right:1px solid var(--line)}.sidebar-head{padding:1.25rem 1rem 1rem;display:flex;flex-direction:column;gap:1rem;border-bottom:1px solid var(--line)}.convo-list{flex:1;overflow-y:auto;padding:.5rem;display:flex;flex-direction:column;gap:2px}.convo{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;width:100%;padding:.55rem .65rem;border:0;border-radius:8px;background:transparent;text-align:left;color:var(--ink-soft)}.convo:hover{background:var(--peacock-soft)}.convo-active{background:var(--peacock-soft);color:var(--ink)}.convo-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.convo-date{font-size:.75rem;color:var(--muted);flex-shrink:0}.convo-empty{padding:.75rem;color:var(--muted);font-size:.9rem}.sidebar-foot{padding:.9rem 1rem;border-top:1px solid var(--line);font-size:.78rem;color:var(--muted)}.sidebar-foot p{margin:0 0 .35rem}.pseudonym{font-family:var(--font-data);font-size:.72rem;-webkit-user-select:all;user-select:all}.main{flex:1;display:flex;flex-direction:column;min-width:0;position:relative}.menu-button{display:none;position:absolute;top:.75rem;left:.75rem;z-index:5;border:1px solid var(--line);background:var(--card);border-radius:8px;padding:.35rem .6rem}.chat{flex:1;display:flex;flex-direction:column;max-width:46rem;width:100%;margin:0 auto;min-height:0}.messages{flex:1;overflow-y:auto;padding:2rem 1.25rem 1rem;display:flex;flex-direction:column;gap:1.1rem}.msg-juno{border-left:2px solid var(--peacock);padding-left:1rem}.msg-label{display:block;font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--peacock-deep);margin-bottom:.25rem}.msg-user{align-self:flex-end;max-width:85%;background:var(--ink);color:var(--paper);border-radius:14px 14px 4px;padding:.6rem .9rem}.msg-body{white-space:pre-wrap;overflow-wrap:break-word}.caret{display:inline-block;width:.55em;height:1em;margin-left:2px;vertical-align:text-bottom;background:var(--peacock);animation:blink 1s steps(1) infinite}@keyframes blink{50%{opacity:0}}.chat-error{color:#8c2f22;background:#f9ece9;border-radius:8px;padding:.6rem .9rem;font-size:.9rem}.composer{display:flex;gap:.6rem;align-items:flex-end;padding:.9rem 1.25rem 1.25rem}.composer textarea{flex:1;resize:none;font:inherit;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:12px;padding:.65rem .85rem}.composer textarea:focus-visible{outline:2px solid var(--peacock);outline-offset:0;border-color:transparent}.primary{background:var(--peacock);color:#fff;border:0;border-radius:10px;padding:.55rem 1rem;font-weight:700}.primary:hover:not(:disabled){background:var(--peacock-deep)}.primary:disabled{opacity:.45;cursor:default}.empty,.gate{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem 1.5rem;gap:.4rem;height:100%}.empty h1,.gate h1{font-family:var(--font-display);font-weight:600;font-size:1.9rem;margin:.75rem 0 .25rem;max-width:22ch}.empty p,.gate p{color:var(--ink-soft);max-width:46ch;margin:0 0 1rem}.assignment-chip{font-family:var(--font-data);font-size:.75rem;color:var(--gold);border:1px solid var(--line);border-radius:999px;padding:.2rem .7rem}.scrim{display:none}@media (max-width: 720px){.sidebar{position:fixed;top:0;right:25%;bottom:0;left:0;z-index:10;transform:translate(-100%);transition:transform .16s ease}.sidebar-open{transform:translate(0);box-shadow:0 0 40px #00000040}.scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:9;background:#22283f59}.menu-button{display:block}.messages{padding-top:3.5rem}}@media (prefers-reduced-motion: reduce){.sidebar{transition:none}.caret{animation:none}}.consent-body{text-align:left;max-width:58ch;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:12px;padding:1.1rem 1.25rem;margin:.5rem 0 1rem}.consent-body p{color:var(--ink);margin:0 0 .75rem;max-width:none}.consent-body p:last-child{margin-bottom:0}.button-row{display:flex;gap:.6rem;flex-wrap:wrap;justify-content:center}.secondary{background:transparent;color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:.55rem 1rem;font-weight:600}.secondary:hover:not(:disabled){border-color:var(--ink-soft)}.secondary:disabled{opacity:.45;cursor:default}.consent-fineprint{font-size:.85rem;color:var(--muted);margin-top:.6rem}.modal-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#22283f66;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:20}.modal{background:var(--paper);border-radius:14px;max-width:640px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #22283f40}.consent-review{height:auto;padding:1.8rem 1.5rem}.consent-current{font-family:var(--font-data);font-size:.85rem;padding:.4rem .8rem;border-radius:999px;border:1px solid var(--line);margin:.4rem 0 1rem}.consent-current-on{color:var(--peacock-deep);border-color:var(--peacock);background:var(--peacock-soft)}.consent-current-off{color:var(--muted)}.secondary.danger{color:#a34c00;border-color:#d99b56}.secondary.danger:hover:not(:disabled){border-color:#a34c00;background:#fdefe0}.consent-chip{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;background:transparent;border:1px solid var(--line);border-radius:8px;padding:.35rem .6rem;font:inherit;font-size:.8rem;color:var(--ink-soft);cursor:pointer;margin:.4rem 0}.consent-chip:hover{border-color:var(--ink-soft)}.consent-chip-on{font-family:var(--font-data);color:var(--peacock-deep);font-weight:700}.consent-chip-off{font-family:var(--font-data);color:var(--muted);font-weight:700}.submitted-view{padding:1.2rem 1.5rem 2rem;max-width:42rem;width:100%;overflow-y:auto;display:flex;flex-direction:column;gap:1.5rem}.submitted-block h2{font-family:var(--font-display);font-weight:600;font-size:1.15rem;margin:0 0 .6rem}.submitted-text{white-space:pre-wrap;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:.9rem 1rem;color:var(--ink)}.submitted-responses{display:flex;flex-direction:column;gap:.8rem;margin:0}.submitted-prompt{font-weight:600;color:var(--ink);margin:.4rem 0 .25rem}.submitted-answer{margin:0 0 .6rem;color:var(--ink)}.submitted-empty{color:var(--muted);font-style:italic}.submitted-chiplist{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.3rem}.assignment-page{flex:1;display:flex;flex-direction:column;min-height:0}.assignment-head{padding:1.4rem 1.5rem .9rem;border-bottom:1px solid var(--line)}.assignment-head h1{font-family:var(--font-display);font-weight:600;font-size:1.5rem;margin:0}.assignment-meta{color:var(--muted);font-size:.85rem;margin:.2rem 0 0}.assignment-submitted{color:var(--peacock);font-weight:600;margin:.4rem 0 0}.assignment-loading,.assignment-error{padding:2rem 1.5rem;color:var(--ink-soft)}.form-body{padding:1.2rem 1.5rem 2rem;max-width:42rem;width:100%;overflow-y:auto}.form-field{margin-bottom:1.3rem;display:flex;flex-direction:column;gap:.4rem}.form-prompt{font-weight:600;color:var(--ink)}.form-req{color:var(--gold);font-weight:700}.form-body textarea,.form-body input[type=text],.form-body input[type=number],.form-body select{font:inherit;padding:.55rem .7rem;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink);width:100%;resize:vertical}.form-body textarea:focus-visible,.form-body input:focus-visible,.form-body select:focus-visible{border-color:var(--peacock);outline:2px solid var(--peacock);outline-offset:-1px}.form-body input[type=number]{max-width:8rem}.form-checks{display:flex;flex-direction:column;gap:.3rem}.form-check{display:flex;align-items:center;gap:.55rem;padding:.35rem .4rem;border-radius:6px;cursor:pointer}.form-check:hover{background:var(--peacock-soft)}.form-likert{display:grid;grid-template-columns:repeat(auto-fit,minmax(80px,1fr));gap:.3rem}.form-likert-cell{display:flex;flex-direction:column;align-items:center;text-align:center;padding:.5rem .4rem;border:1px solid var(--line);border-radius:8px;background:var(--card);cursor:pointer;gap:.2rem}.form-likert-cell input[type=radio]{position:absolute;opacity:0;pointer-events:none}.form-likert-cell:hover{border-color:var(--peacock)}.form-likert-cell.selected{border-color:var(--peacock);background:var(--peacock-soft)}.form-likert-n{font-family:var(--font-display);font-weight:600;font-size:1.15rem;color:var(--peacock-deep)}.form-likert-label{font-size:.75rem;color:var(--ink-soft);line-height:1.15}.form-submit{margin-top:1.4rem;display:flex;justify-content:flex-end}.index{flex:1;padding:2rem 1.5rem;max-width:42rem;width:100%;overflow-y:auto}.index-empty{text-align:center;padding-top:4rem}.index-head{display:flex;flex-direction:column;gap:.6rem;margin-bottom:1.5rem}.index-head h1{font-family:var(--font-display);font-weight:600;font-size:1.9rem;margin:0}.index-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.index-item{width:100%;display:flex;justify-content:space-between;align-items:center;padding:.9rem 1rem;background:var(--card);border:1px solid var(--line);border-radius:10px;font:inherit;color:var(--ink);text-align:left;cursor:pointer;transition:border-color .12s ease}.index-item:hover{border-color:var(--peacock)}.index-item-title{font-weight:600}.chip{font-size:.75rem;font-family:var(--font-data);padding:.15rem .55rem;border-radius:999px;border:1px solid var(--line);white-space:nowrap}.chip-open{color:var(--peacock-deep);border-color:var(--peacock)}.chip-urgent{color:#a34c00;border-color:#d99b56}.chip-done{color:var(--muted);background:var(--paper)}.chip-closed{color:var(--muted)}.assignment-back{background:transparent;border:0;color:var(--peacock-deep);font:inherit;font-size:.85rem;padding:0;margin-bottom:.4rem;cursor:pointer}.assignment-back:hover{text-decoration:underline}.sidebar-home{background:transparent;border:0;padding:0;cursor:pointer;display:inline-flex}.chat-with-draft{flex:1;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);min-height:0;gap:0}.chat-column{display:flex;min-height:0;border-right:1px solid var(--line)}.chat-column>.chat{flex:1;min-height:0}.draft-column{display:flex;min-height:0;background:var(--card)}.draft-panel{display:flex;flex-direction:column;padding:1rem 1.2rem 1.2rem;gap:.6rem;width:100%;min-height:0}.draft-head{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.draft-head h2{font-family:var(--font-display);font-weight:600;font-size:1.1rem;margin:0}.draft-save{font-family:var(--font-data);font-size:.72rem;padding:.1rem .5rem;border-radius:999px;border:1px solid var(--line)}.draft-saving{color:var(--muted)}.draft-saved{color:var(--peacock-deep);border-color:var(--peacock)}.draft-save-error{color:#a34c00;border-color:#d99b56}.draft-hint{color:var(--muted);font-size:.85rem;margin:0}.draft-textarea{flex:1;min-height:0;font:inherit;padding:.7rem .8rem;border:1px solid var(--line);border-radius:8px;resize:none;background:var(--paper);color:var(--ink)}.draft-textarea:focus-visible{border-color:var(--peacock);outline:2px solid var(--peacock);outline-offset:-1px}.draft-submit{display:flex;justify-content:flex-end}@media (max-width: 900px){.chat-with-draft{grid-template-columns:1fr;grid-template-rows:1fr auto;overflow-y:auto}.chat-column{border-right:0;border-bottom:1px solid var(--line)}.draft-panel{max-height:60vh}}
