@charset "UTF-8";@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:300;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko70yyygA.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:300;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko50yyygA.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:300;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko40yyygA.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:300;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko20yw.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko70yyygA.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko50yyygA.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko40yyygA.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko20yw.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko70yyygA.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko50yyygA.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko40yyygA.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko20yw.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko70yyygA.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko50yyygA.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko40yyygA.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko20yw.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko70yyygA.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko50yyygA.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko40yyygA.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko20yw.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko70yyygA.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko50yyygA.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko40yyygA.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko20yw.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:light;--bg: #f6f7fb;--bg-strong: #eef2ff;--surface: #ffffff;--surface-2: #f8fafc;--surface-3: #f1f5f9;--surface-accent: #eef2ff;--surface-success: #ecfdf5;--surface-warning: #fffbeb;--surface-danger: #fff1f2;--line: #dde4ef;--line-strong: #c7d2e1;--line-soft: #edf1f7;--text: #191f2f;--text-strong: #0f172a;--muted: #647084;--muted-strong: #475569;--primary: #6366f1;--primary-dark: #4338ca;--primary-soft: #eef2ff;--secondary: #818cf8;--cta: #10b981;--cta-dark: #047857;--cyan: #0891b2;--amber: #b45309;--red: #be123c;--violet: #7c3aed;--slate: #334155;--ink: #243244;--blue: var(--primary);--blue-dark: var(--primary-dark);--teal: var(--cyan);--green: var(--cta);--radius-xs: 4px;--radius-sm: 6px;--radius-md: 8px;--control-h: 40px;--control-sm: 32px;--sidebar-w: 276px;--shadow-xs: 0 1px 2px rgba(15, 23, 42, .05);--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06), 0 8px 18px rgba(15, 23, 42, .04);--shadow-md: 0 12px 28px rgba(15, 23, 42, .08);--shadow: var(--shadow-sm);--shadow-soft: var(--shadow-xs);--ring: 0 0 0 3px rgba(99, 102, 241, .22);--font-sans: "Plus Jakarta Sans", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*{box-sizing:border-box}html{min-height:100%;overflow-x:clip;background:var(--bg)}body{min-height:100%;margin:0;overflow-x:clip;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:15px;line-height:1.5;letter-spacing:0;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;letter-spacing:0}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit}a{color:inherit;text-decoration:none}svg{flex:0 0 auto}strong,b{color:var(--text-strong)}::selection{background:#6366f12e}:focus-visible{outline:0;box-shadow:var(--ring)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{border:3px solid transparent;border-radius:999px;background:#cbd5e1;background-clip:padding-box}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.app-shell{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;z-index:20;display:flex;flex-direction:column;height:100vh;padding:16px;border-right:1px solid var(--line);background:#fbfcff}.brand{display:flex;align-items:center;gap:12px;min-width:0;padding:6px 4px 18px}.brand.compact{padding:0}.brand-mark{display:grid;flex:0 0 auto;place-items:center;width:38px;height:38px;overflow:hidden;border:1px solid #dbe3ef;border-radius:var(--radius-md);background:var(--surface);color:#fff;font-size:16px;font-weight:800;box-shadow:var(--shadow-sm)}.brand-mark img{display:block;width:100%;height:100%;object-fit:cover}.brand strong,.user-chip strong{display:block;overflow:hidden;color:var(--text-strong);font-size:14px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.brand span,.user-chip small{display:block;overflow:hidden;margin-top:3px;color:var(--muted);font-size:12px;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}.nav-list{display:grid;gap:4px}.nav-list a{position:relative;display:flex;align-items:center;gap:10px;min-height:42px;padding:9px 10px;border:1px solid transparent;border-radius:var(--radius-md);color:var(--muted-strong);cursor:pointer;font-size:14px;font-weight:700;transition:background .16s ease,border-color .16s ease,color .16s ease}.nav-list a:hover{border-color:var(--line);background:var(--surface);color:var(--text-strong)}.nav-list a.active{border-color:#c7d2fe;background:var(--primary-soft);color:var(--primary-dark)}.nav-list a.active:before{position:absolute;left:-7px;width:3px;height:22px;border-radius:999px;background:var(--primary);content:""}.sidebar-footer{display:grid;gap:12px;margin-top:auto;padding-top:16px}.mobile-logout{display:none}.user-chip{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:10px;padding:10px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}.user-chip>span{display:grid;place-items:center;width:34px;height:34px;border-radius:var(--radius-sm);background:var(--surface-success);color:var(--cta-dark);font-size:12px;font-weight:800}.workspace{min-width:0;padding:28px}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px;padding-bottom:18px;border-bottom:1px solid var(--line)}.page-header h1{margin:3px 0 7px;color:var(--text-strong);font-size:30px;font-weight:800;line-height:1.14}.page-header p{max-width:780px;margin:0;color:var(--muted);line-height:1.55}.eyebrow{color:var(--primary-dark);font-size:12px;font-weight:800;letter-spacing:0;text-transform:uppercase}.panel,.stat-card,.vacancy-card{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-xs)}.panel{padding:16px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;color:var(--muted-strong);font-size:12px;font-weight:800;text-transform:uppercase}.primary-button,.secondary-button,.icon-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--control-h);border-radius:var(--radius-md);cursor:pointer;font-weight:800;line-height:1;transition:background .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease}.primary-button{padding:0 15px;border:1px solid var(--primary);background:var(--primary);color:#fff}.primary-button:hover{border-color:var(--primary-dark);background:var(--primary-dark)}.secondary-button{padding:0 15px;border:1px solid var(--line-strong);background:var(--surface);color:var(--text-strong)}.secondary-button:hover,.icon-button:hover{border-color:var(--primary);color:var(--primary-dark)}.success-button{border-color:var(--cta-dark);background:var(--cta);color:#fff}.success-button:hover{background:var(--cta-dark);color:#fff}.secondary-button.small,.primary-button.small{min-height:var(--control-sm);padding:0 10px;font-size:12px}.icon-button{width:var(--control-h);padding:0;border:1px solid var(--line);background:var(--surface);color:var(--muted)}.icon-button.wide{width:100%;padding:0 12px}.icon-button.danger{color:var(--red)}.primary-button:disabled,.secondary-button:disabled,.icon-button:disabled,.account-card:disabled,.option-button:disabled,.topic-jump:disabled,select:disabled,input:disabled,textarea:disabled{cursor:not-allowed;opacity:.55}.stack-list{display:grid;gap:8px}.stack-list.compact{max-height:520px;overflow:auto;padding-right:4px}.list-item,.table-row,.roadmap-list-item,.candidate-row{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:58px;padding:12px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}.list-item>div,.table-row>span,.roadmap-list-item>div,.candidate-row>div{min-width:0}.list-item.selectable{width:100%;cursor:pointer;text-align:left}.list-item.selectable:hover,a.table-row:hover{border-color:var(--primary);background:var(--surface-accent)}.list-item.selected,.account-card.selected,.option-button.selected{border-color:var(--primary);background:var(--primary-soft)}.list-item.warning{border-color:#f7d98d;background:var(--surface-warning)}.list-item.success{border-color:#a7f3d0;background:var(--surface-success)}.list-item.danger{border-color:#fecdd3;background:var(--surface-danger)}.list-item strong,.vacancy-card strong,.question-card strong,.candidate-row strong{display:block;color:var(--text-strong);line-height:1.25}.list-item p,.vacancy-card p,.question-card p,.candidate-row p{margin:4px 0 0;color:var(--muted);font-size:13px;line-height:1.45}.badge,.source-pill,.score-pill,.status-chip{display:inline-flex;align-items:center;width:max-content;min-height:28px;padding:4px 10px;border:1px solid transparent;border-radius:var(--radius-md);background:var(--surface-3);color:var(--muted-strong);font-size:12px;font-weight:800;line-height:1.2;white-space:nowrap}.score-pill,.status-chip.success{border-color:#a7f3d0;background:var(--surface-success);color:var(--cta-dark)}.status-chip.warning{border-color:#fde68a;background:var(--surface-warning);color:#92400e}.status-chip.danger{border-color:#fecdd3;background:var(--surface-danger);color:var(--red)}.status-chip.info{border-color:#c7d2fe;background:var(--primary-soft);color:var(--primary-dark)}label{display:grid;gap:7px;color:var(--muted-strong);font-size:13px;font-weight:750}input,select,textarea{width:100%;border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface);color:var(--text);transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}input:hover,select:hover,textarea:hover{border-color:#94a3b8}input:focus,select:focus,textarea:focus{border-color:var(--primary);outline:0;box-shadow:var(--ring)}input,select{height:var(--control-h);padding:0 11px}textarea{min-height:92px;padding:10px 11px;resize:vertical}.select-row{display:flex;flex-wrap:wrap;gap:10px}.select-row select,.page-header>select{width:auto;min-width:220px}.support-text{margin:0;color:var(--muted);font-size:13px;line-height:1.45}.error-box,.state-box,.empty-hint,.state-banner{padding:14px;border:1px solid #fecdd3;border-radius:var(--radius-md);background:var(--surface-danger);color:var(--red);font-weight:700}.state-box,.empty-hint{border-color:var(--line);background:var(--surface-2);color:var(--muted-strong)}.state-banner{display:flex;align-items:flex-start;gap:10px;margin-bottom:16px;border-color:#c7d2fe;background:var(--primary-soft);color:var(--primary-dark)}.state-banner.success{border-color:#a7f3d0;background:var(--surface-success);color:var(--cta-dark)}.state-banner.warning{border-color:#fde68a;background:var(--surface-warning);color:#92400e}.state-banner.danger{border-color:#fecdd3;background:var(--surface-danger);color:var(--red)}.empty-state{display:grid;place-items:center;gap:10px;min-height:180px;padding:24px;border:1px dashed var(--line-strong);border-radius:var(--radius-md);background:var(--surface-2);color:var(--muted);text-align:center}.empty-state strong{color:var(--text-strong);font-size:16px}.empty-state p{max-width:520px;margin:0}.loading-shell{display:grid;gap:12px}.skeleton-line,.skeleton-card{position:relative;overflow:hidden;border-radius:var(--radius-md);background:#e7edf6}.skeleton-line{width:100%;height:14px}.skeleton-card{min-height:104px;border:1px solid var(--line)}.skeleton-line:after,.skeleton-card:after{position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.7),transparent);animation:skeleton-sweep 1.2s infinite;content:""}@keyframes skeleton-sweep{to{transform:translate(100%)}}.two-column{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:16px;margin-bottom:18px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;margin-bottom:18px}.stat-card{position:relative;min-height:108px;overflow:hidden;padding:16px}.stat-card:before{position:absolute;inset:0 auto 0 0;width:3px;background:var(--line-strong);content:""}.stat-card span{color:var(--muted);font-size:13px;font-weight:750}.stat-card strong{display:block;margin-top:10px;color:var(--text-strong);font-size:28px;line-height:1;word-break:break-word}.stat-card.accent{border-color:#c7d2fe;background:var(--primary-soft)}.stat-card.accent:before{background:var(--primary)}.competency-bars{display:grid;gap:14px}.bar-row{display:grid;grid-template-columns:minmax(160px,1fr) minmax(120px,2fr) 52px;align-items:center;gap:12px}.bar-label span{display:block;margin-top:3px;color:var(--muted);font-size:12px}.bar-track{height:10px;overflow:hidden;border-radius:999px;background:#e2e8f0}.bar-track span{display:block;height:100%;border-radius:inherit;background:var(--primary)}.vacancy-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}.market-summary span,.vacancy-table article>div span{color:var(--muted);font-size:12px;font-weight:800}.catalog-workbench{display:grid;grid-template-columns:minmax(300px,.86fr) minmax(360px,1fr) minmax(270px,.78fr);gap:14px;align-items:start;margin-bottom:14px}.profession-rail,.market-panel{position:sticky;top:20px}.profession-search{margin-bottom:10px}.profession-list{max-height:400px;overflow-y:auto;padding-right:4px}.profession-rail .list-item{justify-content:flex-start;min-height:56px;text-align:left}.requirement-panel{min-height:420px}.market-summary{display:grid;gap:10px}.market-summary>div{padding:12px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-2)}.market-summary strong{display:block;margin:5px 0 4px;color:var(--text-strong);font-size:18px}.market-summary p{margin:0;color:var(--muted);font-size:13px}.market-alerts{display:grid;gap:8px;margin-top:10px}.market-alerts div{display:grid;grid-template-columns:18px 1fr;gap:8px;align-items:start;padding:10px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);color:var(--muted-strong);font-size:13px;line-height:1.4}.vacancy-list-panel{margin-bottom:18px}.vacancy-table{display:grid;gap:8px}.vacancy-table article{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(240px,1fr) minmax(260px,1fr);gap:14px;align-items:start;min-height:82px;padding:12px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}.vacancy-table article strong{display:block;color:var(--text-strong);line-height:1.25}.vacancy-table article>div span{display:block;margin-top:4px}.vacancy-table article p{margin:0;color:var(--muted);font-size:13px;line-height:1.45}.vacancy-card{display:grid;align-content:start;gap:12px;min-height:230px;padding:16px;border-top:3px solid var(--cyan)}.card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.card-top span{display:block;margin-top:3px;color:var(--muted);font-size:13px}.requirement-list{display:flex;flex-wrap:wrap;gap:8px}.requirement-list span{padding:6px 8px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--muted-strong);font-size:12px;font-weight:750}.form-panel{display:grid;align-content:start;gap:14px}.progress-card{min-width:150px;padding:14px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}.progress-card strong,.progress-card span{display:block}.progress-card span{margin-top:3px;color:var(--muted);font-size:12px}.assessment-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:18px;align-items:start}.topic-index{position:sticky;top:24px}.topic-jump{display:grid;grid-template-columns:18px 1fr 24px;align-items:center;gap:8px;width:100%;min-height:42px;margin-bottom:8px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);color:var(--text);cursor:pointer;text-align:left;transition:background .16s ease,border-color .16s ease,color .16s ease}.topic-jump:hover{border-color:var(--primary);background:var(--primary-soft)}.topic-jump.done{border-color:#a7f3d0;background:var(--surface-success)}.question-stack{display:grid;gap:12px}.question-card{scroll-margin-top:24px}.question-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.question-head span{display:block;margin-bottom:5px;color:var(--muted);font-size:12px}.option-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.option-button{min-height:48px;padding:10px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);color:var(--text);cursor:pointer;font-weight:750;text-align:left;transition:background .16s ease,border-color .16s ease}.option-button:hover{border-color:var(--primary);background:var(--primary-soft)}.submit-bar{display:flex;align-items:center;justify-content:flex-end;gap:14px;padding:10px 0 24px}.submit-bar .support-text{margin-right:auto}.header-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:10px}.mode-switch{display:inline-flex;padding:4px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}.mode-switch button{min-height:34px;padding:0 12px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--muted);cursor:pointer;font-weight:800}.mode-switch button:hover{color:var(--primary-dark)}.mode-switch button.active{background:var(--primary);color:#fff}.distribution{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.distribution div{padding:14px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-2)}.distribution span{display:block;width:28px;height:8px;border-radius:999px}.distribution .low{background:var(--red)}.distribution .mid{background:var(--amber)}.distribution .high{background:var(--cta)}.distribution strong{display:block;margin-top:12px;font-size:28px}.distribution p{margin:2px 0 0;color:var(--muted)}.readiness-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:18px;align-items:start}.readiness-layout h2{margin:0 0 14px;font-size:22px;line-height:1.2}.evidence-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.evidence-grid div{padding:14px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-2)}.evidence-grid strong,.evidence-grid span{display:block}.evidence-grid strong{font-size:24px}.evidence-grid span{color:var(--muted);font-size:12px}.plan-headline{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;padding:12px;border:1px solid #99f6e4;border-radius:var(--radius-md);background:#f0fdfa}.plan-headline span{color:var(--muted)}.market-grid{display:grid;grid-template-columns:minmax(180px,.7fr) minmax(0,1.2fr) minmax(0,1.1fr);gap:14px;margin-bottom:14px}.market-grid>div{padding:14px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-2)}.market-grid strong{display:block;margin:4px 0 6px;font-size:22px}.market-grid p{margin:0;color:var(--muted)}.table-like,.candidate-list,.roadmap-list{display:grid;gap:10px}.table-row{display:grid;grid-template-columns:minmax(160px,1.2fr) minmax(160px,1fr) 80px 24px;color:var(--text)}.candidate-row{align-items:flex-start;padding:14px}.rank{display:grid;flex:0 0 auto;place-items:center;width:34px;height:34px;border-radius:var(--radius-md);background:var(--primary-soft);color:var(--primary-dark);font-weight:800}.evidence-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.evidence-tags span{padding:4px 8px;border:1px solid var(--line);border-radius:999px;background:var(--surface-2);color:var(--muted);font-size:11px;font-weight:800}.visibility-box{display:flex;align-items:center;justify-content:space-between;gap:16px}.teacher-command{display:grid;grid-template-columns:minmax(220px,.45fr) minmax(0,1fr);gap:14px;align-items:stretch;margin-bottom:14px}.teacher-command-score{display:grid;align-content:center;min-height:132px;padding:16px;border:1px solid #c7d2fe;border-radius:var(--radius-md);background:var(--primary-soft)}.teacher-command-score span,.teacher-command-metrics span,.risk-list article span,.program-impact span,.coverage-summary span,.teacher-student-table span{display:block;color:var(--muted);font-size:12px;font-weight:800}.teacher-command-score strong{display:block;margin-top:8px;color:var(--text-strong);font-size:44px;line-height:1}.teacher-command-score p{margin:10px 0 0;color:var(--primary-dark);font-weight:800}.teacher-command-metrics{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:10px}.teacher-command-metrics div,.coverage-summary div{padding:12px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-2)}.teacher-command-metrics strong,.coverage-summary strong{display:block;margin-top:6px;color:var(--text-strong);font-size:24px;line-height:1}.teacher-workbench{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(320px,.82fr);gap:14px;align-items:start;margin-bottom:14px}.teacher-actions-panel{position:sticky;top:20px}.risk-list,.teacher-action-list,.teacher-student-table{display:grid;gap:8px}.risk-list article,.teacher-action-list article,.teacher-student-table a{display:grid;gap:12px;align-items:start;padding:12px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}.risk-list article{grid-template-columns:minmax(0,1fr) 60px;background:var(--surface-warning);border-color:#fde68a}.risk-list article strong,.teacher-action-list article strong,.teacher-student-table strong{display:block;color:var(--text-strong);line-height:1.25}.risk-list article strong,.teacher-student-table span{margin-top:3px}.risk-list article p,.teacher-action-list article p{margin:5px 0 0;color:var(--muted);font-size:13px;line-height:1.45}.risk-list article>b{display:grid;place-items:center;min-height:32px;border-radius:var(--radius-md);background:#fff7ed;color:#92400e;font-size:13px}.program-impact{display:grid;gap:6px;margin-bottom:10px;padding:12px;border:1px solid #a7f3d0;border-radius:var(--radius-md);background:var(--surface-success)}.program-impact strong{color:var(--cta-dark);font-size:20px}.program-impact p{margin:0;color:var(--muted-strong);font-size:13px}.teacher-action-list article{grid-template-columns:minmax(0,1fr) auto}.teacher-bottom-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.42fr);gap:14px;align-items:start}.teacher-student-table a{grid-template-columns:minmax(0,1fr) auto 20px;color:var(--text)}.teacher-student-table a:hover{border-color:var(--primary);background:var(--primary-soft)}.coverage-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:12px}.compact-distribution{grid-template-columns:1fr}.status-dot{width:16px;height:16px;border-radius:999px;background:var(--red)}.status-dot.ok{background:var(--cta)}.compact-title{margin-top:16px;margin-bottom:8px}.review-command,.employer-command,.ranking-command,.result-command,.profile-command,.browser-command{display:grid;grid-template-columns:minmax(220px,.45fr) minmax(0,1fr);gap:14px;align-items:stretch;margin-bottom:14px}.review-score,.employer-command-main,.ranking-vacancy,.result-score{display:grid;align-content:center;min-height:132px;padding:16px;border:1px solid #c7d2fe;border-radius:var(--radius-md);background:var(--primary-soft)}.review-score.success,.result-score.success{border-color:#a7f3d0;background:var(--surface-success)}.review-score.danger,.result-score.danger{border-color:#fecdd3;background:var(--surface-danger)}.review-score.warning,.result-score.warning{border-color:#fde68a;background:var(--surface-warning)}.review-score span,.review-metrics span,.employer-command-main span,.employer-command-metrics span,.ranking-vacancy span,.ranking-metrics span,.result-score span,.result-metrics span,.browser-command span,.browser-metrics span,.profile-metrics span,.account-detail-grid span,.vacancy-health-grid span,.market-intel-grid>section>span,.review-artifact-box span,.evidence-note span{color:var(--muted);font-size:12px;font-weight:800}.review-score strong,.result-score strong{display:block;margin-top:8px;color:var(--text-strong);font-size:44px;line-height:1}.review-score p,.employer-command-main p,.ranking-vacancy p,.result-score p,.browser-command p{margin:8px 0 0;color:var(--muted-strong);font-weight:750;line-height:1.35}.review-metrics,.employer-command-metrics,.ranking-metrics,.result-metrics,.browser-metrics,.profile-metrics,.account-detail-grid,.vacancy-health-grid{display:grid;grid-template-columns:repeat(4,minmax(110px,1fr));gap:10px}.review-metrics div,.employer-command-metrics div,.ranking-metrics div,.result-metrics div,.browser-metrics div,.profile-metrics div,.account-detail-grid div,.vacancy-health-grid div{min-height:74px;padding:12px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-2)}.review-metrics strong,.employer-command-metrics strong,.ranking-metrics strong,.result-metrics strong,.browser-metrics strong,.profile-metrics strong,.account-detail-grid strong,.vacancy-health-grid strong{display:block;margin-top:6px;color:var(--text-strong);font-size:22px;line-height:1.1;word-break:break-word}.review-workbench,.vacancy-pipeline,.rating-workbench,.result-workbench,.profile-workbench,.account-workbench,.market-browser{display:grid;grid-template-columns:minmax(280px,.74fr) minmax(0,1.15fr) minmax(280px,.78fr);gap:14px;align-items:start}.profile-workbench,.account-workbench,.result-workbench,.rating-workbench{grid-template-columns:minmax(0,1fr) minmax(300px,.45fr)}.review-queue-panel,.vacancy-rail,.vacancy-builder,.candidate-detail-panel,.result-evidence-panel,.profile-side-panel,.vacancy-sample-panel{position:sticky;top:20px}.review-node-list,.vacancy-rail-list,.ranking-list,.profile-attempt-list,.vacancy-sample-list,.review-artifact-list,.attempt-timeline{display:grid;gap:8px}.review-node-row,.vacancy-rail-row,.ranking-row,.profile-attempt-list article,.vacancy-sample-list article,.review-artifact-list>div,.attempt-timeline>div{width:100%;padding:12px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);color:var(--text);text-align:left}.review-node-row,.vacancy-rail-row,.ranking-row{cursor:pointer;transition:background .16s ease,border-color .16s ease,box-shadow .16s ease}.review-node-row:hover,.vacancy-rail-row:hover,.ranking-row:hover{border-color:var(--primary);background:var(--primary-soft)}.review-node-row.active,.vacancy-rail-row.active,.ranking-row.active{border-color:var(--primary);box-shadow:inset 3px 0 0 var(--primary)}.review-node-row.needs-review{border-color:#fde68a;background:var(--surface-warning)}.review-node-top,.review-node-foot{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.review-node-top b,.review-node-foot span,.vacancy-rail-row>span,.vacancy-rail-row>b,.ranking-person span,.ranking-person b,.profile-attempt-list article span,.vacancy-sample-list article span,.vacancy-sample-list article p,.attempt-timeline span{color:var(--muted);font-size:12px;font-weight:800}.review-node-row strong,.vacancy-rail-row strong,.ranking-person strong,.profile-attempt-list article strong,.vacancy-sample-list article strong,.review-artifact-list strong,.attempt-timeline strong,.candidate-rationale strong,.profile-next-step strong,.evidence-note strong{display:block;color:var(--text-strong);line-height:1.25}.review-node-row strong,.vacancy-rail-row strong{margin-top:8px}.review-node-copy{display:-webkit-box;overflow:hidden;margin-top:6px;color:var(--muted);font-size:13px;line-height:1.4;-webkit-box-orient:vertical;-webkit-line-clamp:2}.review-node-foot{margin-top:10px}.review-node-foot b{color:var(--text-strong);font-size:12px}.review-detail-head,.vacancy-detail-head,.next-action-head,.candidate-focus{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.review-detail-head h2,.vacancy-detail-head h2,.next-action-head h2,.candidate-focus h2{margin:4px 0 6px;color:var(--text-strong);font-size:24px;line-height:1.16}.review-detail-head p,.vacancy-detail-head p,.candidate-focus p,.candidate-rationale p,.profile-next-step p{margin:0;color:var(--muted);line-height:1.5}.review-artifact-box,.evidence-note,.candidate-rationale,.profile-next-step{display:grid;gap:6px;margin-top:14px;padding:12px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-2)}.review-artifact-box a{overflow:hidden;color:var(--primary-dark);font-size:13px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.review-decision-bar,.builder-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:10px;margin-top:14px}.review-decision-bar .support-text{margin-right:auto}.review-artifact-list>div,.attempt-timeline>div,.profile-attempt-list article{display:flex;align-items:center;justify-content:space-between;gap:10px}.vacancy-pipeline{grid-template-columns:minmax(260px,.68fr) minmax(0,1fr) minmax(310px,.8fr)}.vacancy-rail-row{display:grid;gap:6px}.vacancy-detail-panel{min-height:520px}.vacancy-health-grid{grid-template-columns:minmax(135px,1.25fr) minmax(130px,1fr) minmax(88px,.7fr);margin-bottom:16px}.vacancy-health-grid strong{overflow-wrap:normal;font-size:18px;word-break:normal}.vacancy-health-grid div:nth-child(2) strong{font-size:16px}.requirement-matrix{margin-top:16px}.requirement-column-list{display:grid;gap:8px}.requirement-column-list>div{display:grid;grid-template-columns:minmax(0,1fr);gap:5px;min-height:46px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}.requirement-column-list strong{min-width:0;color:var(--text-strong);line-height:1.25}.requirement-column-list span{min-width:0;color:var(--muted);font-size:12px;font-weight:800;line-height:1.35;word-break:break-word}.requirement-column-list .requirement-more{border-style:dashed;background:var(--surface-accent)}.vacancy-builder{display:grid;gap:12px}.ranking-row{display:grid;grid-template-columns:38px minmax(0,1fr) auto 72px;align-items:center;gap:12px}.ranking-person{display:grid;gap:3px;min-width:0}.ranking-person b{display:-webkit-box;overflow:hidden;font-weight:700;line-height:1.35;-webkit-box-orient:vertical;-webkit-line-clamp:2}.candidate-focus strong{display:grid;flex:0 0 auto;place-items:center;min-width:74px;min-height:54px;border:1px solid #a7f3d0;border-radius:var(--radius-md);background:var(--surface-success);color:var(--cta-dark);font-size:22px}.compact-evidence{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:14px}.result-workbench{margin-bottom:14px}.next-action-head{align-items:center}.action-checklist{display:grid;gap:8px;margin-bottom:16px}.action-checklist>div{display:grid;grid-template-columns:18px minmax(0,1fr);gap:9px;align-items:start;padding:10px 12px;border:1px solid #a7f3d0;border-radius:var(--radius-md);background:var(--surface-success);color:var(--muted-strong);font-weight:750}.growth-strength-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}.compact-bars .bar-row{grid-template-columns:minmax(0,1fr);align-items:stretch;gap:7px}.compact-bars .bar-row b{color:var(--muted);font-size:12px}.topic-audit-list{display:grid;gap:8px}.topic-audit-list article{display:grid;grid-template-columns:minmax(220px,1fr) minmax(180px,.72fr) 70px;gap:12px;align-items:center;min-height:58px;padding:12px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}.topic-audit-list article.warning{border-color:#fde68a;background:var(--surface-warning)}.topic-audit-list article.success{border-color:#a7f3d0;background:var(--surface-success)}.topic-audit-list strong,.topic-audit-list span{display:block}.topic-audit-list span{margin-top:3px;color:var(--muted);font-size:12px;font-weight:800}.profile-command{grid-template-columns:minmax(280px,.72fr) minmax(0,1fr)}.profile-identity{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:12px}.profile-identity.large{grid-template-columns:64px minmax(0,1fr)}.profile-identity>span{display:grid;place-items:center;width:48px;height:48px;border:1px solid #a7f3d0;border-radius:var(--radius-md);background:var(--surface-success);color:var(--cta-dark);font-weight:800}.profile-identity.large>span{width:64px;height:64px;font-size:18px}.profile-identity strong{display:block;color:var(--text-strong);font-size:18px;line-height:1.2}.profile-identity p{margin:4px 0 0;color:var(--muted)}.profile-visibility.enabled{border-color:#a7f3d0;background:var(--surface-success)}.account-workbench{grid-template-columns:minmax(0,1fr) minmax(300px,.46fr)}.account-summary-panel{display:grid;gap:18px}.account-detail-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.browser-command{grid-template-columns:minmax(0,1fr) minmax(320px,.74fr)}.browser-command>div:first-child strong,.employer-command-main strong,.ranking-vacancy strong{display:block;margin-top:6px;color:var(--text-strong);font-size:24px;line-height:1.15}.market-browser{grid-template-columns:minmax(260px,.7fr) minmax(0,1.08fr) minmax(280px,.82fr)}.market-intel-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.market-intel-grid>section{min-width:0}.vacancy-sample-list article{display:grid;gap:5px}.login-screen{display:grid;place-items:center;min-height:100vh;padding:24px;background:linear-gradient(180deg,#fff 0,#f5f7ff)}.login-panel{display:grid;grid-template-columns:minmax(0,1fr) 420px;width:min(1000px,100%);overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-md)}.login-copy,.login-form{padding:32px}.login-copy{display:grid;align-content:space-between;min-height:520px;border-right:1px solid var(--line);background:#fbfcff}.login-copy h1{max-width:560px;margin:64px 0 12px;color:var(--text-strong);font-size:40px;font-weight:800;line-height:1.08}.login-copy p{max-width:580px;margin:0;color:var(--muted);line-height:1.6}.metric-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.metric-row div{padding:14px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}.metric-row strong{display:block;color:var(--primary-dark);font-size:24px;line-height:1}.metric-row span{display:block;margin-top:5px;color:var(--muted);font-size:12px}.login-form{display:grid;align-content:start;gap:14px}.account-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.account-card{display:grid;justify-items:center;gap:8px;min-height:78px;padding:12px 8px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);color:var(--text);cursor:pointer;font-size:12px;font-weight:800;transition:background .16s ease,border-color .16s ease,color .16s ease}.account-card:hover{border-color:var(--primary);background:var(--primary-soft);color:var(--primary-dark)}.mobile-roadmap-workbench{display:none}.roadmap-summary-strip{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:10px;margin-bottom:14px}.roadmap-summary-strip>div{min-height:74px;padding:12px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}.roadmap-summary-strip span,.sprint-card span,.task-meta-grid span,.task-brief span,.queue-row-top b,.queue-row-foot span,.linked-block-list button span,.status-breakdown span{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase}.roadmap-summary-strip strong{display:block;margin-top:6px;color:var(--text-strong);font-size:26px;line-height:1}.roadmap-context-panel .roadmap-summary-strip{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:12px}.roadmap-context-panel .roadmap-summary-strip strong{font-size:22px}.roadmap-workbench{display:grid;grid-template-columns:minmax(260px,.82fr) minmax(420px,1.42fr) minmax(260px,.76fr);gap:14px;align-items:start}.roadmap-map-dashboard{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;align-items:start;margin-bottom:14px}.roadmap-map-shell{display:grid;gap:14px;min-height:calc(100vh - 150px);padding:0;overflow:hidden}.map-toolbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.62fr);gap:14px;align-items:center;padding:16px 16px 0}.map-toolbar h2{margin:4px 0 6px;color:var(--text-strong);font-size:24px;line-height:1.15}.map-toolbar p{max-width:760px;margin:0;color:var(--muted);line-height:1.45}.map-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.map-stats div{min-height:64px;padding:10px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-2)}.map-stats span{display:block;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase}.map-stats strong{display:block;margin-top:5px;color:var(--text-strong);font-size:22px;line-height:1}.canvas-toolbar{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:10px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-2)}.canvas-icon-button{display:inline-grid;place-items:center;width:34px;height:34px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--muted-strong);cursor:pointer;transition:background .16s ease,border-color .16s ease,color .16s ease}.canvas-icon-button:hover,.canvas-icon-button:focus-visible{border-color:var(--primary);background:var(--primary-soft);color:var(--primary-dark)}.canvas-icon-button:disabled{opacity:.42;cursor:not-allowed}.canvas-scale{display:inline-grid;place-items:center;min-width:58px;height:34px;padding:0 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-strong);font-size:12px;font-weight:850}.map-stage{position:relative;min-height:720px;overflow:hidden;border-top:1px solid var(--line);background:var(--surface)}.map-stage f-flow{position:relative;z-index:1;display:block;min-height:inherit;background:var(--surface);cursor:grab}.map-stage f-canvas,.map-stage f-background,.map-stage .f-flow,.map-stage .f-canvas,.map-stage .f-background{background:var(--surface)!important;background-color:var(--surface)!important}.map-stage f-flow:active{cursor:grabbing}.workflow-minimap{right:16px;bottom:16px;width:170px;height:118px;overflow:hidden;border:1px solid rgba(148,163,184,.58);border-radius:var(--radius-md);background:#ffffffeb;box-shadow:var(--shadow-sm)}.workflow-minimap .f-minimap-view{fill:#6366f11a;stroke:var(--primary);stroke-width:2}.workflow-minimap .f-minimap-node{fill:#475569;rx:3px}.workflow-minimap .f-minimap-node.practice,.workflow-minimap .f-minimap-node.case-task{fill:#b45309}.workflow-minimap .f-minimap-node.artifact,.workflow-minimap .f-minimap-node.checkpoint{fill:#059669}.map-stage f-selection-area{border:1px solid var(--primary);background:#6366f114}.map-stage f-connection path[f-connection-path]{stroke:#8aa0bd;stroke-width:2.5px;filter:drop-shadow(0 3px 5px rgba(15,23,42,.08))}.map-stage f-connection path[fConnectionSelection]{stroke-width:12px}.roadmap-underlay{display:grid;grid-template-columns:minmax(260px,.32fr) minmax(0,1fr);gap:14px;align-items:start}.roadmap-underlay .roadmap-queue-panel,.roadmap-underlay .roadmap-context-panel{position:static;max-height:none;overflow:visible}.roadmap-map-dashboard .roadmap-task-panel{min-height:0}.roadmap-queue-panel,.roadmap-context-panel{position:sticky;top:20px;max-height:calc(100vh - 40px);overflow:auto}.roadmap-queue{display:grid;gap:8px}.roadmap-queue-row{display:grid;gap:8px;width:100%;min-height:132px;padding:12px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);color:var(--text);cursor:pointer;text-align:left;transition:background .16s ease,border-color .16s ease,box-shadow .16s ease}.roadmap-queue-row:hover,.roadmap-queue-row.active{border-color:var(--primary);background:var(--primary-soft)}.roadmap-queue-row.active{box-shadow:inset 3px 0 0 var(--primary)}.queue-row-top,.queue-row-foot{display:flex;align-items:center;justify-content:space-between;gap:10px}.roadmap-queue-row strong{color:var(--text-strong);font-size:15px;line-height:1.25}.queue-row-copy{display:-webkit-box;overflow:hidden;color:var(--muted);font-size:13px;line-height:1.4;-webkit-box-orient:vertical;-webkit-line-clamp:2}.queue-row-foot b{color:var(--text-strong);font-size:12px}.roadmap-task-panel{display:grid;gap:14px;min-height:calc(100vh - 184px)}.task-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding-bottom:14px;border-bottom:1px solid var(--line)}.task-panel-head h2{margin:4px 0 8px;color:var(--text-strong);font-size:26px;line-height:1.12}.task-panel-head p{max-width:720px;margin:0;color:var(--muted);line-height:1.55}.task-meta-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.task-meta-grid>div,.task-brief>div,.sprint-card,.status-breakdown>div{padding:12px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-2)}.task-meta-grid strong{display:block;margin-top:5px;color:var(--text-strong);font-size:15px;line-height:1.3}.task-brief{display:grid;gap:10px}.task-brief p{margin:7px 0 0;color:var(--text);line-height:1.55}.linked-blocks{display:grid;gap:8px;margin-top:auto}.linked-block-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px}.linked-block-list button{display:grid;gap:5px;min-height:74px;padding:10px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);cursor:pointer;text-align:left}.linked-block-list button:hover{border-color:var(--primary);background:var(--primary-soft)}.linked-block-list button strong{color:var(--text-strong);font-size:13px;line-height:1.25}.sprint-card{display:grid;gap:7px;margin-bottom:12px}.sprint-card strong{color:var(--text-strong);font-size:16px;line-height:1.25}.sprint-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.45}.status-breakdown{display:grid;gap:8px}.status-breakdown>div{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px}.status-breakdown b{color:var(--text-strong);font-size:18px}.roadmap-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,340px);gap:18px;height:calc(100vh - 132px);min-height:620px}.flow-shell{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-md);background:#fbfcff;box-shadow:var(--shadow-sm)}f-flow{display:block;width:100%;height:100%}.flow-node{position:relative;display:grid;grid-template-rows:1fr auto;gap:6px;width:218px!important;height:96px;min-height:96px;overflow:hidden;padding:10px 11px 8px;border:1px solid #cfd8e4;border-top-width:4px;border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-sm);cursor:grab;transition:box-shadow .16s ease,border-color .16s ease,background .16s ease}.flow-node:hover{border-color:var(--primary);box-shadow:var(--shadow-md)}.flow-node:active{cursor:grabbing}.flow-node.profession,.flow-node.root{border-color:var(--primary);background:var(--primary-soft)}.flow-node.competency{border-color:var(--cyan);background:#ecfeff}.flow-node.practice{border-color:var(--amber);background:var(--surface-warning)}.flow-node.foundation{border-color:#64748b;background:var(--surface-2)}.flow-node.learn{border-color:var(--red);background:var(--surface-danger)}.flow-node.case-task{border-color:var(--violet);background:#f5f3ff}.flow-node.artifact{border-color:var(--cta);background:var(--surface-success)}.flow-node.checkpoint{border-color:var(--primary);background:#eff6ff}.flow-node.refresh{border-color:#94a3b8;background:var(--surface-2)}.flow-node.active{border-color:var(--primary-dark);outline:3px solid rgba(99,102,241,.22);box-shadow:0 16px 32px #4338ca29}.flow-node.success{box-shadow:inset 0 -3px #10b9818c,var(--shadow-sm)}.flow-node.info{box-shadow:inset 0 -3px #6366f173,var(--shadow-sm)}.flow-node.warning{box-shadow:inset 0 -3px #b4530973,var(--shadow-sm)}.flow-node.danger{box-shadow:inset 0 -3px #be123c73,var(--shadow-sm)}.map-node-head{display:flex;align-items:center;gap:5px;min-width:0}.node-drag-handle{display:inline-grid;flex:0 0 auto;place-items:center;width:19px;height:19px;margin-left:auto;border:1px solid var(--line);border-radius:var(--radius-sm);background:#ffffffc2;color:var(--muted)}.flow-node:hover .node-drag-handle,.flow-node.active .node-drag-handle{border-color:#6366f173;color:var(--primary-dark)}.flow-node .status-chip{max-width:76px;min-height:20px;overflow:hidden;padding:2px 6px;border-radius:var(--radius-sm);font-size:10px;text-overflow:ellipsis}.flow-node strong{display:-webkit-box;overflow:hidden;color:var(--text-strong);font-size:15px;font-weight:900;line-height:1.18;-webkit-box-orient:vertical;-webkit-line-clamp:3}.node-type,.node-type-inline{color:var(--muted);font-size:10px;font-weight:800;line-height:1;text-transform:uppercase}.flow-node .node-type{max-width:96px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.node-type-inline{display:inline-block;margin-left:8px}.detail-panel{overflow:auto}.detail-panel h2{margin:0 0 8px;color:var(--text-strong);font-size:22px;line-height:1.2}.muted{color:var(--muted)}dl{display:grid;gap:8px;margin:18px 0}dt{color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase}dd{margin:0 0 8px}.detail-actions,.review-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.roadmap-list-item{align-items:flex-start}@media(max-width:1180px){.roadmap-workbench,.roadmap-map-dashboard,.roadmap-underlay{grid-template-columns:1fr}.roadmap-queue-panel,.roadmap-context-panel{position:static;max-height:none}.roadmap-queue{grid-template-columns:repeat(2,minmax(0,1fr))}.roadmap-layout{grid-template-columns:1fr;height:auto}.flow-shell{height:680px}.map-stage{min-height:620px}}@media(max-width:1080px){.app-shell{grid-template-columns:236px minmax(0,1fr)}.workspace{padding:22px}.readiness-layout,.market-grid,.map-toolbar,.catalog-workbench,.teacher-command,.teacher-workbench,.teacher-bottom-grid,.review-command,.employer-command,.ranking-command,.result-command,.profile-command,.browser-command,.review-workbench,.vacancy-pipeline,.rating-workbench,.result-workbench,.profile-workbench,.account-workbench,.market-browser{grid-template-columns:1fr}.profession-rail,.market-panel,.teacher-actions-panel,.review-queue-panel,.vacancy-rail,.vacancy-builder,.candidate-detail-panel,.result-evidence-panel,.profile-side-panel,.vacancy-sample-panel{position:static}.vacancy-table article{grid-template-columns:1fr}.teacher-command-metrics,.review-metrics,.employer-command-metrics,.ranking-metrics,.result-metrics,.browser-metrics,.profile-metrics,.account-detail-grid,.vacancy-health-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.app-shell,.login-panel,.two-column,.assessment-layout{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.nav-list{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.workspace{padding:18px}.page-header{display:grid;gap:14px}.option-grid,.account-grid,.distribution,.teacher-command-metrics,.coverage-summary,.review-metrics,.employer-command-metrics,.ranking-metrics,.result-metrics,.browser-metrics,.profile-metrics,.account-detail-grid,.vacancy-health-grid,.growth-strength-grid,.market-intel-grid{grid-template-columns:1fr}.login-copy{min-height:0;border-right:0;border-bottom:1px solid var(--line)}.login-copy h1{margin-top:40px;font-size:34px}.metric-row,.table-row{grid-template-columns:1fr}}@media(max-width:640px){body{background:var(--bg);font-size:14px}.app-shell{display:block}.sidebar{position:sticky;top:0;z-index:30;display:block;height:auto;padding:10px 14px;border-right:0;border-bottom:1px solid var(--line);background:#fffffffa}.mobile-logout{position:absolute;top:10px;right:14px;display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 10px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);color:var(--muted);cursor:pointer;font-size:12px;font-weight:800}.brand{gap:9px;padding:0}.brand-mark{width:32px;height:32px;border-radius:var(--radius-sm)}.brand strong{max-width:190px;font-size:13px}.brand span,.sidebar-footer{display:none}.nav-list{position:static;display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:10px;padding:6px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:none}.nav-list a{display:grid;place-items:center;gap:3px;min-height:48px;padding:6px 4px;border-radius:var(--radius-md);font-size:11px;line-height:1.1;text-align:center}.nav-list a.active:before{display:none}.workspace{padding:16px 14px 32px}.page-header{gap:10px;margin-bottom:12px;padding-bottom:12px}.page-header h1{margin:2px 0 6px;font-size:26px;line-height:1.08}.page-header p{font-size:14px}.header-actions{display:grid;justify-content:stretch;gap:8px}.header-actions>.secondary-button{display:none}.mode-switch{width:100%}.mode-switch button{flex:1;min-height:38px;padding:0 6px;font-size:13px}.roadmap-summary-strip,.map-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.roadmap-queue{grid-template-columns:1fr}.map-stage{min-height:520px}.canvas-toolbar{gap:5px;padding:8px}.canvas-icon-button{width:32px;height:32px}.canvas-scale{min-width:52px;height:32px}.workflow-minimap{right:10px;bottom:10px;width:118px;height:82px}.flow-node{width:198px!important;height:94px;min-height:94px}.roadmap-task-panel{min-height:0}.task-panel-head{display:grid}.task-meta-grid,.linked-block-list{grid-template-columns:1fr}.mobile-roadmap-workbench{display:grid;gap:10px;margin-bottom:12px}.mobile-roadmap-summary{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}.mobile-roadmap-summary span{display:block;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase}.mobile-roadmap-summary strong{display:block;margin-top:3px;font-size:22px;line-height:1}.mobile-roadmap-summary p{max-width:180px;margin:0;color:var(--text);font-size:13px;font-weight:750;line-height:1.3;text-align:right}.mobile-node-list{display:grid;gap:8px;padding:0}.mobile-node-row{display:grid;gap:8px;min-height:108px;padding:12px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);color:var(--text);cursor:pointer;text-align:left}.mobile-node-row.active{border-color:var(--primary);box-shadow:inset 3px 0 0 var(--primary)}.mobile-node-row>strong{font-size:15px;line-height:1.25}.mobile-node-meta,.mobile-node-foot{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.mobile-node-meta b{color:var(--muted);font-size:11px;text-transform:uppercase}.mobile-node-foot{margin-top:auto;color:var(--muted);font-size:12px;line-height:1.35}.mobile-node-foot span{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.mobile-node-foot b{flex:0 0 auto;color:var(--text-strong)}.roadmap-layout{display:block;min-height:0}.flow-shell{display:none}.detail-panel{padding:14px}.detail-panel h2{font-size:20px}.detail-actions{display:grid;justify-content:stretch}.detail-actions .primary-button,.detail-actions .secondary-button{width:100%;justify-content:center}.select-row,.submit-bar{display:grid}.select-row select,.page-header>select{width:100%;min-width:0}.bar-row,.candidate-row,.ranking-row,.topic-audit-list article,.list-item,.roadmap-list-item,.risk-list article,.teacher-action-list article,.teacher-student-table a,.visibility-box{display:grid;grid-template-columns:1fr;align-items:start}.bar-row{grid-template-columns:minmax(0,1fr) auto;gap:7px 10px}.bar-row .bar-label{grid-column:1}.bar-row .bar-track{grid-column:1/-1}.bar-row>b{grid-column:2;grid-row:1;justify-self:end}.review-detail-head,.vacancy-detail-head,.next-action-head,.candidate-focus,.review-decision-bar,.builder-foot{display:grid;justify-content:stretch}.review-decision-bar .primary-button,.review-decision-bar .secondary-button,.builder-foot .primary-button,.detail-actions .primary-button,.detail-actions .secondary-button{width:100%}.flow-node{width:190px!important;height:94px;min-height:94px}}:root{--ff-white: #ffffff;--ff-black: #000000;--ff-gray-0: #ffffff;--ff-gray-25: #fcfcfc;--ff-gray-50: #f8f8f7;--ff-gray-75: #f2f2f0;--ff-gray-100: #e9e9e6;--ff-gray-150: #dcdcd7;--ff-gray-200: #c9c9c1;--ff-gray-300: #afafa5;--ff-gray-400: #8d8d81;--ff-gray-500: #69695f;--ff-gray-600: #505048;--ff-gray-700: #3c3c36;--ff-gray-800: #272722;--ff-gray-900: #1b1b18;--ff-gray-950: #141412;--ff-gray-1000: #0f0f0d;--ff-alpha-black-04: rgba(15, 15, 13, .04);--ff-alpha-black-06: rgba(15, 15, 13, .06);--ff-alpha-black-08: rgba(15, 15, 13, .08);--ff-alpha-black-10: rgba(15, 15, 13, .1);--ff-alpha-black-12: rgba(15, 15, 13, .12);--ff-alpha-black-15: rgba(15, 15, 13, .15);--ff-alpha-black-20: rgba(15, 15, 13, .2);--ff-alpha-black-30: rgba(15, 15, 13, .3);--ff-alpha-black-40: rgba(15, 15, 13, .4);--ff-alpha-black-60: rgba(15, 15, 13, .6);--ff-alpha-white-04: rgba(255, 255, 255, .04);--ff-alpha-white-06: rgba(255, 255, 255, .06);--ff-alpha-white-08: rgba(255, 255, 255, .08);--ff-alpha-white-10: rgba(255, 255, 255, .1);--ff-alpha-white-12: rgba(255, 255, 255, .12);--ff-alpha-white-15: rgba(255, 255, 255, .15);--ff-alpha-white-20: rgba(255, 255, 255, .2);--ff-alpha-white-30: rgba(255, 255, 255, .3);--ff-alpha-white-40: rgba(255, 255, 255, .4);--ff-alpha-white-60: rgba(255, 255, 255, .6);--ff-blue-100: #e8f2ff;--ff-blue-200: #bad8ff;--ff-blue-300: #7db7ff;--ff-blue-400: #4176ff;--ff-blue-500: #2759db;--ff-blue-600: #1b3f9e;--ff-green-100: #e7f7ef;--ff-green-300: #71c795;--ff-green-400: #2b9b5f;--ff-green-500: #1e7748;--ff-yellow-100: #fff5de;--ff-yellow-300: #e1b354;--ff-yellow-400: #bb8121;--ff-yellow-500: #916112;--ff-red-100: #feeceb;--ff-red-300: #e48d85;--ff-red-400: #c55245;--ff-red-500: #9e3a2f;--ff-radius-4: 4px;--ff-radius-6: 6px;--ff-radius-pill: 999px;--ff-font-family-sans: "Inter", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--ff-font-family-mono: ui-monospace, "SFMono-Regular", "Menlo", "Monaco", "Consolas", "Liberation Mono", "Courier New", monospace;--ff-font-size-xs: 12px;--ff-font-size-sm: 14px;--ff-font-size-md: 16px;--ff-font-size-lg: 18px;--ff-shadow-1: 0 1px 2px rgba(15, 15, 13, .05), 0 8px 20px rgba(15, 15, 13, .04);--ff-shadow-2: 0 10px 28px rgba(15, 15, 13, .08), 0 3px 10px rgba(15, 15, 13, .05);--ff-shadow-3: 0 18px 48px rgba(15, 15, 13, .12), 0 6px 16px rgba(15, 15, 13, .08)}:root{--ff-color-surface-page: var(--ff-gray-25);--ff-color-surface-canvas: var(--ff-gray-25);--ff-color-surface-card: var(--ff-white);--ff-color-surface-group: rgba(65, 118, 255, .14);--ff-color-surface-group-active: rgba(65, 118, 255, .2);--ff-color-surface-muted: var(--ff-gray-50);--ff-color-surface-soft: var(--ff-gray-75);--ff-color-surface-accent-soft: rgba(65, 118, 255, .1);--ff-color-border-default: var(--ff-alpha-black-12);--ff-color-border-subtle: var(--ff-alpha-black-08);--ff-color-border-strong: var(--ff-alpha-black-20);--ff-color-border-accent: var(--ff-blue-500);--ff-color-text-primary: var(--ff-gray-800);--ff-color-text-secondary: var(--ff-gray-500);--ff-color-text-tertiary: var(--ff-gray-400);--ff-color-text-inverse: var(--ff-white);--ff-color-accent: var(--ff-blue-500);--ff-color-accent-strong: var(--ff-blue-600);--ff-color-success: var(--ff-green-400);--ff-color-warning: var(--ff-yellow-400);--ff-color-danger: var(--ff-red-400);--ff-color-disabled-surface: var(--ff-gray-100);--ff-color-disabled-border: var(--ff-alpha-black-10);--ff-color-disabled-text: var(--ff-gray-300);--ff-color-selection-fill: rgba(65, 118, 255, .12);--ff-color-selection-stroke: rgba(65, 118, 255, .28);--ff-color-grid: var(--ff-alpha-black-08);--ff-color-grid-strong: var(--ff-alpha-black-15);--ff-color-connector-connected: var(--ff-blue-500);--ff-color-connection: var(--ff-gray-600);--ff-color-connection-muted: var(--ff-gray-300);--ff-color-connection-hover: var(--ff-alpha-black-12);--ff-color-grouping-drop-target-border: var(--ff-gray-800);--ff-color-grouping-drop-target-border-active: var(--ff-gray-800);--ff-color-waypoint-fill: var(--ff-white);--ff-color-waypoint-stroke: var(--ff-blue-500);--ff-color-waypoint-candidate-fill: var(--ff-white);--ff-color-waypoint-candidate-stroke: var(--ff-green-400);--ff-color-minimap-surface: var(--ff-white);--ff-color-minimap-node: var(--ff-gray-700);--ff-color-minimap-view: rgba(65, 118, 255, .14);--ff-color-magnetic-line: var(--ff-blue-500);--ff-color-magnetic-rect-fill: rgba(65, 118, 255, .08);--ff-color-magnetic-rect-border: rgba(65, 118, 255, .24);--ff-radius-node: var(--ff-radius-4);--ff-radius-group: var(--ff-radius-4);--ff-radius-control: var(--ff-radius-4);--ff-radius-socket-square: var(--ff-radius-6);--ff-radius-pill: var(--ff-radius-pill);--ff-font-sans: var(--ff-font-family-sans);--ff-font-mono: var(--ff-font-family-mono);--ff-font-size-body: var(--ff-font-size-sm);--ff-font-size-label: var(--ff-font-size-xs);--ff-shadow-surface: var(--ff-shadow-1);--ff-shadow-floating: var(--ff-shadow-2)}.dark,[data-theme=dark]{--ff-color-surface-page: var(--ff-gray-1000);--ff-color-surface-canvas: var(--ff-gray-1000);--ff-color-surface-card: var(--ff-gray-950);--ff-color-surface-group: rgba(125, 183, 255, .18);--ff-color-surface-group-active: rgba(125, 183, 255, .24);--ff-color-surface-muted: var(--ff-gray-900);--ff-color-surface-soft: var(--ff-gray-900);--ff-color-surface-accent-soft: rgba(125, 183, 255, .14);--ff-color-border-default: var(--ff-alpha-white-12);--ff-color-border-subtle: var(--ff-alpha-white-08);--ff-color-border-strong: var(--ff-alpha-white-20);--ff-color-border-accent: var(--ff-blue-300);--ff-color-text-primary: var(--ff-gray-100);--ff-color-text-secondary: var(--ff-gray-300);--ff-color-text-tertiary: var(--ff-gray-400);--ff-color-text-inverse: var(--ff-gray-1000);--ff-color-accent: var(--ff-blue-300);--ff-color-accent-strong: var(--ff-blue-200);--ff-color-success: var(--ff-green-300);--ff-color-warning: var(--ff-yellow-300);--ff-color-danger: var(--ff-red-300);--ff-color-disabled-surface: var(--ff-gray-800);--ff-color-disabled-border: var(--ff-alpha-white-10);--ff-color-disabled-text: var(--ff-gray-500);--ff-color-selection-fill: rgba(125, 183, 255, .16);--ff-color-selection-stroke: rgba(125, 183, 255, .34);--ff-color-grid: var(--ff-alpha-white-08);--ff-color-grid-strong: var(--ff-alpha-white-15);--ff-color-connector-connected: var(--ff-blue-300);--ff-color-connection: var(--ff-gray-200);--ff-color-connection-muted: var(--ff-gray-500);--ff-color-connection-hover: var(--ff-alpha-white-12);--ff-color-grouping-drop-target-border: var(--ff-gray-100);--ff-color-grouping-drop-target-border-active: var(--ff-gray-100);--ff-color-waypoint-fill: var(--ff-gray-950);--ff-color-waypoint-stroke: var(--ff-blue-300);--ff-color-waypoint-candidate-fill: var(--ff-white);--ff-color-waypoint-candidate-stroke: var(--ff-green-300);--ff-color-minimap-surface: var(--ff-gray-950);--ff-color-minimap-node: var(--ff-gray-200);--ff-color-minimap-view: rgba(125, 183, 255, .18);--ff-color-magnetic-line: var(--ff-blue-300);--ff-color-magnetic-rect-fill: rgba(125, 183, 255, .1);--ff-color-magnetic-rect-border: rgba(125, 183, 255, .24);--ff-shadow-surface: 0 1px 2px rgba(0, 0, 0, .28), 0 8px 20px rgba(0, 0, 0, .14);--ff-shadow-floating: 0 14px 36px rgba(0, 0, 0, .26), 0 4px 12px rgba(0, 0, 0, .16)}:root{--ff-flow-background-color: var(--ff-color-surface-page);--ff-flow-text-color: var(--ff-color-text-primary);--ff-flow-font-family: var(--ff-font-sans);--ff-flow-font-size: var(--ff-font-size-body);--ff-canvas-background-color: var(--ff-color-surface-canvas);--ff-node-background-color: var(--ff-color-surface-card);--ff-node-background-color-inverse: var(--ff-color-text-primary);--ff-node-border-color: var(--ff-color-border-default);--ff-node-border-color-selected: var(--ff-color-border-accent);--ff-node-color: var(--ff-color-text-primary);--ff-node-border-radius: var(--ff-radius-node);--ff-node-shadow: var(--ff-shadow-surface);--ff-node-shadow-selected: var(--ff-shadow-floating);--ff-node-width: 120px;--ff-node-min-height: 56px;--ff-node-padding: 24px;--ff-group-background-color: var(--ff-color-surface-group);--ff-group-background-color-active: var(--ff-color-surface-group-active);--ff-group-border-color: var(--ff-color-border-subtle);--ff-group-border-color-selected: var(--ff-color-border-accent);--ff-group-border-color-active: var(--ff-color-border-accent);--ff-group-color: var(--ff-color-text-secondary);--ff-group-border-radius: var(--ff-radius-group);--ff-group-min-width: 180px;--ff-group-min-height: 120px;--ff-group-padding: 24px;--ff-grouping-drop-target-border-color: var(--ff-color-grouping-drop-target-border);--ff-grouping-drop-target-border-style: dashed;--ff-grouping-drop-target-border-width: 1px;--ff-grouping-drop-target-border-color-active: var( --ff-color-grouping-drop-target-border-active );--ff-grouping-drop-target-border-style-active: dashed;--ff-grouping-drop-target-border-width-active: 2px;--ff-resize-handle-size: 8px;--ff-resize-handle-fill: var(--ff-color-accent);--ff-resize-handle-stroke: var(--ff-color-surface-card);--ff-resize-handle-ring: var(--ff-color-accent);--ff-resize-handle-radius: 1px;--ff-resize-handle-fill-active: var(--ff-color-surface-card);--ff-rotate-handle-size: 16px;--ff-rotate-handle-offset: 40px;--ff-rotate-handle-background-color: var(--ff-color-surface-card);--ff-rotate-handle-border-color: var(--ff-color-border-strong);--ff-rotate-handle-guide-color: var(--ff-color-border-strong);--ff-connector-background-color: var(--ff-color-surface-card);--ff-connector-border-color: var(--ff-color-text-secondary);--ff-connector-connected-color: var(--ff-color-connector-connected);--ff-connector-accent-color: var(--ff-color-accent);--ff-connector-disabled-color: var(--ff-color-disabled-surface);--ff-connector-disabled-border-color: var(--ff-color-disabled-border);--ff-connector-size: 14px;--ff-connector-border-width: 2px;--ff-connector-input-radius: var(--ff-radius-4);--ff-connector-node-ring-color: var(--ff-canvas-background-color);--ff-outlet-background-color: var(--ff-color-surface-muted);--ff-outlet-border-color: var(--ff-color-border-default);--ff-outlet-color: var(--ff-color-accent);--ff-outlet-disabled-background-color: var(--ff-color-disabled-surface);--ff-outlet-disabled-border-color: var(--ff-color-disabled-border);--ff-outlet-disabled-color: var(--ff-color-disabled-text);--ff-outlet-border-radius: var(--ff-radius-pill);--ff-outlet-padding-y: 6px;--ff-outlet-padding-x: 12px;--ff-connection-color: var(--ff-color-connection);--ff-snap-connection-color: var(--ff-color-connection-muted);--ff-connection-hover-color: var(--ff-color-connection-hover);--ff-connection-selected-color: var(--ff-color-accent);--ff-connection-label-color: var(--ff-color-text-secondary);--ff-connection-content-color: var(--ff-node-color);--ff-connection-content-background-color: var(--ff-node-background-color);--ff-connection-content-border-color: var(--ff-node-border-color);--ff-connection-content-border-color-selected: var(--ff-connection-selected-color);--ff-connection-content-border-radius: var(--ff-node-border-radius);--ff-connection-content-font-size: 13px;--ff-connection-content-padding-y: 2px;--ff-connection-content-padding-x: 8px;--ff-connection-width: 2px;--ff-connection-hit-width: 14px;--ff-connection-drag-handle-fill: var(--ff-color-surface-card);--ff-connection-drag-handle-stroke: var(--ff-color-accent);--ff-marker-color: var(--ff-connection-color);--ff-waypoint-fill: var(--ff-color-waypoint-fill);--ff-waypoint-stroke: var(--ff-color-waypoint-stroke);--ff-waypoint-candidate-fill: var(--ff-color-waypoint-candidate-fill);--ff-waypoint-candidate-stroke: var(--ff-color-waypoint-candidate-stroke);--ff-background-line-color: var(--ff-color-grid);--ff-background-dot-color: var(--ff-color-grid-strong);--ff-selection-area-color: var(--ff-color-selection-fill);--ff-selection-area-border-color: var(--ff-color-selection-stroke);--ff-minimap-background-color: var(--ff-color-minimap-surface);--ff-minimap-border-color: var(--ff-color-border-default);--ff-minimap-node-color: var(--ff-color-minimap-node);--ff-minimap-node-selected-color: var(--ff-color-accent);--ff-minimap-view-color: var(--ff-color-minimap-view);--ff-minimap-view-border-color: var(--ff-color-selection-stroke);--ff-minimap-border-radius: var(--ff-radius-node);--ff-minimap-shadow: var(--ff-shadow-floating);--ff-magnetic-line-color: var(--ff-color-magnetic-line);--ff-magnetic-rect-fill: var(--ff-color-magnetic-rect-fill);--ff-magnetic-rect-border-color: var(--ff-color-magnetic-rect-border);--ff-external-item-background-color: var(--ff-color-surface-card);--ff-external-item-border-color: var(--ff-color-border-default);--ff-external-item-color: var(--ff-color-text-primary);--ff-external-item-disabled-color: var(--ff-color-disabled-text);--ff-external-item-disabled-background-color: var(--ff-color-disabled-surface);--ff-external-item-border-radius: var(--ff-radius-node);--ff-external-item-shadow: var(--ff-shadow-surface);--ff-external-item-preview-shadow: var(--ff-shadow-floating);--ff-external-item-placeholder-background-color: var(--ff-color-surface-soft);--ff-external-item-placeholder-border-color: var(--ff-color-border-subtle)}f-flow,.f-flow{display:block;position:relative;width:100%;height:100%;overflow:hidden;pointer-events:all;-webkit-user-select:none;user-select:none;touch-action:none;color:var(--ff-flow-text-color);background:var(--ff-flow-background-color);font-family:var(--ff-flow-font-family);font-size:var(--ff-flow-font-size);line-height:1.4}f-flow .f-canvas,.f-flow .f-canvas{background:var(--ff-canvas-background-color)}f-flow .f-node,.f-flow .f-node{width:var(--ff-node-width);min-height:var(--ff-node-min-height);padding:var(--ff-node-padding);box-sizing:border-box;color:var(--ff-node-color);text-align:center;background:var(--ff-node-background-color);border:1px solid var(--ff-node-border-color);border-radius:var(--ff-node-border-radius);box-shadow:var(--ff-node-shadow)}f-flow .f-node .node-content,.f-flow .f-node .node-content{width:100%;height:100%;overflow:hidden}f-flow .f-node.f-selected,.f-flow .f-node.f-selected{border-color:var(--ff-node-border-color-selected);box-shadow:var(--ff-node-shadow-selected)}f-flow .f-node.f-dragging,.f-flow .f-node.f-dragging{box-shadow:var(--ff-node-shadow-selected)}f-flow .f-group,.f-flow .f-group{min-width:var(--ff-group-min-width);min-height:var(--ff-group-min-height);padding:var(--ff-group-padding);box-sizing:border-box;color:var(--ff-group-color);background:var(--ff-group-background-color);border:1px solid var(--ff-group-border-color);border-radius:var(--ff-group-border-radius)}f-flow .f-group.f-selected,.f-flow .f-group.f-selected{border-color:var(--ff-group-border-color-selected)}f-flow .f-drag-handle,.f-flow .f-drag-handle{cursor:move}f-flow .f-drag-handle img,.f-flow .f-drag-handle img{pointer-events:none}f-flow .f-resize-handle,.f-flow .f-resize-handle{position:absolute;width:var(--ff-resize-handle-size);height:var(--ff-resize-handle-size);box-sizing:border-box;border:1.5px solid var(--ff-resize-handle-stroke);border-radius:var(--ff-resize-handle-radius);background:var(--ff-resize-handle-fill);box-shadow:0 0 0 1px var(--ff-resize-handle-ring),0 1px 2px #0f0f0d2e;transition:background-color .15s cubic-bezier(.4,0,.2,1),box-shadow .15s cubic-bezier(.4,0,.2,1)}f-flow .f-resize-handle:hover,.f-flow .f-resize-handle:hover{box-shadow:0 0 0 1px var(--ff-resize-handle-ring),0 0 0 5px color-mix(in oklch,var(--ff-resize-handle-ring) 25%,transparent)}f-flow .f-resize-handle:active,.f-flow .f-resize-handle:active{background:var(--ff-resize-handle-fill-active);box-shadow:0 0 0 2px var(--ff-resize-handle-ring),0 0 0 6px color-mix(in oklch,var(--ff-resize-handle-ring) 28%,transparent)}f-flow .f-resize-handle.f-resize-handle-left,.f-flow .f-resize-handle.f-resize-handle-left{left:0;top:50%;transform:translate(-50%,-50%);cursor:col-resize}f-flow .f-resize-handle.f-resize-handle-left-top,.f-flow .f-resize-handle.f-resize-handle-left-top{left:0;top:0;transform:translate(-50%,-50%);cursor:nwse-resize}f-flow .f-resize-handle.f-resize-handle-top,.f-flow .f-resize-handle.f-resize-handle-top{left:50%;top:0;transform:translate(-50%,-50%);cursor:row-resize}f-flow .f-resize-handle.f-resize-handle-right-top,.f-flow .f-resize-handle.f-resize-handle-right-top{right:0;top:0;transform:translate(50%,-50%);cursor:nesw-resize}f-flow .f-resize-handle.f-resize-handle-right,.f-flow .f-resize-handle.f-resize-handle-right{right:0;top:50%;transform:translate(50%,-50%);cursor:col-resize}f-flow .f-resize-handle.f-resize-handle-right-bottom,.f-flow .f-resize-handle.f-resize-handle-right-bottom{right:0;bottom:0;transform:translate(50%,50%);cursor:nwse-resize}f-flow .f-resize-handle.f-resize-handle-bottom,.f-flow .f-resize-handle.f-resize-handle-bottom{left:50%;bottom:0;transform:translate(-50%,50%);cursor:row-resize}f-flow .f-resize-handle.f-resize-handle-left-bottom,.f-flow .f-resize-handle.f-resize-handle-left-bottom{left:0;bottom:0;transform:translate(-50%,50%);cursor:nesw-resize}f-flow .f-rotate-handle,.f-flow .f-rotate-handle{position:absolute;left:50%;top:calc(var(--ff-rotate-handle-offset) * -1);display:inline-flex;align-items:center;justify-content:center;width:var(--ff-rotate-handle-size);height:var(--ff-rotate-handle-size);box-sizing:border-box;border:1px solid var(--ff-rotate-handle-border-color);border-radius:50%;background:var(--ff-rotate-handle-background-color);transform:translate(-50%);cursor:grab;transition:background-color .15s cubic-bezier(.4,0,.2,1),border-color .15s cubic-bezier(.4,0,.2,1),box-shadow .15s cubic-bezier(.4,0,.2,1)}f-flow .f-rotate-handle:after,.f-flow .f-rotate-handle:after{content:"";position:absolute;left:50%;top:100%;width:1px;height:calc(var(--ff-rotate-handle-offset) - var(--ff-rotate-handle-size));background:var(--ff-rotate-handle-guide-color);transform:translate(-50%);pointer-events:none}f-flow .f-rotate-handle:hover,.f-flow .f-rotate-handle:hover{border-color:var(--ff-color-accent);box-shadow:0 0 0 4px color-mix(in oklch,var(--ff-color-accent) 22%,transparent)}f-flow .f-rotate-handle:active,.f-flow .f-rotate-handle:active{background:var(--ff-color-accent);border-color:var(--ff-color-accent);cursor:grabbing;box-shadow:0 0 0 4px color-mix(in oklch,var(--ff-color-accent) 22%,transparent)}f-flow .f-node-input:not(.f-node),f-flow .f-node-output:not(.f-node),.f-flow .f-node-input:not(.f-node),.f-flow .f-node-output:not(.f-node){position:absolute;width:var(--ff-connector-size);height:var(--ff-connector-size);box-sizing:border-box;border:var(--ff-connector-border-width) solid var(--ff-connector-border-color);border-radius:50%;background:var(--ff-connector-background-color);pointer-events:all;transition:background-color .15s cubic-bezier(.4,0,.2,1),border-color .15s cubic-bezier(.4,0,.2,1),box-shadow .15s cubic-bezier(.4,0,.2,1)}f-flow .f-node-input:not(.f-node).left,f-flow .f-node-output:not(.f-node).left,.f-flow .f-node-input:not(.f-node).left,.f-flow .f-node-output:not(.f-node).left{left:calc(var(--ff-connector-size) / -2);top:50%;transform:translateY(-50%)}f-flow .f-node-input:not(.f-node).right,f-flow .f-node-output:not(.f-node).right,.f-flow .f-node-input:not(.f-node).right,.f-flow .f-node-output:not(.f-node).right{right:calc(var(--ff-connector-size) / -2);top:50%;transform:translateY(-50%)}f-flow .f-node-input:not(.f-node).top,f-flow .f-node-output:not(.f-node).top,.f-flow .f-node-input:not(.f-node).top,.f-flow .f-node-output:not(.f-node).top{top:calc(var(--ff-connector-size) / -2);left:50%;transform:translate(-50%)}f-flow .f-node-input:not(.f-node).top-left,f-flow .f-node-output:not(.f-node).top-left,.f-flow .f-node-input:not(.f-node).top-left,.f-flow .f-node-output:not(.f-node).top-left{top:calc(var(--ff-connector-size) / -2);left:calc(var(--ff-connector-size) / -2)}f-flow .f-node-input:not(.f-node).top-right,f-flow .f-node-output:not(.f-node).top-right,.f-flow .f-node-input:not(.f-node).top-right,.f-flow .f-node-output:not(.f-node).top-right{top:calc(var(--ff-connector-size) / -2);right:calc(var(--ff-connector-size) / -2)}f-flow .f-node-input:not(.f-node).bottom,f-flow .f-node-output:not(.f-node).bottom,.f-flow .f-node-input:not(.f-node).bottom,.f-flow .f-node-output:not(.f-node).bottom{bottom:calc(var(--ff-connector-size) / -2);left:50%;transform:translate(-50%)}f-flow .f-node-input:not(.f-node).bottom-left,f-flow .f-node-output:not(.f-node).bottom-left,.f-flow .f-node-input:not(.f-node).bottom-left,.f-flow .f-node-output:not(.f-node).bottom-left{bottom:calc(var(--ff-connector-size) / -2);left:calc(var(--ff-connector-size) / -2)}f-flow .f-node-input:not(.f-node).bottom-right,f-flow .f-node-output:not(.f-node).bottom-right,.f-flow .f-node-input:not(.f-node).bottom-right,.f-flow .f-node-output:not(.f-node).bottom-right{bottom:calc(var(--ff-connector-size) / -2);right:calc(var(--ff-connector-size) / -2)}f-flow .f-node-input:not(.f-node):hover,f-flow .f-node-output:not(.f-node):hover,.f-flow .f-node-input:not(.f-node):hover,.f-flow .f-node-output:not(.f-node):hover{box-shadow:0 0 0 4px color-mix(in oklch,var(--ff-connector-accent-color) 22%,transparent)}f-flow .f-node-input:not(.f-node).f-connector-connectable,f-flow .f-node-output:not(.f-node).f-connector-connectable,.f-flow .f-node-input:not(.f-node).f-connector-connectable,.f-flow .f-node-output:not(.f-node).f-connector-connectable{border-color:var(--ff-connector-accent-color)}f-flow .f-node-input:not(.f-node).f-node-output-connected,f-flow .f-node-input:not(.f-node).f-node-input-connected,f-flow .f-node-output:not(.f-node).f-node-output-connected,f-flow .f-node-output:not(.f-node).f-node-input-connected,.f-flow .f-node-input:not(.f-node).f-node-output-connected,.f-flow .f-node-input:not(.f-node).f-node-input-connected,.f-flow .f-node-output:not(.f-node).f-node-output-connected,.f-flow .f-node-output:not(.f-node).f-node-input-connected{background:var(--ff-connector-connected-color);border-color:var(--ff-connector-connected-color)}f-flow .f-node-input:not(.f-node).f-node-output-not-connectable,f-flow .f-node-input:not(.f-node).f-node-input-not-connectable,f-flow .f-node-input:not(.f-node).f-node-input-disabled,f-flow .f-node-input:not(.f-node).f-node-output-disabled,f-flow .f-node-output:not(.f-node).f-node-output-not-connectable,f-flow .f-node-output:not(.f-node).f-node-input-not-connectable,f-flow .f-node-output:not(.f-node).f-node-input-disabled,f-flow .f-node-output:not(.f-node).f-node-output-disabled,.f-flow .f-node-input:not(.f-node).f-node-output-not-connectable,.f-flow .f-node-input:not(.f-node).f-node-input-not-connectable,.f-flow .f-node-input:not(.f-node).f-node-input-disabled,.f-flow .f-node-input:not(.f-node).f-node-output-disabled,.f-flow .f-node-output:not(.f-node).f-node-output-not-connectable,.f-flow .f-node-output:not(.f-node).f-node-input-not-connectable,.f-flow .f-node-output:not(.f-node).f-node-input-disabled,.f-flow .f-node-output:not(.f-node).f-node-output-disabled{background:var(--ff-connector-disabled-color);border-color:var(--ff-connector-disabled-border-color);box-shadow:none}f-flow .f-node-input:not(.f-node),.f-flow .f-node-input:not(.f-node){border-radius:var(--ff-connector-input-radius)}f-flow .f-connections-dragging .f-node-input:not(.f-connector-connectable):not(.f-node-input-connected):not(.f-node-output-connected),f-flow .f-connections-dragging .f-node-output:not(.f-connector-connectable):not(.f-node-input-connected):not(.f-node-output-connected),.f-flow .f-connections-dragging .f-node-input:not(.f-connector-connectable):not(.f-node-input-connected):not(.f-node-output-connected),.f-flow .f-connections-dragging .f-node-output:not(.f-connector-connectable):not(.f-node-input-connected):not(.f-node-output-connected){border-color:var(--ff-connector-disabled-border-color)}f-flow .f-node-outlet,.f-flow .f-node-outlet{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:32px;padding:var(--ff-outlet-padding-y) var(--ff-outlet-padding-x);box-sizing:border-box;border:1px solid var(--ff-outlet-border-color);border-radius:var(--ff-outlet-border-radius);background:var(--ff-outlet-background-color);color:var(--ff-outlet-color);pointer-events:all}f-flow .f-node-outlet.f-node-outlet-disabled,.f-flow .f-node-outlet.f-node-outlet-disabled{background:var(--ff-outlet-disabled-background-color);border-color:var(--ff-outlet-disabled-border-color);color:var(--ff-outlet-disabled-color)}f-flow .f-connection-content,.f-flow .f-connection-content{box-sizing:border-box;color:var(--ff-connection-content-color);font-size:var(--ff-connection-content-font-size);padding:var(--ff-connection-content-padding-y) var(--ff-connection-content-padding-x);background:var(--ff-connection-content-background-color);border:1px solid var(--ff-connection-content-border-color);border-radius:var(--ff-connection-content-border-radius)}f-flow .f-connection .f-connection-selection,.f-flow .f-connection .f-connection-selection{fill:none;stroke:transparent;stroke-width:var(--ff-connection-hit-width)}f-flow .f-connection .f-connection-path,.f-flow .f-connection .f-connection-path{fill:none;stroke:var(--ff-connection-color);stroke-width:var(--ff-connection-width)}f-flow .f-connection .f-connection-drag-handle,.f-flow .f-connection .f-connection-drag-handle{fill:transparent;stroke:transparent;cursor:move}f-flow .f-connection.f-snap-connection .f-connection-path,.f-flow .f-connection.f-snap-connection .f-connection-path{stroke:var(--ff-snap-connection-color);stroke-dasharray:8 4}f-flow .f-connection.f-selected .f-connection-content,.f-flow .f-connection.f-selected .f-connection-content{border-color:var(--ff-connection-content-border-color-selected)}f-flow .f-connection.f-selected .f-connection-path,.f-flow .f-connection.f-selected .f-connection-path{stroke:var(--ff-connection-selected-color)}f-flow:not(.f-dragging) .f-connection:not(.f-dragging):not(.f-selected):not(.f-connection-selection-disabled):hover .f-connection-selection,.f-flow:not(.f-dragging) .f-connection:not(.f-dragging):not(.f-selected):not(.f-connection-selection-disabled):hover .f-connection-selection{stroke:var(--ff-connection-hover-color)}f-flow .f-marker,f-flow .connection-marker,.f-flow .f-marker,.f-flow .connection-marker{color:var(--ff-marker-color)}f-flow .f-marker circle,f-flow .f-marker rect,f-flow .f-marker path,f-flow .f-marker polygon,f-flow .f-marker line,f-flow .connection-marker circle,f-flow .connection-marker rect,f-flow .connection-marker path,f-flow .connection-marker polygon,f-flow .connection-marker line,.f-flow .f-marker circle,.f-flow .f-marker rect,.f-flow .f-marker path,.f-flow .f-marker polygon,.f-flow .f-marker line,.f-flow .connection-marker circle,.f-flow .connection-marker rect,.f-flow .connection-marker path,.f-flow .connection-marker polygon,.f-flow .connection-marker line{fill:currentColor;stroke:currentColor}f-flow .f-connection.f-snap-connection .f-marker,f-flow .f-connection.f-snap-connection .connection-marker,.f-flow .f-connection.f-snap-connection .f-marker,.f-flow .f-connection.f-snap-connection .connection-marker{color:var(--ff-snap-connection-color)}f-flow .f-connection.f-selected .f-marker,f-flow .f-connection.f-selected .connection-marker,.f-flow .f-connection.f-selected .f-marker,.f-flow .f-connection.f-selected .connection-marker{color:var(--ff-connection-selected-color)}f-flow .f-connection .f-connection-waypoints .f-candidate,f-flow .f-connection .f-connection-waypoints .f-waypoint,.f-flow .f-connection .f-connection-waypoints .f-candidate,.f-flow .f-connection .f-connection-waypoints .f-waypoint{vector-effect:non-scaling-stroke;transform-box:fill-box;transform-origin:center;stroke-width:1.5}f-flow .f-connection .f-connection-waypoints .f-candidate:hover,f-flow .f-connection .f-connection-waypoints .f-waypoint:hover,.f-flow .f-connection .f-connection-waypoints .f-candidate:hover,.f-flow .f-connection .f-connection-waypoints .f-waypoint:hover{transform:scale(1.1)}f-flow .f-connection .f-connection-waypoints .f-candidate,.f-flow .f-connection .f-connection-waypoints .f-candidate{fill:var(--ff-waypoint-candidate-fill);stroke:var(--ff-waypoint-candidate-stroke)}f-flow .f-connection .f-connection-waypoints .f-waypoint,.f-flow .f-connection .f-connection-waypoints .f-waypoint{fill:var(--ff-waypoint-fill);stroke:var(--ff-waypoint-stroke);cursor:move}f-flow .f-connection .f-connection-drag-handle,.f-flow .f-connection .f-connection-drag-handle{fill:transparent;stroke:var(--ff-connection-drag-handle-stroke);stroke-width:1.5}.f-external-item{display:inline-flex;align-items:center;gap:8px;padding:12px 14px;box-sizing:border-box;color:var(--ff-external-item-color);background:var(--ff-external-item-background-color);border:1px solid var(--ff-external-item-border-color);border-radius:var(--ff-external-item-border-radius);box-shadow:var(--ff-external-item-shadow);cursor:grab;-webkit-user-select:none;user-select:none}.f-external-item.f-external-item-disabled{color:var(--ff-external-item-disabled-color);background:var(--ff-external-item-disabled-background-color);cursor:not-allowed}.f-external-item-preview{box-sizing:border-box;box-shadow:var(--ff-external-item-preview-shadow)}.f-external-item-placeholder{box-sizing:border-box;background:var(--ff-external-item-placeholder-background-color);border:1px dashed var(--ff-external-item-placeholder-border-color);border-radius:var(--ff-external-item-border-radius)}f-flow .f-background line,f-flow .f-background path,.f-flow .f-background line,.f-flow .f-background path{stroke:var(--ff-background-line-color)}f-flow .f-background circle,.f-flow .f-background circle{fill:var(--ff-background-dot-color)}f-flow .f-selection-area,.f-flow .f-selection-area{box-sizing:border-box;background:var(--ff-selection-area-color);border:1px solid var(--ff-selection-area-border-color)}f-flow .f-minimap,.f-flow .f-minimap{overflow:hidden;background:var(--ff-minimap-background-color);border:1px solid var(--ff-minimap-border-color);border-radius:var(--ff-minimap-border-radius);box-shadow:var(--ff-minimap-shadow);bottom:16px;right:16px;width:140px;height:120px}f-flow .f-minimap .f-minimap-node,f-flow .f-minimap .f-minimap-group,.f-flow .f-minimap .f-minimap-node,.f-flow .f-minimap .f-minimap-group{fill:var(--ff-minimap-node-color)}f-flow .f-minimap .f-minimap-node.f-selected,f-flow .f-minimap .f-minimap-group.f-selected,.f-flow .f-minimap .f-minimap-node.f-selected,.f-flow .f-minimap .f-minimap-group.f-selected{fill:var(--ff-minimap-node-selected-color)}f-flow .f-minimap .f-minimap-view,.f-flow .f-minimap .f-minimap-view{fill:var(--ff-minimap-view-color);stroke:var(--ff-minimap-view-border-color);stroke-width:1}f-flow .f-magnetic-lines .f-line,f-flow .f-line-alignment .f-line,.f-flow .f-magnetic-lines .f-line,.f-flow .f-line-alignment .f-line{background:var(--ff-magnetic-line-color)}f-flow .f-magnetic-rects .f-rect,.f-flow .f-magnetic-rects .f-rect{box-sizing:border-box;background:var(--ff-magnetic-rect-fill);border:1px solid var(--ff-magnetic-rect-border-color)}
