.code-editor{min-width:0;position:relative}.code-editor .cm-editor{min-height:200px;max-height:500px;font-family:JetBrains Mono,Fira Code,SF Mono,Cascadia Code,Menlo,Consolas,monospace;font-size:14px;line-height:1.6;overflow-y:auto}.code-editor .cm-editor.cm-focused{outline:none}.code-editor .cm-scroller{padding:12px 16px}.code-editor .cm-content{caret-color:var(--md-sys-color-primary)}.code-editor .cm-line{padding:0}.code-editor .cm-gutters{background:0 0;border:none}.code-editor__diff-gutter{background:var(--app-surface-muted);border-right:1px solid var(--app-border);-webkit-user-select:none;user-select:none;min-width:28px}.code-editor__diff-gutter .cm-gutterElement{justify-content:center;align-items:center;padding:0;display:flex}.code-editor__gutter-line{justify-content:center;align-items:center;width:100%;height:100%;font-family:monospace;font-size:11px;font-weight:700;display:flex}.code-editor__gutter-line--correct{color:var(--rating-easy)}.code-editor__gutter-line--renamed{color:var(--md-sys-color-tertiary)}.code-editor__gutter-line--partial{color:var(--rating-hard)}.code-editor__gutter-line--incorrect{color:var(--rating-again)}.code-editor__gutter-line--not_written{color:#0000}.code-editor__gutter-line--extra{color:var(--md-sys-color-outline)}.code-editor__gutter-line--clickable{cursor:pointer;transition:background .12s;position:relative}.code-editor__gutter-line--clickable:hover{background:color-mix(in srgb, var(--app-ink) 4%, transparent)}.code-editor__diagnostic{-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;text-underline-offset:2px;border-radius:var(--app-radius-detail);text-decoration-line:underline;text-decoration-style:wavy}.code-editor__diagnostic--error{-webkit-text-decoration-color:var(--rating-again);text-decoration-color:var(--rating-again);background:color-mix(in srgb, var(--md-sys-color-error) 8%, transparent)}.code-editor__diagnostic--warning{-webkit-text-decoration-color:var(--rating-hard);text-decoration-color:var(--rating-hard);background:color-mix(in srgb, var(--rating-hard) 8%, transparent)}.code-editor__diagnostic--info{-webkit-text-decoration-color:var(--md-sys-color-primary);text-decoration-color:var(--md-sys-color-primary);background:color-mix(in srgb, var(--md-sys-color-primary) 8%, transparent)}.cm-tooltip.cm-tooltip-hover:has(.code-editor__diagnostic-tooltip){border-radius:var(--app-radius-control);background:var(--md-sys-color-inverse-surface);max-width:320px;color:var(--md-sys-color-inverse-on-surface);box-shadow:0 4px 12px color-mix(in srgb, var(--app-ink) 25%, transparent);border:none;padding:6px 10px;font-size:.8rem;line-height:1.4}.code-editor__diagnostic-tooltip{font-family:var(--app-font,system-ui, sans-serif);flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.code-editor__diagnostic-fix{all:unset;border-radius:var(--app-radius-detail);background:var(--md-sys-color-primary);color:var(--md-sys-color-on-primary);cursor:pointer;white-space:nowrap;padding:.2em .5em;font-size:.75rem;transition:opacity .15s}.code-editor__diagnostic-fix:hover{opacity:.85}.code-editor__hint-line--delete{background:color-mix(in srgb, var(--md-sys-color-error) 10%, transparent)}.code-editor__hint{border-top:1px solid color-mix(in srgb, var(--rating-easy) 20%, transparent);background:color-mix(in srgb, var(--rating-easy) 10%, transparent);align-items:baseline;min-height:22.4px;padding:0 16px 0 8px;font-family:JetBrains Mono,Fira Code,SF Mono,monospace;font-size:14px;line-height:1.6;display:flex}.code-editor__hint-sign{width:18px;color:var(--rating-easy);text-align:center;-webkit-user-select:none;user-select:none;flex-shrink:0;font-weight:700}.code-editor__hint-code{min-width:0;color:var(--app-ink);white-space:pre;flex:1;margin:0}.code-editor__hint-insert{border-radius:var(--app-radius-detail);background:color-mix(in srgb, var(--rating-easy) 30%, transparent)}.code-editor__hint-delete{border-radius:var(--app-radius-detail);background:color-mix(in srgb, var(--md-sys-color-error) 30%, transparent)}.code-editor__gap{all:unset;box-sizing:border-box;border:1px dashed color-mix(in srgb, var(--md-sys-color-primary) 48%, transparent);border-radius:var(--app-radius-control);background:color-mix(in srgb, var(--md-sys-color-primary) 10%, transparent);min-width:92px;color:var(--md-sys-color-primary);cursor:pointer;letter-spacing:.03em;text-transform:uppercase;justify-content:center;align-items:center;padding:0 10px;font-size:12px;font-weight:700;line-height:1.9;display:inline-flex}.code-editor__gap:hover{background:color-mix(in srgb, var(--md-sys-color-primary) 14%, transparent)}.code-editor__gap:focus-visible{border-color:var(--md-sys-color-primary);background:color-mix(in srgb, var(--md-sys-color-primary) 24%, transparent);border-style:solid}
