@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&family=IBM+Plex+Sans:wght@400;500;600;700&display=swap";@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&family=Source+Serif+4:opsz,wght@8..60,400;8..60,500;8..60,600&display=swap";:root{--ink-50: #f7f7f6;--ink-100: #ececeb;--ink-200: #d6d6d4;--ink-300: #b1b1ae;--ink-400: #7a7a78;--ink-500: #4a4a48;--ink-600: #2e2e2d;--ink-700: #1f1f1e;--ink-800: #15161a;--ink-900: #0c0d10;--slate-50: #f3f6f8;--slate-100: #e6ecf0;--slate-200: #d4dee5;--slate-300: #b9c8d3;--slate-400: #a6bbc8;--slate-500: #7e96a6;--slate-600: #5d7787;--slate-700: #455a6a;--slate-800: #324452;--slate-900: #1f2c36;--bone-0: #ffffff;--bone-50: #fafaf7;--bone-100: #f4f4f0;--bone-200: #ebebe6;--bone-300: #dedeD8;--bone-400: #e4e4df;--brass-100: #f6efe1;--brass-400: #c9a972;--brass-600: #8e7438;--green-50: #ecf3ec;--green-500: #4f7a4f;--green-700: #2f5a30;--amber-50: #f7eedb;--amber-500: #b88019;--amber-700: #8a5d0e;--red-50: #f6e5e3;--red-500: #b13a2e;--red-700: #872417;--info-50: #e9eff3;--info-500: #4a6f8a;--info-700: #2f4c63}:root{--font-sans: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--font-display: var(--font-sans);--t-xs: .75rem;--t-sm: .8125rem;--t-base: .875rem;--t-md: 1rem;--t-lg: 1.125rem;--t-xl: 1.25rem;--t-2xl: 1.5rem;--t-3xl: 1.75rem;--t-4xl: 2.25rem;--t-5xl: 3rem;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--lh-tight: 1.15;--lh-snug: 1.3;--lh-normal: 1.5;--lh-loose: 1.65;--ls-tight: -.02em;--ls-snug: -.01em;--ls-normal: 0;--ls-wide: .04em;--ls-wider: .08em}:root{--bg: var(--bone-50);--surface: var(--bone-0);--surface-muted: var(--bone-100);--surface-hover: var(--bone-200);--surface-sunken: var(--slate-50);--surface-ink: var(--ink-800);--text: var(--ink-800);--text-strong: var(--ink-900);--text-muted: var(--ink-500);--text-faint: var(--ink-400);--text-on-ink: var(--bone-50);--text-on-primary: #ffffff;--border: var(--bone-400);--border-strong: var(--bone-300);--border-focus: var(--slate-700);--brand: var(--slate-400);--brand-soft: var(--slate-100);--brand-strong: var(--slate-700);--primary: var(--slate-800);--primary-hover: var(--slate-900);--primary-soft: var(--slate-100);--primary-fg: #ffffff;--success: var(--green-700);--success-soft: var(--green-50);--warning: var(--amber-700);--warning-soft: var(--amber-50);--danger: var(--red-700);--danger-soft: var(--red-50);--info: var(--info-700);--info-soft: var(--info-50);--accent: var(--brass-600);--accent-soft: var(--brass-100)}:root{--radius-sm: 4px;--radius: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-pill: 9999px;--shadow-xs: 0 1px 0 rgba(21, 22, 26, .04);--shadow-sm: 0 1px 2px rgba(21, 22, 26, .05);--shadow-md: 0 6px 18px -8px rgba(21, 22, 26, .12), 0 1px 2px rgba(21, 22, 26, .05);--shadow-lg: 0 16px 40px -12px rgba(21, 22, 26, .18), 0 2px 4px rgba(21, 22, 26, .06);--shadow-focus: 0 0 0 3px rgba(50, 68, 82, .18);--space-0: 0;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--ease-out: cubic-bezier(.22, .61, .36, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--dur-fast: .12s;--dur-base: .18s;--dur-slow: .28s}*,*:before,*:after{box-sizing:border-box}html,body{margin:0}body{font-family:var(--font-sans);color:var(--text);background:var(--bg);font-size:var(--t-base);line-height:var(--lh-normal);-webkit-font-smoothing:antialiased}h1,h2,h3,h4{margin:0;font-family:var(--font-display);font-weight:var(--fw-semibold);letter-spacing:var(--ls-snug);color:var(--text-strong)}h1{font-size:var(--t-2xl);line-height:var(--lh-tight)}h2{font-size:var(--t-xl);line-height:var(--lh-snug)}h3{font-size:var(--t-lg);line-height:var(--lh-snug)}h4{font-size:var(--t-md);line-height:var(--lh-snug);font-family:var(--font-sans)}p{margin:0}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}code,pre{font-family:var(--font-mono);font-size:.875em}hr{border:0;border-top:1px solid var(--border);margin:var(--space-4) 0}button{font-family:inherit}:focus-visible{outline:none;box-shadow:var(--shadow-focus);border-radius:var(--radius-sm)}.muted{color:var(--text-muted)}.mono{font-family:var(--font-mono);font-size:var(--t-sm)}.row{display:flex;gap:var(--space-2);align-items:center}.row-end{display:flex;justify-content:flex-end;gap:var(--space-2)}.stack>*+*{margin-top:var(--space-3)}.app-shell{min-height:100vh;display:flex;flex-direction:column}.main{flex:1;padding:var(--space-6) var(--space-4)}.main-content{max-width:1200px;margin:0 auto}.topbar{display:flex;align-items:center;gap:var(--space-4);height:56px;padding:0 var(--space-4);background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:30}.topbar-apps-btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:7px 12px;background:var(--surface-muted);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:var(--t-base);font-weight:var(--fw-medium);cursor:pointer;text-decoration:none;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.topbar-apps-btn:hover{background:var(--surface-hover);border-color:var(--border-strong);text-decoration:none}.topbar-breadcrumb{display:flex;align-items:center;gap:var(--space-2);font-size:var(--t-base)}.topbar-breadcrumb-root{color:var(--text-muted)}.topbar-breadcrumb-sep{color:var(--border-strong);font-size:var(--t-md);line-height:1}.topbar-breadcrumb-current{color:var(--text);font-weight:var(--fw-semibold)}.topbar-right{margin-left:auto;display:flex;align-items:center;gap:var(--space-2)}.user-menu{position:relative}.user-menu-trigger{display:inline-flex;align-items:center;gap:var(--space-2);padding:7px 10px;background:transparent;border:1px solid transparent;border-radius:var(--radius);color:var(--text);font-size:var(--t-base);cursor:pointer;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.user-menu-trigger:hover{background:var(--surface-muted);border-color:var(--border)}.user-menu-dropdown{position:absolute;top:calc(100% + 6px);right:0;min-width:200px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:var(--space-1) 0;opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out),visibility var(--dur-fast);z-index:100}.user-menu:hover .user-menu-dropdown,.user-menu:focus-within .user-menu-dropdown{opacity:1;visibility:visible;transform:translateY(0)}.user-menu-item{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);background:transparent;border:0;color:var(--text);font-family:inherit;font-size:var(--t-base);text-align:left;text-decoration:none;cursor:pointer;transition:background var(--dur-fast) var(--ease-out)}.user-menu-item:hover{background:var(--surface-muted);text-decoration:none}.user-menu-version{border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:var(--space-2) var(--space-3);font-family:var(--font-mono);font-size:.6875rem;letter-spacing:var(--ls-wider);text-transform:uppercase;color:var(--text-muted);text-align:center;-webkit-user-select:none;user-select:none}.notif-menu{position:relative}.notif-menu-trigger{display:inline-flex;align-items:center;justify-content:center;position:relative;width:36px;height:36px;background:transparent;border:1px solid transparent;border-radius:var(--radius);color:var(--text);cursor:pointer;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.notif-menu-trigger:hover{background:var(--surface-muted);border-color:var(--border)}.notif-menu-badge{position:absolute;top:2px;right:2px;background:var(--danger);color:#fff;font-size:10px;font-weight:var(--fw-semibold);min-width:16px;height:16px;padding:0 4px;border-radius:var(--radius-pill);display:inline-flex;align-items:center;justify-content:center;border:2px solid var(--surface)}.notif-menu-dropdown{position:absolute;top:calc(100% + 6px);right:0;width:360px;max-height:480px;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden;z-index:100}.notif-menu-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);font-size:var(--t-base);font-weight:var(--fw-semibold)}.notif-menu-list{overflow-y:auto;flex:1}.notif-menu-item{display:block;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);text-decoration:none;color:inherit;cursor:pointer;transition:background var(--dur-fast) var(--ease-out)}.notif-menu-item:last-child{border-bottom:0}.notif-menu-item:hover{background:var(--surface-muted);text-decoration:none}.notif-menu-item.unread{border-left:3px solid var(--primary);padding-left:calc(var(--space-4) - 3px)}.notif-menu-item-title{font-weight:var(--fw-semibold);font-size:var(--t-sm);color:var(--text-strong);margin-bottom:2px}.notif-menu-item-body{font-size:var(--t-sm);color:var(--text);line-height:var(--lh-normal)}.notif-menu-item-meta{font-size:var(--t-xs);color:var(--text-muted);margin-top:4px}.notif-menu-empty{padding:var(--space-6);text-align:center;color:var(--text-muted);font-size:var(--t-sm)}.notif-menu-footer{padding:var(--space-2) var(--space-4);border-top:1px solid var(--border);text-align:center;font-size:var(--t-sm)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5)}.card-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4)}.card-title{font-size:var(--t-md);font-weight:var(--fw-semibold);color:var(--text-strong)}.card-subtitle{color:var(--text-muted);font-size:var(--t-sm);margin-top:2px;line-height:var(--lh-normal)}.card-footer{padding:var(--space-3) var(--space-4);background:var(--surface-muted);border-radius:var(--radius)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:8px 14px;white-space:nowrap;font:inherit;font-size:var(--t-base);font-weight:var(--fw-medium);background:var(--surface);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius);cursor:pointer;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.btn:hover{background:var(--surface-muted)}.btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);color:var(--primary-fg);border-color:var(--primary)}.btn-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.btn-danger{background:var(--danger);color:#fff;border-color:var(--danger)}.btn-danger:hover{background:#6a1c10;border-color:#6a1c10}.btn-ghost{background:transparent;border-color:transparent;color:var(--text-muted)}.btn-ghost:hover{background:var(--surface-muted);color:var(--text)}.btn-sm{padding:6px 10px;font-size:var(--t-sm)}.btn-plus:before{content:"+";display:inline-block;margin-right:4px;font-weight:var(--fw-bold)}.field{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-3)}.field-label{font-size:var(--t-sm);font-weight:var(--fw-medium);color:var(--text)}.field-input,.field-select,.field-textarea{font:inherit;font-size:var(--t-base);padding:8px 12px;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);color:var(--text);transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.field-input:focus,.field-select:focus,.field-textarea:focus{outline:none;border-color:var(--border-focus);box-shadow:var(--shadow-focus)}.field-input:disabled,.field-select:disabled,.field-textarea:disabled{background:var(--surface-muted);color:var(--text-muted);cursor:not-allowed}.field-textarea{resize:vertical;min-height:90px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.field-hint{font-size:var(--t-xs);color:var(--text-muted);margin-top:2px}.field-code-preview{display:inline-flex;align-items:center;gap:6px;margin-top:6px;padding:4px 8px;background:var(--surface-muted);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--t-sm);color:var(--text)}.field-toggle{display:flex;align-items:flex-start;gap:var(--space-2);font-size:var(--t-base);cursor:pointer;-webkit-user-select:none;user-select:none}.field-toggle input{margin:2px 0 0;cursor:pointer;accent-color:var(--primary)}.form{display:flex;flex-direction:column;gap:var(--space-5)}.form-section{display:flex;flex-direction:column;gap:var(--space-3)}.form-section-title{font-size:var(--t-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:var(--ls-wide);color:var(--text-muted);padding-bottom:var(--space-2);border-bottom:1px solid var(--border)}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-3)}.form-grid .field{margin-bottom:0}.form-actions{display:flex;justify-content:flex-end;gap:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--border)}.segmented{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--surface-muted)}.segmented button{padding:6px 14px;background:transparent;border:0;font:inherit;font-size:var(--t-base);cursor:pointer;color:var(--text-muted);transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.segmented button+button{border-left:1px solid var(--border)}.segmented button:hover{background:var(--surface-hover)}.segmented button.active{background:var(--surface);color:var(--text);font-weight:var(--fw-medium)}.badge{display:inline-block;padding:2px 10px;font-size:var(--t-xs);font-weight:var(--fw-medium);white-space:nowrap;border-radius:var(--radius-pill);background:var(--surface-muted);color:var(--text-muted)}.badge-primary{background:var(--primary-soft);color:var(--primary)}.badge-success{background:var(--success-soft);color:var(--success)}.badge-warning{background:var(--warning-soft);color:var(--warning)}.badge-danger{background:var(--danger-soft);color:var(--danger)}.badge-muted{background:var(--surface-muted);color:var(--text-muted)}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius)}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border);font-size:var(--t-base)}.table th{font-weight:var(--fw-medium);color:var(--text-muted);background:var(--surface-muted);font-size:var(--t-xs);text-transform:uppercase;letter-spacing:var(--ls-wide)}.table tbody tr:hover{background:var(--surface-muted)}.table tbody tr:last-child td{border-bottom:0}.table td.actions{text-align:right}.table td.actions .row{justify-content:flex-end}.system-layout{display:flex;flex-direction:column;gap:var(--space-5)}.system-page-header{display:flex;align-items:center;gap:var(--space-4)}.system-page-header-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--brand-soft);color:var(--brand-strong);border-radius:var(--radius-lg);flex-shrink:0}.system-page-header-text{flex:1;min-width:0}.system-page-header-text h1{font-size:var(--t-2xl);margin-bottom:2px}.system-page-header-text p{color:var(--text-muted);font-size:var(--t-base)}.system-tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);overflow-x:auto}.system-tab{display:inline-flex;align-items:center;gap:var(--space-2);padding:10px 14px;color:var(--text-muted);font-size:var(--t-base);font-weight:var(--fw-medium);border-bottom:2px solid transparent;margin-bottom:-1px;text-decoration:none;white-space:nowrap;cursor:pointer;transition:color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.system-tab:hover{color:var(--text);text-decoration:none}.system-tab.active{color:var(--primary);border-bottom-color:var(--primary)}.system-content{padding-top:var(--space-2)}.apps-home{display:flex;flex-direction:column;gap:var(--space-6)}.apps-greeting{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.apps-greeting h1{font-size:var(--t-3xl);line-height:var(--lh-tight);letter-spacing:var(--ls-tight)}.apps-greeting p{color:var(--text-muted);font-size:var(--t-md);margin-top:var(--space-1)}.view-switch{position:relative}.view-switch-trigger{display:inline-flex;align-items:center;gap:var(--space-2);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:6px 12px;color:var(--text);font:inherit;font-size:.875rem;cursor:pointer;transition:background var(--dur-fast) var(--ease-out)}.view-switch-trigger:hover{background:var(--surface-muted)}.view-switch-label{font-weight:var(--fw-medium)}.view-switch-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:180px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:4px;z-index:50}.view-switch-item{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:8px 10px;background:transparent;border:0;border-radius:var(--radius-sm);color:var(--text);font:inherit;font-size:.875rem;cursor:pointer;text-align:left}.view-switch-item:hover{background:var(--surface-muted)}.view-switch-item.active{background:var(--brand-soft);color:var(--brand-strong);font-weight:var(--fw-medium)}.apps-toolbar{display:flex;align-items:center;gap:var(--space-3);margin:var(--space-4) 0;flex-wrap:wrap}.apps-toolbar-right{display:inline-flex;align-items:center;gap:var(--space-2);margin-left:auto;flex:0 0 auto}.apps-toolbar>.apps-fav-filter{margin-left:auto}.apps-search{display:flex;align-items:center;gap:var(--space-2);padding:8px 12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted);flex:1 1 280px;min-width:0;max-width:480px}.apps-search input{flex:1;min-width:0;background:transparent;border:0;font:inherit;font-size:var(--t-base);color:var(--text);outline:none}.apps-fav-filter{display:inline-flex;align-items:center;gap:var(--space-2);padding:6px 12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font:inherit;font-size:.875rem;cursor:pointer;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out);flex:0 0 auto}.apps-fav-filter:hover:not(:disabled){background:var(--surface-muted)}.apps-fav-filter.active{background:color-mix(in srgb,#f5b40d 15%,transparent);border-color:#f5b40d;color:#b8830a;font-weight:var(--fw-medium)}.apps-fav-filter.disabled,.apps-fav-filter:disabled{opacity:.45;cursor:not-allowed}.apps-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:168px;gap:var(--space-4);justify-items:stretch;align-items:stretch}@media (max-width: 1100px){.apps-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width: 768px){.apps-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 480px){.apps-grid{grid-template-columns:1fr}}.apps-list{display:flex;flex-direction:column;gap:var(--space-2)}.apps-compact{display:flex;flex-direction:column;gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.app-card{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);color:var(--text);transition:border-color var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}.app-card-link{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;border-radius:inherit;text-decoration:none;cursor:pointer}.app-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md)}.app-card-star{position:absolute;top:6px;right:6px;z-index:2;background:transparent;border:0;cursor:pointer;padding:6px;border-radius:var(--radius-sm);color:var(--text-muted);opacity:0;display:flex;align-items:center;justify-content:center;transition:opacity var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}.app-card:hover .app-card-star{opacity:1}.app-card-star:hover{background:var(--surface-muted);color:#f5b40d}.app-card-star.active{opacity:1;color:#f5b40d}.app-card.view-grid{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-5)}.app-card.view-grid .app-card-icon{align-self:flex-start}.app-card.view-grid .app-card-body{flex:1}.app-card.view-list{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);padding-right:40px}.app-card.view-compact{display:flex;align-items:center;gap:var(--space-3);padding:8px var(--space-3);padding-right:40px;border:0;border-radius:0;min-height:0}.app-card.view-compact:hover{background:var(--surface-muted);box-shadow:none}.app-card.view-compact .app-card-star{top:50%;transform:translateY(-50%)}.app-card-icon{display:flex;align-items:center;justify-content:center;background:var(--brand-soft);color:var(--brand-strong);border-radius:var(--radius);flex-shrink:0}.app-card.view-grid .app-card-icon{width:48px;height:48px}.app-card.view-list .app-card-icon{width:40px;height:40px}.app-card.view-compact .app-card-icon{width:28px;height:28px;border-radius:var(--radius-sm)}.app-card-body{min-width:0;display:flex;flex-direction:column;gap:4px}.app-card.view-list .app-card-body,.app-card.view-compact .app-card-body{flex:1}.app-card-title{font-size:var(--t-lg);font-weight:var(--fw-semibold);color:var(--text-strong);display:flex;align-items:center;gap:var(--space-2)}.app-card.view-compact .app-card-title{font-size:var(--t-base)}.app-card-desc{color:var(--text-muted);font-size:var(--t-sm);line-height:var(--lh-normal);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.app-card-external{font-size:.6875rem;vertical-align:middle}@media (max-width: 640px){.apps-grid{grid-auto-rows:144px}.app-card.view-grid{padding:var(--space-4)}.app-card.view-grid .app-card-icon{width:40px;height:40px}.view-switch-label{display:none}.view-switch-trigger{padding:6px 8px}.view-switch-menu{position:fixed;top:64px;left:50%;right:auto;transform:translate(-50%);width:calc(100vw - 32px);max-width:280px;padding:var(--space-2)}.view-switch-item{padding:10px 12px}.apps-fav-filter-label{display:none}.apps-fav-filter{padding:6px 8px}.apps-search{flex:1 1 100%}.apps-toolbar-right{margin-left:0}}.list-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-4)}.list-header-text{display:flex;flex-direction:column;gap:2px}.list-header-text .card-title{font-size:var(--t-md)}.list-header-text .card-subtitle{font-size:var(--t-sm)}.list-toolbar{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap}.list-toolbar .field-input{flex:1;min-width:220px}.list-toolbar .field-input[type=search]{max-width:380px}.list-toolbar select.field-input{max-width:200px;flex:0 0 auto}.list-toolbar .toolbar-count{font-size:var(--t-sm);color:var(--text-muted)}.multi-row{display:flex;flex-direction:column;gap:var(--space-2)}.multi-row-item{display:grid;grid-template-columns:1fr 1.4fr 1.8fr auto;gap:var(--space-2);align-items:start}.multi-row-item .field{margin-bottom:0}.multi-row-remove{width:32px;height:36px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border);color:var(--text-muted);cursor:pointer;margin-top:var(--space-5);transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.multi-row-remove:hover{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.multi-row-remove:disabled{opacity:.4;cursor:not-allowed}.multi-row-add{align-self:flex-start;display:inline-flex;align-items:center;gap:6px}.multi-row-item.has-error .field-input{border-color:var(--danger);background:var(--danger-soft)}.multi-row-item.has-error .field-code-preview{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}.priv-select-toolbar{display:flex;align-items:center;gap:var(--space-3);padding-bottom:var(--space-3);flex-wrap:wrap}.priv-select-toolbar .field-input{flex:1;min-width:200px}.priv-select-table-wrap{max-height:55vh;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius)}.priv-select-table{width:100%;border-collapse:collapse;font-size:var(--t-base)}.priv-select-table thead th{position:sticky;top:0;z-index:1;background:var(--surface-muted);text-align:left;font-size:var(--t-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:var(--ls-wide);color:var(--text-muted);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border)}.priv-select-table tbody tr{border-bottom:1px solid var(--border);cursor:pointer;transition:background 80ms var(--ease-out)}.priv-select-table tbody tr:last-child{border-bottom:0}.priv-select-table tbody tr:hover{background:var(--surface-muted)}.priv-select-table tbody tr.selected{background:var(--primary-soft)}.priv-select-table td{padding:var(--space-2) var(--space-3);vertical-align:middle}.priv-select-table td.check-col{width:36px;text-align:center}.priv-select-table td.check-col input{width:16px;height:16px;margin:0;accent-color:var(--primary);cursor:pointer}.priv-select-table td.code-col{width:32%}.priv-select-table td.module-col{width:18%}.module-icon{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;font-size:var(--t-lg);line-height:1}.module-icon img{width:100%;height:100%;object-fit:contain;border-radius:var(--radius-sm)}.module-icon-preview{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);font-size:var(--t-xl)}.module-icon-preview img{width:100%;height:100%;object-fit:contain;border-radius:var(--radius-sm)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f101873;display:flex;align-items:center;justify-content:center;padding:var(--space-6);z-index:200;animation:modalFade var(--dur-base) var(--ease-out)}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:520px;max-height:calc(100vh - var(--space-12));display:flex;flex-direction:column;overflow:hidden;animation:modalSlide var(--dur-base) var(--ease-out)}.modal-lg{max-width:720px}.modal-xl{max-width:960px}.modal-header{padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.modal-header h2{font-size:var(--t-md);font-weight:var(--fw-semibold)}.modal-close{background:transparent;border:0;width:28px;height:28px;border-radius:var(--radius-sm);color:var(--text-muted);font-size:var(--t-xl);line-height:1;cursor:pointer;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.modal-close:hover{background:var(--surface-muted);color:var(--text)}.modal-body{padding:var(--space-5);overflow-y:auto;flex:1}.modal-footer{padding:var(--space-3) var(--space-5);border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:var(--space-2)}@keyframes modalFade{0%{opacity:0}to{opacity:1}}@keyframes modalSlide{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.auth-shell{min-height:100vh;display:grid;place-items:center;background:var(--bg);padding:var(--space-8)}.auth-card{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-8);box-shadow:var(--shadow-sm)}.auth-brand-mark{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--text-strong);margin-bottom:var(--space-2)}.auth-brand-mark svg{color:var(--brand-strong)}.auth-brand{font-size:var(--t-xl);font-weight:var(--fw-bold);letter-spacing:var(--ls-tight);color:var(--text-strong);font-family:var(--font-sans)}.auth-subtitle{color:var(--text-muted);font-size:var(--t-sm);margin:var(--space-1) 0 var(--space-6);line-height:var(--lh-normal)}.empty{text-align:center;padding:var(--space-10) var(--space-4);color:var(--text-muted);font-size:var(--t-base);border:1px dashed var(--border-strong);border-radius:var(--radius)}.notif{border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4);background:var(--surface);transition:border-color var(--dur-fast) var(--ease-out)}.notif:hover{border-color:var(--border-strong)}.notif.unread{border-left:3px solid var(--primary)}.notif-head{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-1)}.notif-title{font-weight:var(--fw-semibold);font-size:var(--t-md);color:var(--text-strong)}.notif-meta{font-size:var(--t-xs);color:var(--text-muted);display:flex;gap:var(--space-2);align-items:center}.notif-body{color:var(--text);font-size:var(--t-base);margin-bottom:var(--space-3)}.notif-actions{display:flex;gap:var(--space-2);flex-wrap:wrap}.profile-grid{display:grid;grid-template-columns:minmax(140px,auto) 1fr;gap:var(--space-2) var(--space-4);align-items:center}.profile-row{display:contents}.profile-label{font-size:var(--t-sm);color:var(--text-muted);font-weight:var(--fw-medium)}.profile-value{font-size:var(--t-base);color:var(--text)}.priv-editor{display:flex;flex-direction:column;gap:var(--space-3)}.priv-editor-header{display:flex;gap:var(--space-2);align-items:center}.priv-editor-footer{display:flex;justify-content:flex-end;gap:var(--space-2)}.priv-editor-groups{display:flex;flex-direction:column;gap:var(--space-3)}.priv-group{border:1px solid var(--border);border-radius:var(--radius)}.priv-group-header{padding:var(--space-2) var(--space-3);background:var(--surface-muted);border-bottom:1px solid var(--border)}.priv-group-name{font-weight:var(--fw-semibold);font-size:var(--t-sm)}.priv-group-count{font-size:var(--t-xs);color:var(--text-muted);margin-left:var(--space-2)}.priv-group-items{padding:var(--space-2);display:flex;flex-direction:column;gap:var(--space-1)}.priv-item{padding:var(--space-2);border-radius:var(--radius-sm);cursor:pointer}.priv-item:hover{background:var(--surface-muted)}.priv-item-content{display:flex;align-items:flex-start;gap:var(--space-2)}.priv-item-desc{font-size:var(--t-xs);color:var(--text-muted);margin-top:2px}.role-privs{display:flex;flex-wrap:wrap;gap:4px}.toast-stack{position:fixed;bottom:var(--space-4);right:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2);z-index:300}.toast{padding:var(--space-3) var(--space-4);border-radius:var(--radius);font-size:var(--t-sm);background:var(--surface-ink);color:var(--text-on-ink);box-shadow:var(--shadow-md);max-width:360px;animation:toastSlide var(--dur-base) var(--ease-out)}.toast-success{background:var(--success);color:#fff}.toast-error{background:var(--danger);color:#fff}@keyframes toastSlide{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.config-layout{display:grid;grid-template-columns:240px 1fr;gap:var(--space-6);align-items:start}.config-sidebar{position:sticky;top:calc(56px + var(--space-6));display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-5);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.config-sidebar-header{display:flex;flex-direction:column;gap:2px}.config-sidebar-title{font-family:var(--font-display);font-size:var(--t-lg);font-weight:var(--fw-semibold);letter-spacing:var(--ls-snug);color:var(--text-strong)}.config-sidebar-subtitle{font-size:var(--t-sm);color:var(--text-muted);line-height:var(--lh-normal)}.config-nav{display:flex;flex-direction:column;gap:var(--space-2)}.config-nav-group{display:flex;flex-direction:column;gap:var(--space-1)}.config-nav-group-title{font-size:.6875rem;font-weight:var(--fw-semibold);letter-spacing:var(--ls-wide);text-transform:uppercase;color:var(--text-muted);padding:var(--space-1) var(--space-2);margin-top:var(--space-2)}.config-nav-group-items{display:flex;flex-direction:column;gap:2px}.config-nav-link{display:flex;align-items:center;gap:var(--space-2);padding:8px var(--space-3);border-radius:var(--radius);color:var(--text-muted);font-size:var(--t-base);font-weight:var(--fw-medium);text-decoration:none;cursor:pointer;border-left:2px solid transparent;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.config-nav-link:hover{background:var(--surface-muted);color:var(--text);text-decoration:none}.config-nav-link.active{background:var(--primary-soft);color:var(--primary);border-left-color:var(--primary)}.config-nav-link.indented{padding-left:var(--space-5)}.config-content{min-width:0;display:flex;flex-direction:column;gap:var(--space-4)}.config-content-header{display:flex;flex-direction:column;gap:4px;padding-bottom:var(--space-4);border-bottom:1px solid var(--border);margin-bottom:var(--space-2)}.config-content-title{font-family:var(--font-display);font-size:var(--t-2xl);font-weight:var(--fw-semibold);letter-spacing:var(--ls-snug);color:var(--text-strong);line-height:var(--lh-tight)}.config-content-subtitle{font-size:var(--t-base);color:var(--text-muted);line-height:var(--lh-normal)}@media (max-width: 768px){.config-layout{grid-template-columns:1fr;gap:var(--space-4)}.config-sidebar{position:static;top:auto}}.sortable-th{transition:background var(--dur-fast) var(--ease-out)}.sortable-th:hover{background:var(--surface-hover)}.sortable-th.active{color:var(--text-strong);font-weight:var(--fw-semibold)}.table-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding-top:var(--space-3);margin-top:var(--space-2);border-top:1px solid var(--border);flex-wrap:wrap}.table-footer-info{font-size:.8125rem;color:var(--text-muted)}.pagination .btn-sm{min-width:2rem;justify-content:center}.icon-btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out);padding:0}.icon-btn-sm{width:28px;height:28px}.icon-btn-md{width:34px;height:34px}.icon-btn:hover:not(:disabled){background:var(--surface-hover, var(--surface-muted));border-color:var(--border-strong, var(--border))}.icon-btn:disabled{opacity:.4;cursor:not-allowed}.icon-btn-danger:hover:not(:disabled){background:color-mix(in srgb,var(--danger) 10%,transparent);border-color:var(--danger);color:var(--danger)}.icon-btn-success:hover:not(:disabled){background:color-mix(in srgb,var(--success) 10%,transparent);border-color:var(--success);color:var(--success)}.icon-btn-group{display:inline-flex;gap:4px;align-items:center;justify-content:flex-end}.page-size-select{display:inline-flex;align-items:center;gap:6px;margin-left:auto;font-size:.75rem;color:var(--text-muted);flex:0 0 auto;white-space:nowrap}.page-size-select-label{font-size:.75rem}.page-size-select-input{font:inherit;font-size:.8125rem;padding:4px 22px 4px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);cursor:pointer;width:auto}.page-size-select-input:hover{border-color:var(--border-strong, var(--border))}@media (max-width: 640px){.page-size-select-label{display:none}.page-size-select{margin-left:0}}.table-wrap{-webkit-overflow-scrolling:touch}.table{min-width:640px}.table th,.table td{white-space:nowrap}.table td.wrap,.table th.wrap{white-space:normal;min-width:200px}@media (max-width: 768px){.table-wrap{background:linear-gradient(to right,var(--surface) 30%,rgba(255,255,255,0)),linear-gradient(to right,rgba(0,0,0,0),var(--surface) 70%) 100% 0,radial-gradient(farthest-side at 0 50%,#0000001f,#0000),radial-gradient(farthest-side at 100% 50%,#0000001f,#0000) 100% 0;background-repeat:no-repeat;background-size:40px 100%,40px 100%,14px 100%,14px 100%;background-attachment:local,local,scroll,scroll}}.list-toolbar{flex-wrap:wrap}@media (max-width: 640px){.list-toolbar{gap:var(--space-2)}.list-toolbar .field-input{min-width:0;flex:1 1 100%}.list-toolbar select.field-input{flex:1 1 calc(50% - var(--space-2));max-width:none}.list-toolbar .toolbar-count{order:99;flex:1 1 100%;text-align:right}}.topbar-mobile-toggle{display:none;background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);cursor:pointer;padding:6px;align-items:center;justify-content:center}@media (max-width: 768px){.topbar{padding:0 var(--space-3);gap:var(--space-2)}.topbar-apps-btn span{display:none}.topbar-breadcrumb{flex:1;min-width:0;overflow:hidden}.topbar-breadcrumb-system{display:none}.topbar-breadcrumb-sep:first-of-type{display:none}.topbar-breadcrumb-current{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu-trigger span{display:none}.topbar-right{gap:var(--space-2)}}@media (max-width: 768px){.system-page-header{gap:var(--space-2)}.system-page-header-icon{display:none}.system-page-header-text h1{font-size:1.125rem}.system-page-header-text p{font-size:.8125rem}}@media (max-width: 640px){.form-grid{grid-template-columns:1fr}.form-actions{flex-wrap:wrap;gap:var(--space-2)}.form-actions .btn{flex:1 1 auto}}.config-mobile-header,.config-mobile-toggle,.config-nav-mobile{display:none}.config-sidebar-desktop{display:flex;flex-direction:column;gap:var(--space-4)}@media (max-width: 768px){.config-layout{grid-template-columns:1fr;gap:var(--space-3)}.config-mobile-header{display:flex;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-2)}.config-mobile-header .system-page-header-text h1{font-size:1.125rem;line-height:var(--lh-tight);letter-spacing:var(--ls-snug);color:var(--text-strong)}.config-mobile-header .system-page-header-text p{font-size:.8125rem;color:var(--text-muted);margin-top:2px}.config-mobile-toggle{display:inline-flex}.config-sidebar{position:static;top:auto;padding:0;background:transparent;border:0;border-radius:0;max-height:0;overflow:hidden;opacity:0;pointer-events:none;transition:max-height .32s var(--ease-out, ease),opacity .22s var(--ease-out, ease);margin-top:var(--space-2)}.config-sidebar.open{max-height:70vh;opacity:1;pointer-events:auto;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.config-sidebar-desktop{display:none}.config-nav-mobile{display:flex;flex-direction:column;gap:0;background:var(--surface)}.config-nav-mobile .config-nav-link{padding:var(--space-3);border-radius:0;border-bottom:1px solid var(--border)}.config-nav-mobile .config-nav-link:last-child{border-bottom:0}.config-nav-mobile .config-nav-link.active{background:var(--surface-muted);color:var(--primary);border-left:3px solid var(--primary);padding-left:calc(var(--space-3) - 3px)}}.system-tabs-toggle{display:none;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font:inherit;font-size:.875rem;font-weight:var(--fw-medium);cursor:pointer;text-align:left;transition:background var(--dur-fast) var(--ease-out)}.system-tabs-toggle:hover{background:var(--surface-muted)}.system-tabs-toggle-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hamburger{display:inline-flex;flex-direction:column;justify-content:center;align-items:center;width:22px;height:22px;position:relative;flex-shrink:0}.hamburger>span{position:absolute;display:block;width:18px;height:2px;background:currentColor;border-radius:1px;transition:transform .28s var(--ease-out, ease),opacity .18s var(--ease-out, ease) .05s,top .28s var(--ease-out, ease)}.hamburger>span:nth-child(1){top:5px}.hamburger>span:nth-child(2){top:10px}.hamburger>span:nth-child(3){top:15px}.hamburger[data-open=true]>span:nth-child(1){top:10px;transform:rotate(45deg)}.hamburger[data-open=true]>span:nth-child(2){opacity:0}.hamburger[data-open=true]>span:nth-child(3){top:10px;transform:rotate(-45deg)}@media (max-width: 768px){.system-tabs-toggle{display:inline-flex}.system-tabs-drawer{flex-direction:column;align-items:stretch;gap:0;border:1px solid var(--border);border-radius:var(--radius);margin-top:var(--space-2);overflow:hidden;max-height:0;opacity:0;pointer-events:none;transition:max-height .32s var(--ease-out, ease),opacity .22s var(--ease-out, ease)}.system-tabs-drawer.open{max-height:70vh;opacity:1;pointer-events:auto;overflow-y:auto}.system-tabs-drawer .system-tab{padding:var(--space-3);border-bottom:1px solid var(--border);border-radius:0;border-bottom-color:var(--border)}.system-tabs-drawer .system-tab:last-child{border-bottom:0}.system-tabs-drawer .system-tab.active{background:var(--surface-muted);color:var(--primary);border-left:3px solid var(--primary);padding-left:calc(var(--space-3) - 3px)}}@media (max-width: 640px){.notif-menu-dropdown{position:fixed;top:calc(var(--topbar-height, 56px) + 8px);left:50%;right:auto;transform:translate(-50%);width:calc(100vw - 16px);max-width:420px;max-height:calc(100vh - var(--topbar-height, 56px) - 24px)}}
