.app-header{position:sticky;top:0;z-index:100;background-color:#1a1a1a;border-bottom:1px solid #333}.app-header__container{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem}.app-header__brand{font-size:1.25rem;font-weight:600;color:inherit;text-decoration:none}.app-header__brand:hover{color:#646cff}.app-header__left{display:flex;align-items:center;gap:1.5rem}.app-header__nav{display:flex;align-items:center;gap:.25rem}.app-header__nav-link{padding:.375rem .75rem;border-radius:4px;font-size:.875rem;color:var(--text-secondary);text-decoration:none;transition:color .15s ease,background-color .15s ease}.app-header__nav-link:hover{color:var(--text-primary);background-color:var(--bg-hover)}.app-header__login{padding:.5rem 1rem;background:transparent;border:1px solid #444;border-radius:4px;color:inherit;cursor:pointer;font-size:.875rem;transition:background-color .15s ease}.app-header__login:hover{background-color:#333}.app-header__login:focus{outline:2px solid #646cff;outline-offset:2px}.app-header__login:disabled{opacity:.6;cursor:not-allowed}.user-dropdown{position:relative}.user-dropdown__trigger{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:transparent;border:1px solid #444;border-radius:4px;color:inherit;cursor:pointer;font-size:.875rem}.user-dropdown__trigger:hover{background-color:#333}.user-dropdown__trigger:focus{outline:2px solid #646cff;outline-offset:2px}.user-dropdown__chevron{font-size:.625rem}.user-dropdown__menu{position:absolute;top:calc(100% + 4px);right:0;min-width:150px;background-color:#2a2a2a;border:1px solid #444;border-radius:4px;box-shadow:0 4px 12px #0000004d;overflow:hidden}.user-dropdown__item{display:block;width:100%;padding:.625rem 1rem;background:transparent;border:none;color:inherit;text-align:left;cursor:pointer;font-size:.875rem}.user-dropdown__item:hover{background-color:#333}.user-dropdown__item:focus{outline:none;background-color:#444}.user-dropdown__item--logout{border-top:1px solid #444;color:#ff6b6b}.main-layout{min-height:100vh;display:flex;flex-direction:column}.main-layout__content{flex:1}:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;color:#ffffffde;background-color:#121212;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--bg-page: #121212;--bg-surface: #1a1a1a;--bg-elevated: #242424;--bg-hover: #2a2a2a;--bg-active: #333;--text-primary: rgba(255, 255, 255, .87);--text-secondary: rgba(255, 255, 255, .6);--text-muted: rgba(255, 255, 255, .38);--border: #333;--border-subtle: #2a2a2a;--accent: #646cff;--accent-hover: #535bf2;--status-running: #4ade80;--status-starting: #facc15;--status-error: #f87171;--status-terminated: #6b7280}*{box-sizing:border-box;margin:0;padding:0}body{min-width:320px;min-height:100vh}h1{font-size:2rem;line-height:1.2;margin-bottom:1rem}h2{font-size:1.5rem;line-height:1.3;margin-bottom:.75rem}a{color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}.login-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:calc(100vh - 57px);padding:2rem;text-align:center}.login-page__title{font-size:2.5rem;font-weight:300;margin-bottom:.5rem;letter-spacing:-.02em}.login-page__subtitle{font-size:1.125rem;color:var(--text-secondary);font-weight:400}.dashboard-page{min-height:calc(100vh - 57px);padding:2rem 1.5rem;background-color:var(--bg-page)}.dashboard-page__container{max-width:800px;margin:0 auto}.dashboard-launcher__hint{text-align:center;margin-top:1rem;color:var(--text-muted);font-size:.875rem}.form-select{position:relative}.form-select__compound{display:flex;align-items:stretch;width:100%;background-color:var(--bg-elevated);border:1px solid var(--border);border-radius:6px;transition:border-color .15s ease}.form-select__compound:hover{border-color:#444}.form-select__compound:focus-within{border-color:var(--accent)}.form-select__divider{width:1px;background-color:var(--border);flex-shrink:0}.option-field select option,.dialog__field select option,.git-server-manager__select option{background-color:var(--bg-surface);color:var(--text-primary)}.form-select__empty{padding:.5rem .75rem;background-color:var(--bg-elevated);border:1px dashed var(--border);border-radius:6px;color:var(--text-muted);font-size:.875rem}.form-select__empty a{color:var(--accent)}.form-select__trigger{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.5rem .75rem;background-color:var(--bg-elevated);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-size:.875rem;cursor:pointer;transition:border-color .15s ease}.form-select__trigger:hover:not(:disabled){border-color:#444}.form-select__trigger:focus{outline:none;border-color:var(--accent)}.form-select__trigger:disabled{opacity:.5;cursor:not-allowed}.form-select__trigger--bare{flex:1;background-color:transparent;border:none;border-radius:0}.form-select__trigger--bare:hover:not(:disabled),.form-select__trigger--bare:focus{border-color:transparent}.form-select__trigger--chip{flex:0 1 auto;width:auto;max-width:12rem;background-color:transparent;border:none;border-radius:0}.form-select__trigger--chip:hover:not(:disabled),.form-select__trigger--chip:focus{border-color:transparent}.form-select__trigger--link{color:var(--accent);text-decoration:none}.form-select__value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.form-select__placeholder{color:var(--text-muted);white-space:nowrap}.form-select__chevron{flex-shrink:0;margin-left:.5rem;color:var(--text-secondary);font-size:.625rem}.form-select__dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:50;max-height:280px;overflow-y:auto;background-color:var(--bg-surface);border:1px solid var(--border);border-radius:6px;box-shadow:0 4px 12px #0006}.form-select__search{position:sticky;top:0;padding:.5rem;background-color:var(--bg-surface);border-bottom:1px solid var(--border-subtle)}.form-select__search-input{width:100%;padding:.375rem .625rem;background-color:var(--bg-elevated);border:1px solid var(--border);border-radius:4px;color:var(--text-primary);font-size:.875rem}.form-select__search-input:focus{outline:none;border-color:var(--accent)}.form-select__search-input::placeholder{color:var(--text-muted)}.form-select__option{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.5rem .75rem;background:transparent;border:none;color:var(--text-primary);font-size:.875rem;text-align:left;cursor:pointer}.form-select__option:hover{background-color:var(--bg-hover)}.form-select__option-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.form-select__option-sub{display:block;color:var(--text-muted);font-size:.75rem}.form-select__badge{flex-shrink:0;padding:.125rem .375rem;border-radius:4px;font-size:.625rem;font-weight:500;text-transform:uppercase}.form-select__badge--default{background-color:#646cff33;color:var(--accent)}.form-select__badge--protected{background-color:#facc1533;color:var(--status-starting)}.form-select__message{padding:.5rem .75rem;color:var(--text-secondary);font-size:.875rem}.form-select__error{color:var(--status-error)}.recent-workspaces{margin-top:2rem}.recent-workspaces__title{font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:.75rem}.recent-workspaces__list{display:flex;flex-direction:column;gap:.25rem}.recent-workspaces__item{display:flex;align-items:center;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid var(--border-subtle)}.recent-workspaces__item:last-child{border-bottom:none}.recent-workspaces__project{color:var(--text-primary);font-size:.875rem}.recent-workspaces__branch{color:var(--text-secondary);font-size:.875rem;margin-left:.5rem}.recent-workspaces__date{color:var(--text-muted);font-size:.75rem}.error-message{padding:.75rem 1rem;background-color:#f871711a;border:1px solid rgba(248,113,113,.3);border-radius:6px;color:var(--status-error);font-size:.875rem;margin-bottom:1rem}.loading-message{text-align:center;padding:2rem;color:var(--text-secondary)}.profile-page{min-height:calc(100vh - 57px);padding:2rem 1.5rem;background-color:var(--bg-page)}.profile-page .page-content{max-width:600px;margin:0 auto}.profile-email{font-size:1.125rem;color:var(--text-primary);margin-bottom:2rem}.profile-section>h2{font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:.5rem}.profile-section>.section-description{color:var(--text-secondary);font-size:.875rem;margin-bottom:1.5rem}.settings-page{min-height:calc(100vh - 57px);padding:2rem 1.5rem;background-color:var(--bg-page)}.settings-page .page-content{max-width:600px;margin:0 auto}.settings-form{display:flex;flex-direction:column;gap:1.5rem}.settings-section{background-color:var(--bg-surface);border:1px solid var(--border);border-radius:8px;padding:1.25rem}.settings-section h2{font-size:.875rem;font-weight:600;color:var(--text-primary);margin-bottom:.25rem}.settings-section .section-description{font-size:.8125rem;color:var(--text-muted);margin-bottom:1rem}.settings-feature-notice{padding:.75rem 1rem;margin-bottom:1rem;background:#646cff1a;border-left:3px solid var(--accent);border-radius:4px;font-size:.85rem;color:#ffffffb3;line-height:1.5}.settings-feature-notice a{color:var(--accent);text-decoration:none}.settings-feature-notice a:hover{text-decoration:underline}.form-group{margin-bottom:1rem}.form-group:last-child{margin-bottom:0}.form-group label{display:block;font-size:.8125rem;font-weight:500;color:var(--text-secondary);margin-bottom:.375rem}.form-group input,.form-group select{width:100%;padding:.5rem .75rem;background-color:var(--bg-elevated);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-size:.875rem;transition:border-color .15s ease}.form-group input:hover,.form-group select:hover{border-color:#444}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--accent)}.form-group input::placeholder{color:var(--text-muted)}.form-group select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23888' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;padding-right:2rem}.form-group select option{background-color:var(--bg-surface);color:var(--text-primary)}.token-input-wrapper{display:flex;gap:.5rem}.token-input-wrapper input{flex:1}.toggle-visibility{flex-shrink:0;padding:.5rem .75rem;background-color:var(--bg-hover);border:1px solid var(--border);border-radius:6px;color:var(--text-secondary);font-size:.75rem;cursor:pointer;transition:background-color .15s ease}.toggle-visibility:hover{background-color:var(--bg-active);color:var(--text-primary)}.token-status{color:var(--status-running);font-size:.75rem;font-weight:500}.help-text{display:block;margin-top:.375rem;font-size:.75rem;color:var(--text-muted)}.form-actions{display:flex;justify-content:flex-end}.save-button{padding:.5rem 1.25rem;background-color:var(--accent);border:none;border-radius:6px;color:#fff;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .15s ease}.save-button:hover:not(:disabled){background-color:var(--accent-hover)}.save-button:disabled{opacity:.5;cursor:not-allowed}.settings-loading{text-align:center;padding:2rem;color:var(--text-secondary)}.settings-error{padding:1rem;background-color:#f871711a;border:1px solid rgba(248,113,113,.3);border-radius:6px;color:var(--status-error);font-size:.875rem}.success-message{padding:.75rem 1rem;background-color:#4ade801a;border:1px solid rgba(74,222,128,.3);border-radius:6px;color:var(--status-running);font-size:.875rem}.field-error{margin-top:.25rem;font-size:.75rem;color:var(--status-error)}.workspace-page{display:flex;flex-direction:column;height:calc(100vh - 57px);background-color:var(--bg-page)}.workspace-page--fullscreen{height:100vh}.app-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1.5rem;background-color:var(--bg-surface);border-bottom:1px solid var(--border)}.app-toolbar__info{display:flex;align-items:center;gap:.75rem;min-width:0;flex:1 1 auto}.app-toolbar__select--grow{flex:1 1 auto;min-width:0}.app-toolbar__select--branch{flex:0 0 200px}.app-toolbar__actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.app-toolbar__project{font-size:.875rem;font-weight:500;color:var(--text-primary)}.app-toolbar__branch{font-size:.875rem;color:var(--text-secondary)}.app-toolbar__primary,.app-toolbar__danger,.session-countdown__extend{height:2rem;display:inline-flex;align-items:center}.app-toolbar__danger{padding:.375rem .75rem;background:transparent;border:1px solid var(--border);border-radius:4px;color:var(--text-secondary);font-size:.8125rem;cursor:pointer;transition:all .15s ease}.app-toolbar__danger:hover:not(:disabled){border-color:var(--status-error);color:var(--status-error)}.app-toolbar__danger:disabled{opacity:.5;cursor:not-allowed}.app-toolbar__primary{flex-shrink:0;padding:.5rem 1.25rem;background-color:var(--accent);color:#fff;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .15s ease}.app-toolbar__primary:hover:not(:disabled){background-color:var(--accent-hover)}.app-toolbar__primary:disabled{opacity:.5;cursor:not-allowed}.workspace-page__expiry-banner{padding:.4rem 1rem;background:#d977061f;color:#d97706;font-size:.85rem;text-align:center}.session-countdown{display:inline-flex;align-items:center;gap:.5rem}.session-countdown__chip{font-size:.8rem;padding:.15rem .55rem;border-radius:999px;background:var(--bg-hover);color:var(--text-secondary);white-space:nowrap}.session-countdown__chip--warning{background-color:#facc1526;color:var(--status-starting)}.session-countdown__extend{font-size:.8rem;padding:.15rem .6rem;border-radius:4px;border:1px solid var(--border);background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.session-countdown__extend:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.session-countdown__extend:disabled{opacity:.5;cursor:not-allowed}.workspace-page__iframe{flex:1;width:100%;border:none}.workspace-page__centered{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem}.workspace-page__message{text-align:center;max-width:400px}.workspace-page__spinner{width:48px;height:48px;margin:0 auto 1.5rem;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.workspace-page__title{font-size:1.125rem;font-weight:500;color:var(--text-primary);margin-bottom:.5rem}.workspace-page__subtitle{font-size:.875rem;color:var(--text-secondary);margin-bottom:.25rem}.workspace-page__hint{font-size:.8125rem;color:var(--text-muted)}.workspace-page__link{color:var(--accent);background:none;border:none;font-size:.875rem;cursor:pointer;padding:0}.workspace-page__link:hover{color:var(--accent-hover);text-decoration:underline}.workspace-page__button{margin-top:1rem;padding:.5rem 1.25rem;background-color:var(--accent);border:none;border-radius:6px;color:#fff;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .15s ease}.workspace-page__button:hover{background-color:var(--accent-hover)}.workspace-page__error-icon{font-size:2.5rem;color:var(--status-error);margin-bottom:1rem}.status-badge{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .625rem;border-radius:9999px;font-size:.75rem;font-weight:500}.status-badge--building,.status-badge--starting{background-color:#facc1526;color:var(--status-starting)}.status-badge--running{background-color:#4ade8026;color:var(--status-running)}.status-badge--terminated{background-color:#6b728026;color:var(--status-terminated)}.status-badge--error{background-color:#f8717126;color:var(--status-error)}.status-badge__spinner{width:12px;height:12px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin 1s linear infinite}.page-nav{margin-bottom:1rem}.back-link{font-size:.875rem;color:var(--text-secondary);text-decoration:none}.back-link:hover{color:var(--accent)}.feature-preferences-page{min-height:calc(100vh - 57px);padding:2rem 1.5rem;background-color:var(--bg-page)}.feature-preferences-page .page-content{max-width:800px;margin:0 auto}.feature-preferences-page__subtitle{font-size:.9375rem;color:var(--text-secondary);margin-bottom:2rem}.feature-preferences-page__empty{text-align:center;padding:3rem 2rem;color:var(--text-muted);background-color:var(--bg-surface);border:1px solid var(--border);border-radius:8px}.feature-preferences-page__category{margin-bottom:2rem}.feature-preferences-page__category-title{font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:.75rem}.feature-preferences-page__cards{display:flex;flex-direction:column;gap:1rem}.feature-config-card{background-color:var(--bg-surface);border:1px solid var(--border);border-radius:8px;padding:1.25rem}.feature-config-card__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.feature-config-card__title{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0}.feature-config-card__badge{display:inline-block;padding:.125rem .5rem;border-radius:9999px;font-size:.6875rem;font-weight:500;text-transform:uppercase;letter-spacing:.025em}.feature-config-card__badge--languages{background-color:#646cff26;color:var(--accent)}.feature-config-card__badge--cloud{background-color:#facc1526;color:var(--status-starting)}.feature-config-card__badge--ai-tool{background-color:#4ade8026;color:var(--status-running)}.feature-config-card__fields{display:flex;flex-direction:column;gap:.25rem;margin-bottom:1rem}.feature-toggle-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.875rem;color:var(--text-primary)}.feature-toggle-input{width:1rem;height:1rem;accent-color:var(--accent);cursor:pointer}.workspace-view-toggle{display:inline-flex;padding:2px;background-color:var(--bg-elevated);border:1px solid var(--border);border-radius:6px;margin:0}.workspace-view-toggle[disabled]{opacity:.5;cursor:not-allowed}.workspace-view-toggle__option{display:inline-flex;align-items:center;justify-content:center;padding:.25rem .75rem;border-radius:4px;color:var(--text-secondary);font-size:.8125rem;cursor:pointer;transition:background-color .15s ease,color .15s ease}.workspace-view-toggle__option:hover:not([data-disabled=true]){color:var(--text-primary)}.workspace-view-toggle__option--active{background-color:var(--accent);color:#fff}.workspace-view-toggle__option--active:hover:not([data-disabled=true]){color:#fff}.workspace-view-toggle__input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.workspace-view-toggle__input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}.launch-dialog__field-label{display:block;font-size:.8125rem;font-weight:500;color:var(--text-secondary);margin-bottom:.375rem}.terminal-tabs{display:flex;align-items:stretch;gap:2px;padding:4px 6px;background-color:var(--bg-elevated);border-bottom:1px solid var(--border);overflow-x:auto;flex-shrink:0}.terminal-tabs__tab{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .625rem;background:transparent;border:1px solid transparent;border-radius:4px;color:var(--text-secondary);font-size:.8125rem;font-family:inherit;cursor:pointer;transition:background-color .1s ease,color .1s ease;white-space:nowrap}.terminal-tabs__tab:hover:not(:disabled){background-color:var(--bg-hover);color:var(--text-primary)}.terminal-tabs__tab:disabled{opacity:.5;cursor:not-allowed}.terminal-tabs__tab--active{background-color:var(--bg-surface);border-color:var(--border);color:var(--text-primary)}.terminal-tabs__tab-label{font-variant-numeric:tabular-nums}.terminal-tabs__tab-close{display:inline-flex;align-items:center;justify-content:center;width:1rem;height:1rem;border-radius:2px;color:var(--text-muted);line-height:1;font-size:.9rem}.terminal-tabs__tab-close:hover{background-color:var(--bg-active);color:var(--text-primary)}.terminal-tabs__new{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;background:transparent;border:1px dashed var(--border);border-radius:4px;color:var(--text-secondary);font-size:1rem;cursor:pointer;transition:all .1s ease}.terminal-tabs__new:hover:not(:disabled){border-style:solid;color:var(--text-primary);background-color:var(--bg-hover)}.terminal-tabs__new:disabled{opacity:.5;cursor:not-allowed}.git-credentials-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:1rem}.git-credentials-row{padding:1rem;background-color:var(--bg-elevated);border:1px solid var(--border);border-radius:6px;display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.git-credentials-info{flex:1;min-width:0}.git-credentials-server{display:flex;align-items:baseline;gap:.5rem;margin-bottom:.25rem}.git-credentials-server>strong{color:var(--text-primary);font-size:.875rem}.git-credentials-provider{color:var(--text-muted);font-size:.8125rem}.git-credentials-status{font-size:.8125rem;color:var(--text-secondary)}.git-credentials-edit{width:100%;padding:1rem;background-color:var(--bg-hover);border:1px solid var(--border);border-radius:6px;margin-top:.5rem}.git-credentials-actions{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:flex-end}.secondary-button{padding:.375rem .75rem;background-color:transparent;border:1px solid var(--border);border-radius:6px;color:var(--text-secondary);font-size:.8125rem;font-weight:500;cursor:pointer;transition:background-color .15s ease,color .15s ease}.secondary-button:hover:not(:disabled){background-color:var(--bg-hover);color:var(--text-primary)}.secondary-button:disabled{opacity:.5;cursor:not-allowed}.secondary-button--danger:hover:not(:disabled){border-color:var(--status-error);color:var(--status-error)}.cancel-button{padding:.375rem .75rem;background-color:transparent;border:1px solid var(--border);border-radius:6px;color:var(--text-secondary);font-size:.8125rem;font-weight:500;cursor:pointer;transition:background-color .15s ease,color .15s ease}.cancel-button:hover:not(:disabled){background-color:var(--bg-hover);color:var(--text-primary)}.cancel-button:disabled{opacity:.5;cursor:not-allowed}.admin-page{min-height:calc(100vh - 57px);padding:2rem 1.5rem;background-color:var(--bg-page)}.admin-page .page-content{max-width:900px;margin:0 auto}.admin-page__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.admin-page__actions{display:flex;align-items:center;gap:.75rem}.admin-page__create-btn,.admin-page__sync-btn{padding:.5rem 1rem;background:var(--accent);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.875rem}.admin-page__create-btn:hover,.admin-page__sync-btn:hover:not(:disabled){background:var(--accent-hover)}.admin-page__sync-btn:disabled{opacity:.5;cursor:not-allowed}.admin-page__sync-message{padding:.5rem .75rem;margin-bottom:1rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:6px;font-size:.875rem;color:var(--text-secondary)}.base-image-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;padding:1rem 1.25rem;margin-bottom:1.5rem}.base-image-card--loading,.base-image-card--error{color:var(--text-secondary);font-size:.875rem}.base-image-card__loading-text,.base-image-card__error-text{display:block;padding:.25rem 0}.base-image-card__title{font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin:0 0 .75rem}.base-image-card__grid{display:grid;grid-template-columns:11rem 1fr;gap:.375rem 1rem;margin:0;font-size:.875rem}.base-image-card__grid dt{color:var(--text-secondary);font-weight:500;align-self:center}.base-image-card__grid dd{margin:0;color:var(--text-primary);align-self:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.base-image-card__mono{font-family:monospace;font-size:.8125rem}.feature-table__controls{margin-bottom:1rem}.feature-table__checkbox-label{display:flex;align-items:center;gap:.5rem;color:var(--text-secondary);font-size:.875rem;cursor:pointer}.feature-table__table{width:100%;border-collapse:collapse;background:var(--bg-surface);border-radius:8px;overflow:hidden}.feature-table__table th,.feature-table__table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--border-subtle)}.feature-table__table th{background:var(--bg-elevated);color:var(--text-secondary);font-weight:500;font-size:.8125rem;text-transform:uppercase;letter-spacing:.05em}.feature-table__row--inactive{opacity:.5}.feature-table__name{font-weight:500}.feature-table__subtext{font-size:.75rem;color:var(--text-muted)}.feature-table__source{font-size:.8125rem;color:var(--text-secondary);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.feature-table__badge{display:inline-block;padding:.125rem .5rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;font-size:.75rem;color:var(--text-secondary)}.feature-table__toggle{padding:.25rem .75rem;border:1px solid var(--border);border-radius:4px;background:transparent;color:var(--text-muted);cursor:pointer;font-size:.8125rem}.feature-table__toggle--active{color:var(--status-running);border-color:var(--status-running)}.feature-table__edit-btn{padding:.25rem .75rem;border:1px solid var(--accent);border-radius:4px;background:transparent;color:var(--accent);cursor:pointer;font-size:.8125rem}.feature-table__edit-btn:hover{background:var(--accent);color:#fff}.feature-table__edit-btn:disabled{opacity:.4;cursor:not-allowed}.feature-table__edit-btn:disabled:hover{background:transparent;color:var(--accent)}.feature-table__edit-btn--danger{border-color:var(--status-error, #e53e3e);color:var(--status-error, #e53e3e)}.feature-table__edit-btn--danger:hover:not(:disabled){background:var(--status-error, #e53e3e);color:#fff}.feature-table__edit-btn--danger:disabled:hover{color:var(--status-error, #e53e3e)}.feature-table__empty{text-align:center;color:var(--text-muted);padding:2rem!important}.dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100}.dialog{position:relative;margin:0;background:var(--bg-surface);border:1px solid var(--border);border-radius:12px;padding:1.5rem;max-width:560px;width:90vw;max-height:85vh;overflow-y:auto;color:var(--text-primary)}.dialog h2{margin-bottom:1rem;font-size:1.25rem}.dialog__form{display:flex;flex-direction:column;gap:.75rem}.dialog__field{display:flex;flex-direction:column;gap:.25rem;font-size:.875rem;color:var(--text-secondary)}.dialog__field input,.dialog__field select,.dialog__field textarea{padding:.5rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-size:.875rem}.dialog__field--checkbox{flex-direction:row;align-items:center;gap:.5rem}.dialog__json{font-family:monospace;font-size:.8125rem}.dialog__error{color:var(--status-error);font-size:.875rem}.dialog__actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:.5rem}.dialog__btn{padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-size:.875rem;border:none}.dialog__btn--primary{background:var(--accent);color:#fff}.dialog__btn--primary:hover{background:var(--accent-hover)}.dialog__btn--primary:disabled{opacity:.5;cursor:not-allowed}.dialog__btn--secondary{background:transparent;border:1px solid var(--border);color:var(--text-secondary)}.dialog__btn--secondary:hover{background:var(--bg-hover)}.dialog__btn--danger{background:transparent;border:1px solid var(--status-error, #e53e3e);color:var(--status-error, #e53e3e);margin-right:auto}.dialog__btn--danger:hover:not(:disabled){background:var(--status-error, #e53e3e);color:#fff}.dialog__btn--danger:disabled{opacity:.5;cursor:not-allowed}.provider-table__test-result{margin-top:.5rem;font-size:.8125rem}.provider-table__test-result--ok{color:var(--status-running)}.provider-table__test-result--error{color:var(--status-error)}.bindings-dialog__list{list-style:none;background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;margin:0 0 1rem;padding:0;overflow:hidden}.bindings-dialog__row{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;border-bottom:1px solid var(--border-subtle);font-size:.875rem}.bindings-dialog__row:last-child{border-bottom:none}.bindings-dialog__empty{padding:.75rem;color:var(--text-muted);font-size:.875rem}.bindings-dialog__add{display:flex;gap:.5rem;margin-bottom:.5rem}.bindings-dialog__add select{flex:1;padding:.5rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-size:.875rem}.admin-denied{text-align:center;padding:4rem 2rem}.admin-denied h2{color:var(--status-error);margin-bottom:.5rem}.admin-denied p{color:var(--text-secondary)}.project-search{margin-bottom:2rem}.project-search__bar{display:flex;gap:.75rem;margin-bottom:.75rem}.project-search__input{flex:1;padding:.5rem .75rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-size:.875rem}.project-search__results{list-style:none;background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;max-height:200px;overflow-y:auto}.project-search__item{display:block;width:100%;padding:.5rem .75rem;text-align:left;background:transparent;border:none;color:var(--text-primary);cursor:pointer;font-size:.875rem}.project-search__item:hover{background:var(--bg-hover)}.project-search__item--selected{background:var(--bg-active);color:var(--accent)}.project-config{margin-top:1.5rem}.project-config__title{margin-bottom:1rem;font-size:1.25rem}.admin-page__subtitle{color:var(--text-secondary);margin-bottom:1.5rem}.project-features__title{font-size:1rem;margin-bottom:.75rem}.project-features__empty{color:var(--text-muted);font-size:.875rem}.project-features__list{list-style:none;background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;overflow:hidden}.project-features__header{display:grid;grid-template-columns:4.5rem 1fr 6rem 6rem 9rem;align-items:center;padding:.5rem 1rem;border-bottom:1px solid var(--border);font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.project-features__item{padding:.75rem 1rem;border-bottom:1px solid var(--border-subtle)}.project-features__item:last-child{border-bottom:none}.project-features__row{display:grid;grid-template-columns:4.5rem 1fr 6rem 6rem 9rem;align-items:center}.project-features__cell-assigned{cursor:pointer}.project-features__cell-feature{font-weight:500}.project-features__cell-category{font-size:.75rem;color:var(--text-muted)}.project-features__cell-gate{display:flex;align-items:center;gap:.5rem}.project-features__cell-options{display:flex;justify-content:flex-end;gap:.375rem}.project-features__options-btn{padding:.25rem .5rem;border:1px solid var(--border);border-radius:4px;background:transparent;color:var(--text-secondary);cursor:pointer;font-size:.75rem}.project-features__warning{margin-left:.5rem;color:var(--status-warning, #e8a317);font-size:.875rem}.project-features__warning-text{display:block;color:var(--status-warning, #e8a317);font-size:.8125rem;margin-bottom:.25rem}.project-features__options{margin-top:.5rem;display:flex;flex-direction:column;gap:.5rem;padding-left:1.5rem}.option-field{display:flex;flex-direction:column;gap:.25rem;font-size:.875rem}.option-field label{color:var(--text-secondary);font-weight:500;display:flex;align-items:center;gap:.5rem}.option-field input[type=text],.option-field input[type=number],.option-field select{padding:.5rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-size:.875rem}.option-field .help-text{font-size:.75rem;color:var(--text-muted)}.option-field__checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer}.option-field__admin-badge{display:inline-block;padding:.0625rem .375rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;font-size:.625rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.audit-log{margin-top:2rem}.audit-log__title{font-size:1rem;margin-bottom:.75rem}.audit-log__empty{color:var(--text-muted);font-size:.875rem}.audit-log__timestamp{font-size:.8125rem;white-space:nowrap}.audit-log__detail{margin-top:.5rem;font-size:.8125rem}.audit-log__detail pre{background:var(--bg-elevated);padding:.5rem;border-radius:4px;overflow-x:auto;font-size:.75rem;margin-top:.25rem}.git-server-manager__table-section{margin-bottom:2rem}.git-server-manager__url{font-family:monospace;font-size:.875rem;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.git-server-manager__form-section{background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;padding:1.5rem}.git-server-manager__form-section h2{margin-top:0;margin-bottom:1.5rem;font-size:1.125rem}.git-server-manager__form{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.git-server-manager__form-field{display:flex;flex-direction:column;gap:.5rem}.git-server-manager__form-field label{font-weight:500;font-size:.875rem;color:var(--text-secondary)}.git-server-manager__input,.git-server-manager__select{padding:.625rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-size:.875rem}.git-server-manager__input:focus,.git-server-manager__select:focus{outline:none;border-color:var(--accent)}.git-server-manager__form-actions{grid-column:1 / -1;display:flex;align-items:center;gap:1rem;margin-top:.5rem}.git-server-manager__error{color:var(--status-error);font-size:.875rem;margin:0}.feature-table__actions-cell{display:flex;gap:.5rem}.dialog--wide{max-width:760px}.runtime-config__scope-banner{margin-bottom:1rem}.runtime-config__list{list-style:none;background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;margin:0 0 1rem;padding:0;overflow:hidden}.runtime-config__row{padding:.75rem 1rem;border-bottom:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:.5rem}.runtime-config__row:last-child{border-bottom:none}.runtime-config__row-header{display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap}.runtime-config__identity{display:flex;flex-direction:column;gap:.125rem}.runtime-config__name{font-weight:500}.runtime-config__subtext{font-weight:400;font-size:.75rem;color:var(--text-muted)}.runtime-config__path{font-family:monospace;font-size:.75rem;color:var(--text-muted)}.runtime-config__description{font-size:.75rem;color:var(--text-secondary)}.runtime-config__badge{display:inline-block;padding:.125rem .5rem;border-radius:12px;font-size:.75rem;font-weight:500;border:1px solid var(--border);white-space:nowrap}.runtime-config__badge--global{color:var(--accent);border-color:var(--accent)}.runtime-config__badge--project{color:var(--status-running);border-color:var(--status-running)}.runtime-config__badge--unset{color:var(--text-muted)}.runtime-config__badge--required{color:var(--status-error, #e53e3e);border-color:var(--status-error, #e53e3e);font-weight:600}.runtime-config__meta{display:flex;gap:1rem;font-size:.75rem;color:var(--text-muted)}.runtime-config__edit{display:flex;flex-direction:column;gap:.5rem}.runtime-config__textarea{padding:.5rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-size:.8125rem;font-family:monospace;resize:vertical}.runtime-config__actions{display:flex;gap:.5rem}.runtime-config__add-toggles{display:flex;gap:.5rem;margin-bottom:.75rem}.runtime-config__add-form{background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;padding:.75rem;margin-bottom:.75rem}.status-badge--connected{background-color:#4ade8026;color:var(--status-running)}.status-badge--attention{background-color:#facc1526;color:var(--status-starting)}.status-badge--not_connected{background-color:#6b728026;color:var(--status-terminated)}.logins-panel{margin-top:2rem}.logins-panel__title{font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:.75rem}.logins-panel__empty{color:var(--text-secondary);font-size:.875rem}.logins-panel__message{padding:.5rem .75rem;margin-bottom:.75rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:6px;font-size:.875rem;color:var(--text-secondary)}.logins-panel__error{padding:.75rem 1rem;margin-bottom:.75rem;background-color:#f871711a;border:1px solid rgba(248,113,113,.3);border-radius:6px;color:var(--status-error);font-size:.875rem}.logins-panel__list{display:flex;flex-direction:column;gap:.25rem}.logins-panel__row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--border-subtle)}.logins-panel__row:last-child{border-bottom:none}.logins-panel__info{display:flex;align-items:center;flex-wrap:wrap;gap:.625rem;min-width:0}.logins-panel__name{font-size:.875rem;font-weight:500;color:var(--text-primary)}.logins-panel__identity{font-size:.8125rem;color:var(--text-secondary)}.logins-panel__features{font-size:.75rem;color:var(--text-muted)}.logins-panel__actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.logins-panel__reauth{display:flex;align-items:center;gap:.5rem}.logins-panel__hint{font-size:.75rem;color:var(--text-muted)}.logins-panel__btn{padding:.375rem .875rem;background:var(--accent);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.8125rem}.logins-panel__btn:hover:not(:disabled){background:var(--accent-hover)}.logins-panel__btn:disabled{opacity:.5;cursor:not-allowed}.logins-panel__btn--secondary{background:transparent;border:1px solid var(--border);color:var(--text-secondary)}.logins-panel__btn--secondary:hover:not(:disabled){background:var(--bg-hover)}.dialog__help{font-size:.8125rem;color:var(--text-muted)}.login-status-pills{display:flex;align-items:center;gap:.625rem}.login-status-pill{display:inline-flex;align-items:center;gap:.375rem;color:var(--text-secondary);text-decoration:none;font-size:.8125rem}.login-status-pill:hover{color:var(--text-primary)}.login-status-pill__dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}.login-status-pill__dot--connected{background-color:var(--status-running)}.login-status-pill__dot--attention{background-color:var(--status-starting)}.login-status-pill__dot--not_connected{background-color:var(--status-terminated)}.login-callback-page{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:1.5rem;text-align:center}.login-callback-page__status{color:var(--text-secondary);font-size:.875rem}.login-callback-page__error{display:flex;flex-direction:column;align-items:center;gap:1rem;color:var(--status-error);font-size:.875rem}
