:root{--color-primary-50: #eef2ff;--color-primary-100: #e0e7ff;--color-primary-200: #c7d2fe;--color-primary-300: #a5b4fc;--color-primary-400: #818cf8;--color-primary-500: #6366f1;--color-primary-600: #4f46e5;--color-primary-700: #4338ca;--color-primary-800: #3730a3;--color-primary-900: #312e81;--color-neutral-0: #ffffff;--color-neutral-50: #fafaf9;--color-neutral-100: #f5f5f4;--color-neutral-200: #e7e5e4;--color-neutral-300: #d6d3d1;--color-neutral-400: #a8a29e;--color-neutral-500: #78716c;--color-neutral-600: #57534e;--color-neutral-700: #44403c;--color-neutral-800: #292524;--color-neutral-900: #1c1917;--color-success-50: #f0fdf4;--color-success-100: #dcfce7;--color-success-500: #22c55e;--color-success-600: #16a34a;--color-success-700: #15803d;--color-warning-50: #fffbeb;--color-warning-100: #fef3c7;--color-warning-500: #f59e0b;--color-warning-600: #d97706;--color-warning-700: #b45309;--color-error-50: #fef2f2;--color-error-100: #fee2e2;--color-error-500: #ef4444;--color-error-600: #dc2626;--color-error-700: #b91c1c;--color-info-50: #eff6ff;--color-info-100: #dbeafe;--color-info-500: #3b82f6;--color-info-600: #2563eb;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "SF Mono", "Fira Code", "Consolas", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--leading-none: 1;--leading-tight: 1.25;--leading-snug: 1.375;--leading-normal: 1.5;--leading-relaxed: 1.625;--leading-loose: 2;--space-0: 0;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--radius-none: 0;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--radius-full: 9999px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .1), 0 1px 2px rgba(0, 0, 0, .06);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--shadow-focus: 0 0 0 3px var(--color-primary-100);--shadow-focus-error: 0 0 0 3px var(--color-error-100);--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--z-dropdown: 100;--z-sticky: 200;--z-modal: 1000;--z-toast: 1100;--z-tooltip: 1200;--sidebar-width: 260px;--header-height: 64px;--content-max-width: 1200px;--bg-primary: var(--color-neutral-0);--bg-secondary: var(--color-neutral-50);--bg-tertiary: var(--color-neutral-100);--bg-inverse: var(--color-neutral-900);--text-primary: var(--color-neutral-900);--text-secondary: var(--color-neutral-600);--text-tertiary: var(--color-neutral-500);--text-disabled: var(--color-neutral-400);--text-inverse: var(--color-neutral-0);--text-link: var(--color-primary-600);--text-link-hover: var(--color-primary-700);--border-default: var(--color-neutral-200);--border-strong: var(--color-neutral-300);--border-focus: var(--color-primary-500);--interactive-primary: var(--color-primary-600);--interactive-primary-hover: var(--color-primary-700);--interactive-primary-active: var(--color-primary-800);--interactive-secondary: var(--color-neutral-100);--interactive-secondary-hover: var(--color-neutral-200)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);font-size:var(--text-base);font-weight:var(--font-normal);line-height:var(--leading-normal);color:var(--text-primary);background:var(--bg-secondary);min-height:100vh}#app{min-height:100vh}h1,h2,h3,h4,h5,h6{font-weight:var(--font-semibold);line-height:var(--leading-tight);color:var(--text-primary)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);font-family:var(--font-sans);font-size:var(--text-base);font-weight:var(--font-medium);line-height:var(--leading-none);text-decoration:none;border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--interactive-primary);color:var(--text-inverse);border-color:var(--interactive-primary)}.btn-primary:hover:not(:disabled){background:var(--interactive-primary-hover);border-color:var(--interactive-primary-hover)}.btn-primary:active:not(:disabled){background:var(--interactive-primary-active);border-color:var(--interactive-primary-active)}.btn-secondary{background:var(--bg-primary);color:var(--text-primary);border-color:var(--border-default)}.btn-secondary:hover:not(:disabled){background:var(--bg-secondary);border-color:var(--border-strong)}.btn-ghost{background:transparent;color:var(--text-secondary);border-color:transparent;padding:var(--space-2) var(--space-3)}.btn-ghost:hover:not(:disabled){background:var(--bg-tertiary);color:var(--text-primary)}.btn-danger{background:transparent;color:var(--color-error-600);border-color:transparent}.btn-danger:hover:not(:disabled){background:var(--color-error-50)}.btn-sm{padding:var(--space-2) var(--space-4);font-size:var(--text-sm)}.btn-full{width:100%}.form-group{margin-bottom:var(--space-5)}.form-label{display:block;font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-primary);margin-bottom:var(--space-2)}.form-input{width:100%;padding:var(--space-3) var(--space-4);font-family:var(--font-sans);font-size:var(--text-base);color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--border-default);border-radius:var(--radius-md);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.form-input::placeholder{color:var(--text-disabled)}.form-input:hover{border-color:var(--border-strong)}.form-input:focus{outline:none;border-color:var(--border-focus);box-shadow:var(--shadow-focus)}.form-input:disabled{background:var(--bg-secondary);color:var(--text-disabled);cursor:not-allowed}.form-textarea{min-height:120px;resize:vertical;line-height:var(--leading-relaxed)}.form-check{display:flex;align-items:center;gap:var(--space-2);cursor:pointer}.form-check input[type=checkbox],.form-check input[type=radio]{width:1.125rem;height:1.125rem;cursor:pointer}.card{background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.card-interactive{cursor:pointer;transition:box-shadow var(--transition-base),transform var(--transition-base)}.card-interactive:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.card-body{padding:var(--space-6)}.card-header{padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--border-default)}.card-footer{padding:var(--space-4) var(--space-6);border-top:1px solid var(--border-default);background:var(--bg-secondary)}.alert{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-medium)}.alert-error{background:var(--color-error-50);color:var(--color-error-700);border:1px solid var(--color-error-100)}.alert-success{background:var(--color-success-50);color:var(--color-success-700);border:1px solid var(--color-success-100)}.alert-warning{background:var(--color-warning-50);color:var(--color-warning-700);border:1px solid var(--color-warning-100)}.alert-info{background:var(--color-info-50);color:var(--color-info-600);border:1px solid var(--color-info-100)}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;padding:var(--space-6);z-index:var(--z-modal);animation:fadeIn var(--transition-fast)}.modal{background:var(--bg-primary);border-radius:var(--radius-xl);padding:var(--space-8);width:100%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-xl);animation:slideUp var(--transition-base)}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-6)}.modal-header h2{font-size:var(--text-xl);font-weight:var(--font-semibold)}.modal-close{background:none;border:none;font-size:var(--text-2xl);color:var(--text-tertiary);cursor:pointer;padding:var(--space-1);line-height:1;border-radius:var(--radius-sm);transition:color var(--transition-fast),background var(--transition-fast)}.modal-close:hover{color:var(--text-primary);background:var(--bg-tertiary)}.modal-actions{display:flex;gap:var(--space-3);justify-content:flex-end;margin-top:var(--space-6)}.icon-picker{display:flex;flex-wrap:wrap;gap:var(--space-2);padding:var(--space-3);background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md);max-height:160px;overflow-y:auto}.icon-option{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:2px solid transparent;border-radius:var(--radius-md);background:var(--bg-primary);cursor:pointer;transition:all var(--transition-fast);font-size:var(--text-xl);color:var(--text-secondary)}.icon-option:hover{border-color:var(--border-strong);color:var(--text-primary)}.icon-option.selected{border-color:var(--interactive-primary);background:var(--color-primary-50);color:var(--interactive-primary)}.role-picker{display:flex;gap:var(--space-3)}.role-option{flex:1;display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-4);border:2px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-primary);cursor:pointer;transition:all var(--transition-fast);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-secondary)}.role-option i{font-size:var(--text-2xl)}.role-option:hover{border-color:var(--border-strong);color:var(--text-primary)}.role-option.selected{border-color:var(--interactive-primary);background:var(--color-primary-50);color:var(--interactive-primary)}.activity-filters{display:flex;gap:var(--space-3);margin-bottom:var(--space-6);flex-wrap:wrap;align-items:center}.activity-feed{background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.activity-item{display:flex;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-default);transition:background var(--transition-fast)}.activity-item:last-child{border-bottom:none}.activity-item:hover{background:var(--bg-secondary)}.activity-icon{width:36px;height:36px;border-radius:var(--radius-full);background:var(--bg-secondary);display:flex;align-items:center;justify-content:center;font-size:var(--text-lg);flex-shrink:0}.activity-content{flex:1;min-width:0}.activity-text{color:var(--text-primary);line-height:var(--leading-normal)}.activity-text strong{font-weight:var(--font-semibold)}.activity-time{color:var(--text-tertiary);font-size:var(--text-sm);margin-top:var(--space-1)}.activity-pagination{display:flex;justify-content:center;padding:var(--space-6)}.layout{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-width);background:var(--bg-primary);border-right:1px solid var(--border-default);padding:var(--space-6);display:flex;flex-direction:column;flex-shrink:0}.sidebar-header{margin-bottom:var(--space-8)}.sidebar-header h1{font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--interactive-primary)}.sidebar-nav{flex:1;display:flex;flex-direction:column;gap:var(--space-1)}.nav-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);color:var(--text-secondary);font-weight:var(--font-medium);cursor:pointer;transition:all var(--transition-fast)}.nav-item:hover{background:var(--bg-secondary);color:var(--text-primary)}.nav-item.active{background:var(--color-primary-50);color:var(--interactive-primary)}.nav-item-icon{font-size:var(--text-xl);line-height:1}.sidebar-footer{padding-top:var(--space-6);border-top:1px solid var(--border-default)}.user-info{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-md);background:var(--bg-secondary)}.user-avatar{width:40px;height:40px;border-radius:var(--radius-full);background:var(--interactive-primary);color:var(--text-inverse);display:flex;align-items:center;justify-content:center;font-weight:var(--font-semibold);font-size:var(--text-base);flex-shrink:0}.user-name{font-weight:var(--font-medium);color:var(--text-primary)}.main-content{flex:1;padding:var(--space-8);overflow-y:auto;background:var(--bg-secondary)}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-6);background:var(--bg-secondary)}.login-card{background:var(--bg-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:var(--space-12);width:100%;max-width:420px}.login-card h1{font-size:var(--text-3xl);font-weight:var(--font-bold);margin-bottom:var(--space-2);text-align:center;color:var(--text-primary)}.login-card>p{color:var(--text-secondary);text-align:center;margin-bottom:var(--space-8)}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-8)}.page-header h1{font-size:var(--text-3xl);font-weight:var(--font-semibold)}.wiki-container{display:flex;gap:var(--space-8);height:calc(100vh - var(--header-height) - var(--space-16))}.wiki-sidebar{width:280px;background:var(--bg-primary);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-sm);overflow-y:auto;flex-shrink:0}.wiki-sidebar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-5)}.wiki-sidebar-header h2{font-size:var(--text-base);font-weight:var(--font-semibold)}.page-list{list-style:none;display:flex;flex-direction:column;gap:var(--space-1)}.page-item{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);color:var(--text-secondary);font-weight:var(--font-medium)}.page-item:hover{background:var(--bg-secondary);color:var(--text-primary)}.page-item.active{background:var(--color-primary-50);color:var(--interactive-primary)}.wiki-editor{flex:1;background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;overflow:hidden;min-width:0}.editor-header{padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--border-default);display:flex;align-items:center;gap:var(--space-4)}.editor-title{flex:1;font-family:var(--font-sans);font-size:var(--text-2xl);font-weight:var(--font-semibold);color:var(--text-primary);border:none;outline:none;background:transparent}.editor-title::placeholder{color:var(--text-disabled)}.editor-toolbar{padding:var(--space-3) var(--space-6);border-bottom:1px solid var(--border-default);display:flex;gap:var(--space-1);flex-wrap:wrap;background:var(--bg-secondary)}.toolbar-btn{padding:var(--space-2) var(--space-3);border:none;background:transparent;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-secondary);transition:all var(--transition-fast);line-height:1}.toolbar-btn:hover{background:var(--bg-primary);color:var(--text-primary)}.toolbar-btn.active{background:var(--interactive-primary);color:var(--text-inverse)}.toolbar-divider{width:1px;background:var(--border-default);margin:0 var(--space-2)}.editor-content{flex:1;padding:var(--space-6);overflow-y:auto}.editor-content [contenteditable]{min-height:100%;outline:none;font-size:var(--text-base);line-height:var(--leading-loose);color:var(--text-primary)}.editor-content [contenteditable]:empty:before{content:"Start writing...";color:var(--text-disabled)}.apps-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-6)}.app-card{background:var(--bg-primary);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sm);cursor:pointer;transition:all var(--transition-base)}.app-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.app-icon{font-size:var(--text-4xl);margin-bottom:var(--space-4);line-height:1}.app-name{font-size:var(--text-lg);font-weight:var(--font-semibold);margin-bottom:var(--space-2);color:var(--text-primary)}.app-description{color:var(--text-secondary);font-size:var(--text-sm);line-height:var(--leading-relaxed)}.app-viewer{position:fixed;inset:0;background:var(--bg-primary);z-index:var(--z-modal);display:flex;flex-direction:column}.app-viewer-header{padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--border-default);display:flex;align-items:center;gap:var(--space-4);background:var(--bg-primary)}.app-viewer-header h2{font-size:var(--text-lg);font-weight:var(--font-semibold)}.app-viewer-content{flex:1;overflow:hidden}.app-viewer-content iframe{width:100%;height:100%;border:none}.empty-state{text-align:center;padding:var(--space-16) var(--space-6);color:var(--text-tertiary)}.empty-state-icon{font-size:4rem;margin-bottom:var(--space-4);opacity:.5;line-height:1}.empty-state h3{font-size:var(--text-lg);font-weight:var(--font-medium);margin-bottom:var(--space-2);color:var(--text-primary)}.empty-state p{color:var(--text-secondary)}.loading{display:flex;align-items:center;justify-content:center;padding:var(--space-12)}.spinner{width:32px;height:32px;border:3px solid var(--border-default);border-top-color:var(--interactive-primary);border-radius:var(--radius-full);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){:root{--sidebar-width: 100%}.layout{flex-direction:column}.sidebar{width:100%;border-right:none;border-bottom:1px solid var(--border-default);padding:var(--space-4)}.sidebar-header{margin-bottom:var(--space-4)}.sidebar-nav{flex-direction:row;flex-wrap:wrap;gap:var(--space-2)}.sidebar-footer{display:none}.main-content{padding:var(--space-4)}.wiki-container{flex-direction:column;height:auto}.wiki-sidebar{width:100%;max-height:200px}.login-card{padding:var(--space-8)}.page-header h1{font-size:var(--text-2xl)}.modal{padding:var(--space-6);margin:var(--space-4)}}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-error{color:var(--color-error-600)}.mt-0{margin-top:var(--space-0)}.mt-2{margin-top:var(--space-2)}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.mt-8{margin-top:var(--space-8)}.mb-0{margin-bottom:var(--space-0)}.mb-2{margin-bottom:var(--space-2)}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.mb-8{margin-bottom:var(--space-8)}.hidden{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.file-list{display:flex;flex-direction:column;gap:var(--space-3)}.file-card{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);background:var(--bg-primary);border:1px solid var(--border-default);border-radius:var(--radius-lg);transition:border-color var(--transition-fast)}.file-card:hover{border-color:var(--border-hover)}.file-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--color-primary-50);color:var(--color-primary-600);border-radius:var(--radius-md);font-size:1.5rem}.file-info{flex:1;min-width:0}.file-name{font-weight:var(--font-medium);color:var(--text-primary);margin-bottom:var(--space-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-meta{font-size:var(--text-sm);color:var(--text-secondary)}.file-actions{display:flex;gap:var(--space-2);flex-shrink:0}.drop-zone{border:2px dashed var(--border-default);border-radius:var(--radius-lg);padding:var(--space-8) var(--space-6);text-align:center;cursor:pointer;transition:all var(--transition-fast);margin-bottom:var(--space-4)}.drop-zone:hover,.drop-zone.drag-over{border-color:var(--color-primary-500);background:var(--color-primary-50)}.drop-zone-icon{font-size:2.5rem;color:var(--text-tertiary);margin-bottom:var(--space-3)}.drop-zone-content p{margin:0;color:var(--text-secondary)}.drop-zone-link{color:var(--color-primary-600);font-weight:var(--font-medium)}.drop-zone-hint{font-size:var(--text-sm);color:var(--text-tertiary);margin-top:var(--space-2)}.selected-files{background:var(--bg-secondary);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4)}.selected-file-info{display:flex;align-items:center;gap:var(--space-3);color:var(--text-primary)}.selected-file-info i{color:var(--color-primary-600)}.selected-file-info .file-size{color:var(--text-secondary);margin-left:auto}.progress-bar{height:8px;background:var(--bg-tertiary);border-radius:var(--radius-full);overflow:hidden;margin-bottom:var(--space-2)}.progress-fill{height:100%;background:var(--color-primary-600);border-radius:var(--radius-full);transition:width .2s ease;width:0}.progress-text{font-size:var(--text-sm);color:var(--text-secondary);text-align:center}.download-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);padding:var(--space-6)}.download-card{background:var(--bg-primary);border-radius:var(--radius-xl);padding:var(--space-10);text-align:center;max-width:400px;width:100%;box-shadow:var(--shadow-lg)}.download-icon{width:80px;height:80px;margin:0 auto var(--space-6);display:flex;align-items:center;justify-content:center;background:var(--color-primary-50);color:var(--color-primary-600);border-radius:var(--radius-xl);font-size:2.5rem}.download-ready h2{font-size:var(--text-xl);font-weight:var(--font-semibold);margin-bottom:var(--space-2);word-break:break-word}.download-meta{color:var(--text-secondary);margin-bottom:var(--space-6)}.download-error{color:var(--text-primary)}.download-error i{font-size:3rem;color:var(--color-error-500);margin-bottom:var(--space-4)}.download-error h2{font-size:var(--text-xl);margin-bottom:var(--space-2)}.download-error p{color:var(--text-secondary);margin-bottom:var(--space-6)}.btn-lg{padding:var(--space-4) var(--space-8);font-size:var(--text-lg)}
