.app-shell{min-height:100vh;background:radial-gradient(circle at top left,var(--accent-soft) 0%,transparent 32%),linear-gradient(180deg,var(--app-bg) 0%,var(--app-bg-elevated) 100%);color:var(--text-1)}.app-shell__body{display:grid;grid-template-columns:auto minmax(0,1fr);min-height:calc(100vh - 72px)}.app-shell__workspace{display:grid;grid-template-rows:minmax(0,1fr) auto;min-width:0}.app-shell__content{min-width:0;padding:28px;overflow:auto}.app-topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:72px;padding:14px 22px;border-bottom:1px solid var(--border-soft);background:var(--surface-1);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.app-topbar__left,.app-topbar__right{display:flex;align-items:center;gap:14px}.app-topbar__toggle,.app-topbar__icon-button,.app-user-menu__trigger{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;padding:0;border:1px solid var(--border-soft);border-radius:12px;background:var(--surface-2);color:var(--text-1)}.app-topbar__brand{display:inline-flex;align-items:center;gap:12px;color:inherit}.app-topbar__brand:hover{color:inherit}.app-topbar__brand-mark{display:inline-flex;align-items:center;justify-content:center;min-width:54px;height:42px;padding:0 14px;border-radius:14px;background:linear-gradient(135deg,var(--accent-strong) 0%,var(--accent) 100%);color:var(--accent-contrast);font-size:.82rem;font-weight:800;letter-spacing:.08em}.app-topbar__brand-copy{display:flex;flex-direction:column;gap:1px}.app-topbar__brand-copy strong{font-size:.95rem;line-height:1.1}.app-topbar__brand-copy span{color:var(--text-muted);font-size:.78rem}.app-topbar__context{display:flex;flex-direction:column;align-items:flex-end;gap:1px}.app-topbar__role{color:var(--text-muted);font-size:.77rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.app-topbar__user{font-size:.92rem;font-weight:600}.app-user-menu{position:relative}.app-user-menu__trigger.is-open{background:var(--accent-soft)}.app-user-menu__avatar{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:999px;background:linear-gradient(135deg,var(--accent) 0%,var(--accent-strong) 100%);color:var(--accent-contrast);font-weight:800}.app-user-menu__panel{position:absolute;top:calc(100% + 8px);right:0;min-width:220px;padding:10px;border:1px solid var(--border-soft);border-radius:16px;background:var(--surface-2);box-shadow:var(--shadow-strong)}.app-user-menu__meta{display:flex;flex-direction:column;gap:2px;padding:8px 10px 12px}.app-user-menu__meta strong{font-size:.95rem}.app-user-menu__meta span{color:var(--text-muted);font-size:.8rem}.app-user-menu__link,.app-user-menu__action{display:flex;align-items:center;width:100%;padding:10px;border:0;border-radius:12px;background:transparent;color:var(--text-1);font-size:.92rem;text-align:left}.app-user-menu__link:hover,.app-user-menu__action:hover{background:var(--surface-4);color:var(--text-1)}.app-user-menu__action.is-danger{color:var(--danger-text)}.app-sidebar{position:sticky;top:72px;align-self:start;width:248px;height:calc(100vh - 72px);padding:18px 14px;border-right:1px solid var(--border-soft);background:var(--surface-1);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);overflow:auto;transition:width .18s ease,padding .18s ease}.app-sidebar.is-collapsed{width:0;padding:18px 0;border-right-color:transparent;overflow:hidden}.app-sidebar__mode{margin:0 8px 18px;padding:10px 12px;border-radius:14px;background:linear-gradient(135deg,var(--accent-soft),transparent);color:var(--accent);font-size:.8rem;font-weight:700}.app-sidebar__nav{display:flex;flex-direction:column;gap:16px}.app-sidebar__section{display:flex;flex-direction:column;gap:8px}.app-sidebar__section-title{padding:0 10px;color:var(--text-muted);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.app-sidebar__links{display:flex;flex-direction:column;gap:4px}.app-sidebar__link{display:flex;align-items:center;min-height:42px;padding:10px 12px;border-radius:12px;color:var(--text-1);font-size:.94rem;font-weight:600}.app-sidebar__link:hover{background:var(--surface-4);color:var(--text-1)}.app-sidebar__link.is-active{background:linear-gradient(135deg,var(--accent-strong) 0%,var(--accent) 100%);color:var(--accent-contrast);box-shadow:0 12px 24px #173f672e}.app-statusbar{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:center;min-height:44px;padding:10px 20px;border-top:1px solid var(--border-soft);background:var(--surface-1);color:var(--text-2);font-size:.82rem}.app-statusbar__item{white-space:nowrap}.app-page-loader{display:flex;align-items:center;justify-content:center;min-height:240px;color:var(--text-muted);font-size:.96rem}.app-shell--execution .app-shell__content{padding:20px}.app-shell--execution .app-topbar__brand-mark{background:linear-gradient(135deg,#1d6c53,#2f9770)}.app-shell--execution .app-sidebar__mode{background:linear-gradient(135deg,#1d6c5324,#2f97700a);color:#1d6c53}@media(max-width:960px){.app-shell__body{grid-template-columns:1fr}.app-sidebar{position:fixed;top:72px;left:0;bottom:44px;z-index:40;width:min(280px,82vw);box-shadow:var(--shadow-strong)}.app-sidebar.is-collapsed{transform:translate(-100%);width:min(280px,82vw);padding:18px 14px;border-right-color:var(--border-soft)}.app-topbar{padding:12px 16px}.app-topbar__context{display:none}.app-shell__content{padding:18px}}@media(max-width:640px){.app-topbar__brand-copy span{display:none}.app-topbar__brand-copy strong{font-size:.88rem}.app-statusbar{gap:8px 12px;padding:10px 14px;font-size:.76rem}}:root{--font-sans: "Segoe UI", "Noto Sans", "Helvetica Neue", Arial, sans-serif;--font-mono: "Cascadia Mono", "Segoe UI Mono", Consolas, "Courier New", monospace;--space-1: 8px;--space-2: 12px;--space-3: 16px;--space-4: 24px;--space-5: 32px;--radius-control: 12px;--radius-card: 16px;--radius-panel: 24px;--control-height: 42px;--focus-ring: 0 0 0 4px color-mix(in srgb, var(--accent-soft) 88%, transparent 12%);font-family:var(--font-sans);color:#132238;background:#edf2f7;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color-scheme:light;--app-bg: #edf2f7;--app-bg-elevated: #e6edf6;--surface-1: rgba(255, 255, 255, .82);--surface-2: #ffffff;--surface-3: #f6f9fc;--surface-4: #eaf1f8;--text-1: #132238;--text-2: #40556d;--text-muted: #667b92;--border-soft: rgba(19, 34, 56, .1);--accent: #18456f;--accent-strong: #0f2f4d;--accent-contrast: #ffffff;--accent-soft: rgba(24, 69, 111, .1);--accent-soft-border: rgba(24, 69, 111, .24);--success: #1d6c53;--success-strong: #107c41;--success-soft: rgba(29, 108, 83, .12);--pause: #7c3aed;--pause-strong: #5b21b6;--pause-soft: rgba(124, 58, 237, .14);--warning: #b7791f;--warning-text: #8a5a12;--warning-soft: #fff4df;--warning-soft-border: rgba(183, 121, 31, .3);--danger-strong: #d92d20;--danger-soft: #ffebee;--danger-text: #a12d2f;--danger-soft-border: rgba(161, 45, 47, .28);--neutral-soft: rgba(100, 116, 139, .12);--neutral-text: #64748b;--folder-base: #cf9622;--folder-top: #f7d988;--overlay: rgba(15, 23, 42, .42);--on-strong-muted: rgba(255, 255, 255, .74);--on-strong-subtle: rgba(255, 255, 255, .68);--on-strong-soft: rgba(255, 255, 255, .8);--preview-canvas: #0f172a;--hero-deep: #12202f;--hero-mid: #1a1a2e;--danger-deep: #6f1212;--on-strong-ghost: rgba(255, 255, 255, .15);--theme-preview-light-top: #f7fbff;--theme-preview-light-bottom: #dce6f3;--theme-preview-dark-top: #182536;--theme-preview-dark-bottom: #0c1420;--shadow-soft: 0 16px 34px rgba(15, 23, 42, .08);--shadow-strong: 0 24px 54px rgba(15, 23, 42, .14)}:root[data-theme=dark]{color-scheme:dark;--app-bg: #0e1621;--app-bg-elevated: #111d2b;--surface-1: rgba(19, 29, 43, .84);--surface-2: #162231;--surface-3: #1b2a3c;--surface-4: #213347;--text-1: #edf4fb;--text-2: #c2d0de;--text-muted: #90a4b8;--border-soft: rgba(177, 196, 214, .16);--accent: #72a8d8;--accent-strong: #9ec6ea;--accent-contrast: #09131e;--accent-soft: rgba(114, 168, 216, .14);--accent-soft-border: rgba(114, 168, 216, .28);--success: #59b38b;--success-strong: #7ad5a8;--success-soft: rgba(89, 179, 139, .18);--pause: #b596ff;--pause-strong: #9671f0;--pause-soft: rgba(181, 150, 255, .18);--warning: #e2b15c;--warning-text: #ffd890;--warning-soft: #3a2d16;--warning-soft-border: rgba(226, 177, 92, .32);--danger-strong: #ff6f66;--danger-soft: #3b1d21;--danger-text: #ff9a9f;--danger-soft-border: rgba(255, 154, 159, .3);--neutral-soft: rgba(144, 164, 184, .16);--neutral-text: #a7b7c8;--folder-base: #d9a64c;--folder-top: #eed39b;--overlay: rgba(2, 6, 14, .58);--on-strong-muted: rgba(255, 255, 255, .76);--on-strong-subtle: rgba(255, 255, 255, .7);--on-strong-soft: rgba(255, 255, 255, .84);--preview-canvas: #07111d;--hero-deep: #12202f;--hero-mid: #1a1a2e;--danger-deep: #6f1212;--on-strong-ghost: rgba(255, 255, 255, .16);--theme-preview-light-top: #f7fbff;--theme-preview-light-bottom: #dce6f3;--theme-preview-dark-top: #182536;--theme-preview-dark-bottom: #0c1420;--shadow-soft: 0 18px 38px rgba(2, 6, 14, .3);--shadow-strong: 0 28px 60px rgba(2, 6, 14, .42)}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100vh}html{font-family:var(--font-sans)}body{margin:0;font-family:var(--font-sans);background:radial-gradient(circle at top,color-mix(in srgb,var(--accent-soft) 44%,transparent) 0%,transparent 38%),linear-gradient(180deg,color-mix(in srgb,var(--app-bg) 90%,white 10%) 0%,var(--app-bg) 100%);color:var(--text-1)}a{color:inherit;text-decoration:none}button,input,select,textarea{font-family:var(--font-sans);font-size:inherit;line-height:inherit}button,input,select,textarea,a{transition:background .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease}.card-tone{--card-accent: var(--accent);--card-accent-soft: var(--accent-soft);--card-accent-surface: var(--surface-1);--card-accent-surface-strong: var(--surface-3);--card-accent-border: var(--accent-soft-border);--card-accent-border-strong: color-mix(in srgb, var(--accent) 58%, white 42%);--card-accent-glow: rgba(24, 69, 111, .16)}.card-tone__dot{background:var(--card-accent);border-color:var(--card-accent-border)}.card-tone__badge{border:1px solid var(--card-accent-border);background:var(--card-accent-soft);color:var(--card-accent)}
