@import url('https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap');@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@100..800&display=swap');@font-face{font-family: 'Material Symbols Outlined';font-style: normal;font-weight: 100 700;font-display: block;src: url('fonts/MaterialSymbols.woff2') format('woff2')}html{color-scheme: light dark;--aura-accent-color-dark: #34D399;--aura-accent-color-light: #059669;--aura-background-color-dark: #0A0E1A;--aura-background-color-light: #FAFAF9;--aura-base-radius: 4;--aura-font-family: 'Inter',var(--aura-font-family-system);--aura-green: #059669;--aura-neutral-dark: #F5F5F4;--aura-neutral-light: #0A0E1A}html[data-theme='light']{color-scheme: light}html[data-theme='dark']{color-scheme: dark}html{--vaadin-button-border-radius: 999px}button.theme-toggle{display: inline-flex;align-items: center;justify-content: center;width: 34px;height: 34px;padding: 0;border: 1px solid var(--vaadin-border-color-secondary);border-radius: 999px;background: var(--aura-surface-color);color: var(--vaadin-text-color-secondary);cursor: var(--vaadin-clickable-cursor);transition: all 0.2s ease}button.theme-toggle:hover{border-color: var(--vaadin-border-color);color: var(--vaadin-text-color);transform: rotate(-15deg)}.theme-toggle svg{width: 16px;height: 16px;display: block}.theme-toggle .icon-sun{display: none}.theme-toggle .icon-moon{display: block}html[data-theme='dark'] .theme-toggle .icon-sun{display: block}html[data-theme='dark'] .theme-toggle .icon-moon{display: none}html .v-loading-indicator{background-color: var(--aura-accent-color)}:is(vaadin-dialog[has-header],vaadin-dialog[has-title])::part(content){padding-top: calc(var(--vaadin-focus-ring-width,2px) + 1px)}vaadin-dialog[has-footer]::part(content){padding-bottom: calc(var(--vaadin-focus-ring-width,2px) + 1px)}.language-switcher{display: inline-flex;align-items: center;border: 1px solid var(--vaadin-border-color-secondary);border-radius: 999px;padding: 2px;background: var(--aura-surface-color)}.language-switcher button{background: transparent;border: none;border-radius: 999px;padding: 4px 10px;cursor: var(--vaadin-clickable-cursor);font-family: inherit;font-size: var(--aura-font-size-xs);font-weight: 600;letter-spacing: 0.04em;color: var(--vaadin-text-color-secondary);transition: all 0.2s ease}.language-switcher button:hover{color: var(--vaadin-text-color)}.language-switcher button.active{background: var(--aura-neutral);color: var(--aura-background-color)}a.login-cta{display: inline-flex;align-items: center;gap: var(--vaadin-gap-s,0.5em);padding: var(--vaadin-padding-s,0.5em) var(--vaadin-padding-m,1em);border: 1px solid var(--vaadin-border-color-secondary);border-radius: 999px;background: var(--aura-accent-color);color: var(--aura-accent-contrast-color);font-weight: var(--aura-font-weight-semibold,600);text-decoration: none;box-shadow: var(--aura-shadow-s);outline-offset: 2px;transition: background-color 0.1s}a.login-cta:hover{background: color-mix(in srgb,var(--aura-accent-color) 88%,var(--aura-accent-contrast-color))}a.login-cta vaadin-icon{--vaadin-icon-size: 1.25em}a.login-cta.login-cta--secondary{background: transparent;color: inherit;box-shadow: none}a.login-cta.login-cta--secondary:hover{background: color-mix(in srgb,var(--aura-accent-color) 12%,transparent)}.subscription-badge{display: inline-block;padding: 0.125rem 0.625rem;border-radius: 999px;font-size: 0.8125rem;font-weight: var(--aura-font-weight-semibold,600);color: var(--aura-accent-text-color);background: color-mix(in srgb,var(--aura-accent-color) 12%,transparent)}.logo-dark{display: none}@media (prefers-color-scheme: dark){.logo-light{display: none}.logo-dark{display: inline}}html[data-theme='light'] .logo-light{display: inline}html[data-theme='light'] .logo-dark{display: none}html[data-theme='dark'] .logo-light{display: none}html[data-theme='dark'] .logo-dark{display: inline}code,pre,kbd,samp{font-family: 'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace}.material-symbols-outlined{font-family: 'Material Symbols Outlined';font-variation-settings: 'FILL' 0,'wght' 400,'GRAD' 0,'opsz' 24;font-feature-settings: 'liga'}vaadin-icon.material-symbols-outlined{--vaadin-icon-size: 1.5em;--vaadin-icon-visual-size: var(--vaadin-icon-size)}vaadin-button[theme~='icon']{--vaadin-button-padding: var(--vaadin-padding-block-container)}vaadin-button[theme~='icon']::part(label){display: contents}vaadin-side-nav-item:not([current])>vaadin-icon{color: var(--aura-accent-text-color)}vaadin-side-nav-item[current]::part(content){--vaadin-side-nav-item-background: var(--vaadin-background-container);--vaadin-side-nav-item-border-color: transparent}vaadin-side-nav::part(label){text-transform: uppercase;font-size: var(--aura-font-size-xs);color: var(--vaadin-text-color);letter-spacing: 0.03em}.artifact-split{background: var(--aura-surface-color);border: 1px solid var(--vaadin-border-color-secondary);border-radius: var(--vaadin-radius-l);--vaadin-split-layout-splitter-background: var(--vaadin-border-color-secondary);--vaadin-split-layout-splitter-size: 1px}.artifact-pane{display: flex;flex-direction: column;height: 100%;min-width: 0}.artifact-pane-label{flex: none;padding: var(--vaadin-padding-s) var(--vaadin-padding-m);border-bottom: 1px solid var(--vaadin-border-color-secondary);font-size: var(--aura-font-size-xs);font-weight: var(--aura-font-weight-semibold);letter-spacing: 0.04em;text-transform: uppercase;color: var(--vaadin-text-color-secondary)}vaadin-tabsheet.editor-tabs{flex: 1;min-height: 0;width: 100%}vaadin-tabsheet.editor-tabs::part(content){min-height: 0}.markdown-source{margin: 0;padding: var(--vaadin-padding-m);font-family: 'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;font-size: var(--aura-font-size-s);line-height: 1.7;white-space: pre-wrap;overflow-wrap: anywhere}vaadin-text-area.artifact-source>textarea{font-family: 'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;font-size: var(--aura-font-size-s);line-height: 1.7}.artifact-split vaadin-text-area.artifact-source{--vaadin-input-field-background: transparent;--vaadin-input-field-border-width: 0;--vaadin-input-field-border-radius: 0;--vaadin-input-field-padding: var(--vaadin-padding-m);--vaadin-focus-ring-width: 0}.artifact-split #artifact-preview{display: block;padding: var(--vaadin-padding-s) var(--vaadin-padding-l) var(--vaadin-padding-l)}.artifact-split #artifact-preview>:first-child{margin-top: 0}plantuml-editor{display: block;flex: 1;min-height: 0;overflow: hidden}plantuml-editor .cm-editor{height: 100%;background: transparent}plantuml-editor .cm-editor.cm-focused{outline: none}plantuml-editor .cm-scroller{font-family: 'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;font-size: var(--aura-font-size-s);line-height: 1.7}plantuml-editor .cm-gutters{background: transparent;border-right: 1px solid var(--vaadin-border-color-secondary);color: var(--vaadin-text-color-secondary)}.puml-comment{color: var(--vaadin-text-color-secondary);font-style: italic}.puml-string{color: var(--aura-success-text-color,#2e7d32)}.puml-keyword{color: var(--aura-primary-text-color,#1565c0);font-weight: var(--aura-font-weight-semibold)}.puml-meta{color: var(--aura-warning-text-color,#b26a00)}.puml-color{color: var(--aura-error-text-color,#ad1457)}.puml-stereotype{color: var(--aura-warning-text-color,#6a1b9a)}.puml-arrow{color: var(--vaadin-text-color);font-weight: var(--aura-font-weight-semibold)}.diagram-preview{padding: var(--vaadin-padding-m)}.diagram-preview img{max-width: none}.diagram-preview.diagram-stale{opacity: 0.35}.diagram-error{flex: none;padding: var(--vaadin-padding-s) var(--vaadin-padding-m);border-bottom: 1px solid var(--vaadin-border-color-secondary);background: var(--aura-error-background-color,#fdecea);color: var(--aura-error-text-color,#b71c1c);font-size: var(--aura-font-size-s)}.entity-model-editor{display: flex;flex-direction: column;gap: var(--vaadin-gap-m);padding: var(--vaadin-padding-m)}.entity-model-editor h3{margin: 0;font-size: var(--aura-font-size-m)}.use-case-editor{display: flex;flex-direction: column;gap: var(--vaadin-gap-m);padding: var(--vaadin-padding-m)}.use-case-editor h3{margin: 0;font-size: var(--aura-font-size-m)}.use-case-section-label{display: block;font-size: var(--aura-font-size-s);font-weight: var(--aura-font-weight-medium);color: var(--vaadin-text-color-secondary,var(--lumo-secondary-text-color))}.use-case-section>:is(ul,ol),.use-case-section p{margin: 0.25em 0}.requirements-editor{display: flex;flex-direction: column;gap: var(--vaadin-gap-l);padding: var(--vaadin-padding-m)}.requirements-editor h3,.requirements-editor h4{margin: 0;font-size: var(--aura-font-size-m)}.requirements-section{display: flex;flex-direction: column;gap: var(--vaadin-gap-s)}mermaid-diagram{display: block}mermaid-diagram svg{max-width: none}.conflict-compare{display: flex;gap: var(--vaadin-gap-m)}.conflict-pane{flex: 1 1 0;min-width: 0;display: flex;flex-direction: column;background: var(--aura-surface-color);border: 1px solid var(--vaadin-border-color-secondary);border-radius: var(--vaadin-radius-l);overflow: hidden}.conflict-diff{overflow: auto;max-height: 40vh;padding: var(--vaadin-padding-s) 0;font-family: 'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;font-size: var(--aura-font-size-s);line-height: 1.7}.conflict-line{min-height: 1lh;padding: 0 var(--vaadin-padding-m);white-space: pre-wrap;overflow-wrap: anywhere}.conflict-line-added{background: color-mix(in srgb,var(--aura-green) 18%,transparent)}.conflict-line-removed{background: color-mix(in srgb,#DC2626 14%,transparent);text-decoration: line-through;text-decoration-color: color-mix(in srgb,#DC2626 55%,transparent)}.conflict-legend{margin: 0;font-size: var(--aura-font-size-xs);color: var(--vaadin-text-color-secondary)}:is(vaadin-button,vaadin-menu-bar-button,vaadin-upload-button):not([theme~="primary"],[theme~="tertiary"]){--aura-accent-color-dark: var(--aura-neutral);--aura-accent-color-light: var(--aura-neutral);--vaadin-button-background: transparent;--vaadin-button-border-color: var(--vaadin-border-color-secondary);--vaadin-button-shadow: none}.dashboard-stats{display: flex;flex-wrap: wrap;gap: var(--vaadin-gap-l,1rem)}.dashboard-stat{display: flex;flex-direction: column;gap: 0.25rem;min-width: 11rem;padding: 1rem 1.25rem;border: 1px solid var(--vaadin-border-color-secondary);border-radius: 0.75rem;background: var(--aura-surface-color)}.dashboard-stat-value{font-size: 1.75rem;font-weight: var(--aura-font-weight-semibold,600);line-height: 1.2}.dashboard-stat-label{font-size: 0.875rem;color: var(--vaadin-text-color-secondary)}.dashboard-distribution{display: flex;flex-wrap: wrap;align-items: center;gap: var(--vaadin-gap-s,0.5rem)}.status-badge{display: inline-block;padding: 0.125rem 0.625rem;border-radius: 999px;font-size: 0.8125rem;font-weight: var(--aura-font-weight-semibold,600);white-space: nowrap;color: var(--status-color,var(--vaadin-text-color));background: color-mix(in srgb,var(--status-color,currentColor) 12%,transparent)}.status-badge--draft{--status-color: light-dark(#57534E,#A8A29E)}.status-badge--reviewed{--status-color: light-dark(#2563EB,#60A5FA)}.status-badge--approved{--status-color: light-dark(#0891B2,#22D3EE)}.status-badge--implemented{--status-color: light-dark(#7C3AED,#A78BFA)}.status-badge--tested{--status-color: light-dark(#B45309,#FBBF24)}.status-badge--done{--status-color: var(--aura-accent-color)}.status-badge--obsolete{--status-color: light-dark(#78716C,#78716C);text-decoration: line-through}.status-badge--unspecified{--status-color: light-dark(#DC2626,#F87171)}