.app-main-layout{align-items:flex-start;gap:var(--space-4);min-width:0;display:flex}.app-main-layout__chat{flex:1;min-width:0}.app-demo-mode-badge{padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);background-color:var(--color-warning);color:var(--color-warning-text);white-space:nowrap;font-size:.75rem;font-weight:600}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background-color:var(--color-surface);color:var(--color-text);margin:0}:root{--space-unit:.25rem;--space-1:calc(var(--space-unit) * 1);--space-2:calc(var(--space-unit) * 2);--space-3:calc(var(--space-unit) * 3);--space-4:calc(var(--space-unit) * 4);--space-6:calc(var(--space-unit) * 6);--space-8:calc(var(--space-unit) * 8);--space-12:calc(var(--space-unit) * 12);--space-16:calc(var(--space-unit) * 16);--container-max-width:80rem;--nav-height-smartphone:3.5rem;--nav-width-tablet:4.5rem;--nav-width-desktop:16rem;--aside-max-width-desktop:24rem;--safe-area-inset-top:env(safe-area-inset-top,0px);--safe-area-inset-right:env(safe-area-inset-right,0px);--safe-area-inset-bottom:env(safe-area-inset-bottom,0px);--safe-area-inset-left:env(safe-area-inset-left,0px)}.app-shell{min-height:100dvh;padding-left:var(--safe-area-inset-left);padding-right:var(--safe-area-inset-right);grid-template:"header""main"1fr"nav"/1fr;display:grid}.app-shell__header{min-height:3rem;padding:var(--space-4);padding-top:max(var(--space-4), var(--safe-area-inset-top));grid-area:header}.app-shell__main{min-width:0;padding:var(--space-4);padding-bottom:calc(var(--nav-height-smartphone) + var(--space-4) + var(--safe-area-inset-bottom));grid-area:main}.app-shell__nav{min-height:var(--nav-height-smartphone);padding-inline:var(--space-2);grid-area:nav;justify-content:space-around;align-items:center;padding-block-end:max(var(--space-2), var(--safe-area-inset-bottom));display:flex;position:fixed;inset-block-end:0;inset-inline:0}.app-shell__aside{display:none}@media (width>=48rem){.app-shell{grid-template-columns:var(--nav-width-tablet) 1fr;grid-template-rows:auto 1fr;grid-template-areas:"header header""nav main"}.app-shell__nav{justify-content:flex-start;align-items:center;gap:var(--space-4);min-height:0;padding-block:var(--space-4) var(--space-2);flex-direction:column;padding-inline-start:max(var(--space-2), var(--safe-area-inset-left));position:static}.app-shell__main{padding-bottom:var(--space-4)}}@media (width>=64rem){.app-shell{grid-template-columns:var(--nav-width-desktop) 1fr auto;grid-template-rows:auto 1fr;grid-template-areas:"header header header""nav main aside"}.app-shell__nav{width:var(--nav-width-desktop);padding-inline:var(--space-4);align-items:stretch}.app-shell__aside{min-width:0;max-width:var(--aside-max-width-desktop);padding:var(--space-4);grid-area:aside;display:block}}.chat-surface{gap:var(--space-4);flex-direction:column;height:100%;min-height:0;display:flex}.chat-disclaimer{padding:var(--space-3);border-radius:var(--radius-md);background-color:var(--color-surface-alt);color:var(--color-text-muted);font-size:var(--text-small);line-height:var(--text-small--line-height);margin:0}.chat-surface__messages{gap:var(--space-3);flex-direction:column;flex:1;min-height:0;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.chat-surface__empty{color:var(--color-text-muted);font-size:var(--text-small)}.chat-message{max-width:42rem;padding:var(--space-3);border-radius:var(--radius-md);border:1px solid var(--color-border);background-color:var(--color-surface)}.chat-message--user{background-color:var(--color-accent);color:var(--color-accent-text);border-color:var(--color-accent);align-self:flex-end}.chat-message--assistant{background-color:var(--color-surface-alt);color:var(--color-text);align-self:flex-start}.chat-message__text{white-space:pre-wrap;overflow-wrap:anywhere;font-size:var(--text-body);line-height:var(--text-body--line-height);margin:0}.chat-ai-badge{margin-top:var(--space-2);padding-inline:var(--space-2);padding-block:var(--space-1);border-radius:var(--radius-full);background-color:var(--color-surface);color:var(--color-text-muted);font-size:var(--text-small);line-height:1;display:inline-block}.chat-message__error{margin:var(--space-2) 0 0;color:var(--color-danger-text);background-color:var(--color-danger);padding:var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-small)}.chat-surface__next-actions{gap:var(--space-2);margin:var(--space-2) 0 0;flex-wrap:wrap;padding:0;list-style:none;display:flex}.chat-surface__next-action{padding-inline:var(--space-2);padding-block:var(--space-1);border-radius:var(--radius-full);border:1px solid var(--color-border);background-color:var(--color-surface);color:var(--color-text);font-size:var(--text-small);line-height:var(--text-small--line-height)}.chat-surface__composer{align-items:flex-end;gap:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--color-border);flex-wrap:wrap;display:flex}.chat-surface__composer-label{font-size:var(--text-small);color:var(--color-text-muted);flex-basis:100%}.chat-surface__input{resize:vertical;min-width:0;padding:var(--space-2);border-radius:var(--radius-sm);border:1px solid var(--color-border);background-color:var(--color-surface);color:var(--color-text);font:inherit;flex:1}.chat-surface__input:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}.chat-surface__send{padding-inline:var(--space-4);padding-block:var(--space-2);border-radius:var(--radius-sm);background-color:var(--color-accent);color:var(--color-accent-text);font:inherit;cursor:pointer;border:none}.chat-surface__send:disabled{opacity:.6;cursor:not-allowed}.chat-surface__send:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}.writeback-confirm-backdrop{padding:var(--space-4);z-index:50;background-color:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.writeback-confirm-dialog{gap:var(--space-3);width:min(100%,28rem);max-height:90vh;padding:var(--space-4);border-radius:var(--radius-md);border:1px solid var(--color-border);background-color:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-lg);flex-direction:column;display:flex;overflow-y:auto}.writeback-confirm-dialog:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:-2px}.writeback-confirm-dialog__title{font-size:var(--text-heading-3);line-height:var(--text-heading-3--line-height);font-weight:var(--font-weight-bold);margin:0}.writeback-confirm-dialog__description{font-size:var(--text-body);line-height:var(--text-body--line-height);color:var(--color-text-muted);margin:0}.writeback-gate-badge{align-items:center;gap:var(--space-2);padding-inline:var(--space-2);padding-block:var(--space-1);border-radius:var(--radius-full);font-size:var(--text-small);background-color:var(--color-surface-alt);color:var(--color-text-muted);align-self:flex-start;line-height:1;display:inline-flex}.writeback-gate-badge[data-gate-state=confirmed]{background-color:var(--color-success);color:var(--color-success-text)}.writeback-gate-badge[data-gate-state=rejected],.writeback-gate-badge[data-gate-state=missingblocking]{background-color:var(--color-danger);color:var(--color-danger-text)}.writeback-confirm-dialog__result{padding:var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-small);margin:0}.writeback-confirm-dialog__result[data-result-state=committed]{background-color:var(--color-success);color:var(--color-success-text)}.writeback-confirm-dialog__result[data-result-state=noncommit]{background-color:var(--color-surface-alt);color:var(--color-text)}.writeback-confirm-dialog__result[data-result-state=failed]{background-color:var(--color-danger);color:var(--color-danger-text)}.writeback-confirm-dialog__actions{justify-content:flex-end;gap:var(--space-2);flex-wrap:wrap;display:flex}.writeback-confirm-dialog__button{padding-inline:var(--space-4);padding-block:var(--space-2);border-radius:var(--radius-sm);border:1px solid var(--color-border);background-color:var(--color-surface);color:var(--color-text);font:inherit;cursor:pointer}.writeback-confirm-dialog__button--primary{border-color:var(--color-accent);background-color:var(--color-accent);color:var(--color-accent-text)}.writeback-confirm-dialog__button:disabled{opacity:.6;cursor:not-allowed}.writeback-confirm-dialog__button:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}.diff-rollback-view{gap:var(--space-3);flex-direction:column;min-width:0;display:flex}.diff-rollback-view__header{gap:var(--space-4);flex-wrap:wrap;display:flex}.diff-rollback-view__version{gap:var(--space-1);padding:var(--space-2);border-radius:var(--radius-sm);border:1px solid var(--color-border);background-color:var(--color-surface-alt);font-size:var(--text-small);flex-direction:column;display:flex}.diff-rollback-view__lines{padding:var(--space-2);border-radius:var(--radius-sm);border:1px solid var(--color-border);background-color:var(--color-surface);font-size:var(--text-small);line-height:var(--text-small--line-height);margin:0;overflow-x:auto}.diff-line{white-space:pre-wrap;overflow-wrap:anywhere;padding-inline:var(--space-2);display:block}.diff-line--added{background-color:var(--color-success);color:var(--color-success-text)}.diff-line--removed{background-color:var(--color-danger);color:var(--color-danger-text)}.diff-line--unchanged{color:var(--color-text-muted)}.diff-rollback-view__rollback-button{padding-inline:var(--space-4);padding-block:var(--space-2);border-radius:var(--radius-sm);border:1px solid var(--color-border);background-color:var(--color-surface);color:var(--color-text);font:inherit;cursor:pointer;align-self:flex-start}.diff-rollback-view__rollback-button:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}.diff-rollback-view__rollback-button:disabled{opacity:.6;cursor:not-allowed}.layout-container{width:100%;max-width:var(--container-max-width);margin-inline:auto;padding-inline:clamp(1rem,4vw,2.5rem)}.layout-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));display:grid}.aggregate-readiness-indicator{align-items:center;gap:var(--space-2);min-height:var(--space-6);min-width:var(--space-6);padding-inline:var(--space-3);padding-block:var(--space-1);border-radius:var(--radius-full);font:inherit;font-size:var(--text-small);font-weight:var(--font-weight-medium);cursor:pointer;border:none;display:inline-flex}.aggregate-readiness-indicator:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}.aggregate-readiness-indicator__label{white-space:nowrap}.artifact-panel{gap:var(--space-3);flex-direction:column;min-width:0;display:flex}.artifact-panel__title{font-size:var(--text-heading-2);line-height:var(--text-heading-2--line-height);font-weight:var(--font-weight-bold);color:var(--color-text);margin:0}.artifact-panel__content{min-width:0}.version-timeline{gap:var(--space-4);flex-direction:column;min-width:0;display:flex}.version-timeline__list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.version-timeline__item{justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-2);border-radius:var(--radius-sm);border:1px solid var(--color-border);background-color:var(--color-surface-alt);font-size:var(--text-small);flex-wrap:wrap;display:flex}.version-timeline__item[data-selected=true]{border-color:var(--color-accent)}.version-timeline__item-meta{align-items:baseline;gap:var(--space-2);flex-wrap:wrap;min-width:0;display:flex}.version-timeline__active-badge{padding-inline:var(--space-2);padding-block:var(--space-1);border-radius:var(--radius-full);font-size:var(--text-small);background-color:var(--color-success);color:var(--color-success-text);align-items:center;line-height:1;display:inline-flex}.version-timeline__select-button{padding-inline:var(--space-4);padding-block:var(--space-2);border-radius:var(--radius-sm);border:1px solid var(--color-border);background-color:var(--color-surface);color:var(--color-text);font:inherit;cursor:pointer}.version-timeline__select-button:disabled{opacity:.6;cursor:not-allowed}.version-timeline__select-button:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}.version-timeline__empty{padding:var(--space-2);border-radius:var(--radius-sm);background-color:var(--color-surface-alt);color:var(--color-text-muted);font-size:var(--text-small);margin:0}.login-surface{gap:var(--space-4);max-width:24rem;padding:var(--space-4);border-radius:var(--radius-md);border:1px solid var(--color-border);background-color:var(--color-surface);flex-direction:column;margin-inline:auto;display:flex}.login-surface__heading{font-size:var(--text-heading-2);line-height:var(--text-heading-2--line-height);font-weight:var(--font-weight-bold);color:var(--color-text);margin:0}.login-surface__hint{font-size:var(--text-small);line-height:var(--text-small--line-height);color:var(--color-text-muted);margin:0}.login-surface__form{gap:var(--space-2);flex-direction:column;display:flex}.login-surface__label{font-size:var(--text-small);color:var(--color-text-muted)}.login-surface__input{padding:var(--space-2);border-radius:var(--radius-sm);border:1px solid var(--color-border);background-color:var(--color-surface);color:var(--color-text);font:inherit}.login-surface__input:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}.login-surface__submit{padding-inline:var(--space-4);padding-block:var(--space-2);border-radius:var(--radius-sm);background-color:var(--color-accent);color:var(--color-accent-text);font:inherit;cursor:pointer;border:none}.login-surface__submit:disabled{opacity:.6;cursor:not-allowed}.login-surface__submit:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}.login-surface__status{padding:var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-small);background-color:var(--color-surface-alt);color:var(--color-text);margin:0}.login-surface__error{padding:var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-small);background-color:var(--color-danger);color:var(--color-danger-text);margin:0}.upload-surface{gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-md);border:1px solid var(--color-border);background-color:var(--color-surface);flex-direction:column;display:flex}.upload-surface__heading{font-size:var(--text-heading-3);line-height:var(--text-heading-3--line-height);font-weight:var(--font-weight-bold);color:var(--color-text);margin:0}.upload-surface__label{font-size:var(--text-small);color:var(--color-text-muted)}.upload-surface__input{font:inherit;color:var(--color-text)}.upload-surface__input:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}.upload-surface__status{padding:var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-small);background-color:var(--color-surface-alt);color:var(--color-text);margin:0}.upload-surface__status[data-state=committed],.upload-surface__status[data-state=duplicate_suppressed]{background-color:var(--color-success);color:var(--color-success-text)}.upload-surface__status[data-state=error]{background-color:var(--color-danger);color:var(--color-danger-text)}.contextual-surface-region[hidden]{display:none}.contextual-surface-region__header{margin-bottom:var(--space-3);justify-content:flex-start;display:flex}.contextual-surface-region__close{align-items:center;gap:var(--space-2);min-height:var(--space-6);padding-inline:var(--space-4);padding-block:var(--space-2);border-radius:var(--radius-sm);border:1px solid var(--color-border);background-color:var(--color-surface);color:var(--color-text);font:inherit;cursor:pointer;display:inline-flex}.contextual-surface-region__close:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}.contextual-surface-region__content{min-width:0}.contextual-surface-region:not([hidden]){z-index:40;padding:var(--space-4);padding-top:max(var(--space-4), var(--safe-area-inset-top));padding-bottom:max(var(--space-4), var(--safe-area-inset-bottom));background-color:var(--color-surface);flex-direction:column;display:flex;position:fixed;inset:0;overflow-y:auto}@media (width>=48rem){.contextual-surface-region:not([hidden]){z-index:auto;width:min(100%, var(--aside-max-width-desktop));max-height:none;padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);flex-shrink:0;position:static;inset:auto;overflow-y:visible}}
