.app-layout{min-height:100vh;display:flex;flex-direction:column;background:var(--bg)}.app-header{padding:var(--space-l) var(--space-xxl);background:var(--color-secondary);box-shadow:var(--color-header-shadow);position:sticky;top:0;z-index:2000;border-bottom:none}.app-header-inner{max-width:none;width:100%;margin:0;display:flex;align-items:center;justify-content:space-between;gap:var(--space-l);box-sizing:border-box}.app-brand{display:flex;align-items:center;gap:var(--space-l);margin:0;color:inherit;text-decoration:none;cursor:pointer}.app-brand:hover{opacity:.85}.app-brand-logo{width:40px;height:40px;border-radius:var(--radius-l);object-fit:contain;flex-shrink:0}.app-brand h1{margin:0;font-size:var(--font-size-l);line-height:24px;font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.app-brand-subtitle{margin:2px 0 0;color:var(--color-text-secondary);font-size:var(--font-size-s);line-height:18px;font-weight:var(--font-weight-regular)}.app-header-nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--space-l);flex-shrink:0}.app-header-link{display:inline-flex;align-items:center;justify-content:center;height:40px;padding:8px 16px;border-radius:var(--radius-l);background:var(--color-secondary-bg);color:var(--color-secondary-text);text-decoration:none;font-size:var(--font-size-s);font-weight:var(--font-weight-medium);line-height:20px;transition:background-color .2s ease}.app-header-link:hover{background:var(--color-secondary-hover-bg);text-decoration:none}.app-header-link--active{background:var(--color-primary);color:var(--color-text-inverse);pointer-events:none}.app-main{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:var(--space-xxl);min-height:0;width:100%;box-sizing:border-box}.app-main--auth{justify-content:center}.app-main>*{width:100%}.app-footer{padding:var(--space-l) var(--space-xxl);text-align:center;font-size:var(--font-size-xs);line-height:16px;color:var(--color-text-secondary);border-top:1px solid var(--color-border)}.ui-button{display:inline-flex;flex-direction:row;align-items:center;justify-content:center;gap:10px;box-sizing:border-box;font-family:inherit;font-weight:var(--font-weight-medium);font-size:var(--font-size-s);line-height:20px;border:none;outline:none;cursor:pointer;height:40px;padding:8px 16px;border-radius:var(--radius-l);transition:background-color .2s ease,color .2s ease,border-color .2s ease,opacity .2s ease;white-space:nowrap;min-width:0;text-decoration:none}.ui-button--fill{width:100%;flex:1;min-width:0}.ui-button:focus-visible{outline:2px solid var(--color-link);outline-offset:2px}.ui-button--link,.ui-button--link-anchor.ui-button--link{height:auto;min-height:0;padding:0 12px;font-weight:var(--font-weight-medium);background:transparent!important;color:var(--color-link-text);border:none!important;box-shadow:none!important;width:fit-content;max-width:100%;justify-content:flex-start;align-self:flex-start;text-align:left}.ui-button--link:hover:not(:disabled):not(.ui-button--loading),.ui-button--link-anchor.ui-button--link:hover:not(.ui-button--disabled-link){color:var(--color-link-hover-text);background:transparent!important}.ui-button--link:disabled,.ui-button--link.ui-button--loading,.ui-button--link-anchor.ui-button--link.ui-button--disabled-link{color:var(--color-link-disabled-text);opacity:1}.ui-button--small{height:32px;padding:0 12px;font-size:var(--font-size-xs);line-height:16px;border-radius:var(--radius-m)}.ui-button--primary,.ui-button--link-anchor.ui-button--primary{background:var(--color-primary);color:var(--color-text-inverse);border:1px solid transparent}.ui-button--primary:hover:not(:disabled):not(.ui-button--loading),.ui-button--link-anchor.ui-button--primary:hover:not(.ui-button--disabled-link){background:var(--color-primary-hover)}.ui-button--secondary,.ui-button--link-anchor.ui-button--secondary{background:var(--color-secondary-bg);color:var(--color-secondary-text);border:1px solid transparent}.ui-button--secondary:hover:not(:disabled):not(.ui-button--loading),.ui-button--link-anchor.ui-button--secondary:hover:not(.ui-button--disabled-link){background:var(--color-secondary-hover-bg)}.ui-button--danger{background:var(--color-white);color:var(--color-error);border:1px solid var(--color-error)}.ui-button--danger:hover:not(:disabled):not(.ui-button--loading){background:#c700000f}.ui-button:disabled,.ui-button--loading,.ui-button--disabled-link{cursor:not-allowed}.ui-button--primary:disabled,.ui-button--primary.ui-button--loading{background:var(--color-primary-disabled-bg);color:var(--color-primary-disabled-text);opacity:1}.ui-button--secondary:disabled,.ui-button--secondary.ui-button--loading,.ui-button--link-anchor.ui-button--secondary.ui-button--disabled-link{background:var(--color-secondary-disabled-bg);color:var(--color-secondary-disabled-text);opacity:1}.ui-button--loading{opacity:.8;cursor:wait}.ui-button__label{min-width:0}.ui-button__icon{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center}.ui-button__spinner{width:18px;height:18px;flex-shrink:0;border:2px solid rgba(255,255,255,.35);border-top-color:currentColor;border-radius:50%;animation:ui-button-spin .65s linear infinite}.ui-button--secondary .ui-button__spinner,.ui-button--danger .ui-button__spinner,.ui-button--link .ui-button__spinner{border-color:#112a4826;border-top-color:var(--color-primary)}@keyframes ui-button-spin{to{transform:rotate(360deg)}}.page-actions .ui-button--fill,.page-form .ui-button--fill,.expert-hub-login .ui-button--fill{height:48px;padding:12px;border-radius:var(--radius-l)}.ui-input-field{display:flex;flex-direction:column;font-size:var(--font-size-s);gap:var(--space-s);color:var(--color-text-primary)}.ui-input-field__label{display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:0;font-size:var(--font-size-xs);line-height:16px;font-weight:var(--font-weight-regular);color:var(--color-text-secondary)}.ui-input-field__required{color:var(--color-error);font-weight:var(--font-weight-medium);margin-left:2px}.ui-input__control{border-radius:var(--radius-l);border:1px solid var(--color-input-border);padding:8px 16px;background:var(--color-white);color:var(--color-text-primary);font-family:inherit;font-size:var(--font-size-s);line-height:20px;font-weight:var(--font-weight-regular);width:100%;min-width:0;min-height:48px;box-sizing:border-box;transition:border-color .2s ease}.ui-input__control::placeholder{color:var(--color-input-placeholder)}.ui-input__control:hover:not(:disabled):not(:focus){border-color:var(--color-input-border-hover)}.ui-input__control:focus{outline:none;border-color:var(--color-input-border-hover);box-shadow:none}.ui-input__control:disabled{border-color:var(--color-input-disabled-border);background:var(--color-input-disabled-bg);color:var(--color-text-disabled);cursor:not-allowed}.ui-input__textarea{border-radius:var(--radius-l);border:1px solid var(--color-input-border);padding:12px 16px;background:var(--color-white);color:var(--color-text-primary);font-family:inherit;font-size:var(--font-size-s);line-height:20px;width:100%;min-width:0;min-height:80px;resize:vertical;box-sizing:border-box;transition:border-color .2s ease}.ui-input__textarea::placeholder{color:var(--color-input-placeholder)}.ui-input__textarea:hover:not(:disabled):not(:focus){border-color:var(--color-input-border-hover)}.ui-input__textarea:focus{outline:none;border-color:var(--color-input-border-hover);box-shadow:none}.ui-input--dropzone{border-radius:var(--radius-l);border:2px dashed var(--color-border);background:#112a480a;transition:border-color .2s ease,background-color .2s ease}.ui-input--dropzone:hover:not(.ui-input--dropzone--dragging){border-color:var(--color-primary);background:#112a480f}.ui-input--dropzone--dragging{border-color:var(--color-primary);background:#112a4814}.ui-input__dropzone-label{display:flex;align-items:center;justify-content:center;min-height:120px;padding:24px 16px;margin:0;cursor:pointer;text-align:center;box-sizing:border-box}.ui-input__file-native{display:none}.ui-input__dropzone-caption{font-size:var(--font-size-s);line-height:1.45;color:var(--color-text-secondary);word-break:break-word}.page-container{width:100%;max-width:var(--page-container-max-width);margin-left:auto;margin-right:auto;box-sizing:border-box}.page-container--surface{background:var(--color-surface-card);border:none;border-radius:var(--radius-xl);padding:28px 32px;box-shadow:none;box-sizing:border-box;font-family:var(--font-family)}.page-container--wide{max-width:960px}.page-container--narrow{max-width:590px;padding:34px 64px;display:flex;flex-direction:column;align-items:stretch;gap:var(--space-xxl)}@media(max-width:640px){.page-container--surface{padding:24px 20px}.page-container--narrow{padding:28px 20px}}.page-title{margin:0 0 var(--space-m);font-size:22px;line-height:28px;font-weight:var(--font-weight-medium);color:var(--color-text-primary);letter-spacing:.01em}.page-container--narrow .page-title{margin:0;font-size:26px;line-height:32px;text-align:center}.page-description{margin:0 0 var(--space-l);max-width:720px;color:var(--color-text-secondary);font-size:15px;line-height:22px;font-weight:var(--font-weight-regular)}.page-container--narrow .page-description{margin:0;max-width:none;text-align:center}.page-container--narrow .page-description+.page-description{margin-top:calc(var(--space-s) * -1)}.page-container--narrow .success-title,.page-container--narrow .muted{text-align:center;margin:0}.page-section-title{margin:0 0 var(--space-m);font-size:var(--font-size-m);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.page-form{display:grid;gap:var(--space-m)}.page-form--section{margin:var(--space-xxl) 0 0;padding-top:var(--space-l);border-top:1px solid var(--color-border)}.page-header-row{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-l);margin-bottom:0}.page-actions{display:flex;flex-wrap:wrap;gap:var(--space-m)}.page-container--narrow .page-actions{flex-direction:column;flex-wrap:nowrap;width:100%}.page-container--narrow .page-actions .ui-button--fill{flex:none}.ui-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:var(--space-l);background:#00000080;animation:ui-modal-fade-in .15s ease}.ui-modal{box-sizing:border-box;width:100%;max-width:420px;background:var(--color-surface-card);color:var(--color-text-primary);border:none;border-radius:var(--radius-xl);box-shadow:var(--color-dropdown-shadow);animation:ui-modal-slide-in .18s ease;font-family:var(--font-family)}.ui-modal__header{padding:var(--space-xxl) var(--space-xxl) 0}.ui-modal__title{margin:0;font-size:var(--font-size-l);font-weight:var(--font-weight-medium);line-height:24px;color:var(--color-text-primary)}.ui-modal__body{padding:var(--space-m) var(--space-xxl) var(--space-l);font-size:15px;color:var(--color-text-secondary);line-height:22px}.ui-modal__footer{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-m);padding:0 var(--space-xxl) var(--space-xxl)}.ui-modal__footer .ui-button{min-width:110px}@keyframes ui-modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes ui-modal-slide-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}:root{--color-primary: #1f2022;--color-primary-hover: #3d3f45;--color-primary-disabled-bg: rgba(31, 32, 34, .16);--color-primary-disabled-text: rgba(17, 42, 72, .4);--color-secondary: #ffffff;--color-secondary-hover: #f5f5f5;--color-secondary-bg: rgba(24, 28, 33, .08);--color-secondary-hover-bg: rgba(55, 59, 63, .16);--color-secondary-disabled-bg: #e2e2e2;--color-secondary-disabled-text: rgba(17, 42, 72, .4);--color-secondary-text: #24262b;--color-border: #e1e1e1;--color-link: #1f5473;--color-link-hover: #163c53;--color-link-text: #030303;--color-link-hover-text: #0351c1;--color-link-disabled-text: rgba(31, 32, 34, .36);--color-disabled-bg: #e1e1e1;--color-disabled-text: #888888;--color-text-inverse: #ffffff;--color-text-primary: #24262b;--color-text-secondary: rgba(12, 12, 14, .7);--color-text-disabled: rgba(17, 42, 72, .36);--color-badge-bg: rgba(17, 42, 72, .08);--color-badge-text: #24262b;--color-input-border: rgba(17, 42, 72, .4);--color-input-border-hover: #24262b;--color-input-placeholder: rgba(17, 42, 72, .5);--color-input-disabled-bg: rgba(17, 42, 72, .04);--color-input-disabled-border: rgba(17, 42, 72, .16);--color-error: #c70000;--color-success: #63c600;--color-info-bg: #f2f2f7;--color-surface-card: #fbfbfb;--color-dropdown-shadow: 0px 2px 7px rgba(17, 42, 72, .16);--color-header-shadow: 0px 4px 12px rgba(21, 32, 47, .12);--space-xs: 4px;--space-s: 8px;--space-m: 12px;--space-l: 16px;--space-xl: 20px;--space-xxl: 24px;--radius-s: 4px;--radius-m: 8px;--radius-l: 12px;--radius-xl: 24px;--radius-pill: 9999px;--font-family: "Roboto Flex", sans-serif;--font-size-xs: 12px;--font-size-s: 14px;--font-size-m: 16px;--font-size-l: 18px;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-bold: 700;--bg: #ffffff;--surface: var(--color-surface-card);--text: var(--color-text-primary);--muted: var(--color-text-secondary);--border: var(--color-border);--accent: var(--color-primary);--accent-hover: var(--color-primary-hover);--error: var(--color-error);--success: #0d6e4f;--radius: var(--radius-xl);--shadow: var(--color-header-shadow);--color-red: var(--color-error);--color-black: var(--color-text-primary);--color-white: #ffffff;--color-blue: var(--color-link);--color-disabled: var(--color-disabled-text);--color-light-grey: var(--color-border);--page-container-max-width: 960px}*{box-sizing:border-box}body{margin:0;font-family:var(--font-family);background:var(--bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased}.success-panel{text-align:center}.expert-hub-login{margin-top:var(--space-xs)}.alert{margin-top:var(--space-l);padding:var(--space-m) var(--space-l);border-radius:var(--radius-l);font-size:var(--font-size-s);line-height:20px}.alert-error{background:#c700000f;color:var(--color-error);border:1px solid rgba(199,0,0,.2)}.alert-success{background:#63c60014;color:#1a5a00;border:1px solid rgba(99,198,0,.28)}.alert-dev{background:#c7770014;color:#7a5c00;border:1px solid rgba(199,119,0,.28);text-align:left}.license-key{display:block;margin-top:var(--space-s);padding:var(--space-s) var(--space-m);background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-m);font-family:ui-monospace,monospace;font-size:var(--font-size-s);word-break:break-all}.success-title{margin:0 0 var(--space-m);font-size:15px;line-height:20px;font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.lead{margin:0 0 var(--space-l);color:var(--muted);font-size:15px;line-height:22px}.admin-tabs{display:flex;gap:var(--space-s);margin:var(--space-l) 0;border-bottom:1px solid var(--color-border)}.admin-tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--muted);cursor:pointer;font:inherit;font-size:var(--font-size-s);font-weight:var(--font-weight-medium);margin-bottom:-1px;padding:.55rem .85rem}.admin-tab.active{border-bottom-color:var(--color-primary);color:var(--color-text-primary);font-weight:var(--font-weight-medium)}.admin-keys-output{display:block;margin-top:var(--space-s);white-space:pre-wrap;word-break:break-all}.admin-table-wrap{overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;font-size:var(--font-size-s)}.admin-table th,.admin-table td{padding:.55rem .65rem;border-bottom:1px solid var(--color-border);text-align:left}.admin-table tr.active-row{background:#63c60014}.admin-row-actions{display:flex;flex-wrap:wrap;gap:.35rem}.muted{color:var(--muted)}.error{color:var(--color-error)}.note{padding:.65rem .75rem;background:#112a480a;border:1px solid var(--color-border);border-radius:var(--radius-l);font-size:var(--font-size-s)}
