:root{--ink: #142033;--muted: #3e5168;--faint: #4e647c;--paper: #eef2f6;--surface: #ffffff;--line: #d5dee8;--line-strong: #b7c5d4;--accent: #0a5f86;--accent-strong: #084c6b;--accent-soft: #e5f3fa;--danger: #9f1239;--danger-soft: #fde8ee;--ok: #065f46;--ok-soft: #d1fae5;--watch: #92400e;--watch-soft: #fef3c7;--issue: #9f1239;--issue-soft: #ffe4e6;--shadow: 0 1px 2px rgba(20, 32, 51, .05), 0 12px 32px rgba(20, 32, 51, .06);--ease: cubic-bezier(.16, 1, .3, 1);color-scheme:light}html,body,#root{height:100%;margin:0}body{font-family:"Source Sans 3",ui-sans-serif,system-ui,sans-serif;font-size:16px;line-height:1.5;background:var(--paper);color:var(--ink);text-rendering:optimizeLegibility}::selection{background:#c5e4f4;color:#06344c}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#b7c6d4;border:2px solid var(--paper);border-radius:999px}input,textarea,select{caret-color:var(--accent);font:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.skip-link{position:absolute;left:1rem;top:1rem;z-index:80;padding:.6rem .9rem;border-radius:.5rem;background:var(--accent);color:#fff;font-weight:600;text-decoration:none;transform:translateY(-200%)}.skip-link:focus{transform:none}.app-shell{display:flex;width:100%;height:100vh;height:100dvh;overflow:hidden;background:var(--paper);color:var(--ink)}.nav-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;border:0;padding:0;background:#14203375;cursor:pointer}.nav-drawer{position:fixed;z-index:30;top:0;bottom:0;left:0;display:flex;width:17.5rem;flex-direction:column;background:var(--surface);border-right:1px solid var(--line);transform:translate(-105%);transition:transform .2s var(--ease)}.nav-drawer.is-open{transform:none}.brand-lockup{display:flex;align-items:center;gap:.75rem;min-width:0}.mark{width:2.25rem;height:2.25rem;flex:none}.brand-name{margin:0;font-size:.975rem;font-weight:600;letter-spacing:-.02em;line-height:1.2}.brand-sub{margin:.1rem 0 0;color:var(--muted);font-size:.8125rem;line-height:1.3}.nav-links{display:flex;flex-direction:column;gap:.25rem;padding:.75rem}.nav-link{display:flex;align-items:center;gap:.75rem;min-height:2.75rem;padding:.4rem .75rem;border-radius:.6rem;color:var(--muted);font-size:.9375rem;font-weight:500;text-decoration:none;transition:background-color .15s var(--ease),color .15s var(--ease)}.nav-link:hover{background:#f3f7fb;color:var(--ink)}.nav-link[aria-current=page]{background:var(--accent-soft);color:var(--accent-strong);font-weight:600}.side-panel{margin-top:auto;padding:1rem;border-top:1px solid var(--line);background:#f7fafc}.drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem;padding:1.1rem 1rem 1rem;border-bottom:1px solid var(--line)}.app-topbar{display:flex;align-items:center;gap:.25rem;min-height:3.5rem;padding:.25rem .75rem .25rem .35rem;background:var(--surface);border-bottom:1px solid var(--line)}.topbar-title{font-size:1rem;font-weight:600;letter-spacing:-.02em}.app-main{position:relative;min-width:0;min-height:0;flex:1;overflow:hidden}.app-main:focus,.app-main:focus-visible{outline:none}.label{display:block;margin-bottom:.35rem;color:var(--muted);font-size:.8125rem;font-weight:600}.field{width:100%;min-height:2.75rem;padding:.5rem .75rem;border:1px solid var(--line-strong);border-radius:.55rem;background:var(--surface);color:var(--ink);font-size:.9375rem;line-height:1.4}textarea.field{min-height:0;resize:vertical}.field::placeholder{color:var(--faint)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;min-height:2.75rem;padding:.45rem .9rem;border:1px solid transparent;border-radius:.55rem;font-size:.875rem;font-weight:600;line-height:1.2;text-decoration:none;cursor:pointer;transition:background-color .15s var(--ease),border-color .15s var(--ease),color .15s var(--ease)}.btn:disabled{cursor:not-allowed;opacity:.5}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-strong)}.btn-secondary{background:var(--surface);border-color:var(--line-strong);color:var(--ink)}.btn-secondary:hover:not(:disabled){background:#f4f8fb}.btn-ink{background:var(--ink);color:#fff}.btn-ink:hover:not(:disabled){background:#0c1726}.btn-quiet{background:transparent;color:var(--accent-strong);padding-inline:.45rem}.btn-quiet:hover:not(:disabled){background:var(--accent-soft)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:#881337}.btn-danger-quiet{background:transparent;color:var(--danger)}.btn-danger-quiet:hover:not(:disabled){background:var(--danger-soft)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border:0;border-radius:.55rem;background:transparent;color:var(--muted);cursor:pointer}.icon-btn:hover{background:var(--danger-soft);color:var(--danger)}.icon-btn.neutral:hover{background:#eef3f8;color:var(--ink)}.stack{display:flex;flex-direction:column;gap:.5rem}.row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.hint{margin:0;color:var(--muted);font-size:.875rem;line-height:1.45}.alert{color:var(--danger);font-size:.875rem;font-weight:600}.panel{background:var(--surface);border:1px solid var(--line);border-radius:.85rem}.panel-head{padding:.9rem 1rem;border-bottom:1px solid var(--line)}.panel-head h2{margin:0;font-size:1rem;font-weight:600;letter-spacing:-.02em}.panel-body{padding:1rem}.pill{display:inline-flex;align-items:center;width:fit-content;padding:.15rem .5rem;border-radius:999px;font-size:.75rem;font-weight:700;letter-spacing:.01em;line-height:1.45}.pill-entity{background:#e0f2fe;color:#0c4a6e}.pill-value{background:#d1fae5;color:#064e3b}.pill-aggregate{background:#fef3c7;color:#78350f}.pill-service{background:#fae8ff;color:#701a75}.pill-repo{background:#e2e8f0;color:#1e293b}.pill-issue{background:var(--issue-soft);color:#881337}.pill-watch{background:var(--watch-soft);color:var(--watch)}.pill-ok{background:var(--ok-soft);color:var(--ok)}.context-name,.title-input{width:100%;min-width:0;padding:.1rem .15rem;border:0;border-radius:.35rem;background:transparent;color:var(--ink);font-weight:600;letter-spacing:-.02em}.context-name{font-size:1.75rem;font-weight:700;line-height:1.2}.title-input{display:block;margin-top:.35rem;font-size:1.125rem;line-height:1.3}.obj-card{padding:1rem}.meta{margin-left:.45rem;color:var(--watch);font-size:.75rem;font-weight:700}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem;color:var(--muted)}.prop-row,.rule-row{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem;font-size:.9375rem}.prop-row{align-items:center}.check{display:flex;align-items:center;gap:.5rem;color:var(--muted);font-size:.8125rem}.check input{width:1rem;height:1rem;accent-color:var(--accent)}.empty{padding:2.75rem 1.25rem;border:1px dashed var(--line-strong);border-radius:.85rem;background:var(--surface);color:var(--muted);text-align:center;font-size:1rem;line-height:1.5}.empty-page{display:flex;height:100%;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:1.5rem;text-align:center}.empty-page p:first-child{max-width:28rem;margin:0;color:var(--ink);font-size:1.25rem;font-weight:600;letter-spacing:-.02em;line-height:1.35}.side-stack{display:flex;flex-direction:column;gap:1rem}.glossary>div+div{margin-top:1rem}.glossary dt{display:flex;align-items:center;justify-content:space-between;gap:.5rem;color:var(--ink);font-size:.9375rem;font-weight:600}.glossary dd{margin:.2rem 0 0;color:var(--muted);font-size:.9375rem;line-height:1.5}.article{width:min(46rem,100%);margin-inline:auto;padding:2.5rem 1.25rem 4rem}.article header{margin-bottom:2.75rem}.article h1{margin:0;color:var(--ink);font-size:2.25rem;font-weight:700;letter-spacing:-.03em;line-height:1.08;text-wrap:balance}.lede{max-width:36ch;margin:.85rem 0 0;color:var(--accent-strong);font-size:1.2rem;font-weight:500;letter-spacing:-.02em;line-height:1.35;text-wrap:balance}.article section+section{margin-top:2.75rem}.article h2{margin:0 0 .75rem;color:var(--ink);font-size:1.5rem;font-weight:600;letter-spacing:-.025em;line-height:1.2;text-wrap:balance}.section-body>p,.section-body>.callout,.section-body>.actions{max-width:66ch}.section-body>p{margin:0;color:#243448;font-size:1.0625rem;line-height:1.7}.section-body>p+p,.section-body>.callout,.section-body>.pattern-grid,.section-body>.actions{margin-top:1rem}.article strong{font-weight:600;color:var(--ink)}.article code{padding:.08em .35em;border-radius:.3rem;background:#e4edf4;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.86em}.callout{padding:1.15rem 1.25rem;border-radius:.8rem;background:var(--accent-soft)}.callout h3{margin:0 0 .45rem;color:var(--accent-strong);font-size:1rem;font-weight:600;letter-spacing:-.02em}.callout p{margin:0;color:#1c3348;font-size:1.0625rem;line-height:1.65}.callout p+p{margin-top:.65rem}.pattern-grid{display:grid;gap:.75rem}.pattern{padding:1rem 1rem 1.05rem;border:1px solid var(--line);border-radius:.8rem;background:var(--surface)}.pattern h3{margin:0}.pattern p{margin:.55rem 0 0;color:#243448;font-size:.9375rem;line-height:1.55}.actions{display:flex;flex-wrap:wrap;gap:.6rem}.coach{display:flex;height:100%;flex-direction:column;padding:.75rem}.coach-frame{display:flex;width:min(46rem,100%);height:100%;min-height:0;flex-direction:column;margin-inline:auto;overflow:hidden;box-shadow:var(--shadow)}.thread{display:flex;min-height:0;flex:1 1 auto;flex-direction:column;gap:.85rem;overflow-y:auto;padding:1rem 1rem 1.25rem;background:#f6f9fb}.msg{max-width:min(36rem,88%);padding:.75rem .9rem;border-radius:1rem;font-size:.9375rem;line-height:1.5}.msg-user{align-self:flex-end;border-bottom-right-radius:.35rem;background:var(--accent);color:#fff}.msg-model{align-self:flex-start;border:1px solid var(--line);border-bottom-left-radius:.35rem;background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #1420330a}.msg-kicker{margin:0 0 .25rem;color:var(--faint);font-size:.75rem;font-weight:700}.composer{flex-shrink:0;padding:.75rem;border-top:1px solid var(--line);background:var(--surface)}.chips{display:flex;gap:.45rem;margin-bottom:.55rem;overflow-x:auto;padding-bottom:.15rem}.chip{flex:none;min-height:2.75rem;padding:.4rem .8rem;border:1px solid var(--line-strong);border-radius:999px;background:var(--surface);color:var(--ink);font-size:.8125rem;font-weight:500;cursor:pointer}.chip:hover:not(:disabled){background:var(--accent-soft);border-color:#b7d7e8}.chip:disabled{opacity:.5;cursor:not-allowed}.status-bar{position:relative;height:.35rem;width:8.5rem;margin-top:.55rem;overflow:hidden;border-radius:999px;background:var(--line)}.status-bar:after{content:"";position:absolute;inset:0 auto 0 0;width:42%;background:var(--accent)}.send-row{display:flex;gap:.5rem}.send-row .field{width:auto;min-width:0;flex:1;border-radius:999px;padding-inline:1rem}.callout .quote{font-style:italic}@media(min-width:768px){.nav-backdrop,.app-topbar,.drawer-head .icon-btn{display:none}.nav-drawer{position:static;transform:none}.article{padding:3.25rem 2rem 4.5rem}.article h1{font-size:2.75rem}.coach{padding:1.25rem}.pattern-grid{grid-template-columns:1fr 1fr}}@media(min-width:1024px){.side-stack{position:sticky;top:1rem;align-self:start;max-height:calc(100dvh - 4rem);overflow:auto}}@media(prefers-reduced-motion:no-preference){.view-enter{animation:view-in .2s var(--ease)}.msg-in{animation:view-in .18s var(--ease)}}@media(prefers-reduced-motion:reduce){.nav-drawer,.nav-link,.btn{transition:none}}@keyframes view-in{0%{transform:translateY(6px);filter:blur(3px)}to{transform:none;filter:none}}
